论文笔记:YOLOv4: Optimal Speed and Accuracy of Object Detection

中心思想:

  • 在提出YOLOv4之前,作者先对现有的主流改进思路,进行了分类&综述
  • 基于上述的改进思路进行尝试,整合,最终提出了YOLOv4。主要的贡献在于:
    • 能够实现低成本的训练(只用1张卡)
    • 验证了训练&预测过程中的一些trick

Bag of Freebies

Bag of Freebies指的是通过更好的训练方式来得到性能的提升,而这种训练方式不会对模型的预测(inference)带来比较大的负担

  • 最常见的Freebie是数据增广,主要目的是提升训练数据的差异性,常用的数据增广有两方面:
    1. 光度偏差:随机对图像的亮度,对比度,色调,饱和度等元素进行随机扰动
    2. 几何偏差:对图像进行crop, scale, flip, rotate等操作
  • 近年来,提出了一些新的数据增广方式,包括:
    1. 对遮挡进行模拟:选定图中的若干ROI,将ROI中的值置为0
    2. 通过多张图像的整合来实现数据增广:mixup, cutmix, mosiac等

此外,为了解决数据分布不均衡的问题(包括正负样本的不均衡,各类别间的不均衡),目前主流的方法包括:

  1. Focal Loss
  2. hard Negative Mining
  3. Softlabel:解决0-1 one-hot编码无法对类别间的依赖/相似性关系进行度量的问题(在0-1中每个类别都是相互独立的,没有关联性)

对于目前目标检测中,对回归分支最常用的L2 Loss:

  • L2 Loss对每个维度 c x , c y , w , h {c_x, c_y, w, h} cx,cy,w,h看成相互独立的,而没有将这4个维度看成一个整体
  • 为了解决这种问题,IOU Loss应运而生,一方面融合了各个维度,另一方面起到了各个尺度下均衡的作用(L2 Loss下越远的目标,产生的Loss越小,但其实加入了acnhor之后会得到解决)
  • CIoU Loss在IOU Loss的基础上,考虑了GT与预测值之间的中点距离,同时考虑了宽高比

除此之外,本文还提出了新的BOF,包括Mosaic(马赛克数据增广)&self-adversarial training(自对抗训练)

  • 在self-adversarial training中,将一次迭代分成两部:
    • 不修改网络权重,只修改输入
    • 修改后的输入常规进行forward & backward propagation
  • Mosaic与CutMix类似,只不过CutMix将2张图片混合,而Mosaic一次性将4张图片硬剪到一起:
    论文笔记:YOLOv4: Optimal Speed and Accuracy of Object Detection_第1张图片

Bag of specials

这里的special指的是一些通过牺牲infer时间来提升性能的方法,主要包括:

  • 提升感受野,包括ASPP,RFB操作
  • 引入attention,总括来说有2种attention,结合实验作者任务point wise的性价比更高
    1. point-wise: SAM(sptial attention module)
    2. channel-wise: SE Block
  • 增强特征的整合能力(这里主要是形如UNet的将高层特征与底层特征进行融合的方式)
    1. SFAM:通过SE Block的方式对上采样后的feature map和低层的feature map进行加权相加
    2. ASFF:利用softmax进行每个点的reweight(加权)
    3. BiFPN: 不仅是从高层->底层,外加底层->高层,实现更全面的特征融合
  • 激活函数的改进,主要包括RELU系列,swish系列,mish系列
  • 检测后处理的改进:
    • 普通的nms,分数从大到小进行排序,保证保留的框具有较大的分数(置信度)
    • softnms: 考虑遮挡对NMS中,IOU计算的影响
    • DIOU NMS:在soft的基础上增加中心距离(度量方式改为DIoU)
  • 对于BN层的改进:
    • 在CBN(Cross Batch Normalization)的基础上做了修改:每4个mini batch之后再更新scale shift的值(这么做的具体原因这里没有说)
      论文笔记:YOLOv4: Optimal Speed and Accuracy of Object Detection_第2张图片
  • 对于现有的BOS的改进:modified SAM & modified PAN,整体来看是为了增大特征融合,以及attention部分的容量:
    论文笔记:YOLOv4: Optimal Speed and Accuracy of Object Detection_第3张图片

整体改进总结

  • 总的来说,YOLOv4更像是对现有的目标检测改进方法的一系列尝试及整合,主要包括3部分:
    • Backbone: CSPDarknet53 (这里作者认为与ResNext&efficientnet相比,有更多的参数、帧率更快、也有足够的感受野)
    • Neck: SPP, PAN
    • Head: YOLOv3

  • 并且使用了一下的改进方法:
    • Bag of Freebies (BoF) for backbone: CutMix and Mosaic data augmentation, DropBlock regularization, Class label smoothing
    • Bag of Specials (BoS) for backbone: Mish activa- tion, Cross-stage partial connections (CSP), Multi- input weighted residual connections (MiWRC)
    • Bag of Freebies (BoF) for detector: CIoU-loss, CmBN, DropBlock regularization, Mosaic data aug- mentation, Self-Adversarial Training, Eliminate grid sensitivity, Using multiple anchors for a single ground truth, Cosine annealing scheduler [52], Optimal hyper- parameters, Random training shapes
    • Bag of Specials (BoS) for detector: Mish activation, SPP-block, SAM-block, PAN path-aggregation block, DIoU-NMS

你可能感兴趣的:(论文笔记)