随记-点选验证码(二)

之前写过一篇文章 随记-点选验证码 ,当时借助了 ddddocr 完成了ocr 识别,这篇文章算是对之前的补充。
本次更换了新的方案:

  • 通过 ultralytics(YOLO8)训练自己的模型
    • 吐槽一句:标注真是一件耗时的事情啊,自己标注了 1600张图片
    • 准确率:因为标注的样本以及刚刚接触 ultralytics 的原因,准确率较低。

验证码示例

我将一张完整的验证码图片,划分为两部分 verify 和 target。

  • target 包含了 文字和顺序信息两部分
  • verify 包含了文字和坐标信息两部分

示例

效果

target
verify

主要代码


def run(image_base_path):driver.get('https://www.bilibili.com/')# 点击 头像click_element(driver, """ //div[@class="header-login-entry"] """)# 点击 短信登录click_element(driver, """ //div[@class="login-tab-item"] """)# 输入 手机号input_element(driver, """ //div[@class="login-sms-wp__cid"]/../input """, "15266666666")# 点击 获取验证码click_element(driver, """ //div[@class="login-sms-wp__cid"]/../div[@class="login-sms-send clickable "] """)style_value = get_element_value(driver, """ //div[@class="geetest_widget"]//div[@class="geetest_tip_img"] """, "style", 10)target_image_path, verify_image_path = save_image(image_base_path, style_value)print(target_image_path, verify_image_path)results_list = []# 预测 targetmodel = YOLO("C:/Workspace/G_01_Gitee/demo_click_text/yolo/target_600.pt")results_list.extend(model([target_image_path]))# 预测 verifymodel = YOLO("C:/Workspace/G_01_Gitee/demo_click_text/yolo/verify_1000.pt")results_list.extend(model([verify_image_path]))for result in results_list:boxes = result.boxes  # Boxes object for bounding box outputsmasks = result.masks  # Masks object for segmentation masks outputskeypoints = result.keypoints  # Keypoints object for pose outputsprobs = result.probs  # Probs object for classification outputsobb = result.obb  # Oriented boxes object for OBB outputslabel_index = list(boxes.cls.numpy().astype(int))label_conf = list(boxes.conf.numpy())# 输出label 和 置信度for index, value in enumerate(label_index):print(f"label:{result.names[value]}, conf:{label_conf[index]}")result.show()  # display to screenresult.save(filename="result.jpg")  # save to disk

Source Code


到此结  DragonFangQy 2024.03.02

本博文仅供学习参考之用,不得用于其他任何目的。如有任何内容侵犯到您的隐私或权益,敬请立即联系我,我将及时删除或修正相关内容。感谢您的理解与支持,期待与您共同维护一个友善、尊重知识产权的网络环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解锁用户增长密码:订单排队免单+分红

排队分红模式,作为一种创新的营销策略,正逐渐受到实体店家的青睐。这种策略巧妙洞察了消费者的购物心理,成功地将顾客转变为商家的共赢伙伴。 坐标:厦门,我是肖琳 深耕社交新零售行业10年,主要提供新零售系…

2024.05.17 校招 实习 内推 面经

绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、实习 | 海康机器人2025届「超新星实习生」(内推) 实习 | 海康机器人2025届「超新星实习生」(内推) 2、实习 | 大华股份2025届实习生招聘…

鸿蒙实现汉字转拼音

1.使用三方库 pinyin-pro 地址:OpenHarmony三方库中心仓 亲测可用,一共三个关于 转pinyin的库,一个无法使用,另一个时间太久。 ohpm i pinyin-proimport { pinyin } from pinyin-pro;// 获取带音调拼音 pinyin(汉语拼音); // …

【Java数据结构】详解LinkedList与链表(一)

🔒文章目录: 1.❤️❤️前言~🥳🎉🎉🎉 2.ArrayList的缺陷 3.链表的概念及结构 4.无头单向非循环链表的实现 4.1成员属性 4.2成员方法 createList display——打印链表 addFirst——头插 addLast…

少样本学习与零样本学习:理解与应用

少样本学习与零样本学习:理解与应用 在现代机器学习领域中,少样本学习(Few-Shot Learning)和零样本学习(Zero-Shot Learning)正变得越来越重要。这些技术能够在数据稀缺的情况下有效地进行学习和推理&…

2024就业寒潮下的挑战与机遇:能否守住饭碗,人工智能能否成为新春天?

前言 随着时代的飞速发展,2024年的就业市场迎来了前所未有的挑战。数以百万计的高校毕业生涌入市场,使得就业竞争愈发激烈。然而,在这股就业寒潮中,我们也看到了新的曙光——人工智能的崛起。这一新兴行业以其独特的魅力和巨大的…

力扣每日一题 5/31

