YOLOv4: Optimal Speed and Accuracy of Object Detection
作者是来自俄罗斯的Alexey大神
论文连接:https://arxiv.org/pdf/2004.10934.pdf
源码:https://github.com/AlexeyAB/darknet
摘要
本文假设通用特征包括:加权残差连接(WRC),跨阶段部分连接(CSP),跨小批量规范化(CmBN),自对抗训练(SAT)和Mish激活。本文使用了新功能:WRC,CSP,CmBN,SAT,误激活,马赛克数据增强,CmBN,DropBlock正则化和CIoU loss。对其中部分功能的结合是在coco数据集上的准确率达到43.5的AP(65.7%的AP50),V100速度65FPS。
1. 介绍
本文贡献:
a. 本文算法可以在1080ti或者2080ti的GPU上训练一个超快和超准的目标检测器。
b. 在检测训练期间,验证了最先进的bag-of-freebies和bag-of-specials方法。
c. 本文修改了最先进的方法,使其更加适合单GPU训练,包括:CBN,PAN,SAM等等。
2. 相关工作
2.1 目标检测模型
input:Image,Patches,Image Pyramid
backbone:
GPU:vgg,resnet,resnext,densenet,SpineNet,EfficientNet-B0/B7,CSPResNeXt50,CSPDarknet53
CPU:squeezenet,mobilenet,shufflenet等。
neck
additional blocks:SPP,ASPP,RFB,SAM
path-aggregation blocks:FPN,PAN,BiFPN,Nas-FPN,fully-connect FPN,ASFF,SFAM
head
Sparse Prediction(两阶段)
anchor based:r-cnn,fast-rcnn,faster-rcnn,mask-rcnn,r-fcn,Libra r-cnn。
anchor free:RepPoints
Dense Prediction(一阶段)
anchor based:rpn,yolo,ssd,RetinaNet
anchor free:CenterNet,CornerNet,FCOS,ExtremeNet,MatrixNet。
2.2 Bag of freebies
bag of freebias模块主要目的是通过提高训练成本,不增加推理成本的条件下提高检测的鲁棒性和准确率。
传统的图像数据增强有:亮度,对比度,分辨率,饱和度,噪声,图像形变,翻转,剪切,旋转,缩放等等。
图像数据增强和特征图数据增强
图像数据增强
cutout,mixup,cutmix,Mosaic
特征图数据增强
dropout,dropblock,dropconnect等等,以及使用GAN对图像增强。
样本不均衡问题
两阶段:多使用难例挖掘的方法解决样本不平衡的问题
一阶段:多使用focal loss的方法解决样本不平衡的问题
目标框检测中常用的loss函数
L1 loss,L2 loss,MSE,RMSE,Smooth L1 loss,IoU Loss,GIoU Loss,DIoU Loss,CIoU Loss。
2.3 Bag of specials
bag of specials模块主要目的增加少量的推理成本,但是能够显著提高目标检测的准确度。主要包括插件模块和后处理方法。
插件模块:主要增强模型中的某些属性
扩大接收域,引入注意力机制,增强特征集成能力等等。
扩大接收域方法:
SPP,ASPP,RFB
引入注意力机制:
channel-wise attention(代表SENet),point-wise attention(代表SAM)
特征集成:使用Skip-connect,hyper-column去融合低维物理特征和高维语义特征。
FPN,SFAM,ASFF,BiFPN,PANet,fully-connect FPN,Nas-FPN等
激活函数:
tanh函数,sigmod函数,ReLU函数,LReLU,PReLU,ReLU6,SELU,Swish,hard-Swish,Mish等
post-processing mothed:
NMS,Soft-NMS,DIoU NMS
3. Methodology
两个实时的神经网络:
GPU:CSPResNeXt50,CSPDarknet53
VPU:使用组卷积,EfficientNet-lite ,MixNet,GhostNet,MobileNetV3
3.1 selection of architecture
本文目的是找到一个网络分辨率,卷积层数量,参数量之间的平衡。
对比两个backbone:CSDResNeXt50,CSPDarknet53
对比多个block用以增加感受野:FPN,PAN,ASFF,BiFPN
不同的模型,分类效果好,检测效果不一定好,检测器需满足一下要求:
1. 更大的输入网络尺寸,能够检测小尺寸目标
2. 更多的网络层数,能够以更高的感受野覆盖输入网络的尺寸
3. 更多的参数,能够有更大的能力在单幅图像上检测不同尺寸的多个目标
感受野对于不同尺寸的影响,总结为如下方面:
1. Up to the object size,允许视角覆盖整个目标
2. Up to network size,允许覆盖目标周边的上下文信息
3. Exceeding the network size,增加图像点和最终激活之间的连接数量
本文使用了SPP,PANet,BOF等结合yolov3,形成了本文yolov4。
3.2 selection of BoF and BoS
为了改进目标检测的训练,CNN通常使用一下技巧:
Activations
ReLU,Leaky-ReLU,parametric-ReLU,ReLU6,SELU,Swish,Mish
Bounding box regression loss
MSE, IoU, GIoU, DIoU, CIoU,
Data augmentation
CutOut, MixUp, CutMix
Regularization method
Dropout, DropPath, Spatial DropOut, DropBlock
Skip-connections
Residual connections, Weighted residual connections, Multi-input weighted residual connections, Cross stage partial connections(CSP)
PReLU和SELU比较难训练,ReLU6又是针对量化网络设计,所以被舍弃,本文使用了dropBlock。
3.3 Additional improvements
为了使得设计的检测器能够适应单GPU训练,进行了额外的设计和提高。
1. 新的数据增强算法,Self-Adversarial Training(SAT)
2. 选择最佳超参数,genetic algorithms(遗传算法)
3. 修改已存在的方法,使其更加有效地满足训练和检测,修改了SAM,PAN,CmBN
3.4 YOLOV4
YOLOV4组成如下:
backbone:CSPDarknet53
Neck:SPP,PAN
Head:YOLOv3
YOLOV4使用了:
BOF for backbone:CutMix,Mosaic data augmentation,DropBlock regularization,Class label smoothing
BOS for backbone:Mish activation, Cross-stage partial connections (CSP), Multiinput weighted residual connections (MiWRC)
BOF for detector:CIoU-loss, CmBN, DropBlock regularization, Mosaic data augmentation, Self-Adversarial Training, Eliminate grid sensitivity, Using multiple anchors for a single ground truth, Cosine annealing scheduler , Optimal hyperparameters, Random training shapes
BOS for detector:Mish activation, SPP-block, SAM-block, PAN path-aggregation block, DIoU-NMS
4. Experiment
测试分类数据集:mageNet (ILSVRC 2012 val) dataset
测试检测数据集:MS COCO (test-dev 2017) dataset
4.1 Experimental setup
4.2 Influence of different features on Classifier training
从实验中可以发现单纯分类来说,CSPResNeXt-50效果好于CSPDarknet-53。
4.3 Influence of different features on Detector training
注:具体表中第一行代表什么可从原论文中查看。
4.4 Influence of different backbones and pretrained weightings on Detector training
从实验中可以发现检测角度来说,CSPDarknet-53的效果好于CSPResNeXt-50。
4.5 Influence of different mini-batch size on Detector training
从表中发现,大的mini-batch对最终结果有一定的益处。
Figure 8: Comparison of the speed and accuracy of different object detectors. (Some articles stated the FPS of their detectors for only one of the GPUs: Maxwell/Pascal/Volta)