资讯详情

改进Yolov5 | 用 GSConv+Slim Neck 一步步把 Yolov5 提升到极致!!!

点击上面的计算机视觉车间,选择星标

第一时间送达干货

2744f4fabb913706267143eca1561bfe.png

作者丨ChaucerG

来源丨集智书童

目标检测是计算机视觉中一项艰巨的下游任务。对于车载边缘计算平台,大型模型难以满足实时检测的要求。此外,由大量深度可分离卷积层构建的轻型模型无法达到足够的准确性。因此,本文引入了一种新的方法 GSConv 降低模型的复杂性,保持准确性。GSConv 能更好地平衡模型的准确性和速度。并且,提供了设计范式,Slim-Neck,为了实现检测器更高的计算成本效益。与原始网络相比,本文获得了最先进的结果(例如,SODA10M 在 Tesla T4 上以 ~100FPS 获得了速度 70.9% mAP0.5)。

1简介

目标检测是无人驾驶汽车所需的基本感知能力。目前,基于深度学习的目标检测算法在该领域占据主导地位。检测阶段有两种算法:单阶段和两阶段。两阶段检测器在检测小物体方面表现更好,通过稀疏检测的原理可以获得更高的平均精度(mAP),但这些检测器都是以速度为代价的。单阶段检测器在小物体的检测和定位上不如两阶段检测器有效,但在工作上比后者快,这对工业非常重要。

类脑研究的直观理解是,神经元模型越多,非线性表达能力就越强。但不可忽视的是,生物大脑处理信息的强大能力和低能耗远远超过了计算机。强大的模型不能通过简单地无休止地增加模型参数来构建。轻量级设计可以有效地降低现阶段的高计算成本。这一目的主要是通过使用 Depth-wise Separable Convolution (DSC)操作来减少参数和FLOPs实现数量,效果明显。

但是,DSC 在计算过程中,输入图像的通道信息是分开的。

图 1

速度和准确性对自动驾驶汽车同样重要。 GSConv 引入了 Slim-Neck 该方法可以在保持精度的同时降低模型的复杂性。GSConv 更好地平衡模型的准确性和速度。 1 中,在 SODA10M 无人驾驶数据集是最先进的 Slim-Neck 该方法的有效性得到了证实。

图2

图2(a)和(b)显示了 DSC 和标准卷积(SC)计算过程。 DSC 特征提取与融合能力比 SC 低得多。优秀的轻量级作品,如 XceptionMobileNetsShuffleNets,通过 DSC 操作大大提高了探测器的速度。然而,当这些模型应用于自动驾驶汽车时,这些模型的低精度令人担忧。事实上,这些工作提出了一些缓解方法 DSC 固有缺陷(这也是一个特征):MobileNets 使用大量的 1×1 集成独立计算的通道信息;ShuffleNets 使用channel shuffle来实现通道信息的交互,而 GhostNet 使用 halved SC 操作保留通道之间的交互信息。但是,1×相反,1的密集卷积占用了更多的计算资源channel shuffle效果仍未触及 SC 的结果,而 GhostNet 或多或少又回来了 SC 影响可能来自很多方面。

许多轻量级模型使用类似的思维来设计基本架构:从深度神经网络的开始到结束 DSC。但 DSC 无论是用于图像分类还是检测,主干中都直接放大了缺陷。作者认为 SCDSC 它可以一起使用。channel shuffle DSC 输出通道生成的特征图仍然是深度分离。

图 3

为了使 DSC 尽可能接近输出 SC,介绍了一种新的方法——GSConv。如图 3 所示,使用 shuffleSC 生成的信息(密集卷积操作)渗透到 DSC 信息生成的每个部分。这种方法允许来自 SC 的信息完全混合到 DSC 在输出中,没有胡哨的东西。

图 4

图 4 显示了 SCDSCGSConv 可视化结果。GSConv 的特征图与 SC 相似性明显高于 DSCSC 相似 Backbone 使用 SC,在Neck使用 GSConvslim-neck)当模型的准确性非常接近原始;如果添加一些技能,模型的准确性和速度将超过原始模型。 GSConv 方法的Slim-Neck尽量减少 DSC 缺陷对模型陷对模型的负面影响 DSC 的优势。

主要贡献可总结如下:

  1. 介绍了一种新的方法 GSConv 来代替 SC 操作。该方法使卷积计算的输出尽可能接近 SC,同时降低计算成本;

  2. 为自动驾驶汽车的检测器架构提供了一种新的设计范式 BackboneSlim-Neck 设计;

  3. 验证了不同 Trick 该领域研究的有效性可作为参考。

2.1 为什么要在Neck中使用GSConv

加快预测计算,CNN 馈送图像几乎必须在中间 Backbone 类似的转换过程:空间信息逐渐传输到通道。每次特征图的空间(宽度和高度)压缩和通道扩展都会导致语义信息的部分丢失。密集卷积的计算最大限度地保留了每个通道之间的隐藏连接,而稀疏卷积则完全切断了这些连接。

GSConv 尽可能多地保留这些连接。但是,如果在模型的所有阶段都使用它,模型的网络层将更深,这将加剧对数据流的阻力,显著增加推理时间。当这些特征图到达时 Neck 当它们变得纤细(通道维度最大,宽度和高度维度最小)时,它们不再需要改变。因此,更好的选择只是 Neck 使用 GSConvSlim-Neck 标准Backbone)。在这个阶段,使用 GSConv 处理 concatenated feature maps 恰到好处:冗余重复信息少,不需要压缩,注意模块效果更好,比如 SPPCA

