FPN來做目標檢測,效果這麼強!YOLOF開源:只需要看一層特徵|CVPR2021

點擊下面卡片關注AI算法與圖像處理”,選擇加"星標"或“置頂”

重磅乾貨,第一時間送達

作者丨happy
審稿丨鄧富城
編輯丨極市平臺

導讀

 

曠視科技&中科院對單階段目標檢測中的FPN進行了重思考,採用一級特徵進行檢測替換複雜的特徵金字塔來解決優化問題,提出了YOLOF。該方法取得了與RetinaNet相當的性能且推理速度快2.5倍。

paper: https://arxiv.org/abs/2103.09460

code: https://github.com/megvii-model/YOLOF

本文是曠視科技&中科院孫劍團隊在單階段目標檢測方面一次突破性的創新,它針對單階段目標檢測中的FPN(特徵金字塔)進行了深入的分析並得出:FPN最重要的成分是分而治之的處理思路緩解了優化難問題。針對FPN的多尺度特徵、分而治之思想分別提出了Dilated編碼器提升特徵感受野,Uniform Matching進行不同尺度目標框的匹配;結合所提兩種方案得到了本文的YOLOF,在COCO數據集上,所提方案取得了與RetinaNet相當的性能且推理速度快2.5倍;所提方法取得了與YOLOv4相當的性能且推理速度快13%。

Abstract

本文對單階段目標檢測中的FPN進行了重思考並指出FPN的成功之處在於它對目標檢測優化問題的分而治之解決思路而非多尺度特徵融合。從優化的角度出發,作者引入了另一種方式替換複雜的特徵金字塔來解決該優化問題:從而可以僅僅採用一級特徵進行檢測。基於所提簡單而有效的解決方案,作者提出了YOLOF(You Only Look One-level Feature)。

YOLOF有兩個關鍵性模塊:Dilated Encoder與Uniform Matching,它們對最終的檢測帶來了顯著的性能提升。COCO基準數據集的實驗表明了所提YOLOF的有效性,YOLOF取得與RetinaNet-FPN同等的性能,同時快2.5倍;無需transformer層,YOLOF僅需一級特徵即可取得與DETR相當的性能,同時訓練時間少7倍。以 大小的圖像作爲輸入,YOLOF取得了44.3mAP的指標且推理速度爲60fps@2080Ti,它比YOLOv4快13%。

本文的貢獻主要包含以下幾點:

  • FPN的關鍵在於針對稠密目標檢測優化問題的“分而治之”解決思路,而非多尺度特徵融合;
  • 提出了一種簡單而有效的無FPN的基線模型YOLOF,它包含兩個關鍵成分(Dilated Encoder與Uniform Matching)以減輕與FPN的性能差異;
  • COCO數據集上的實驗證明了所提方法每個成分的重要性,相比RetinaNet,DETR以及YOLOv4,所提方法取得相當的性能同時具有更快的推理速度。

Introduction

本文主要針對單階段檢測器中的FPN的兩個重要因素進行了研究,作者以RetinaNet爲基線,通過解耦多尺度特徵融合分而治之進行實驗設計。作者將FPN視作多輸入多輸出編碼器(MiMo,見下圖),它對骨幹網絡的多尺度特徵進行編碼併爲後接的解碼器提供多尺度特徵表達。

爲進行更好的對比分析,作者設計了MiMo、SiMo、MiSo、SiSo等四種類型的解碼器,見上圖。令人驚豔的是:SiMo編碼器僅僅採用C5特徵且不進行特徵融合即可取得與MiMo編碼器相當的性能,且性能差異小於1mAP。相反,MiSo編碼器的性能則出現了顯著下降。這個現象意味着:

  • C5包含了充分的用於檢測不同尺度目標的上下文信息,這促使SiMo編碼器可以取得與MiMo相當的結果;
  • 多尺度特徵融合帶來的收益要遠小於分而治之帶來的收益,因此多尺度特徵融合可能並非FPN最重要的影響因素;相反,分而治之將不同尺度的目標檢測進行拆分處理,緩解了優化問題。

Cost Analysis of MiMo Encoders

如前所述FPN的成功在於它對於優化問題的解決思路,而非多尺度特徵融合。爲說明這一點,作者對FPN(即MiMo)進行了簡單的分析。

