1、注:源码放置文末
1.1 环境配置要求:https://blog.csdn.net/qq_42279468/article/details/124987801
2、展示效果:
https://www.bilibili.com/video/BV1hc411p7fS/
3、代码
本项目通过python实现YOLO缺陷检测,包括数据集制作,模型训练,测试等。
包括钢材数据集、PCB电路板数据集、桥梁裂痕、混凝土等数据集
自制数据集训练说明:
1、datasets文件夹为数据集,用labelimg制作
2、修改modeldata文件夹中mask_classes.txt中的类别
3、运行并修改make_annotations.py程序中参数,也是对应类别这一行。
4、运行train.py程序训练
3.1 数据集展示
3.2 训练过程
----------Train one epoch.----------
Epoch:1/5
Start Training.
C:\Users\YS\Desktop\YOLO实现缺陷检测(钢材、PCB电路板、水泥等等)【源码分享】\YOLOv4目标检测\nets\yolo_training.py:504: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
tmp_targets = np.array(targets)
step:1/180 || Total Loss: 25.6117 || 4.5710s/step
step:10/180 || Total Loss: 32.9333 || 1.2730s/step
step:20/180 || Total Loss: 36.6862 || 1.3270s/step
step:30/180 || Total Loss: 35.8774 || 1.2850s/step
step:40/180 || Total Loss: 36.1414 || 1.3310s/step
step:50/180 || Total Loss: 35.9351 || 1.3280s/step
step:60/180 || Total Loss: 36.7569 || 1.3370s/step
step:70/180 || Total Loss: 36.5237 || 1.4060s/step
step:80/180 || Total Loss: 35.9177 || 1.3870s/step
step:90/180 || Total Loss: 35.4652 || 1.2620s/step
step:100/180 || Total Loss: 35.0615 || 1.3980s/step
step:110/180 || Total Loss: 35.0390 || 1.3240s/step
step:120/180 || Total Loss: 34.9175 || 1.4180s/step
step:130/180 || Total Loss: 34.8279 || 1.3450s/step
step:140/180 || Total Loss: 34.5324 || 1.3260s/step
step:150/180 || Total Loss: 34.4508 || 1.3510s/step
step:160/180 || Total Loss: 34.5421 || 1.3090s/step
step:170/180 || Total Loss: 34.3685 || 1.3360s/step
step:180/180 || Total Loss: 34.2413 || 1.3050s/step
Finish Training.
Start Validation.
Finish Validation
Total Loss: 34.0521 || Val Loss: 13.7963
----------Train one epoch.----------
Epoch:2/5
Start Training.
step:1/180 || Total Loss: 35.2975 || 1.3220s/step
step:10/180 || Total Loss: 36.7383 || 1.3170s/step
step:20/180 || Total Loss: 36.2480 || 1.3650s/step
step:30/180 || Total Loss: 34.9842 || 1.3110s/step
step:40/180 || Total Loss: 35.3932 || 1.4450s/step
step:50/180 || Total Loss: 34.0420 || 1.3380s/step
step:60/180 || Total Loss: 33.4504 || 1.3570s/step
step:70/180 || Total Loss: 33.5556 || 1.3270s/step
step:80/180 || Total Loss: 33.1379 || 1.3730s/step
step:90/180 || Total Loss: 32.9221 || 1.3890s/step
step:100/180 || Total Loss: 32.8582 || 1.2580s/step
step:110/180 || Total Loss: 32.9424 || 1.2580s/step
step:120/180 || Total Loss: 32.8147 || 1.3490s/step
step:130/180 || Total Loss: 32.3868 || 1.3720s/step
step:140/180 || Total Loss: 32.4430 || 1.2850s/step
step:150/180 || Total Loss: 32.3073 || 1.3360s/step
step:160/180 || Total Loss: 32.6122 || 1.2440s/step
step:170/180 || Total Loss: 32.6447 || 1.3680s/step
step:180/180 || Total Loss: 32.7776 || 1.3370s/step
Finish Training.
Start Validation.
Finish Validation
Total Loss: 32.5965 || Val Loss: 13.0018
----------Train one epoch.----------
Epoch:3/5
Start Training.
step:1/180 || Total Loss: 19.9664 || 1.2580s/step
step:10/180 || Total Loss: 30.0095 || 1.3660s/step
step:20/180 || Total Loss: 33.8667 || 1.4500s/step
step:30/180 || Total Loss: 33.2794 || 1.3140s/step
step:40/180 || Total Loss: 33.6047 || 1.3020s/step
step:50/180 || Total Loss: 33.2172 || 1.3400s/step
step:60/180 || Total Loss: 33.6790 || 1.3440s/step
step:70/180 || Total Loss: 33.8495 || 1.3940s/step
step:80/180 || Total Loss: 33.2015 || 1.2640s/step
step:90/180 || Total Loss: 32.9829 || 1.2910s/step
step:100/180 || Total Loss: 32.8690 || 1.3580s/step
step:110/180 || Total Loss: 32.7412 || 1.3240s/step
step:120/180 || Total Loss: 32.9157 || 1.3260s/step
step:130/180 || Total Loss: 32.7643 || 1.3190s/step
step:140/180 || Total Loss: 32.9295 || 1.3440s/step
step:150/180 || Total Loss: 32.8042 || 1.4040s/step
step:160/180 || Total Loss: 32.7476 || 1.2750s/step
step:170/180 || Total Loss: 32.8279 || 1.3170s/step
step:180/180 || Total Loss: 32.7072 || 1.3020s/step
Finish Training.
Start Validation.
Finish Validation
Total Loss: 32.5265 || Val Loss: 13.2714
----------Train one epoch.----------
Epoch:4/5
Start Training.
step:1/180 || Total Loss: 59.0170 || 1.3620s/step
step:10/180 || Total Loss: 34.4797 || 1.3570s/step
step:20/180 || Total Loss: 32.4308 || 1.3250s/step
step:30/180 || Total Loss: 31.5730 || 1.4503s/step
step:40/180 || Total Loss: 31.3826 || 1.4355s/step
step:50/180 || Total Loss: 31.5768 || 1.3830s/step
step:60/180 || Total Loss: 31.4533 || 1.3430s/step
step:70/180 || Total Loss: 31.3482 || 1.3400s/step
step:80/180 || Total Loss: 30.6403 || 1.3260s/step
step:90/180 || Total Loss: 31.1990 || 1.2910s/step
step:100/180 || Total Loss: 30.5704 || 1.3610s/step
step:110/180 || Total Loss: 31.1313 || 1.4040s/step
step:120/180 || Total Loss: 30.9465 || 1.3700s/step
step:130/180 || Total Loss: 31.1274 || 1.4040s/step
step:140/180 || Total Loss: 31.0844 || 1.3830s/step
step:150/180 || Total Loss: 31.4224 || 1.4190s/step
step:160/180 || Total Loss: 31.7457 || 1.3230s/step
step:170/180 || Total Loss: 31.6321 || 1.3620s/step
step:180/180 || Total Loss: 31.7754 || 1.2660s/step
Finish Training.
Start Validation.
Finish Validation
Total Loss: 31.5998 || Val Loss: 12.1937
----------Train one epoch.----------
Epoch:5/5
Start Training.
step:1/180 || Total Loss: 37.5026 || 1.3110s/step
step:10/180 || Total Loss: 28.6851 || 1.3340s/step
step:20/180 || Total Loss: 30.3346 || 1.3170s/step
step:30/180 || Total Loss: 29.8462 || 1.3060s/step
step:40/180 || Total Loss: 30.4108 || 1.3260s/step
3.3 模型测试
3.4 其他数据集:
4 源码下载
https://gitcode.net/qq_42279468/yolo-pcb.git