• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

YOLOv5+SE注意力+SPD模块的海星检测识别系统

武飞扬头像
Together_CZ
帮助1

在很多的项目实战中验证分析注意力机制的加入对于模型最终性能的提升发挥着积极正向的作用,在我之前的一些文章里面也做过了一些尝试,这里主要是想基于轻量级的s系列模型来开发构建海底小目标生物海星检测系统,在模型中加入SE注意力模块,以期在轻量化的基础上进一步提升模型的检测性能。考虑到海底数据存在目标清晰度低且海星属于小目标对象,这里专门加入了Spd-Conv模块,进一步提升低分辨率图像和小目标对象检测性能,首先来看下效果图:

学新通

这里的检测对象同样只有一类:starfish(海星)。

融合改进后的模型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.  
     
  10.  
     
  11.  
    #Backbone
  12.  
    backbone:
  13.  
    # [from, number, module, args]
  14.  
    [[-1, 1, Focus, [64, 3]], # 0-P1/2
  15.  
    [-1, 1, Conv, [128, 3, 1]], # 1
  16.  
    [-1,1,SPD,[1]], # 2 -P2/4
  17.  
    [-1, 3, C3, [128]], # 3
  18.  
    [-1, 1, Conv, [256, 3, 1]], # 4
  19.  
    [-1,1,SPD,[1]], # 5 -P3/8
  20.  
    [-1, 6, C3, [256]], # 6
  21.  
    [-1, 1, Conv, [512, 3, 1]], # 7-P4/16
  22.  
    [-1,1,SPD,[1]], # 8 -P4/16
  23.  
    [-1, 9, C3, [512]], # 9
  24.  
    [-1, 1, Conv, [1024, 3, 1]], # 10-P5/32
  25.  
    [-1,1,SPD,[1]], # 11 -P5/32
  26.  
    [-1, 3, C3, [1024]], # 12
  27.  
    [-1, 1, SPPF, [1024, 5]], # 13
  28.  
    ]
  29.  
     
  30.  
     
  31.  
    #Head
  32.  
    head:
  33.  
    [[-1, 1, Conv, [512, 1, 1]], #14
  34.  
    [-1, 1, nn.Upsample, [None, 2, 'nearest']], #15
  35.  
    [[-1, 6], 1, Concat, [1]], #16
  36.  
    [-1, 3, C3, [512, False]], #17
  37.  
     
  38.  
    [-1, 1, Conv, [256, 1, 1]], #18
  39.  
    [-1, 1, nn.Upsample, [None, 2, 'nearest']], #19
  40.  
    [[-1, 4], 1, Concat, [1]], #20
  41.  
    [-1, 3, C3, [256, False]], #21
  42.  
     
  43.  
    [-1, 1, Conv, [256, 3, 2]], #22
  44.  
    [[-1, 14], 1, Concat, [1]], #23
  45.  
    [-1, 3, C3, [512, False]], #24
  46.  
     
  47.  
    [-1, 1, Conv, [512, 3, 2]], #25
  48.  
    [[-1, 10], 1, Concat, [1]], #26
  49.  
    [-1, 3, C3, [1024, False]], #27
  50.  
    [-1, 1, SE, [1024]], #28
  51.  
     
  52.  
    [[21, 24, 28], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
  53.  
    ]

首先在Backbone部分加入了Spd-Conv模块,提升低分辨率图像和小目标对象特征提取能力:

学新通

之后在Head部分加入SE模块,提升特征融合能力,同时同步修改Detect头索引号,如下:

学新通

接下来看下数据情况:

学新通

YOLO格式标注数据如下:

学新通

实例标注数据如下:

  1.  
    0 0.466406 0.102083 0.046875 0.084722
  2.  
    0 0.666406 0.302083 0.126875 0.084562
  3.  
    0 0.356406 0.242083 0.124685 0.567674

VOC格式标注数据如下:

学新通

实例标注数据如下:

  1.  
    <annotation>
  2.  
    <folder>starfish</folder>
  3.  
    <filename>0a9ccf08-0e04-4f7b-84d0-d38e93c3a953.jpg</filename>
  4.  
    <source>
  5.  
    <database>The starfish Database</database>
  6.  
    <annotation>starfish</annotation>
  7.  
    <image>starfish</image>
  8.  
    </source>
  9.  
    <owner>
  10.  
    <name>YSHC</name>
  11.  
    </owner>
  12.  
    <size>
  13.  
    <width>1280</width>
  14.  
    <height>720</height>
  15.  
    <depth>3</depth>
  16.  
    </size>
  17.  
    <segmented>0</segmented>
  18.  
     
  19.  
    <object>
  20.  
    <name>starfish</name>
  21.  
    <pose>Unspecified</pose>
  22.  
    <truncated>0</truncated>
  23.  
    <difficult>0</difficult>
  24.  
    <bndbox>
  25.  
    <xmin>671</xmin>
  26.  
    <ymin>651</ymin>
  27.  
    <xmax>772</xmax>
  28.  
    <ymax>718</ymax>
  29.  
    </bndbox>
  30.  
    </object>
  31.  
     
  32.  
    </annotation>

默认训练执行100次epoch,日志输出如下:

学新通
学新通
学新通

13个小时不到训练结束,GPU模式下训练还是很快的,接下来看下结果数据文件:

学新通

LABEL数据可视化如下:

学新通

F1值曲线和PR曲线:

学新通

训练batch检测实例如下:

学新通

可视化界面推理如下:

学新通

点击上传图像:

学新通

推理检测:

学新通

从评估效果上来看检测效果还是很不错的。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcfgie
系列文章
更多 icon
同类精品
更多 icon
继续加载