用yolov5识别点选验证码中的目标内容

这篇具有很好参考价值的文章主要介绍了用yolov5识别点选验证码中的目标内容。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

获取训练所需的图片

训练模型

总结与提高

源码下载


如果要过掉点选验证码,首先就要获取目标点选内容的坐标位置,我们可以训练一个yolov5模型来实现这一功能。在本节,我们拿凯格行为验证码来进行演示,验证码图片如下所示。

用yolov5识别点选验证码中的目标内容

 

获取训练所需的图片

编写程序,获取一定数量的图片用作训练集和验证集。笔者这里截取了200张图片用作训练集,20张图片用作验证集。代码如下所示:

# crawl.py
"""获取点选验证码背景,用于yolov5训练"""
from playwright.sync_api import sync_playwright
import os


class Spider:
    def __init__(self):
        self.url = "https://www.kgcaptcha.com/demo/content?t=4"
        self.page = None

    def start(self):
        with sync_playwright() as p:
            self.init_page(p)

            if not os.path.exists("./images"):
                os.mkdir("./images")

            for i in range(0, 200):
                self.get_bg_img(i)
                self.refresh_captcha()

    def init_page(self, p):
        """初始化浏览器,获取page对象"""
        browser = p.chromium.launch(headless=False)
        self.page = browser.new_page()
        self.page.goto(self.url)

    def get_bg_img(self, index):
        """截取滑动验证码背景图片"""
        print(f"正在获取第{index+1}张滑动验证码背景图片")
        self.page.wait_for_timeout(1000)

        # 获取验证码截图
        self.page.locator("#KgDisplay").screenshot(path=f"./images/{index}.png")

    def refresh_captcha(self):
        """刷新验证码"""
        print("刷新验证码")

        # 找到刷新按钮并点击
        # 按钮若点击失败,则刷新网页
        try:
            self.page.locator("//div[@class='line2']/a").click(timeout=1000)
        except:
            self.page.reload()

        self.page.wait_for_timeout(1000)


if __name__ == "__main__":
    spider = Spider()
    spider.start()

该程序使用playwright打开了凯格行为验证码的网页,然后截取了验证码图片,获取图片之后就点击刷新按钮,再刷新之后再次截取,一直循环直到获取到足够数量的图片。

训练模型

1. 使用labelimg对各个图片进行标注,笔者把标签名称都设置成了“text”。

用yolov5识别点选验证码中的目标内容

 

2. 整理数据,新建一个datasets文件夹,然后再在datasets文件夹中新建images和labels文件夹并将图片和标注结果放在对应文件夹中。 训练集有200张,验证集有20张。

├─images        # 图片
│  ├─train      # 训练集图片
│  └─val        # 验证集图片
└─labels        # 标签(txt)
    ├─train     # 训练集标签
    └─val       # 验证集标签

3. 在yolov5/data路径下新建train.yaml文件,输入以下内容。

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: C:/Users/louis/Desktop/ClickCaptcha/dataset   # dataset root dir
train: images/train                                 # train images (relative to 'path') 118287 images
val: images/val                                     # val images (relative to 'path') 5000 images
test: 

# Classes
names:
  0: text

 

4. 下载训练权重文件,在本教程中我们使用yolov5s.pt。

用yolov5识别点选验证码中的目标内容

5. 使用以下命令训练数据(先cd到yolov5文件夹下),训练结果还是可以的。 

python train.py --weights yolov5s.pt --batch-size=5 --epochs 200 --data=./data/train.yaml

用yolov5识别点选验证码中的目标内容

验证集识别结果: 

用yolov5识别点选验证码中的目标内容

用yolov5识别点选验证码中的目标内容

 

总结与提高

用yolov5识别目标点选内容的准确率很高,不过我们其实还可以再增加一些训练图片以此提高准确度。现在已经有了点选内容的位置,我们最后的任务就是让程序按照正确的顺序点击,我们将在下一节中探讨这个问题。

源码下载

笔者把训练图片以及yolov5的源码和模型也已经放入,使用项目前先安装yolov5/requirements.txt中的库。

链接:https://pan.baidu.com/s/1a_jvd6_28qzxTWe81wVkbg 
提取码:vplw文章来源地址https://www.toymoban.com/news/detail-428320.html

到了这里,关于用yolov5识别点选验证码中的目标内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5在android端实现目标检测+跟踪+越界识别并报警

    想要获取源码和相关资料说明的可以关注我的微信公众号: 雨中算法屋 , 后台回复 越界识别 即可获取,有问题也可以关注公众号加我微信联系我,相互交流学习。 算法功能: 判断划定的区域内,在某个时间内,是否有⼈体闯⼊,涉及到了⼈体检测+⼈体追踪+业务功能(区

    2023年04月12日
    浏览(18)
  • 基于Yolov5+Deepsort+SlowFast算法实现视频目标识别、追踪与行为实时检测

    前段时间打算做一个目标行为检测的项目,翻阅了大量资料,也借鉴了不少项目,最终感觉Yolov5+Deepsort+Slowfast实现实时动作检测这个项目不错,因此进行了实现。 总的来说,我们需要能够实现实时检测视频中的人物,并且能够识别目标的动作,所以我们拆解需求后,整理核心

    2024年01月20日
    浏览(31)
  • 【目标检测】基于yolov5的交通标志检测和识别(附代码和数据集)

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 (专栏订阅用户订阅专栏后免费提供数据集和源码一份,超级VIP用户不在服务范围之内,不想订阅专栏的

    2024年02月04日
    浏览(28)
  • 单阶段目标检测:YOLOv5中的指标计算

    个人觉得,单目标检测相比分割复杂的地方主要在于(1)样本分配策略(2)预测结果后处理以及指标计算。这次记录一下指标计算,下次有时间记录一下目标检测中的样本分配策略。 本文以YOLOv5 7.0的val代码为例子,解析单阶段目标检测是怎么计算指标的。这里只展示核心代

    2024年02月05日
    浏览(14)
  • 图标点选验证码识别---python破解代码

    在线测试:http://121.4.108.95:8000/index/ 开源地址:https://github.com/Bump-mann/simple_ocr 首先我们看一个较简单的图标点选验证码 从上面图片中依次点击以下图形 笔者的思路(其实就是对着别人的抄)是先识别出图形切割下来,然后分别对比相似度,就可以得出需要点击位置啦~ 模型下

    2024年02月11日
    浏览(22)
  • 【目标检测】基于yolov5的交通标志检测和识别(可识别58种类别,附代码和数据集)

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 (专栏订阅用户订阅专栏后免费提供数据集和源码一份,超级VIP用户不在服务范围之内,不想订阅专栏的

    2024年02月12日
    浏览(20)
  • 工作量证明在验证码中的实际应用

    工作量证明(Proof-of-Work,以下简称“PoW”)在维基百科的介绍中指一般要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。 在实际生活中可以例举为:学生进行考试

    2024年01月15日
    浏览(25)
  • 基于深度学习的高精度野生目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度野生目标检测识别系统可用于日常生活中检测与定位野生目标目标,利用深度学习算法可实现图片、视频、摄像头等方式的野生目标目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使

    2024年02月07日
    浏览(25)
  • 基于深度学习的高精度鸟类目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度鸟类目标(鹦鹉(Crested Myna)、麻雀(Eurasian Tree Sparrow)、黑头文鸟(Chestnut Munia)、白领翡翠(Collared Kingfisher)、太阳鸟(Garden Sunbird))检测识别系统可用于日常生活中或野外来检测与定位鸟类目标目标,利用深度学习算法可实现图片、视频

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包