2.2 Slim-Neck

作者研究了增强 CNN 一般的学习能力方法,如 DensNetVoVNetCSPNet,然后根据这些方法的理论进行设计 Slim-Neck 结构。

1、Slim-Neck中的模块

首先,采用轻量级卷积法 GSConv 来代替 SC。计算成本约为 SC 的60%~70%,但其对模型学习能力的贡献与后者相当。然后,在 GSConv 继续在此基础上引入 GSbottleneck,图5(a)展示了 GSbottleneck 模块结构。

图5

同样,跨级网络也采用一次性聚合法设计 (GSCSP) 模块 VoVGSCSPVoV-GSCSP 模块降低了计算和网络结构的复杂性,但保持了足够的精度。图 5 (b) 显示了 VoV-GSCSP 的结构。值得注意的是,如果我们使用 VoV-GSCSP 代替 NeckCSP,其中 CSP 层由标准卷积组成,FLOPs 将平均比后者减少 15.72%。

最后,需要灵活地使用3个模块,GSConvGSbottleneckVoV-GSCSP

2、Slim-Neck针对YOLO系列的设计

YOLO 系列检测器由于检测效率高,在行业中应用更为广泛。这里使用 slim-neck 的模块来改造 Scaled-YOLOv4YOLOv5Neck 层。图 6 和图 7 显示了2种 slim-neck 架构。

图 6
图 7

3、免费的改进Tricks

可以在基于 CNNs 的检测器中使用一些局部特征增强方法,结构简单,计算成本低。这些增强方法,注意力机制,可以显著提高模型精度,而且比Neck 简单得多。这些方法包括作用于通道信息或空间信息。SPP 专注于空间信息,它由4个并行分支连接:3个最大池操作(kernel-size为 5×5、9×9 和 13×13)和输入的 shortcut 方式。它用于通过合并输入的局部和全局特征来解决对象尺度变化过大的问题。YOLOv5 作者的 SPP 改进模块 SPPF 提高了计算效率。该效率 增加了近 277.8%。通式为:

其中,是 SPPF 模块中第i个分支的最大池化的kernel-size。

图 8

图 8 (a) 和 (b) 显示了 SPPSPPF 的结构。SE是一个通道注意力模块,包括两个操作过程:squeezeexcitation。该模块允许网络更多地关注信息量更大的特征通道,而否定信息量较少的特征通道。CBAM 是一个空间通道注意力机制模块。CA 模块是一种新的解决方案,可以避免全局池化操作导致的位置信息丢失:将注意力分别放在宽度和高度两个维度上,以有效利用输入特征图的空间坐标信息。图9(a)、(b)和(c) 显示了 SECBAMCA 模块的结构。

图 9

4、损失和激活函数

IoU 损失对于基于深度学习的检测器具有很大的价值。它使预测边界框回归的位置更加准确。随着研究的不断发展,许多研究人员已经提出了更高级的 IoU 损失函数,例如 GIoUDIoUCIoU 和最新的 EIoU。5个损失函数定义如下:

其中参数“A”和“B”表示Ground truth边界框的面积和预测边界框的面积;参数“C”表示Ground truth边界框和预测边界框的最小包围框的面积;参数“d”表示封闭框的对角线顶点的欧式距离;参数“ρ”表示Ground truth边界框和预测边界框质心的欧式距离;参数“α”是权衡的指标,参数“v”是评价Ground truth边界框和预测边界框长宽比一致性的指标。

CIoU loss是目前Anchor-based检测器中使用最广泛的损失函数,但CIoU loss仍然存在缺陷:

其中“δv /δw”是“v”相对于“w”的梯度,“δv/δh”是“v”相对于“h”的梯度。

图 10

根据 CIoU 损失的定义,如果 ,CIoU 损失将退化为DIoU损失,即CIoU损失中添加的惩罚项的相对比例(αv)将不起作用。此外,w和h的梯度符号相反。

因此,这两个变量(w或h)只能在同一方向上更新,同时增加或减少。这不符合实际应用场景,尤其是当 且 $hw^{gt}且h>h^{gt}$ 时。EIoU loss没有遇到这样的问题,它直接使用预测边界框的w和h独立作为惩罚项,而不是w和h的比值。图10是这些损失函数的不同评估指标的3个示例。

在深度网络上,使用 SwishMish 的模型的准确性和训练稳定性通常比 ReLU 差。SwishMish 都具有无上界和下界、平滑和非单调的特性。它们定义如下:

在更深的网络上,Mish 的模型准确度略好于 Swish,尽管实际上2条激活函数曲线非常接近。与 Swish 相比,Mish 由于计算成本的增加而消耗更多的训练时间。

3实验

3.1 Trick消融实验

3.2 损失函数对比

3.3 Yolo改进

3.4 可视化结果对比

[1].Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles

本文仅做学术分享,如有侵权,请联系删文。

后台回复:即可下载国外大学沉淀数年3D Vison精品课件

后台回复:即可下载3D视觉领域经典书籍pdf

后台回复:即可学习3D视觉领域精品课程

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进4.国内首个面向工业级实战的点云处理课程5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在

也可申请加入我们的细分方向交流群,目前主要有等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。也请联系。

▲长按加微信群或投稿

▲长按关注公众号

:针对3D视觉领域的五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

标签: sc25v传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台