pdf code

YOLOv4: Optimal Speed and Accuracy of Object Detection

这篇Yolov4是"官方继承者"的官方paper,大规模地集成了各种各样的trick,也调整了很多模型。值得关注的地方在于作者很专注于在GPU上的运算速度以及在GPU上的训练可能性。Paper 对现有Tricks做了相当多的Review跟测试。这篇paper以及这个页面可以算是object detection tricks的一个小Wiki。

Models

image

这里提供一些已有的简介:

Efficient; SPP in PSM; RFB; SAM in CBAM;SSD;CornetNet;CenterNet;FCOS

这里补充两个链接,ASPP 来自于DeepLabv3;

CSPNet

pdf

CSP网络来自于作者的前一批工作。 image

Bag of Freebies

一系列训练trick,称为freebies因为不增加推理成本.

先参考Amazon的paper的简介

主要分类为 input augmentation/feature map dropping; label-softing; Loss(IoU Loss).

这里补充结果trick的简介的链接。

DropBlock; MixUp; label-smoothing; Focal loss; GIoU; DIoU and CIoU

数据增强示例

image

Bag of specials

一系列提升网络性能的Module/necks/activation function/post-processing. 作者表示一个魔改后的SPP module对性能的提升很显著且运算差距不大。 RFB原文中性能提升尚可,但是运算时间的提升也是很显著的。

Squeeze-and-Excitation尽管FLOPs提升不大,但是在GPU推理时间的增加上是相对比较大的,而另外SAM性能提升稍微没那么显著,但是GPU运算时间差距不大。

Mish

pdf

启发与Swish Mish的计算

Mish作者指出建议使用更低的learning rate.

image

System Design

作者给出结论,为了提升性能,需要: 1. 输入图片分辨率应该比较大 2. 网络层数大,感受野大 3. 网络参数要足够多。

neck选择的是PANet

PANet

pdf image 一个比较好的简介在CSDN.

额外提升trick

Mosaic

数据增强trick,镶嵌;

如图: image

Self-Adversarital Training

新的训练及数据增强方法,一次训练需要两次Forward backward.第一个stage,神经网络会修改原图而不是网络权重(相当于对抗性地修改原图片).第二个stage,才正常训练神经网络。

Cross mini-Batch Normalization

CmBN启发于minibatch-Batchnorm(一个batch分几个mini-batch)以及Cross iteration BatchNorm image

Modified SAM and PAN

image

Over all

image

补充说明

Eliminate grid sensitivity

在预测2D bounding box中心点时,一个写法是,其中是预测的中心点与anchor的偏移。当接近0/1时,网络输出值会很大,不便于,学习,所以作者在sigmoid前面乘了一个大于1.0的factor。

Genetic algorithms for optimal hyperparameters

这个实现细节有待观察,意思是在training前期,使用GA选择最优的超参,比如学习率等。

实验对比各个trick

Bag of Freebies on Classifier

image 最终发现CutMix, Mosaic, Label Smoothing, Mish有用。

Bag of Freebies on Detector

image

个人观察来比较有效果而且特殊的是Mosaic有效,GA有效,GIoU或者CIoU有效。

最终经过选择与处理后,工程度极高的Yolov4在很高的FPS的基础上跑出了比较高的精确度(精度高于Yolov3, 速度快于EfficientDet)