Press "Enter" to skip to content

Yolo v4:目标检测的最佳速度和精度

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

《YOLOv4:Optimal Speed and Accuracy of Object Detection》

 

发表时间及作者:2020 CVPR

 

文章目录

《YOLOv4:Optimal Speed and Accuracy of Object Detection》

1.YOLOv4介绍

 

Yolov4 其实并没有提出什幺创新点,主要是对当时领域内的一些 Tricks (WRC、CSP、CmBN、SAT、Mish激活、Mosaic数据增强,DropBlock和CIoU)进行了大量的实验,并且对模型的精度和速度进行了平衡;最终在MS COCO数据集上实现了43.5% AP (65.7% AP50),在 Tesla V100 的实时速度为65帧/秒。

 

YOLOv4一共有如下三点贡献:
1.开发了一个高效、强大的目标检测模型。它使每个人都可以使用1080ti或2080ti GPU来训练一个非常快速和准确的目标检测器
2.验证了最先进的 Bag-of-Freebies和 Bag-of-Specials对象检测在检测器训练时的影响。
3.对现有的方法进行了改进,使其更加高效,更适合于单个GPU的训练,包括CBN,PAN,SAM等。

 

 

图1:YOLOv4与其他最先进的物体探测器的比较。在性能相当的情况下,YOLOv4运行速度是EfficientDet的两倍。YOLOv4将YOLOv3的AP和FPS分别提升10%和12%。

 

2.YOLOv4网络结构

 

YOLOv4结构组成如下:

 

• Backbone: CSPDarknet53

 

• Neck: SPP , PAN

 

• Head: YOLOv3

 

2.1 Backbone改进

 

YOLOv4 借鉴了 CSPNet (Cross Stage Partial Networks,跨阶段局部网络)的思想,对 YOLOv3Darknet53 网络进行了改进,形成了全新的主干网路结构– CSPDarknet53

 

采用CSP结构有如下几点好处:

 

1.加强CNN学习能力

 

2.删除计算瓶颈

 

3.减少内存成本

 

 

 

CSPNet 实际上是基于 Densnet 的思想,即首先将数据划分成 Part 1Part 2 两部分, Part 2 通过 dense block 发送副本到下一个阶段,接着将两个分支的信息在通道方向进行 Concat 拼接,最后再通过 Transition 层进一步融合。 CSPNet 思想可以和 ResNetResNeXtDenseNet 结合,目前主流的有 CSPResNext50CSPDarknet53 两种改造 Backbone 网络。

 

改进后的主干网络结构如下图所示:

 

 

2.2 Neck改进

 

2.2.1 SPP结构介绍

 

SPP-Net 全称 Spatial Pyramid Pooling Networks ,主要是用来解决不同尺寸的特征图如何进入全连接层的,如下2图所示,下图中对任意尺寸的特征图直接进行固定尺寸的池化,来得到固定数量的特征。

 

 

 

2.2.2 PAN结构介绍

 

PANPath Aggregation Network )结构其实就是在 FPN (从顶到底信息融合)的基础上加上了从底到顶的信息融合,如下图(PAN结构图)所示。

 

FPN结构图

PAN结构图

2.2.3 YOLOv4 PAN结构介绍

 

YOLOv4 在原始 PAN 结构上进行了一点改进,如下图所示。图(a)是 PAN 论文中的原始融合方式,即特征层之间融合时是直接通过 addition 的方式进行融合的,但在 YOLOv4 中的 PAN 是通过在通道方向 Concat 拼接的方式进行融合的。

 

 

3.YOLOv4训练策略

 

这里首先介绍两个概念: Bag of FreebiesBag of Specials

 

Bag of Freebies :指的是那些不增加模型复杂度,也不增加推理的计算量的训练方法技巧,来提高模型的准确度。目标检测经常采用的符合 Bag of Freebies 定义的是数据增强。数据增强的目的是增加输入图像的可变性,使所设计的目标检测模型对从不同环境中获取的图像具有更高的鲁棒性。例如,光学畸变和几何畸变是两种常用的数据增强方法,它们对目标检测有明显的好处。

 

Bag of Specials :指的是那些增加少许模型复杂度或计算量的训练技巧,但可以显着提高模型的准确度。一般来说,这些插件模块是为了增强模型中的某些属性,如放大感受野、引入注意机制或增强特征集成能力等。

 

1.Backbone采用的 Bag of Freebies

 

CutMixMosaic数据增强DropBlock类标签平滑

 

2.Backbone采用的 Bag of Specials

 

Mish激活函数Cross-stage partial connections (CSP)多输入加权残差连接(MiWRC)

 

3.Detector采用的 Bag of Freebies

 

CIoU损失CmBN , DropBlock正则化Mosaic数据增强自对抗训练消除网格敏感性单目标使用多 Anchor , 余弦退火最优超参数随机训练形状

 

4.Detector采用的 Bag of Specials

 

Mish激活SPPSAMPAN路径聚合DIoU-NMS

 

3.1BackBone训练策略

 

3.1.1 数据增强

 

 

3.1.2 DropBlock正则化

 

