yolov5实战之二维码检测(数据+模型)

目录
1.前言
2.二维码数据
3.训练配置
3.1数据集设置
3.2训练参数的配置
3.3网络结构设置
3.4训练
3.5结果示例
模型下载
1.前言
之前总结过yolov5来做皮卡丘的检测,用来熟悉yolov5的使用,不过总归是个demo型的应用,没啥实用价值。后来正好项目上有需要在成像条件不好的情况去检测二维码,传统的二维码检测方式基本上是通过角点检测定位二维码的三个定位点,在成像不好的时候,很容易失败。如果用深度学习去做鲁棒性就强很多,在检测到二维码之后,可以进行调焦或图像增强等手段,辅助后续的二维码识别过程。
环境准备同 yolov5实战之皮卡丘检测
2.二维码数据
首先第一步肯定是需要准备数据了,通过网络我们可以找到不少二维码数据,通过打标后,就可以得到第一批数据了。仅通过网络图片还是不够的,因为找到的二维码图像的背景不一定符合我们的实际使用场景,仅仅用这些数据训练,虽然能检测到二维码,但是误检也会比较严重。所以还需要人造一些数据,我们可以将二维码抠出来,贴到各种各样的背景图上去,用于扩增我们的数据集。
数据制作具体也可以参考皮卡丘那篇,或者官方repo: https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data
数据生成大概的代码:
3.训练配置
3.1数据集设置
新建qrcode_dataset.yml, 设置下数据集的路径
3.2训练参数的配置
可以根据自己的任务设置下数据增强比例这些:
3.3网络结构设置
根据需要调整设置自己的网络大小以及根据想要检测的二维码大小设置anchor:
anchor在非finetune训练方式下,默认是通过数据集计算出来的,若要关闭这个功能,需要训练时开启”--noautoanchor"选项。
3.4训练
设置上述这些,就可以开始训练了,由于我修改了网络结构,所以先是从头训练了,然后又进行了一次finetune训练。训练可以指定的参数:
大部分情况下,我们只需要设置batchsize, epoch数,cfg这几个
同样的,训练结果可以在控制台看或通过wandb查看(参见pikachu那篇)。
3.5结果示例
模型下载
轻量级二维码检测模型:模型下载
数据集下载:https://download.csdn.net/download/liuhao3285/87771958