深度学习—yolov5改进小目标检测

改进目的

在自动驾驶仿真项目中,需要对一些小目标进行检测,比如:交通指示灯、标志牌等,如果用官方的yolov5网络会发现其训练的模型检测效果不是很好。正好浏览到了一篇很好的关于yolov5改进小目标检测的论文,论文地址: http://www.c-s-a.org.cn/html/2022/12/8835.html ,下面对论文里提到的改进方法做一个复现

改进思路

1.增加小目标检测头

在YOLOv5模型上通过P2层特征引出检测头结构如图,P2层检测头分辨率为160x160像素,相当于在主干网络只进行了2次下采样操作,含有目标更为丰富的底层特征信息。颈部网络中自上而下和自下而上得到的两个P2层特征与主干网络中的同尺度特征通过concat形式进行特征融合,输出的特征为3个输入特征的融合结果, 这样使得 P2层检测头应对微小目标时, 能够快速有效的检测。P2层检测头加上原始的3个检测头, 可以有效缓解尺度方差所带来的负面影响
请添加图片描述

2.引入CBAM注意力模块

CBAM是一种轻量的注意力模块, 其简单有效, 可以直接集成到CNN架构中, 并且可以端到端的对其进 行训练。在给定特征映射的情况下, CBAM会依次沿着通道和空间两个独立维度推导注意映射, 然后将注意映射与输入特征映射相乘, 进行自适应特征细化,CBAM结构如下:
请添加图片描述

3.改进Neck中的PANet结构为BiFPN

BiFPN网络是集成双向交叉连接和加权融合的一种高效的多尺度特征融合方法。采用跨连接去除PANet中对特征融合贡献度较小的节点, 在同一尺度的输入节点和输出节点间增加一个跳跃连接, 在不增加较多成本的同时, 融合了更多的特征.。在同一特征尺度上, 把每一个双向路径看作一个特征网络层, 并多次反复利用同一层, 以实现更高层次的特征融合。BiFPN结构如下图,如果需要详细了解该网络可以看原文: https://arxiv.org/abs/1911.09070
请添加图片描述

4.完整的网络结构图

请添加图片描述

实现细节

下面将按上面的步骤来一步一步实现:

1.在yolov5s.yaml中找到头部head添加小目标检测头并增加对应大小的anchors

按照原文的意思做出如下修改:

# 添加小目标检测头
anchors:
  - [5, 6, 8, 14, 15, 11]  # P2/4
  - [10, 13, 16, 30, 33, 23] # P3/8
  - [30, 61, 62, 45, 59, 119] # P4/16
  - [116, 90, 156, 198, 373, 326] # P5/32
head:
  [[-1, 1, Conv, [512, 1, 1]],  # 10
   [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11
   [[-1, 6], 1, Concat, [1]],  # 12 cat backbone P4  
   [-1, 3, C3, [512, False]],  # 13
 
   [-1, 1, Conv, [512, 1, 1]], # 14
   [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 15
   [[-1, 4], 1, Concat, [1]],  # 16 cat backbone P3 
   [-1, 3, C3, [512, False]],  # 17 
 
   [-1, 1, Conv, [256, 1, 1]], # 18
   [-1, 1, nn.Upsample, [None, 2, 'nearest']], #19
   [[-1, 2], 1, Concat, [1]],  # 20 cat backbone P3
   [-1, 3, C3, [256, False]],  # 21 
 
   [-1, 1, Conv, [256, 3, 2]], # 22
   [[-1, 18], 1, Concat, [1]],  # 23 cat head P4
   [-1, 3, C3, [256, False]],  # 24 
 
   [-1, 1, Conv, [256, 3, 2]], # 25
   [[-1, 14], 1, Concat, [1]], # 26
   [-1, 3, C3, [512, False]], # 27
 
   [-1, 1, Conv, [512, 3, 2]], # 28
   [[-1, 10], 1, Concat, [1]],  # 29 cat head P5
   [-1, 3, C3, [1024, False]],  # 30 
 
   [[21, 24, 27, 30], 1, Detect, [nc, anchors]],  # Detect
  • 35
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值