滑块可以使用cv2进行图像对比识别,也可以使用目标检测方式进行识别,目标检测推荐yolov5,这个不管是滑块还是点选都是很好用的。
1.安装
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
直接把项目拉下来就行。
虚拟环境下安装一下依赖pip install -r requirements.txt
之后就能用了。
对于yoloV5来说,最最关键的就是数据集的格式要满足要求。VOC格式并不能满足yoloV5的格式,所以我们需要用程序来替换
训练自定义模型之 yoloV5官方教程
Train Custom Data · ultralytics/yolov5 Wiki · GitHub
2.目录要求
yoloV5数据集位置和目录不支持中文路径。有能力的大佬们可以自己修改这个BUG。
yoloV5数据目录要求
images 下需要有:train / val与labels目录下文件名字一致
labels 下需要有: train / val 与images目录下文件名字一致
数据格式:类别与四个坐标归一化后的值
train.txt 所有参与训练的绝对路径
val.txt 所有参与验证的绝对路径
3.使用标注助手标注图片
将图片放到D:\yolov5-master\mydata\tongdun\JPEGImages目录下,进行标注
导出标注到Annotations目录下
4.如何将 VOC 数据集修改为 符合yoloV5条件的数据集?
1_makedir.py 创建yolo需要的目录
2_movefiles.py 把VOC标注好的数据,调整为符合yoloV5的数据
两个文件就完活。给大家写好了。
这两个文件的作用就是把VOC标注好的数据,调整为符合yoloV5的数据
2_movefiles.py 注意:文件需要自己修改类别,否则 labels会生成空文件
makedir.py
import os
#创建yolo需要的目录
baseDir = 'mydata/'
productDir = 'tongdun' #自定义目录
# 第一步。对目录环境进行检查,是否满足处理要求
def file_exists(filename, message):
if not os.path.exists(filename):
raise FileExistsError(message)
def make_dirs(dirs):
try:
os.makedirs(dirs)
except FileExistsError:
print(dirs + ' 目录存在,自动跳过')
# 第二步。创建关键目录
file_exists('Annotations', 'VOC标注,Annotations目录不存在')
file_exists('JPEGImages', 'VOC标注,JPEGImages 图片目录不存在')
make_dirs(baseDir+productDir+'/images/