基于yolov5-v7.0开发构建汽车车损实例分割检测识别分析系统

文章介绍了使用YOLOv5-v7.0模型开发构建的汽车车身损伤分割检测识别系统,展示了数据集、实例标注信息、模型配置及训练后的效果,包括F1值曲线、PR曲线、结果可视化等。尽管数据集较小,但模型在有限数据上仍展现出良好性能,预期增加数据后效果会更佳。
摘要由CSDN通过智能技术生成

在之前的文章中我们已经做了很多基于yolov5完成实例分割的项目,感兴趣的话可以自行移步阅读:

《基于YOLOv5-v7.0的药片污染、缺损裂痕实例分割检测识别分析系统》

《基于yolov5-v7.0开发构建裸土实例分割检测识别模型》

《基于yolov5-v7.0开发实践实例分割模型超详细教程》

《基于yolov5-v7.0开发构建工业机械齿轮瑕疵实例分割检测识别分析系统》

本文主要的目的就是基于官方的v7.0分支的模型来开发构建汽车车身损伤分割检测识别系统。话不多说,首先来看效果图:

简单看下数据集情况:

实例标注内容如下所示:

0 0.197265625 0.2802734375 0.17578125 0.3037109375 0.1748046875 0.34375 0.17578125 0.3896484375 0.197265625 0.3935546875 0.228515625 0.337890625 0.2734375 0.3046875 0.359375 0.3095703125 0.3974609375 0.337890625 0.4443359375 0.3076171875 0.4306640625 0.287109375 0.380859375 0.2822265625 0.3291015625 0.26953125 0.2578125 0.2734375 0.2177734375 0.2724609375
0 0.5244140625 0.2734375 0.5703125 0.2646484375 0.63671875 0.26171875 0.673828125 0.2822265625 0.703125 0.2958984375 0.6669921875 0.3037109375 0.5986328125 0.296875 0.55859375 0.294921875 0.5380859375 0.287109375
0 0.6474609375 0.3994140625 0.7158203125 0.400390625 0.7578125 0.3828125 0.82421875 0.384765625 0.869140625 0.396484375 0.869140625 0.408203125 0.8349609375 0.4228515625 0.7861328125 0.4228515625 0.7421875 0.42578125 0.66015625 0.416015625
0 0.3935546875 0.7001953125 0.44921875 0.697265625 0.4873046875 0.6904296875 0.52734375 0.7119140625 0.52734375 0.740234375 0.474609375 0.7421875 0.4345703125 0.7275390625 0.4072265625 0.7177734375
0 0.2392578125 0.3857421875 0.259765625 0.5068359375 0.3115234375 0.568359375 0.4033203125 0.6181640625 0.513671875 0.650390625 0.583984375 0.619140625 0.650390625 0.560546875 0.650390625 0.509765625 0.650390625 0.4150390625 0.591796875 0.3359375 0.5126953125 0.2626953125 0.435546875 0.2548828125 0.3564453125 0.2626953125 0.298828125 0.302734375 0.2685546875 0.3369140625 0.2431640625 0.3681640625
0 0.427734375 0.7705078125 0.3671875 0.7705078125 0.400390625 0.796875 0.4501953125 0.8017578125 0.4873046875 0.8134765625 0.5107421875 0.83203125 0.55078125 0.83203125 0.56640625 0.8095703125 0.5654296875 0.7783203125 0.595703125 0.740234375 0.5478515625 0.7666015625 0.4931640625 0.7705078125 0.47265625 0.7705078125
0 0.310546875 0.6904296875 0.35546875 0.69921875 0.384765625 0.7119140625 0.416015625 0.7333984375 0.3994140625 0.7451171875 0.3515625 0.740234375 0.3251953125 0.708984375

这里一共只有一个目标对象:

demage

在data目录下新建self.yaml文件,内容如下:

#Dataset
path: ./datasets/chesun-seg  
train: images/train 
val: images/train  
test:  images/train 



# Classes
names:
  0: damage

模型yaml文件如下:

#Parameters
nc: 1  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32
 
 
#Backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]
 
 
#Head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13
 
   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
 
   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
 
   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
 
   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

这里是基于s系列模型开发构建自己的应用的,主要就是修改nc符合自己的数据集类别即可。

默认执行100次的迭代计算,日志输出如下所示:

可以看到最终的效果还是蛮不错的,因为本身这里没有准备很多的数据。

接下来看下结果文件详情:

F1值曲线:

PR曲线:

LABEL数据可视化如下:

batch计算实例如下:

最后开发专用的界面实现可视化推理计算,如下所示:

上传图像数据:

分割推理计算:

可以看到在极小的数据集上面训练出来的分割模型分割效果还是可以的,后期增加扩充更多的数据集重新训练模型,效果会更好。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值