yolov5+ dddd_trainer实现图标点选识别
这阵子业务上遇到一个极验三代的图标点选验证码,没办法只能自己手搓模型了,我这里训练过程分为两部分,第一部分使用yolov5目标检测识别到位置坐标,然后用ddddorc进行分类识别,所以一共会有两个模型。至于为什么不使用yolov5的分类识别是因为我尝试过后发现识别效果差强人意。
首先是先标注目标检测数据集
这里我用的是labelimg,具体使用和安装就赘述了,大家看这篇文章就行文章就行这里一定要选择保存为yolov5
yolov5用作目标检测还是非常牛的,我仅仅用了107张标注就达到了90+成功率,我们标注只需要分为两类,第一类是目标,第二类是结果
我这里用A,B来区分,别忘了选择yolov5格式的,要不然默认保存xml,要不然你还得自己写代码转text
需要下载yolov5项目以及权重文件
git clone https://github.com/ultralytics/yolov5 #yolov5项目地址
https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt #yolov5 权重下载地址
开始训练目标检测模型
新建一个yaml文件,用于训练的配置,将数据集分为三类,训练集、验证集、测试集 data/train.txt,data/val.txt,data/test.txt存放我们的图片路径。labels存放我们的标注数据。
训练参数按照我的就好
训练完成之后需要用export.py转为onnx模型
这里是训练好的模型结果,成功率基本在90+,这个还是107张的效果
标注分类数据集
对图片下载切割后分类,我们这里将图片统一放大到60*60,好在类目不多只有100种左右,每种大概准备40张,所以总数在4000张,这起名字太费脑子了。。。。
这里不想自己标注的可以用超级鹰,这么多可能也就几十块,我这里就比较油了,我每一样先标注10张然后去训练成功率在50,然后把对的挑出来,然后慢慢叠起来,差不多到每种40张成功率就90+了。
开始训练分类模型
怎么训练我这里就不多说了,小白上手很简单,项目文档给了使用方法
https://github.com/sml2h3/dddd_trainer
唯一注意的是加上 --single参数就行了
他这里训练生成的就是onnx模型,所以我们就不用转了
最后是训练好的结果,先进行x轴进行排序,得到点选的顺序,再用A,B中键值对匹配顺序就行了,cv2无法展示中文,所以我改成了顺序进行进行展示。
完结撒花!