DropBlock方法的引入是为了克服Dropout随机丢弃特征的主要缺点,Dropout被证明是全连接网络的有效策略,但在特征空间相关的卷积层中效果不佳。DropBlock技术在称为块的相邻相关区域中丢弃特征。这样既可以实现生成更简单模型的目的,又可以在每次训练迭代中引入学习部分网络权值的概念,对权值矩阵进行补偿,从而减少过拟合。如下图:

 

3.1.3 类标签平滑

 

训练样本中会出现少量的错误样本,而模型过于相信训练样本,在训练过程中调整参数极力去逼近样本,这就导致了这些错误样本的负面影响变大,因此需要在一定程度上减缓这些错误样本的影响,使得模型避免过于相信训练样本。

 

消融实验结果:

表1:BoF和Mish对CSPResNeXt-50分类精度的影响。

表2 BoF和Mish对CSPDarknet-53分类器精度的影响。

表3: Bag-of-Freebies的消融研究。(CSPResNeXt50-PANet-SPP 512 x512)。

表4:Bag of Specials的消融实验。(Size 512 x512)。

 

4.BackBone推理策略

 

4.1 Mish激活函数

 

Mish 是一个平滑的曲线,平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化;在负值的时候并不是完全截断,允许比较小的负梯度流入。实验中,随着层深的增加, ReLU 激活函数精度迅速下降,而 Mish 激活函数在训练稳定性、平均准确率(1%-2.8%)、峰值准确率(1.2% – 3.6%)等方面都有全面的提高。如下图:

 

 

4.2 MiWRC策略

 

MiWRC 是Multi-input weighted residual connections的简称, 在 BiFPN 中,提出了用 MiWRC 来执行标尺度级重加权,添加不同尺度的特征映射。我们已经讨论了 FPNPAN 作为例子。下面的图(d)显示了另一种被称为 BiFPNneck 设计,根据 BiFPN 的论文,该设计具有更好的准确性和效率权衡。

 

 

(a)FPN引入自顶向下的路径,将多尺度特征从3级融合到7级(P3-P7);

 

(b)PANET在FPN之上增加一个额外的自下而上的路径;

 

©NAS-FPN使用神经网络搜索找到一个不规则的特征拓扑网络,然后重复应用同一块拓扑结构;

 

(d)是这里的BiFPN,具有更好的准确性和效率权衡。将该neck放到整个整个网络的连接中如下图:

 

 

上图采用 EfficientNet 作为骨干网络, BiFPN 作为特征网络,共享 class/box 预测网络。 基于不同的资源约束, BiFPN 层和类/盒网层都被重复多次。

 

5.检测头训练策略

 

5.1 CIoU-loss

 

CIoU 就是在 DIoU 的基础上增加了检测框尺度的 loss ,增加了长和宽的 loss ,这样预测框就会更加的符合真实框。

 

5.2 CmBN策略

 

BN :无论每个batch被分割为多少个mini batch,其算法就是在每个mini batch前向传播后统计当前的BN数据(即每个神经元的期望和方差)并进行Nomalization,BN数据与其他mini batch的数据无关。

 

CBN :每次iteration中的BN数据是其之前n次数据和当前数据的和(对非当前batch统计的数据进行了补偿再参与计算),用该累加值对当前的batch进行Nomalization。好处在于每个batch可以设置较小的size。

 

CmBN :只在每个Batch内部使用CBN的方法,若每个Batch被分割为一个mini batch,则其效果与BN一致;若分割为多个mini batch,则与CBN类似,只是把mini batch当作batch进行计算,其区别在于权重更新时间点不同,同一个batch内权重参数一样,因此计算不需要进行补偿。

 

 

5.3 自对抗训练(SAT)

 

SAT(Self-Adversarial Training) 为一种新型数据增强方式。在第一阶段,神经网络改变原始图像而不是网络权值。通过这种方式,神经网络对其自身进行一种对抗式的攻击,改变原始图像,制造图像上没有目标的假象。在第二阶段,训练神经网络对修改后的图像进行正常的目标检测。

 

 

5.4 消除网格敏感度

 

 

对于 b x = c x b_x = c_x c x ​ 和 b x = c x + 1 b_x=c_x + 1 1 的情况,我们需要 t x t_x t x ​ 分别具有很大的负值和正值。但我们可以将 与一个比例因子(>1.0)相乘,从而更轻松地实现这一目标

 

6.检测头推理策略

 

6.1 SAM模块

 

YOLOv4SAM 从空间注意修改为点注意,下图(a)图为原始SAM模块,下(b)图为改进的 SAM 模块

 

 

6.2 DIoU-NMS

 

根据 DIOU 的论文,如果只是单纯的使用 NMS ,即是使用 IoU 作为阈值去筛掉其他预测框时,当两个物体过于接近时,很有可能另外一个物体的预测框就被滤除了。

 

就像下图中的摩托。使用 DIOU-NMS 可以一定程度上提升对于靠近的物体的检测

 

 

最后放上一些不同模型的速度和精度的比较。(一些文章仅说明了他们的探测器针对其中一个GPU的FPS:Maxwell/Pascal/Volta),可以看到, YOLOv4 在速度和精度方面都优于最快和最准确的探测器。

 

 

参考文献:

 

目标检测算法YOLOv4详解

YOLOv4网络详解

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。