【YOLO V4】目标检测模型之YOLO V4框架
这篇文章的贡献如下:
- 我们设计了一个高效并且强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 TiGPU来训练一个超级快速和精确的目标探测器。
- 我们验证了在检测器训练过程中,最先进的“Bag of freebies(免费包)”和“Bag of specials(特价包)” 的目标检测方法的影响。
- 我们修改了当前最先进的一些方法(包括CBN、PAN、SAM etc.),使其更有效,更适合于单GPU训练。
- 总之,在速度差不多的情况下,精度最好;在精度差不多的情况下,速度最好。
YOLOv4 使用了以下特征组合:
- 加权残差连接(Weighted-Residual-Connections,WRC)
- 跨阶段部分连(Cross-Stage-Partial-connection,CSP)
- 跨小批量标准化(Cross mini-Batch Normalization,CmBN)
- 自对抗训练(Self-adversarial-training,SAT)
- Mish **(Mish-activation)
- Mosaic 数据增强
- DropBlock 正则化
- CIoU 损失
2.4.1 目标检测分析
根据上图,对于目标检测器的结构分类如下:
Input |
Image, Patches, Image Pyramid |
|
Backbones |
VGG16 [68], ResNet-50 [26], SpineNet[12], EficientNet-B0/B7 [75], CSPResNeXt50 [81],CSPDarknet53 [81] |
|
Neck |
Additional blocks |
SPP [25], ASPP [5], RFB[47], SAM [85] |
Path-aggregation blocks |
FPN [44], PAN [49],NAS-FPN [17],Fully-connected FPN, BiFPN[77], ASFF [48], SFAM [98] |
|
Heads |
Dense Prediction (one-stage) |
RPN [64], SSD [50], YOLO [61], RetinaNet[45] (anchor based),CornerNet [37], CenterNet [13], MatrixNet[60], FCOS [78] (anchor free) |
Sparse Prediction (two-stage) |
Faster R-CNN [64], R-FCN [9], Mask R-CNN [23] (anchor based),RepPoints [87] (anchor free) |
2.4.2 调优手段
作者把所有的调优手段分为了两大类“Bag of freebies(免费礼包)”和“Bag of specials(特价包)”
免费包(Bag of freebies,BOF)
是指在离线训练阶段为了提升精度而广泛使用的调优手段,而这种技巧并不在预测中使用,不会增加预测时间。即:只是改变训练策略或者增加训练代价的方法。
数据类 |
数据增强:random erase/CutOut/hide-and-seek/grid mask/MixUp/CutMix/GAN |
数据分布:two-stage的有example mining,one-stage的有focal loss |
|
特征图类 |
DropOut/DropConnect/DropBlock |
边界框回归损失 |
MSE/ IoU loss/l1、l2 loss/GIoU loss/DIoU loss/CIoU loss |
特价包(Bag of Specials,BOS)
对于那些仅增加少量推理成本,却能显著提高目标检测精度的插件模块和后处理方法,称之为“特价包”。插件模块是为了提高模型中的某一属性,扩大感受野、引入注意力机制、增强特征集成能力和**函数;后处理是为了筛选模型预测结果。
插件模块 |
增大感受野 |
SPP/ASPP/RFB |
注意力 |
Squeeze-and-Excitation (SE)/Spa-tial Attention Module (SAM) |
|
特征集成 |
SFAM/ASFF/BiFPN |
|
**函数 |
ReLu/LReLU/PReLU/ReLU6/Scaled ExponentialLinear Unit (SELU)/Swish/hard-Swish/Mish |
|
后处理类 |
soft NMS/DIoU NMS |
TODO.....