【YOLOv4】

【YOLOv4】_第1张图片

这篇论文的trick是真多,消融实验做的很详细

另外如何优化网络结构做到单卡训练也是比较重要的

1、Introduction:

作者自认为的贡献:

  1. 设计了一个高效的模型,可以在单1080TI上训练,万千屌丝的救星。
  2. 验证和对比了各种各样trick在目标检测任务上的有效性。
  3. 修改了SOTA检测模型,减小了对资源的占用,可以使用单卡训练。

先看效果

【YOLOv4】_第2张图片

2、Related work
2.1目标检测模型

介绍了1阶段2阶段,有无anchor的各种方案,把检测模型分成以下4个部分,没啥新意,跟mmdetection中的分法类似。

【YOLOv4】_第3张图片

2.2 bag of feebies

这部分就是介绍那些通过变换训练策略提升模型能力的方法了,简称tricks,没啥干货,倒是方便了别人写论文找资料。。。

2.3 bag of specials

这部分介绍为了提升模型性能增加的一些结构,比如BiFPN, ASFF,GIoU等,作用同上。

3、Methodology

3.1 Selection of architecture

  • 网络输入的图片尺寸尽量大,有利于小目标的检测
  • 更多的层数,保证感受野足够大
  • 更多的参数量

balabala说了一堆,最终选择了 CSPDarknet53 + SSP + PANET + YOLOV3 HEAD的结构

3.2 Selection of BoF and BoS

作者从以下几个方向入手,选BoF和BoS

  • Activations: Relu, leaky-Relu等等
  • Bounding box regression loss: MSE, IOU, GIoU等
  • Data augmentation: CutOut, MixUp, CutMix
  • Regularization method: DropOut, DropPath
  • Normalization: BN, SyncBN
  • Skip-connections: 残差网络,WRC, CSP等等

3.3 Additionnal improvements

  • 新的数据增强方法,Mosaic 和 Self-Adversarial Training(SAT)
  • 优化超参
  • 优化模型用到的一些结果,使其更加高效,以便单卡训练

这里先重点说下如何优化模型的:

首先是单卡训练batch size不可能太大,作者提出提出CmBN,是CBN的变种,CBN是Cross-Iteration BN, CmBN是Cross-minibatch BN,统计只在一个Batch之间。

【YOLOv4】_第4张图片

 另外两个小小的优化,一般般吧,一般来说单卡训练问题主要在batch size太小上,batch size小于16效果会差不少。

【YOLOv4】_第5张图片

4.实验

直接看消融实验的结果吧,可以直观看到不同trick对于模型的影响

1、对于分类网络的影响,主干网络分别为CSPResNeXt-50和CSPDarknet-53

【YOLOv4】_第6张图片

2、BoF和BoS对检测网络影响的消融实验

【YOLOv4】_第7张图片

【YOLOv4】_第8张图片

 3、另外两个消融实验(自己看吧)

【YOLOv4】_第9张图片

【YOLOv4】_第10张图片

结论:当然是一个又快又准的检测器了。

 

 

 

 

你可能感兴趣的:(深度学习)