目標檢測算法-YOLO算法縱向對比理解html
DeepLearning的目標檢測任務主要有兩大類:一段式,兩段式git
其中兩段式主要包括RCNN、FastRCNN、FasterRCNN爲表明,github
一段式主要包括YOLO,SSD等算法算法
因爲一段式直接在最後進行分類(判斷所屬類別)和迴歸(標記物體的位置框框),因此如今一段式大有發展。網絡
YOLO v1架構
論文地址:You Only Look Once: Unified, Real-Time Object Detection性能
YOLOv1是one-stage detector鼻祖、real-time detector鼻祖。學習
所謂one-stage,即不需額外一個stage來生成RP,而是直接分類迴歸出output:優化
YOLOv1直接將整張圖片分紅 S×S的小格子區域,每一個小格子區域生成 B個bbox(論文中B=2),每一個bbox用來預測中心點落在該格的物體。可是每一個格子生成的全部B個bbox共享一個分類scoreurl
YOLOv1最後一層的輸出是一個S×S×(B∗5+C) 的tensor
其中,S爲每維的格子段數,B爲每格生成的bbox數,C爲前景類別數。
YOLO v1包括24個conv layer + 2 fc layer
YOLOv1採用了山寨版的GoogleNet做爲backbone,而不是VGG Net;
在第24層時,每一個單點對應原圖的感覺野達到了782×782。而原圖只有448×448,覆蓋了整張原圖。也就意味着,
到了第24層的時候,每一個單點都能看到整張原圖。更不要提第2五、26層是兩個fc操做了。
另外,快速版本的YOLO v1:Fast YOLOv1=9×Conv+2×FC。速度更快,但精度也略低。
這裏提供一個感覺野計算神器:
YOLO v2
論文地址:YOLO9000: Better, Faster, Stronger
2.0版本的算法做者發明的一系列騷操做(Dimension Clusters、Direct location prediction、Multi-Scale Training、DarkNet-19)
Dimension Clusters (維度聚類) 。通過對VOC數據集和COCO數據集中bbox的k-means聚類分析,將anchor機制中本來慣用的 9 anchor 法則 刪減爲僅保留最常出現的 5 anchor 。其中,狹長型的anchor是被保留的主體。
Direct location prediction (直接位置預測) 。用新的位置預測算法來縮小參數範圍,使之更容易學習,也使得網絡更加穩定。
引入Batch Normalization,漲0.2。
訓練分類的階段,每10個epoch就在448×448的高像素圖片上fine-tune一下,使之能更好地適應高像素的輸入圖像。該操做對mAP漲0.4。
拋棄後段的FC層,改用anchor機制來預測bbox。該操做雖然使得mAP從69.5降至69.2,可是召回率從81暴漲至88。
Dimension Clusters (維度聚類) 。通過對VOC數據集和COCO數據集中bbox的k-means聚類分析,將anchor機制中本來慣用的 9 anchor 法則 刪減爲僅保留最常出現的 5 anchor 。其中,狹長型的anchor是被保留的主體。
新的 encode/decode機制 —— Direct location prediction (直接位置預測) 。號稱用新的位置預測算法來縮小參數範圍,使之更容易學習,也使得網絡更加穩定。然而如今看來並無什麼影響力,你們主流用的仍是Faster R-CNN中設計好的那一套encode/decode機制。
在 26×26 size層設置了通道層接至 13×13 size層。號稱保留了更多的位置信息,從而提高細粒度分類的能力。本質上即爲single-scale上處理two-scale的feature map信息。該操做漲點1。
Multi-Scale Training (多尺度訓練) 。每10個batch就在 320,352,...,608(均爲32整數倍)320,352,...,608(均爲32整數倍) 中隨機選擇一個新的input size,該操做聽說能鍛鍊對多尺度input的預測能力。我的感受這就是集成學習。
做者嫌棄主流backbone VGG-16計算量太大(224×224的圖像須要計算30.69 billion次浮點運算),因而本身發明了DarkNet-19出來。
softmax嵌套softmax,從而實現分級語法樹,帶有分級語法樹的YOLOv2,進化爲了YOLO9000
YOLO v2結構
YOLOv2的網絡架構,22卷積層,global average pooling替代了FC(全鏈接層)
YOLO v3
論文地址:YOLOv3: An Incremental Improvement
backbone從darknet-19玩到了darknet-53
該文章繼承了YOLOv2的bbox預測任務的方法,對bbox分類任務進行了修改 (用簡單的logistic替換下softmax)
YOLO v3結構
且大大改善了YOLO以前的一大弊病:小物體漏檢。使之在APs這一單項上可以達到和 FPN 同級別,且僅遜於RetinaNet的程度
YOLO v4
論文地址:YOLOv4: Optimal Speed and Accuracy of Object Detection
代碼地址:https://github.com/AlexeyAB/darknet
做者對比了 YOLOv4 和當前最優目標檢測器,發現 YOLOv4 在取得與 EfficientDet 同等性能的狀況下,速度是 EfficientDet 的二倍!此外,與 YOLOv3 相比,新版本的 AP 和 FPS 分別提升了 10% 和 12%。筆者剛擼完EfficientDet,結果更牛又出來了。。。
做者創新之處
加權殘差鏈接(WRC)
Cross-Stage-Partial-connection,CSP
Cross mini-Batch Normalization,CmBN
自對抗訓練(Self-adversarial-training,SAT)
Mish 激活(Mish-activation)
Mosaic 數據加強
DropBlock 正則化
CIoU 損失
YoloV4 的基本目標是提升生產系統中神經網絡的運行速度,同時爲並行計算作出優化,而不是針對低計算量理論指標(BFLOP)進行優化。YoloV4 的做者提出了兩種實時神經網絡:
對於 GPU,研究者在卷積層中使用少許組(1-8 組):CSPResNeXt50 / CSPDarknet53;
對於 VPU,研究者使用了分組卷積(grouped-convolution),但避免使用 Squeeze-and-excitement(SE)塊。具體而言,它包括如下模型:EfficientNet-lite / MixNet / GhostNet / MobileNetV3
YOLOv4 包含如下三部分:
backbone網絡:CSPDarknet53
Neck:SPP、PAN
Head:YOLOv3
具體而言,YOLO v4 使用了:
用於骨幹網絡的 Bag of Freebies(BoF):CutMix 和 Mosaic 數據加強、DropBlock 正則化和類標籤平滑;
用於骨幹網絡的 Bag of Specials(BoS):Mish 激活、CSP 和多輸入加權殘差鏈接(MiWRC);
用於檢測器的 Bag of Freebies(BoF):CIoU-loss、CmBN、DropBlock 正則化、Mosaic 數據加強、自對抗訓練、消除網格敏感性(Eliminate grid sensitivity)、針對一個真值使用多個錨、餘弦退火調度器、優化超參數和隨機訓練形狀;
用於檢測器的 Bag of Specials(BoS):Mish 激活、SPP 塊、SAM 塊、PAN 路徑聚合塊和 DIoU-NMS。
爲了使檢測器更適合在單個 GPU 上進行訓練,研究者還作出瞭如下額外的設計與改進:
提出新型數據加強方法 Mosaic 和自對抗訓練(SAT);
在應用遺傳算法時選擇最優超參數;
新型數據加強方法 Mosaic 混合了 4 張訓練圖像,而 CutMix 只混合了兩張輸入圖像。
自對抗訓練(SAT)也是一種新的數據加強方法,它包括兩個階段。第一個階段中,神經網絡更改原始圖像;第二階段中,訓練神經網絡以正常方式在修改後的圖像上執行目標檢測任務。
CmBN 是 CBN 的改進版,它僅收集單個批次內 mini-batch 之間的統計數據。
還將 SAM 從空間注意力機制(spatial-wise attention)修改成點注意力機制(point-wise attention),並將 PAN 中的捷徑鏈接替換爲級聯:
YOLO v4 與其餘 SOTA 目標檢測器的對比結果以下圖示。從圖上能夠看出,YOLOv4 位於帕累托最優曲線上,並在速度和準確性上都優於最快和最精準的檢測器。
reference:
[1] https://blog.csdn.net/jningwei/article/details/80010567
[2] https://zhuanlan.zhihu.com/p/73606306?from_voters_page=true
[3] https://cloud.tencent.com/developer/article/1347518
[4] https://blog.csdn.net/jningwei/article/details/80022603
[5] https://tech.sina.com.cn/roll/2020-04-24/doc-iircuyvh9580271.shtml