论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection

目录

前言

1、Introduction

 2、Related work

2.1、现代目标检测器结构和分类

​​​​​​​2.2、Bag of Freebies(赠品包)

2.3、Bag of specials(特价包)

3、Methodology

3.1、结构选择

3.2、BoF和BoS的选择

3.3、额外提升

3.4、YOLOv4的组成和细节

4、Experiments

4.1、实验设置

4.2、不同特征对分类器训练的影响

4.3、不同特征对检测器训练的影响

4.4、不同主干网络和预训练权重对检测器训练的影响

4.5、不同mini-batch大小对检测器训练的影响

 5、结论


前言

之前有一段时间看了挺多深度学习方面的论文,但是由于时间方面的问题一直没来得及进行总结。最近一段时间突发奇想把自己看论文时的学习笔记给记录一下,由于之前没写过博文,所以排版可能会有点emmm...一言难尽。专业方面的知识,如果有理解不到位的地方欢迎各位大佬指教。

1、Introduction

主要成果:

  • 开发了一种强大而高效的目标识别网络,任何人都可以使用1080Ti或2080Ti等传统显卡实现高效而精确的目标检测。
  • 验证了Bag-of-FreebiesBag-of-Specials等方法对目标检测的影响。
  • 修改了包括CBNPANSAM在内的最先进的方法并使其适用于单GPU的训练。
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第1张图片 YOLOv4网络和其他主流目标检测网络在速度和准确度方面的对比

 2、Related work

2.1、现代目标检测器结构和分类

  • 输入: Image, Patcher, Image Pyramid
  • 主干网络: VGG16, ResNet-50, SpineNet, EfficientNet-B0/B7, CSPResNeXt50, CSPDarknet53
  • 颈部:
  1. Additional blocks(附加模块): SPP, ASPP, RFB, SAM
  2. Path-aggregation blocks(路径融合模块): FPN, PAN, NAS-FPN, Fully-connected FPN, BiFPN, ASFF, SFAM 
  • 头部:
  1. 密集预测(单阶段目标检测器):基于锚点的网络: RPN, SSD, YOLO , RetinaNet、不基于锚点的网络: CornerNet, CenterNet, MatrixNet, FCOS
  2. 稀疏预测(双阶段目标检测器):基于锚点的网络: Faster R-CNN, R-FCN, Mask RCNN、不基于锚点的网络: RepPoints
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第2张图片 单阶段目标检测器和双阶段目标检测器的区别

​​​​​​​​​​​​​​2.2、Bag of Freebies(赠品包)

在刚开始读文章的时候,我对这个词也是有点疑惑。文章中的原意是使目标检测器获得更好的精度而又不会额外增加推理成本的方法集合。文章中提到了许多种不同的Bag of Freebies中的方法

1、数据增强:

  • 光度畸变:调整图像的亮度,对比度,色相,饱和度和噪点。
  • 几何畸变:对图像进行随机缩放,裁剪,翻转和旋转等操作。
  • 其他方法:random erase,CutOut,hide-and-seek,DropOut等。
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第3张图片 一些数据增强的方法

2、处理语义分布偏差问题的方法:

  • 困难负例挖掘(仅适用于双阶段目标检测器)、标签平滑(The label smoothing)、Focal loss、知识蒸馏(knowledge distillation)等。

3、边界框回归目标函数:

  • IoU损失:计算BBox和ground truth框的交并比,然后将生成的结果连接到整段代码中。
  • GIoU损失​​​​​​​:找到可以同时覆盖预测的BBox和ground truth框的最小面积的BBox,并将其代替IoU损失中的分母用于计算。
  • DIoU损失:考虑了与对象中心的距离。
  • CIoU损失:同时考虑了重叠区域面积,中心点之间的距离和纵横比等因素。

2.3、Bag of specials(特价包)

文章中对于Bag of specials一词的解释是仅少量增加推理成本,但可以显着提高目标检测准确性的插件模块和后处理方法。文章中使用的Bag of specials方法主要可以归结为一下几类:扩大感受域,引入注意力机制,增强特征集成能力和后处理。

1、扩大感受域:

  • 加入SPP模块、ASPP模块或RFB模块。

​​​​​​​2、引入注意力机制​​​​​​​:

  • 通道注意:Squeeze-and-Excitation(SE)模型
  • 点注意:Spatial Attention module(SAM)模型

3、增强特征集成能力:

  • SFAM:主要思想是使用SE模块在多尺度级联特征图上执行通道级级别的加权。
  • ASFF:使用softmax作为逐点级别权重,然后添加不同比例的特征图。
  • BiFPN:使用多输入加权残差连接以执行按比例的级别重新加权,然后添加不同比例的特征图。
  • 激活函数:LReLU,PReLU,ReLU6,SELU,Swish,hard-Swish和Mish等

4、后处理​​​​​​​:

  • NMS(非最大值抑制):对那些预测相同目标的BBox进行过滤,而仅保留具有较高响应度的候选BBox。

3、Methodology

3.1、结构选择

1、和分类器相比,检测器为了提升检测的效果需要尽量满足以下条件:

  • 具备更高的网络输入分辨率用于检测多个小型物体。
  • 具备更多的层数,从而拥有更大的感受域以覆盖扩大尺度的网络输入。
  • 更多的参数以提高模型在单个图像中检测不同大小的多个对象的能力。
  • 同时,为了同时保证网络的速度和精度,需要在以上的三个条件中找平衡。

