這篇文章的貢獻如下:
- 我們設計了一個高效並且強大的目標檢測模型。它使每個人都可以使用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.....