一文了解YOLO-v4目标检测
一、YOLO-v4主要做了什么?
通俗的講,就是說這個YOLO-v4算法是在原有YOLO目標檢測架構的基礎上,采用了近些年CNN領域中最優秀的優化策略,從數據處理、主干網絡、網絡訓練、激活函數、損失函數等各個方面都有著不同程度的優化,雖沒有理論上的創新,但是會受到許許多多的工程師的歡迎,各種優化算法的嘗試。文章如同于目標檢測的trick綜述,效果達到了實現FPS與Precision平衡的目標檢測 new baseline。
①論文主要有以下三點貢獻:[1]
②作者把訓練的方法分成了兩類:
附:論文地址及主流框架的實現源碼[2]
二、網絡結構
目前主流two-stage檢測器的主要架構
- Input部分:Image,Patches,Images Pyramid(圖像金字塔)
- Backbone部分:VGG16,ResNet-50,SpineNet,EfficientNet-B0 / B7,CSPResNeXt50,CSPDarknet53
- neck部分:
- Additional blocks:SPP,ASPP,RFB,SAM
- Path-aggregation blocks:FPN,PAN,NAS-FPN,Fully-connected FPN,BiFPN,ASFF,SFAM
- Heads部分:
- Dense Predictions(one-stage):
- RPN,SSD,YOLO,RetinaNet (基于anchor)
- CornerNet,CenterNet,MatrixNet,FCOS(無anchor)
- Sparse Predictions(two-stages):
- Faster R-CNN,R-FCN,Mask R-CNN(基于anchor)
- RepPoints(無anchor)
- Dense Predictions(one-stage):
2. 下圖為 yolov4 網絡結構的采用的算法,其中保留了yolov3的head部分,修改了主干網絡為CSPDarknet53,同時采用了SPP(空間金字塔池化)的思想來擴大感受野,PANet作為neck部分。
Yolo-v4網絡架構圖
3. 下圖為yolov4在技術處理的思維導圖:
YOLO-v4的backbone與detector的主要技術實現
三、算法知識點相關釋義[4]
在文中是指那些能夠提高精度而不增加推斷時間的技術。
- 比如數據增廣的方法:圖像幾何變換、Cutout、grid mask等,
- 網絡正則化的方法:Dropout、Dropblock等,
- 類別不平衡的處理方法,
- 難例挖掘方法,
- 損失函數的設計等,
2.?BoS(bag of specials)
是指那些增加稍許推斷代價,但可以提高模型精度的方法。
- 比如增大模型感受野的SPP、ASPP、RFB等,
- 引入注意力機制Squeeze-and-Excitation (SE) 、Spatial Attention Module (SAM)等 ,
- 特征集成方法SFAM , ASFF , BiFPN等,
- 改進的激活函數Swish、Mish等,
- 或者是后處理方法如soft NMS、DIoU NMS等,
3.在目標檢測訓練中,通常對CNN的優化改進方法:
- 激活函數:ReLU,leaky-ReLU,parameter-ReLU,ReLU6,SELU,Swish或Mish
- bbox回歸loss函數:MSE,IoU,GIoU,CIoU,DIoU
- 數據增強:CutOut,MixUp,CutMix
- 正則化方法:DropOut,DropPath,Spatial DropOut或DropBlock
- 通過均值和方差對網絡激活進行歸一化:Batch Normalization (BN), Cross-GPU Batch Normalization (CGBN or SyncBN), Filter Response Normalization (FRN), orCross-Iteration Batch Normalization (CBN)
- 跨連接:Residual connections, Weightedresidual connections, Multi-input weighted residualconnections, or Cross stage partial connections (CSP)
4.CSPDarknet53
由論文可知,CSPDarknet53包含29個卷積層,725*725的感受野,27.6M參數。
backbone對比
5.關于CmBN
BN是對當前mini-batch進行歸一化。CBN是對當前以及當前往前數3個mini-batch的結果進行歸一化,本文提出的CmBN則是僅僅在這個Batch中進行累積。在消融實驗中,CmBN要比BN高出不到一個百分點。
CmBN
6.關于SAM
Attention機制中的CBAM, CBAM含有空間注意力機制和通道注意力機制,
SAM就是其中的空間注意力機制.
SAM
7.?PANet
PANet融合的時候使用的方法是Addition, 詳解見:CVPR 2018 PANet
YOLOv4算法將融合的方法由加法改為乘法。
PANet
?
四、算法的實驗效果
2.因為不同的算法公布時可能在不同的GPU上進行測試,作者根據不同的GPU(Maxwell/Pascal/Volta)分別列出了YOLOv4與其他算法的更詳細的比較,即Table 8、9、10,幀率大于等于30的用藍底標出。
圖一
圖二
圖三
YOLOv4 算法在實時目標檢測算法中精度最高,實現了精度和速度的最佳平衡。
參考
總結
以上是生活随笔為你收集整理的一文了解YOLO-v4目标检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在conda环境中pip使用清华源秒速安
- 下一篇: 重磅更新!YoloV4最新论文与源码!权