yolov4論文總結

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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章