[提供软件环境和工业数据集下载]工业瑕疵缺陷检测实战:Windows下基于YOLOv4和OpenCV4深度学习训练自己的数据集和前端软件,效果意外的好

你将收获

掌握Windows系统基于深度学习的目标检测训练自己的数据集方法

掌握labelImg图像标注方法

掌握YOLOv4数据集整理方法

掌握YOLOv4训练、测试、性能统计方法

掌握训练好的网络模型在前端软件的测试与应用

掌握前端软件把检测结果传给PLC或机器人的通讯方法

适用人群

对人工智能机器视觉与对YOLOv4目标检测感兴趣的朋友们和从业者

软件环境:

Windows7或10 x64; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV4.3;MVS;智能AI图像检测系统

YOLOv4来了!速度和精度双提升!

与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。

YOLOv4不仅识别目标效果出众,而且在缺陷检测方面也有独到之处,本人刚好有个磁块的缺口裂缝缺陷的检测项目,本着试试看的想法用,学习一下YOLOv4,结果效果出奇的好,解决传统视觉无法解决的背景干扰与误判问题,现在把整个项目实施方法记录一下供大家参考,并把推理部分做成app可执行文件,供大家评鉴,欢迎交流沟通。

YOLO系列是基于深度学习的端到端实时目标检测方法。本文将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。

本文的YOLOv4训练软件使用AlexyAB/darknet的原版软件在OpenCV4.3和VisualStudio2019编译出来(末尾提供以编译好软件,不会编译的朋友可以直接用,下一步开发一个更友好的软件给大家,敬请关注),在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、安装前端推理软件,测试训练出的网络模型、逻辑判断、检测结果与PLC输出。

本文的前端推理软件采用VisualStudio2015开发; 集成了OpenCV4.4及多种机器视觉算法与sql数据库、modbus、三菱mc协议、http等通讯功能,可以在免GPU下运行,i5处理器速度在100ms以内,基本可以满足实时性的要求。

安装软件环境

找一台独立显卡的主机,我的配置是windows10 64bit I5 8G,GeForce 1650S 4G显存(这里训练YOLOv4 Tiny就够了,训练YOLOv4标准版方法相同,显存要8G以上)。

安装cuda10.2,下载地址CUDA Toolkit 10.2 Download | NVIDIA Developer

安装后可以打开nvidia的控制面板的系统信息,如下

 解压缩本文附件中下载的训练开发包(根据AlexyAB/darknet的原版软件在OpenCV4.3和VisualStudio2019编译出来)到本地电脑中,路径保持和我电脑一样。

把自己要训练的图片集复制到darknet-master-V4\VOCdevkit\VOC2009\JPEGImages中,图片需要彩色图片。附件里已经有一份磁铁缺陷的数据集。

 给图片标记缺陷位置和类型:打开LabelImg软件(附件中可以下载)

在LabelImg中点击“Open Dir”打开数据集图片所在的文件夹为darknet-master-V4\VOCdevkit\VOC2009\JPEGImages,如下图

在LabelImg中点击“Change Save Dir”按钮,选择保存标签数据的路径为E:\ylhwork\pycharm\darknet-master-V4\VOCdevkit\VOC2009\Annotations,如下图

配置好路径后,就可以开始标记了,软件的右下角会目录下的图片列表,点击软件左侧的 左右箭头可以切换下一张图片查看标记,软件左下角按钮可以添加编辑标记。

标签名字暂时只能用中文,标签的名字要记住,后面还要用,本项目定义了三类标签,名字分别为rip、gap、label,如图

有缺陷的要标记,没有缺陷的图片或者不想训练的图片,不用标记,把所有图片都标记完后,进行下一步转化工作

标记好的图片和标记数据转化成可训练模式都放在一个python脚本里,需要先装一个python程序(下一步我会开发一个更友好的软件,敬请关注),本文附件提供下载。在安装完python的电脑里,用文本编辑器打开E:/ylhwork/pycharm/darknet-master-V4/VOCdevkit/VOC2009/helmet-label.py,编辑classes的内容要与标记的名字和数量一样

运行python的脚本程序:python.exe E:/ylhwork/pycharm/darknet-master-V4/VOCdevkit/VOC2009/helmet-label.py,或者在python的IDE里点击run

 如果运行成功的话,标记的工作就完成了,在E:\ylhwork\pycharm\darknet-master-V4\VOCdevkit\VOC2009\labels文件夹下会出现转化好的文件

