YOLOv4(暫不完整 持續更新)

YOLOv4: Optimal Speed and Accuracy of Object Detection

論文:https://arxiv.org/abs/2004.10934

代碼:https://github.com/AlexeyAB/darknet

論文中提到,在COCO數據集上,YOLOv4比YOLOv3提升了10%的AP和12%的fps,所以YOLOv4更加快速、精準。

達到這種效果,主要原因是YOLOv4將很多單獨的優化算法做了集成,包括:

  • Weighted-Residual-Connections (WRC)
  • Cross-Stage-Partial-connections (CSP)-------用來作backbone
  • Cross mini-Batch Normalization (CmBN)
  • Self-adversarial-training (SAT)
  • Mish-activation
  • Mosaic data augmentation
  • CmBN
  • DropBlock regularization
  • CIoU loss

本文的主要貢獻如下:

1. 提出了一種高效而強大的目標檢測模型。它使每個人都可以使用1080 Ti或2080 Ti GPU 訓練超快速和準確的目標檢測器(牛逼!)。

2. 在檢測器訓練期間,驗證了SOTA的Bag-of Freebies 和Bag-of-Specials方法的影響。

3. 改進了SOTA的方法,使它們更有效,更適合單GPU訓練,包括CBN [89],PAN [49],SAM [85]等。文章將目前主流的目標檢測器框架進行拆分:input、backbone、neck 和 head

總結一下YOLOv4框架:

  • Backbone:CSPDarknet53

  • Neck:SPP,PAN

  • Head:YOLOv3

關於CSPNet的理解可以參考  https://zhuanlan.zhihu.com/p/101909017

其中YOLOv4用到相當多的技巧:

  • 用於backbone的BoF(bag of freebies):CutMix和Mosaic數據增強,DropBlock正則化,Class label smoothing

  • 用於backbone的BoS(bag of specials):Mish激活函數,CSP,MiWRC

  • 用於檢測器的BoF:CIoU-loss,CmBN,DropBlock正則化,Mosaic數據增強,Self-Adversarial 訓練,消除網格敏感性,對單個ground-truth使用多個anchor,Cosine annealing scheduler,最佳超參數,Random training shapes

  • 用於檢測器的Bos:Mish激活函數,SPP,SAM,PAN,DIoU-NMS

看看YOLOv4部分組件:

從論文中的參數調節、不同實驗的對比就可以證明作者的厲害

參考:https://zhuanlan.zhihu.com/p/135980432

 

在github上下載了壓縮包,用本地視頻做了檢測,檢測的網絡結構如下所示

YOLOv4的backbone應該是到了101行(我現在不明白YOLOv4的backbone   CSPDarknet53結構是什麼樣的??),因爲shortcut到了101行,後邊加的網絡層是用來做upsample、以及繼續route。

[YOLOv4作者訓練好的權重和預訓練模型的百度網盤下載地址:鏈接:https://pan.baidu.com/s/1FNldwUemAnVjUtP9Xrl3PQ
提取碼:p6mk]

 

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