当前位置:   article > 正文

融合注意力模块SE基于轻量级yolov5s实践路面坑洼目标检测系统

融合注意力模块SE基于轻量级yolov5s实践路面坑洼目标检测系统

在很多的项目实战中验证分析注意力机制的加入对于模型最终性能的提升发挥着积极正向的作用,在我之前的一些文章里面也做过了一些尝试,这里主要是想基于轻量级的s系列模型来开发构建路面坑洼检测系统,在模型中加入SE注意力模块,以期在轻量化的基础上进一步提升模型的检测性能。首先来看下效果图:

这里数据集的目标对象只有一个就是:pothole(路面坑洼)

使用的模型yaml文件如下:

  1. #Parameters
  2. nc: 1 # number of classes
  3. depth_multiple: 0.33 # model depth multiple
  4. width_multiple: 0.50 # layer channel multiple
  5. anchors:
  6. - [10,13, 16,30, 33,23] # P3/8
  7. - [30,61, 62,45, 59,119] # P4/16
  8. - [116,90, 156,198, 373,326] # P5/32
  9. #Backbone
  10. backbone:
  11. # [from, number, module, args]
  12. [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2
  13. [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
  14. [-1, 3, C3, [128]],
  15. [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
  16. [-1, 6, C3, [256]],
  17. [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
  18. [-1, 9, C3, [512]],
  19. [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
  20. [-1, 3, C3, [1024]],
  21. [-1, 1, SPPF, [1024, 5]], # 9
  22. ]
  23. #Head
  24. head:
  25. [[-1, 1, Conv, [512, 1, 1]],
  26. [-1, 1, nn.Upsample, [None, 2, 'nearest']],
  27. [[-1, 6], 1, Concat, [1]], # cat backbone P4
  28. [-1, 3, C3, [512, False]], # 13
  29. [-1, 1, Conv, [256, 1, 1]],
  30. [-1, 1, nn.Upsample, [None, 2, 'nearest']],
  31. [[-1, 4], 1, Concat, [1]], # cat backbone P3
  32. [-1, 3, C3, [256, False]], # 17 (P3/8-small)
  33. [-1, 1, Conv, [256, 3, 2]],
  34. [[-1, 14], 1, Concat, [1]], # cat head P4
  35. [-1, 3, C3, [512, False]], # 20 (P4/16-medium)
  36. [-1, 1, Conv, [512, 3, 2]],
  37. [[-1, 10], 1, Concat, [1]], # cat head P5
  38. [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
  39. [-1, 1, SE, [1024]],
  40. [[17, 20, 24], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
  41. ]

在最终的Detect层前面加入了SE模块,所以最终的索引号也要加1,23+1=24。

接下来看下数据情况:

VOC格式标注数据如下:

实例数据如下:

  1. <annotation>
  2. <folder>images</folder>
  3. <filename>1b404500-c1a3-4454-ae9d-4ae6f93239b4.png</filename>
  4. <size>
  5. <width>450</width>
  6. <height>300</height>
  7. <depth>3</depth>
  8. </size>
  9. <segmented>0</segmented>
  10. <object>
  11. <name>pothole</name>
  12. <pose>Unspecified</pose>
  13. <truncated>0</truncated>
  14. <occluded>0</occluded>
  15. <difficult>0</difficult>
  16. <bndbox>
  17. <xmin>1</xmin>
  18. <ymin>57</ymin>
  19. <xmax>87</xmax>
  20. <ymax>126</ymax>
  21. </bndbox>
  22. </object>
  23. <object>
  24. <name>pothole</name>
  25. <pose>Unspecified</pose>
  26. <truncated>0</truncated>
  27. <occluded>0</occluded>
  28. <difficult>0</difficult>
  29. <bndbox>
  30. <xmin>60</xmin>
  31. <ymin>1</ymin>
  32. <xmax>124</xmax>
  33. <ymax>14</ymax>
  34. </bndbox>
  35. </object>
  36. <object>
  37. <name>pothole</name>
  38. <pose>Unspecified</pose>
  39. <truncated>0</truncated>
  40. <occluded>0</occluded>
  41. <difficult>0</difficult>
  42. <bndbox>
  43. <xmin>52</xmin>
  44. <ymin>80</ymin>
  45. <xmax>379</xmax>
  46. <ymax>259</ymax>
  47. </bndbox>
  48. </object>
  49. </annotation>

YOLO格式标注数据如下:

实例标注数据如下所示:

  1. 0 0.5075 0.4625 0.335 0.375
  2. 0 0.6375 0.36 0.125 0.13
  3. 0 0.5625 0.06625 0.085 0.0525
  4. 0 0.12625 0.0575 0.0875 0.03
  5. 0 0.24 0.1175 0.095 0.1
  6. 0 0.4225 0.24 0.045 0.035

默认执行100次epoch迭代计算,在GPU模式下完成训练,日志输出如下所示:

可以看到最终效果还是不错的。

结果数据目录如下所示:

标签数据可视化如下:

F1值曲线和PR曲线如下所示:

混淆矩阵:

batch检测实例如下所示:

开发专用的界面模块实现推理可视化如下所示:

上传图像:

推理检测:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/371433?site
推荐阅读
相关标签
  

闽ICP备14008679号