eefocus_4185690 发表于 2025-11-17 12:02:56

研华工业主板AIMB-523评测--4:缺陷检测模型训练与测试

本帖最后由 eefocus_4185690 于 2025-11-18 23:26 编辑

1. 下载并安装labelImg数据标注软件
在Anaconda Prompt中执行指令:pip install labelImg。



2. 运行labelImg
执行:labelImg



3. 利用labelImg进行数据标注



4. 修改模型训练配置文件
(1)打开YOLOv5文件夹中的train.py文件,在513行附近进行配置

(2)配置screw_yolov5s.yaml文件
资源包中该文件是在models文件夹下的yolov5s.yaml,此处将yolov5s.yaml当做备份,screw_yolov5s.yaml在yolov5s.yaml的基础上进行修改。

(3)配置coco128.yaml文件
与screw_yolov5s.yaml类似,screw_coco128.yaml文件在原资源包中对应data文件夹下的coco128.yaml,此处将coco128.yaml当做备份,screw_coco128.yaml在coco128.yaml的基础上进行修改。



5. 训练模型
执行指令:python train.py。
如果出现如下所示错误,则说明缺少git可执行文件。

解决办法可以有以下两种解决办法(本次训练模型选择了方法2,直接注释掉了git的相关代码):
(1)遇到这个问题,把Git启动程序添加到环境变量中即可。Git下载链接:https://git-scm.com/install/。
(2)注释掉git相关的代码。

解决掉错误后,重新执行指令:python train.py,进行模型训练。

此次,分别用空白模型训练了20次、100次、150次,训练结果对比如下。

由测试结果可知,20epchos的各项参数太差,这说明训练20次的模型并不具备很好的检测能力。
100cpchos检测分析结果如下。

150cpchos检测分析结果如下。

从100epchos和150epchos的检测结果分析,根据模型数据集损失和验证集损失走向,可以看出模型的准确度有显著提高,同时过拟合控制的也可以。


6. 模型测试
(1)模型训练结束后,在Anaconda Prompt中会打印模型训练结果存放位置,我们选择best.pt权重文件。

(2)将训练好的模型复制到detect.py代码(大概在300行左右)指定的位置,然后在Anaconda Prompt面板中运行detect.py文件即可开始验证模型训练效果,执行指令python detect.py,如下所示。

(3)测试结果
从20cpchos检测结果可以看出模型处于欠拟合状态,基本不具备缺陷检测功能。

使用训练100次和150次模型进行数据测试,测试结果如下。

从测试结果来看,要取得比较好的缺陷检测功能,模型在训练时,至少要进行100cpchos。


7. 螺丝钉缺陷实时检测
对detect.py文件进行修改,实现用摄像头实时检测螺丝钉缺陷。
(1)修改run中source和view_img的参数,如下所示。

(2)添加计算FPS的代码,如下所示。

(3)添加按键控制。

(4)修改配置选项。

(5)添加目录清理代码,节省空间。

至此完成了detect.py的修改,就可以正常使用摄像头采集螺丝钉图像,进行缺陷实时检测。
检测过程及部分运行结果如下。


螺丝钉缺陷实时监测视频。
https://www.bilibili.com/video/BV1Nqy5B8E6K/








页: [1]
查看完整版本: 研华工业主板AIMB-523评测--4:缺陷检测模型训练与测试