当前位置: 欣欣网 > 码农

YOLOv5 7.0实现DM码检测定位

2024-06-07码农

点击上方 蓝字 关注我们

微信公众号: OpenCV学堂

关注获取更多计算机视觉与深度学习知识

安装与测试

最近YOLOv5最新更新升级到v7.x版本,工程简便性有提升了一大步,本教程教你基于YOLOv5框架如何训练一个自定义对象检测模型,首先需要下载对应版本:

https://github.com/ultralytics/yolov5/releases/tag/v7.0

鼠标滚到最下面下载源码zip包:

https://github.com/ultralytics/yolov5/archive/refs/tags/v7.0.zip

下载完成之后解压缩到:

D:\python\yolov5-7.0# 安装依赖库pipinstall-rrequirements.txt

等待一段时间,完成全部安装之后,运行测试:

pythondetect.py--weightsyolov5s.pt--sourcedata\images\zidane.jpg

运行结果如下:

数据集准备与制作

这个是我自己基于过去几年收集到DataMatrix数据,然后完成了数据挑选,清洗,然后标注 得到一个数据集,整个模型标注与数据集制作都是基于OpenMV工具软件完成。

三:模型训练

制作好数据集之后,模型训练就成为一件很简单事情,一条命令行搞定。运行下面的命令行:

python train.py --data ./dm_training/dm_dataset.yaml --epochs 50 --weights yolov5s.pt --batch-size 4

训练过程与效果如下

PR曲线说明训练效果还错!

不同框架与硬件平台推理比较

训练得到的模型,基于OpenVINO完成了INT8量化,最终模型大约只有6MB左右,可以支持多个场景下的DataMatrix码 实时检测,配合OpenCV 实验大师C++ SDK可以实现场景场景下的工业码的解码识别。 效果已经远远超过开源各种DM解码库的效果,基本达到了商业水准。

番外篇:C++推理与比较

使用C++部署时候,前后处理都改成了基于OpenCV 完成,使用CPU完成前后处理,OpenVINO+CPU运行速度截图如下:

推荐阅读

扫码查看深度学习系统化学习路线图