点击上方 蓝字 关注我们
微信公众号: 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运行速度截图如下:
推荐阅读
扫码查看深度学习系统化学习路线图