【論文學習記錄】YOLOv4: Optimal Speed and Accuracy of Object Detection

YOLOv4新鮮出爐,今天終於有點時間看一看論文,Alexey大神的作品,論文地址:YOLOv4: Optimal Speed and Accuracy of Object Detection

這篇文章相當多的tricks,作者應該是花費了大量的時間做了大量的實驗得出的結論。因爲我一直在關注Alexey在github上的更新,很多內容github上已經早於論文更新了。怎麼說呢,這麼多技巧還是會因不同的數據集而異的,我之前在我自己的數據集上已經嘗試多一些tricks,有一些確實有效,有一些在COCO上有效,但在自己的數據集上不見得有效。

不得不說Alexey大神真牛,幾年一直在更新darknet,做了很多的改進。這次YOLOv4這篇論文,裏面很多的思路還是非常值得學習的,至少爲我們訓練網絡提供了很多思路。


先上圖看一下逆天的性能吧。

論文的主要目標是爲生產系統設計一個運算速度快的目標檢測器,並行計算優化,而不是設計一個低BFLOP網絡。因此我覺得論文是更傾向於工程上的應用,這樣的作品對我們engineer來說誰不愛呢!

論文主要有以下三點貢獻:

  1. 開發了一個高效而強大的模型,使得任何人都可以使用一張1080Ti或者2080Ti GPU去訓練一個超級快速和精確的目標檢測器。
  2. 驗證了一系列state-of-the-art的目標檢測器訓練方法的影響。
  3. 修改了state-of-the-art方法,使得他們在使用單個GPU進行訓練時更加有效和適配,包括CBN,PAN,SAM等。

作者將這些訓練的方法分成了兩類:

  1. Bag of freebies:只改變訓練策略或者只增加訓練成本。數據增強就屬於這一類。
  2. Bag of specials:插件模塊和後處理方法,它們僅僅增加一點推理成本,但是可以極大地提升目標檢測的精度。

對於基礎網絡的選擇,作者通過實驗發現,在ImageNet數據集上CSPResNext50的表現優於CSPDarknet53,而在MS COCO數據集上CSPDarknet53的表現優於CSPResNext50。

作者認爲一個檢測器需要:

  • 更大的輸入網絡尺寸-檢測更多的小尺寸目標
  • 更多的層-隨着輸入網絡尺寸的增大而獲得更大的感受野
  • 更多的參數-更大的模型容量來檢測單幅圖像中不同尺寸的目標

基於以上,作者認爲應該選擇CSPDarknet53作爲檢測器的backbone。爲了增大感受野,作者還將SPP模型加入了CSPDarknet53中。並且使用PANet作爲參數聚合的方法代替YOLOv3中使用的FPN。最終YOLOv4的結構是CSPDarknet53 backbone + SPP + PANet + YOLOv3 head。

爲了使檢測器更適合在單GPU上訓練,作者還做了如下設計和改進:

  • 引入了新的數據增加方法Mosaic和Self-Adversarial Training(SAT)
  • 使用遺傳算法選擇最優的超參數
  • 修改一些已有的方法使得訓練和檢測更加高效,包括SAM,PAN,Cross mini-Batch Normalization(CmBN)

Mosaic是一種新的數據增強方法,它融合四張訓練圖像。除此之外,在batch normalization計算每一層激活數據的時候是包含這四幅不同的圖像,這極大的減小mini-batch的大小。

Self-Adversarial Training(SAT)也是一種新的數據增強方法,它作用於兩個前向、反向傳播階段。第一階段神經網絡改變原始圖像而非網絡權重,第二階段神經網絡使用這個改變的圖像來訓練檢測器。

關於CmBN的修改。

SAM的修改。

PAN的修改, add換成concat。

YOLOv4使用瞭如下方法:

  • Bag of Freebies(BoF) for backbone:CutMix和Mosaic數據增強,DropBlock正規化,Class label smoothing
  • Bag of Specials(BoS) for backbone:Mish激活函數,Cross-stage partial connections(CSP),Multi-input weighted residual connections(MiWRC)
  • Bag of Freebies(BoF) for detector:CIoU-loss,CmBN,DropBlock正規化,Mosaic數據增強,Self-Adversarial Training,Eliminate grid sensitivity,使用多個anchors對應一個groundtruth,Cosine annealing scheduler,Optimal hyperparameters,Random training shapes
  • Bag of Specials(BoS) for detector:Mish激活函數,SPP-block,SAM-block,PAN path-aggregation block,DIoU-NMS

關於實驗

在ImageNet圖像分類實驗中,默認的超參數是:

  • training steps:8000,000
  • batch size:128
  • mini-batch size:32
  • polynomial decay learning rate:initial learning rate 0.1
  • warm-up steps:1000
  • momentum:0.9
  • weight decay:0.005
  • BoF實驗中,額外增加50%的training steps

在MS COCO目標檢測實驗中,默認的超參數是:

  • training steps:500,500
  • step decay learning rate:0~399,999 steps ,learning rate 0.1;400,000~449,999 steps,learning rate 0.01;450,000~500,500 steps, learning rate 0.001
  • momentum:0.9
  • weight decay:0.0005
  • batch size:64
  • mini-batch size:8 or 4

除了使用遺傳算法尋找最優超參數的實驗,其他全部使用默認參數。

不同特徵對分類器訓練的影響。

不同特徵對檢測器訓練的影響。

不同backbone和預訓練權重對檢測器訓練的影響。

不同mini-batch size對檢測器訓練的影響。

加入了BoF和BoS訓練策略之後,mini-batch size對檢測器的性能幾乎沒有影響了。

 

 

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