YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS

YOLOv4在速度和準確率上都十分優異,作者使用了大量的trick,論文也寫得很紮實,在工程還是學術上都有十分重要的意義,既可以學習如何調參,也可以瞭解目標檢測的trick。  


論文: YOLOv4: Optimal Speed and Accuracy of Object Detection

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  • 論文地址:https://arxiv.org/abs/2004.10934
  • 論文代碼:https://github.com/AlexeyAB/darknet

Introduction


YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  論文提出YOLOv4,從圖1的結果來看,相對於YOLOv3在準確率上提升了近10個點,然而速度並幾乎沒有下降,論文主要貢獻如下:

  • 提出速度更快、精度更好的檢測模型,僅需要單張1080Ti或2080Ti即可完成訓練。
  • 驗證了目前SOTA的Bag-ofFreebies(不增加推理成本的trick)和Bag-of-Specials(增加推理成本的trick)的有效性。
  • 修改了SOTA方法,讓其更高效且更合適地在單卡進行訓練,包括CBN、PAN、SAM等。

Methodology


Selection of architecture

  對檢測模型來說,分類最優的主幹網絡不一定是最合適的,適用於目標檢測的主幹網絡需滿足以下要求:

  • 高輸入分辨率,提高小物體的檢測準確率。
  • 更多的層,提高感受域來適應輸入的增加。
  • 更多的參數,提高檢測單圖多尺寸目標的能力。
YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  理論來講,應該選擇感受域更大且參數了更大的模型作為主幹網絡,表1對比了三種SOTA主幹網絡的,可以看到CSPDarknet53的感受域、參數量以及速度都是最好的,故選其為主幹網絡。

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  另外,使用不同大小的感受域有以下好處:

  • 匹配物體大小,可以觀察完整的物體。
  • 匹配網絡大小,可以觀察物體的上下文信息。
  • 超過網絡的大小,增加點與最終激活之間的連接數。

  為此,YOLOv4加入了SPP block,能夠顯著地改善感受域大小,而且速度幾乎沒有什麼下降。

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  另外,使用PANet替換FPN來進行多通道特徵的融合。   最終,YOLOv4選擇CSPDarknet53作為主幹網絡,配合SPP模塊,PANet通道融合以及YOLOv3的anchor based head。

Selection of BoF and BoS

  目前比較有效的目標檢測提升的trick:

  • 激活函數: ReLU, leaky-ReLU, parametric-ReLU, ReLU6, SELU, Swish, or Mish。
  • bbox迴歸損失: MSE, IoU, GIoU, CIoU, DIoU
  • 數據增強: CutOut, MixUp, CutMix
  • 正則化方法: DropOut, DropPath, Spatial DropOut, or DropBlock
  • 歸一化方法: Batch Normalization(BN), Cross-GPU Batch Normalization(CGBN or SyncBN), Filter Response Normalization (FRN), or Cross-Iteration Batch Normalization(CBN)

  由於PReLU和SELU難以訓練,並且ReLU6是專門為量化網絡設計的,從激活函數中去除這幾種。而在正則化方法中,DropBlock的效果是最優的。對於歸一化方法的選擇,由於需要單卡訓練,因此不考慮SyncBN。

Additional improvements

  為了讓模型能更好地在單卡進行訓練,做了以下的改進:

  • 提出新的數據增強方法Mosaic和Self-Adversarial Training (SAT)。
  • 使用遺傳算法選擇最優的超參數。
  • 修改目前的方法來讓訓練和檢測更有效,包括改進的SAM,改進的PAN以及 Cross mini-Batch Normalization (CmBN)
YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  Mosaic是新的數據增強方法,同時融合4張訓練圖片,CutMix僅融合2張圖片,使得目標的檢測範圍超出其正常的上下文,另外BN每次統計4張圖片,這能顯著地減少對大mini-batch的需要。   Self-Adversarial Training(SAT)也提供新的數據增強手段,分為兩個前向反向階段。在第一階段,先對圖片進行前向計算,然後通過反向傳播修改圖片的像素,注意這裡不修改網絡的權重,通過這種方式,網絡進行了一次對抗式訓練,製造出沒有目標的假象。在第二階段,對修改後的圖片進行正常的訓練。

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  CmBN是改進版的CBN,僅統計single-batch中的mini-batch,如圖4所示,假設t-3~t為single-batch中的mini-batch,若干single-batch中包含單個mini-batch,則CmBN與BN一樣。

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  將SAM從spitial-wise attention修改為point-wise attention,即輸入和輸出的大小一致。

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  將PAN的shortcut連接方法,從相加改為concate。

YOLOv4

  YOLOv4包含:

  • Backbone:CSPDarknet53
  • Neck:SPP,PAN
  • Head:YOLOv3

  YOLO v4使用:

  • 主幹網絡的BoF(Bag of Freebies):CutMix和Mosaic數據增強, DropBlock正則化, 標籤平滑(Class label smoothing)
  • 主幹網絡的BoS(Bag of Specials):Mish激活, Cross-stage partial connections (CSPNet), Multiinput weighted residual connections(MiWRC)
  • 檢測端的BoF(Bag of Freebies):CIoU-loss, CmBN, DropBlock正則化, Mosaic數據增強, Self-Adversarial Training, 去除邊框敏感性(Eliminate grid sensitivity,見實驗部分的解釋), 多anchor迴歸(之前只選最大的), 餘弦退火學習率調整(Cosine annealing scheduler), 使用遺傳算法最優化超參數, 隨機輸入大小
  • 檢測端的BoS(Bag of Specials):Mish激活, SPP-block, SAM-block, PAN通道融合, DIoU-NMS

Experiments


Influence of different features on Classifier training

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  CutMix、Mosaic數據增強和標籤平衡(Class label smoothing)比較有效。

Influence of different features on Detector training

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  表4對比的BoF如下:

  • S:去除邊框敏感性,,之前的中心點回歸與anchor的邊相關,當需要趨近或時,需要很大的,為此對sigmoid添加一個大於1的因子來減少這個影響
  • M:Mosaic數據增強
  • IT:IoU閾值,使用大於IoU閾值的anchor進行訓練,之前好像只選最大的
  • GA:使用遺傳算法進行最優超參選擇
  • LS:標籤平滑
  • CNB:論文提出的CmBN
  • CA:使用餘弦退火(Cosine annealing scheduler)進行學習率下降
  • DM:動態mini-batch大小,小分辨率時增加mini-batch
  • OA:使用最優的anchors
  • GIoU, CIoU, DIoU, MSE:bbox損失函數
YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  論文也對比了檢測端的BoS,從結果來看,SPP、PAN和SAM同時使用時效果最好。

Influence of different backbones and pretrained weightings on Detector training

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  論文研究了不同主幹網絡對檢測準確率的影響,可以看到CSPDarknet53能更好地適應各種改進。

Influence of different mini-batch size on Detector training

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  論文對比了不同的mini-batch大小下的檢測準確率,在加入BoF和BoS訓練策略後,mini-batch的改變幾乎對準確率沒有影響。

Results

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

YOLOv4: 雖遲但到,大型調優現場,43mAP/83FPS | 論文速遞

  表8、9和10分別為Maxwell GPU、Pascal GPU和Volta GPU上的實驗結果,從大量的實驗對比來看,YOLOv4在速度和準確率上都十分耐看。

CONCLUSION


  YOLOv4在速度和準確率上都十分優異,作者使用了大量的trick,論文也寫得很紮實,在工程還是學術上都有十分重要的意義,既可以學習如何調參,也可以瞭解目標檢測的trick。

     

如果本文對你有幫助,麻煩點個贊或在看唄~ 更多內容請關注 微信公眾號【曉飛的算法工程筆記】


分享到:


相關文章: