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

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

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

融合改进后的模型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, Focus, [64, 3]],         # 0-P1/2
   [-1, 1, Conv, [128, 3, 1]],      # 1
   [-1,1,SPD,[1]],                  # 2 -P2/4
   [-1, 3, C3, [128]],              # 3
   [-1, 1, Conv, [256, 3, 1]],      # 4
   [-1,1,SPD,[1]],                  # 5 -P3/8
   [-1, 6, C3, [256]],              # 6
   [-1, 1, Conv, [512, 3, 1]],      # 7-P4/16
   [-1,1,SPD,[1]],                  # 8 -P4/16
   [-1, 9, C3, [512]],              # 9
   [-1, 1, Conv, [1024, 3, 1]],     # 10-P5/32
   [-1,1,SPD,[1]],                  # 11 -P5/32
   [-1, 3, C3, [1024]],             # 12
   [-1, 1, SPPF, [1024, 5]],        # 13
  ]


#Head
head:
  [[-1, 1, Conv, [512, 1, 1]],                 #14
   [-1, 1, nn.Upsample, [None, 2, 'nearest']], #15
   [[-1, 6], 1, Concat, [1]],                  #16
   [-1, 3, C3, [512, False]],                  #17

   [-1, 1, Conv, [256, 1, 1]],                 #18
   [-1, 1, nn.Upsample, [None, 2, 'nearest']], #19
   [[-1, 4], 1, Concat, [1]],                  #20
   [-1, 3, C3, [256, False]],                  #21

   [-1, 1, Conv, [256, 3, 2]],                 #22
   [[-1, 14], 1, Concat, [1]],                 #23
   [-1, 3, C3, [512, False]],                  #24

   [-1, 1, Conv, [512, 3, 2]],                 #25
   [[-1, 10], 1, Concat, [1]],                 #26
   [-1, 3, C3, [1024, False]],                 #27
   [-1, 1, SE, [1024]],                        #28

   [[21, 24, 28], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

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

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

接下来看下数据情况:

YOLO格式标注数据如下:

实例标注数据如下:

0 0.466406 0.102083 0.046875 0.084722
0 0.666406 0.302083 0.126875 0.084562
0 0.356406 0.242083 0.124685 0.567674

VOC格式标注数据如下:

实例标注数据如下:

<annotation>
    <folder>starfish</folder>
    <filename>0a9ccf08-0e04-4f7b-84d0-d38e93c3a953.jpg</filename>
    <source>
        <database>The starfish Database</database>
        <annotation>starfish</annotation>
        <image>starfish</image>
    </source>
    <owner>
        <name>YSHC</name>
    </owner>    
    <size>
        <width>1280</width>
        <height>720</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    
    <object>        
        <name>starfish</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>671</xmin>
            <ymin>651</ymin>
            <xmax>772</xmax>
            <ymax>718</ymax>
        </bndbox>
    </object>
    
</annotation>

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

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

LABEL数据可视化如下:

F1值曲线和PR曲线:

训练batch检测实例如下:

可视化界面推理如下:

点击上传图像:

推理检测:

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

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Together_CZ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值