2、不同大小的感受域的影响总结如下:

  • 取决于目标大小,使其能够覆盖整个目标。
  • 取决于网络大小,使其能够覆盖目标周围的背景。
  • 超出网络规模,增加映像点与最终激活之间的连接数。

3、最终YOLOv4网络选择的体系结构为:

  • 主干网络:CSPDarknet53
  • 附加模块:SPP
  • 颈部:PANet
  • 头部:YOLOv3的头部
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第4张图片 论文中给出的几个主干网络的信息,最后YOLOv4选择了CSPDarknet53作为其主干网络

3.2、BoF和BoS的选择

论文里面的BoFBoS即上文中提到的Bag of FreebiesBag of specials中提到的一些方法,在这一部分中作者对上面提到的方法进行了筛选。主要的变动有激活函数不使用ReLU、SELU和ReLU6;由于仅使用一个GPU的训练策略归一化方法不采用syncBN;采用DropBlock作为正则化方法。

3.3、额外提升

这一部分主要是描述了,YOLOv4网络在使用一些结构的时候对其所作的一些自适应化修改,主要有三点。

1、引入了两种新的数据增强方法:自我对抗​​训练(SAT)和马赛克数据增强。

  • 自我对抗训练主要执行2个前向和反向传播。在第一阶段中网络不会修改自身权重,而是去改变原始的图像。第二阶段,训练神经网络以正常方式检测此修改图像上的目标。感觉和GAN网络的实现机制有点相似,只不过GAN网络是使用两个网络进行对抗训练。
  • 马赛克数据增强主要就是将四张不同的图片通过一定的比例拼接成一张图,这样就可以训练网络检测到超出其正常背景的对象。同时在样本数据集较少的时候,这也是一种扩充数据集的方法。
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第5张图片 马赛克数据增强

2、使用遗传算法选择最佳超参数

3、对CBN、SAM和PAN模块进行了部分修改

  • CBN修改成了Cross mini-Batch Normalization(CmBN),用于收集单个batch中的mini-batches之间的统计信息。
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第6张图片 论文中BN、CBN和CmBN的区别
  • SAM从空间注意改为点注意。
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第7张图片 SAM的修改
  • PAN的快捷连接替换为串联。
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第8张图片 PAN的修改

3.4、YOLOv4的组成和细节

1、网络构架:

  • 主干网络: CSPDarknet53
  • 颈部:SPP, PAN 
  • 头部:YOLOv3的头部

2、网络细节:

  • 主干网络使用的BoF:CutMix,马赛克数据增强,DropBlock正则化,,类标签平滑。
  • 主干网络使用的BoS:Mish激活函数,跨阶段部分连接(CSP),多输入加权残差连接 (MiWRC)。
  • 检测器使用的BoF:CIoU损失函数,CmBN,DropBlock正则化,马赛克数据增强,自对抗训练(SAT),Eliminate grid sensitivity,为每个真实标签使用多个锚点,Cosine annealing scheduler ,优化的超参数,随机的训练形状。
  • 检测器使用的BoS:Mish激活函数,SPP模块,SAM模块,路径聚合模块(PAN), DIoU-NMS。

4、Experiments

4.1、实验设置

  • 在ImageNet图像分类实验中,默认的超参数如下:训练步骤为8,000,000;批量大小和最小批量大小分别为128和32;采用多项式衰减学习率调度策略,初始学习率为0.1。预热步骤为1000;动量和权重偏差分别设置为0.9和0.005。
  • 在MS COCO目标检测实验中,默认超参数如下:训练步骤为500,500;训练步骤为500,500。采用步阶衰减学习率调度策略,初始学习率为0.01,分别在40万步和45万步上乘以系数0.1。动量和权重衰减分别设置为0.9和0.0005。

4.2、不同特征对分类器训练的影响

实验主要探究在使用了类标签平滑;bilateral blurring,MixUp,CutMix和Mosaic等数据增强方式; Leaky-ReLU (默认),,Swish和Mish等激活函数后对分类器精度产生的影响。

论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第9张图片 在主干网络为CSPResNeXt-50的分类器上产生的影响
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第10张图片 在主干网络为CSPDarknet-53的分类器上产生的影响

4.3、不同特征对检测器训练的影响

实验主要探究的是不同BoF方法和BoS方法对检测器精度的影响。以下是标注(可能有一些翻译不太对):

  • M:马赛克数据增强
  • IT:IoU阈值
  • GA:遗传算法
  • LS:类标签平滑
  • CBN:CmBN(上文中经过改进的CBN)
  • CA:余弦退货调度进程
  • DM:动态mini-batch大小
  • OA:最优化锚点
  • GIoU,CIoU,DIoU,MSE
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第11张图片 BoF中方法对检测器训练精度的影响
论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第12张图片 BoS中方法对检测器训练精度的影响

4.4、不同主干网络和预训练权重对检测器训练的影响

论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第13张图片

4.5、不同mini-batch大小对检测器训练的影响

论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection_第14张图片

 5、结论

  1. 提出了一种在精度和速度方面都达到最优的目标检测网络。
  2. 该网络可以在传统GPU上运行而不需要昂贵或定制的运算设备。

你可能感兴趣的:(论文阅读——YOLOv4:Optimal Speed and Accuracy of Object Detection)