改进的yolov5

图片

The networkstructure of these models is constant, but the modules and con-volution kernels are scaled, which alters the complexity and sizeof each model.(这些模型的网络结构是恒定的,但模块和卷积核被缩放,这改变了每个模型的复杂性和大小。)

YOLOv5

图片

图片

✅backbone:Focus layer, BottleNeckCSP , and SPP module

Focus layer:主要作用是执行图像切片。这减少了下采样期间的信息损失,简化了数值计算并提高了训练速度。

BottleNeckCSP:不仅减少了整体计算负担,而且更有效地从特征中提取信息。

SPP:通过将可变大小特征图转换为固定大小的特征向量来增加网络的感受野

✅neck:PANet、FPN

PANet:用于深层特征的密集定位

FPN :通过上采样提供强大的浅层语义特征,融合各种多尺度特征,增强检测能力

✅head:它使用锚框输出包含向量的类概率、置信度分数、预测角度和边界框信息。

YOLOv5的局限性

✅首先,它主要针对用于通用对象检测任务的 COCO 数据集,并且不一定适用于特定任务和相关数据集。

✅其次,PANet 结构较少关注非相邻层之间的信息流,因为每个聚合过程中信息不断减少。

✅第三,SPP模块中的最大池化操作会导致显著的信息损失,因此无法获得局部和全局信息进行定位。

✅第四,连接 YOLOv5 架构中不同组件的信息路径限制了计算效率,并且对于为小规模对象提取相关特征不是最优的。

YOLOv5的改进

01 SPP模块的改进

图片

随着 CNN 深度的增加,感受野的大小变大。由于输入图像的大小有限,特征提取在大的感受野上重复。因此,SPP模块用于通过融合不同感受野的特征图来添加相应的模块来消除这个问题。该模块结合局部和全局特征来最大化特征图的表达能力,扩展了骨干网络的感受野,并将最重要的上下文特征分离为大小目标检测。为了整合不同尺度感受野的特征,SPP并行使用了几个最大池化操作。这种方法显示出提高整体检测精度的好处。然而,最大池化操作无法捕获空间信息并产生信息丢失,这导致无法单独定位目标,尤其是小对象。

为了解决这个问题,提出了一种改进的SPP模块,将池化函数替换为扩展卷积。虽然这两种操作都扩展了网络的感受野,但池化降低了空间分辨率,导致特征信息丢失。相反,具有不同膨胀率的扩张卷积通过捕获检测小目标所需的多尺度信息而不损失分辨率来丰富提取的特征。然后将输出特征组合在同一级别上以增强特征表示。因此,该模块提高了网络准确定位目标的学习能力,特别是小对象,同时以最小的计算成本增加保持快速检测速度。

02 PANet结构的改进

图片

颈部网络的目的是聚合主干获得的特征,以提高后者预测的准确性。由于深层的抽象级别,这种结构在防止小物体信息的丢失方面起着至关重要的作用。为了实现这一点,再次对特征图进行上采样,以便与主干进行聚合。FPN 为浅层提供深层语义信息,以增强可检测性,但在浅层和深层特征聚合过程中忽略位置信息。虽然PANet结构提供了浅层和深层信息的融合。然而,集成方法依赖于相邻特征的聚合,并且较少关注被赋予非相邻层之间的信息交换。正因为如此,非相邻层中的空间信息通过每次聚合不断减少。

因此,为了解决上述局限性,设计了一种基于原始PANet结构的改进PANet结构。我们添加了两个跨层连接(B1和B2),一个在FPN的自顶向下路径中,另一个在PANet的自底向上路径中,用于集成不相邻和多层次特征。在聚合过程中,这将允许更有效地利用语义和浅层位置信息,在不增加计算复杂度的情况下增强小物体的重要特征。

03 改进的信息路径

图片

图片

YOLOv5 的架构设计很简单,但由于其组件的内部排列,需要优化计算效率和实时应用。因此,我们重定向某些连接,以专注于检测多分辨率特征图。由于输入通过卷积逐层传递,因此特征图被提取。前者卷积层生成的特征图捕获小尺度对象,而后者生成的特征图捕获大尺度对象。BottleNeckCSP 是 YOLOv5 最基本的块,提取大多数上下文特征,但其当前属性对于深度特征的提取效率低下,导致目标检测效果不佳。另一个重要方面是选择适当的激活函数,即使在添加多个卷积和归一化层时也可以限制性能。此外,头部缺乏提取足够浅层特征来定位小物体的能力。

针对上述问题,提出了一种改进的Scaled YOLOv5 (iS-YOLOv5)。为证明BottleNeckCSP 的局限性,通过修改信息路径,引入了一种新的称为 N-CSP 的功能块,减少主干中N-CSP块的数量,调整网络参数,提高计算速度。此外,在网络的特定层中实现了Hard Swish激活,而不是Leaky ReLU。应用多个激活来避免信息丢失,并根据输入大小降低计算成本。在检测方面,为从高分辨率特征图中获得的小规模对象添加了一个检测头。在颈部中,优化调整 N-CSP 块以专注于检测多尺度特征。这将提高不同比例对象(尤其是小目标)的整体检测能力。请注意,集体修改几乎没有改变计算的复杂性,同时显着提高了检测性能以及确保实时要求。

注:本文仅用于学术分享,如有侵权,请联系后台作删文处理。

最后:

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

5a8015ddde1e41418a38e958eb12ecbd.png

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MatpyMaster

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

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

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

打赏作者

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

抵扣说明:

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

余额充值