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

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第1张图片

随着 YOLO 之父退出了 CV 届,号称 YOLOv4 的“继承者”通过在原 YOLO 技术上疯狂试探了众多崭新的 Tricks,通过强大的工程实践实现了速度与精度的有效提升!(有钱真好。。。)

论文链接:https://arxiv.org/abs/2004.10934v1

代码链接:https://github.com/AlexeyAB/darknet


摘要

有大量的特征被认为可提高卷积神经网络 (CNN) 的精度。需要在大型数据集上对这些特征的组合进行实际测试,并对结果进行理论证明。某些功能只在某些模型、某些问题或只在小规模数据集上生效;而某些功能 (如 BN 和 残差连接) 适用于大多数模型、任务和数据集。我们假设这些通用特征包括加权残差连接 (Weighted-Residual-Connections, WRC)、跨阶段部分连接 (Cross-Stage-Partial-connections, CSP)、跨小批量归一化 (Cross mini-Batch Normalization, CmBN)、自对抗训练 (Self-adversarial-training, SAT) 和Mish 激活。我们使用了新功能:WRC、CSP、CmBN、SAT、Mish 激活、Mosaic 数据增强、CmBN、DropBlock 正则化 和 CIoU 损失,并将其中一些功能结合起来,以达到 STOA:在 Tesla V100 上以约 65 FPS 的实时速度实现 MS COCO 数据集 43.5% AP (65.7% AP50) 。

方法论 (Methodology)

Selection of architecture

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第2张图片

由图1可知,YOLOv4 比 YOLOv3 准确率提升高近10个点而几乎未降低速度。论文主要贡献为:

  • 开发了速度更快、精度更好的目标检测模型,仅需单张 1080Ti 或 2080Ti 即可训练
  • 验证了 SOTA 的 Bag-of-Freebies(不增加推理成本的 trick) 和 Bag-of-Specials(增加推理成本的trick) 的有效性
  • 修改了 SOTA 方法,使之更高效且更合适地单卡训练,包括 CBN、PAN、SAM 等

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第3张图片

分类效果优异的 backbone 并不一定适合检测模型,适用于检测的 backbone 需满足:

  • 输入分辨率更高,以便于提升对小物体检测的准确率
  • 层数更多,以便于提升感受野来适应输入尺寸的增加
  • 参数量更大,以便于提升单图多尺度目标检测的能力

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第4张图片

表1对比了三种 SOTA 的 backbone,其中 CSPDarknet53 因综合感受野、参数量及帧率等理论上最佳。理论证明加上大量实验,表明 CSPDarknet53 是作为检测 backbone 的最佳模型

不同大小感受野的影响总结如下:             

  • 匹配目标物体大小,可以观察完整的目标物体     
  • 匹配网络大小,可以观察目标物体周围的上下文信息          
  • 过网络的大小,增加图像点与最终激活之间的连接数

因此,YOLOv4 加入了 SPP block,从而显著地改善感受野大小,且速度几乎未降低。 

同时,用 PANet 代替 YOLOv3 中的 FPN,从不同的 backbone 层对不同的检测层进行参数聚合,实现多通道特征融合。

最后,选择 CSPDarknet53 作为 backbone、SPP 附加模块、PANet 通道融合颈部网络和 YOLOv3 (基于 anchor 的) 头部网络作为 YOLOv4 的系统结构。

Selection of BoF and BoS 

为改进目标检测模型训练,CNN 通常使用以下方法:

  • 激活函数:ReLU、leaky-ReLU、parametric-ReLU、ReLU6、SELU、Swish or Mish 
  • boox 回归损失:MSE、IoU、GIoU、CIoU、DIoU             
  • 数据增强:CutOut、MixUp、CutMix
  • 正则化方法:DropOut、DropPath、Spatial DropOut、or DropBlock       
  • 归一化方法: Batch Normalization(BN)、Cross-GPU Batch Normalization(CGBN or SyncBN)、Filter Response Normalization (FRN) or Cross-Iteration Batch Normalization(CBN)  
  • 跳跃连接:残差连接、加权残差连接、多输入加权残差连接或跨级部分连接(CSP)              

至于训练激活功能,由于 PReLU 和 SELU 更难训练,并且 ReLU6 是专门为量化网络设计的,因此本文从候选列表中删除了上述激活函数。在正则化方法中,发表 DropBlock 的人详细比较了其他方法,证明了其效果更优,故本文选择 DropBlock 作为正则化方法。至于归一化方法的选择,由于本文关注的是单 GPU 的训练策略,故不考虑 syncBN。

Additional improvements

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第5张图片

为使设计的检测模型更适合单 GPU 训练,本文做了如下的额外设计和改进:         

  • 介绍了一种新的数据增强方法 Mosaic 和自对抗训练 (SAT)方法             
  • 应用遗传算法时选择最佳超参数             
  • 修改了一些现有方法,使设计适合有效的训练和检测 - SAM 改、PAN 改、以及跨小批量归一化 (Cross mini-Batch Normalization, CmBN)

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第6张图片

Mosaic 代表了一种新的数据增强方法,混合了4幅训练图像。

....

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第7张图片

 

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第8张图片

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第9张图片

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第10张图片

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第11张图片

【论文阅读】YOLOv4: Optimal Speed and Accuracy of Object Detection_第12张图片

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

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

 

参考文献:

晓飞的算法工程笔记 公众号

你可能感兴趣的:(【论文速读】)