以RetinaNet-ResNet50爲基線方案,作者將檢測任務的流水線分解爲三個關鍵部分:骨幹網絡、Encoder以及Decoder。下圖給出了不同部分的Flops對比,可以看到:

  • 相比SiMoEncoder,MiMoEncoder帶來顯著的內存負載問題(134G vs 6G);
  • 基於MiMoEncoder的檢測器推理速度明顯要慢於SiSoEncoder檢測器(13FPS vs 34FPS);
  • 這個推理速度的變慢主要是因爲高分辨率特徵部分的目標檢測導致,即C3特徵部分。

基於上述分析,作者期望尋找另一種解決優化問題的方案,且保持檢測器簡單、精確、快速。

Method

受上述目標驅動以及新發現:C5特徵包含足夠的信息進行大量目標檢測,作者嘗試用簡單的SiSoEncoder替換複雜的MiCoEncoder。但是,這種簡單的替換會帶來顯著性的性能下降(35.9mAP vs 23.7mAP),見上圖。對於這種情況 ,作者進行了仔細分析得出SiSoEncoder性能下降的兩個重要原因:

  • The range of scales matching to the C5 feature's receptive field is limited
  • The imbalance problem on positive anchors

接下來,作者將針對這兩個問題進行討論並提出對應的解決方案。

Limited Scale Range

識別不同尺寸的目標是目標檢測的一個根本挑戰。一種常見的方案是採用多級特徵。在MiMo與SiMoEncoder檢測器中,作者構建了不同感受野的多級特徵(C3-C7)並在匹配尺度上進行目標檢測。然而,單級特徵破壞了上述遊戲規則,在SiSoEncoder中僅有一個輸出特徵。

以下圖(a)爲例,C5特徵感受野僅僅覆蓋有限的尺度範圍,當目標尺度與感受野尺度不匹配時就導致了檢測性能的下降。爲使得SiSoEncoder可以檢測所有目標,作者需要尋找一種方案生成具有可變感受野的輸出特徵,以補償多級特徵的缺失。

在C5特徵的基礎上,作者採用堆疊擴張卷積方式提升其感受野。儘管其覆蓋的尺度範圍可以在一定程度上擴大,但它仍無法覆蓋所有的目標尺度。以上圖(b)爲例,相比圖(a),它的感受野尺度朝着更大尺度進行了整體的偏移。然後,作者對原始尺度範圍與擴大後尺度範圍通過相加方式進行組合,因此得到了覆蓋範圍更廣的輸出特徵,見上圖(c)。

上圖給出了採用本文所提SiSoEncoder結構示意圖,作者稱之爲Dilated Encoder。它包含兩個主要成分:Prejector與Residual Block。投影層採用 卷積,然後採用 卷積提取上下文語義信息(作用類似FPN);然後堆疊四個不同擴張因子的殘差模塊以生成多感受野的輸出特徵(覆蓋所有的目標尺度)。

Imbalance Problem on Positive Anchors

正錨點的定義對於目標檢測中的優化問題尤其重要。在基於錨點的檢測方案中,正錨點的定義策略主要受錨點與真實box之間的IoU決定。在RetinaNet中,如果IoU大於0.5則錨點設爲正。作者稱之爲Max-IoU matching

在MiMoEncoder中,錨點在多級特徵上以稠密方式進行預定義,同時按照尺度生成特徵級的正錨點。在分而治之的機制下,Max-IoU匹配使得每個尺度下的真實Box可以生成充分數量的正錨點。然而,當作者採用SiSoEncoder時,錨點的數量會大量的減少(比如從100K減少到5K),導致了稀疏錨點。稀疏錨點進一步導致了採用Max-IoU匹配時的不匹配問題。以下圖爲例,大的目標框包含更多的正錨點,這就導致了正錨點的不平衡問題,進而導致了檢測器更多關注於大目標而忽視了小目標。

爲解決上述正錨點不平衡問題,作者提出了Uniform Matching策略:對於每個目標框採用k近鄰錨點作爲正錨點,這就確保了所有的目標框能夠以相同數量的正錨點進行均勻匹配。正錨點的平衡確保了所有的目標框都參與了訓練且貢獻相等。在實現方面,參考了Max-IoU匹配,作者對Uniform matching中的IoU閾值進行設置以忽略大IoU負錨點和小IoU正錨點。