2965.找出缺失和重复的数字[简单] 题目: 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。 任务是找出重复的数字a 和…

深入分析 Android Service (五)

文章目录 深入分析 Android Service (五)1. 深入分析 Service 与 Activity 之间的通信2. Messenger 的内部工作原理2.1 服务端实现2.2 客户端实现 3. AIDL 的内部工作原理3.1 定义 AIDL 接口3.2 服务端实现3.3 客户端实现 4. Service 的优化建议和最佳实践4.1 异步操作4.2 资源…

【Linux】权限的概念

1.Linux权限的概念 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受权限限制 普通用户:在linux下做有限的事情,受权限设置。 windows下也有超级用户…

Hbase 面试题(二)

1. 阐述HBase有哪些不同的关键组件? HBase是一个分布式的、面向列的NoSQL数据库,它由多个关键组件构成,这些组件共同工作以提供其服务。以下是HBase中一些主要的关键组件: HMaster: HMaster负责管理集群的元数据和状态…

fmc编程入门:探索、挑战与成长之路

fmc编程入门:探索、挑战与成长之路 在当今数字化时代,编程已成为一项重要的技能。而fmc编程,作为一种新兴的编程方式,正逐渐受到人们的关注。本文将从四个方面、五个方面、六个方面和七个方面来深入剖析fmc编程的入门之道&#x…

Object.entries方法的使用

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。 有以下需求&#xff1a; let cpuData reactive([{ label: 总量, content: test },{ label: 已使用, content: test },{ label: 未使用, content: test } ])<el-form label-position"left" l…

环卫车北斗GPS视频监控定位解决方案的应用与优势

一、引言 随着城市化进程的加快&#xff0c;环卫车作为城市环境卫生的重要保障力量&#xff0c;其运行效率与安全性直接关系到城市形象与居民生活品质。然而&#xff0c;传统的环卫车管理模式往往存在信息不对称、调度不合理、行驶不规范等问题&#xff0c;导致城市道路污染和…

微信小程序对接发货功能

注&#xff1a;微信小程序对接发货功能 文档地址&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/order-shipping/order-shipping.html php代码 common.php use think\Config; use think\Db; use fast\Http; us…

LabVIEW远程开发与调试

在现代项目开发中&#xff0c;远程开发与调试已经成为一种常见的模式&#xff0c;特别是在使用LabVIEW进行工程项目时。本文将详细分析LabVIEW远程开发与调试的优缺点&#xff0c;并从多个角度说明如何建议客户采用这种方式&#xff0c;以提高项目效率和质量。 优点 灵活性和便…

Compose进阶——在非Compose作用域调用Compose函数

第一版&#xff0c;实现在非Compose作用域调用Compose函数&#xff1a; Composable fun test() {val fun1 Composable() {rememberTextMeasurer()}val test1 rememberTextMeasurer()val composer currentComposerButton(onClick {// 这是非Compose作用域&#xff0c;在此通…

2024华为OD机试真题-机场航班调度-C++(C卷D卷)

题目描述 XX 市机场停放了多架飞机,每架飞机都有自己的航班号 CA3385,CZ6678,SC6508 等, 航班号的前 2 个大写字母(或数字)代表航空公司的缩写,后面 4 个数字代表航班信息。 但是 XX 市机场只有一条起飞用跑道,调度人员需要安排目前停留在机场的航班有序起飞。 为保障航班…

Linux【安全 02】OpenSSH漏洞修复(离线升级最新版本流程)网盘分享3个安装包+26个离线依赖

OpenSSH离线升级最新版本流程 1. 漏洞信息2. 环境说明3.依赖安装3.1 在线安装3.2 离线安装 4.备份卸载4.1 备份4.2 卸载旧版本 5.安装5.1 zlib5.2 ssl5.3 openssh5.3.1 安装5.3.2 配置 6.脚本整理7.文件资源 本文仅针对CentOS7.8版本&#xff0c;其他版本未测试&#xff0c;安装…

# 使用 nmtui 命令工具管理 linux 网络,给网卡配置多个 IP 地址

使用 nmtui 命令工具管理 debian 系统 网络&#xff0c;给网卡配置多个 IP 地址 1、nmtui 是什么&#xff1f; nmtui 是 NetworkManager TUI&#xff08;Text User Interface&#xff09;的缩写&#xff0c;它提供了一个可视化的界面来管理网络连接。但是&#xff0c;在 Debi…

GSM信令流程(附着、去附着、PDP激活、修改流程)

1、联合附着流程 附着包括身份认证、鉴权等 2、去附着流程 用户发起去附着 SGSN发起去附着 HLR发起去附着 GSSN使用S4发起去附着 3、Activation Procedures(PDP激活流程) 4、PDP更新或修改流程 5、Deactivate PDP Context 6、RAU(Routeing Area Update)流程 7、鉴权加…