离最后训练的工作只需要最后2步了,编辑配置文件:在\darknet-master-V4\build\darknet\x64\cfg下,复制一个yolov4-tiny-xxx-train.cfg作为你的配置文件,搜索[yolo]关键字附近,修改classes的实际数量和filters的数量为(3*classes+5),如下图

修改分类名称: 在\darknet-master-V4\build\darknet\x64\data下开打names文件进行编辑,内容和次序要和python脚本里的名称一致

修改data文件:darknet-master-V4\build\darknet\x64\data下复制一个data文件,检查图片路径、names路径等是否与前面设置一致

所有配置信息保存好后,为训练命令建一条命令脚本yolov4_tiny_train_magnate.cmd;训练命令格式为:

darknet.exe detector train data/magnate.data cfg/yolov4-tiny-magnate-train.cfg yolov4-tiny.conv.29  -gups 0,1,2,3

所有预备工作都做完了,点击yolov4_tiny_train_magnate.cmd文件,软件开始执行训练命令,正常会显示一张图表界面和一个不断刷新数据的命令行界面

 如果有问题,几分钟内就会报错,一般的错误主要是文件找不到或者内存不够等,请仔细检查以上步骤的所有文件名和路径,如果是内存不够,可以修改cfg配置文件中前几行中的
batch和subdivisions的数字后,再试。

如果数据一直在刷新,恭喜你成功了,一般训练需要几个小时(看主机配置),我一般让他跑一晚上,明天早上来看,请保证硬盘有2G以上空余空间。几个小时后,比较完美的表格图片样子应该是不断收敛的曲线,如下图

查看训练出来的模型文件:\darknet-master-V4\build\darknet\x64\backup下会有多问weights文件,一般最后一个是最好的

训练结束了,现在可以测试训练结果了,复制一份刚才训练的cfg配置文件yolov4-tiny-magnate-train.cfg为yolov4-tiny-magnate-test.cfg,修改3,4,6,7行后保存

保存yolov4-tiny-magnate-test.cfg,magnate.names和yolov4-tiny-magnate-train_last.weights三个文件备用。

现在用编译好的前端可执行软件来测试训练效果(可以在无GPU电脑中运行),下载程序后依次安装VC运行库,MVS驱动和应用程序

双击智能AI图像软件中exe可执行文件,打开前端软件,如果提示缺少dll文件,可能是你没有安装vc运行库或mvs驱动库,请先安装前两步

打开软件进入主界面后,点击切换到设定模式,先添加测试图像来源,我们先选择文件图像测试,测试ok后,可以把文件改成相机图像

 在文件图像工具里,我们选择文件路径模式,把训练时的文件夹路径添加进来后

 点确定回到设定界面时,再点击工具追加按钮,添加一个深度识别工具,点击追加

在深度识别工具里,添加刚才yolov4-tiny-magnate-test.cfg,magnate.names和yolov4-tiny-magnate-train_last.weights路径到设置界面中

在标签设置界面里,设置每个标签对应的现实名,我们喜欢修改成中文名,点击执行检测按钮,可以参考执行效果

点击确定后,回到设定主界面,点击运行按钮可以测试执行效果,我们再添加OK/NG判断逻辑,在设定主界面点击IO按钮,添加CCD判定条件和综合判定条件

点击确定按钮,回到设定主界面,点击运行按钮,测试整体运行效果

测试效果OK后,保存整个项目文件到硬盘中,可以下次或在实际项目中用

总结:

训练后的模型在前端推理软件里,在纯i5以上CPU下,识别时间小于100ms,在gpu环境下识别时间小于10ms,肉眼可见的缺陷99%都识别出来,取得了比较的好的检测效果。本前端软件稍作修改后,即可用于实际项目中。

不足:

目前训练环境目前还不够优化,下一步会开发一个一步到位的更加高效的训练软件,敬请关注。用了一个下午终于把整个项目过程说明了,操作说明和软件有不足之处还请大家多多包涵和评判,共同进步。

附件:

本文所有软件例程和数据集下载地址,

百度链接:https://pan.baidu.com/s/1YPjR_TPJYLmriXNVnNbgZg 提取码:52ai 

坚果云下载:https://www.jianguoyun.com/p/DX4bfMUQgo_4CBjWysgD

其他下载地址:[以下隐藏,回复后可见] 

  • 13
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值