YOLOF

基於上述解決方案呢,作者提出了一種快速而直接的單級特徵檢測框架YOLOF,它由骨幹網絡、Encoder以及Decoder構成,整體結構如下圖所示。

  • BackBone。在所有模型中,作者簡單的採用了ResNet與ResNeXt作爲骨幹網絡,所有模型在ImageNet上與訓練,輸出C5特徵該通道數爲2048,下采樣倍率爲32;
  • Encoder。在這部分,作者參考FPN添加了兩個投影層,將通道數降到512,然後堆疊四個不同擴張因子的殘差模塊;
  • Decoder。在這部分,作者採用了RetinaNet的主要設計思路,它包含兩個並行的任務相關的Head分別用於分類和迴歸。作者僅僅添加兩個微小改動:(1) 參考DETR中的FFN設計讓兩個Head的卷積數量不同,迴歸Head包含4個卷積而分類Head則僅包含兩個卷積;(2) 作者參考AutoAssign在迴歸Head上對每個錨點添加了一個隱式目標預測。
  • Other Detail。正如前面所提到的YOLOF中的預定義錨點是稀疏的,這會導致目標框與錨點之間的匹配質量下降。作者在圖像上添加了一個隨機移動操作以緩解該問題,同時作者發現這種移動對於最終的分類是有幫助的。

Experiments

爲說明所提方案的有效性,作者在MS COC數據集上與RetinaNet、DETR、YOLOv4進行了對比。

上表給出了所提方法與RetineNet在COCO數據集上的性能對比。從中可以看到:

  • YOLOF取得了與改進版RetinaNet+相當的性能,同時減少了57%的計算量,推理速度快了2.5倍;
  • 當採用相同骨幹網絡時,由於僅僅採用C5特徵,YOLOF在小目標檢測方面要比RetinaNet+弱一些(低3.1);但在大目標檢測方面更優(高3.3);
  • 當YOLOF採用ResNeXt作爲骨幹網絡時,它可以取得與RetinaNet在小目標檢測方面相當的性能且推理速度同樣相當。
  • 經由多尺度測試輔助,所提方法取得了47.1mAP的指標,且在小目標方面取得了極具競爭力的性能31.8mAP。

上圖給出了所提方法與DETR的性能對比。從中可以看到:

  • YOLOF取得了與DETR相匹配的的性能;
  • 相比DETR,YOLOF可以從更深的網絡中收益更多,比如ResNet50時低0.4,在ResNet10時多了0.2;
  • 在小目標檢測方面,YOLOF要優於DETR;在大目標檢測方面,YOLOF要弱於DETR。
  • 在收斂方面,YOLOF要比DETR快7倍,這使得YOLOF更適合於作爲單級特徵檢測器的基線。

最後,作者再來看一下所提方法與YOLOv4的性能對比(注:這裏採用了與YOLOv4類似的數據增強方法,並採用了三階段訓練方案,同時對骨幹網絡的最後階段進行了調整)。從上表作者可以看到:

  • YOLOF-DC5取得了比YOLOv4快13%的推理速度,且性能高0.8mAP;
  • YOLOF-DC5在小目標檢測方面弱於YOLOv4,而在大目標檢測方面顯著優於YOLOv4;
  • 這也就意味着:單級檢測器具有極大的潛力獲得SOTA速度-精度均衡性能。

全文到此結束,更多消融實驗與分析建議各位同學查看原文。

  
      
      
      
個人微信(如果沒有備註不拉羣!
請註明: 地區+學校/企業+研究方向+暱稱



下載1:何愷明頂會分享


AI算法與圖像處理」公衆號後臺回覆:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析


下載2:終身受益的編程指南:Google編程風格指南


AI算法與圖像處理」公衆號後臺回覆:c++,即可下載。歷經十年考驗,最權威的編程規範!




    
    
    
下載3 CVPR2021

AI算法與圖像處公衆號後臺回覆: CVPR 即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

點亮 ,告訴大家你也在看




本文分享自微信公衆號 - AI算法與圖像處理(AI_study)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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