全卷積目標檢測:FCOS


全卷積目標檢測:FCOS

FCOS: Fully Convolutional One-Stage Object Detection

原文鏈接:https://arxiv.org/abs/1904.01355

代碼鏈接:https://github.com/tianzhi0549/FCOS/

摘要

本文提出了一種完全卷積的一級目標檢測器(FCOS),以模擬語義分割,以逐像素預測的方式解決目標檢測問題。幾乎所有最先進的目標探測器,如RetinaNet、SSD、YOLOv3和更快的R-CNN,都依賴於預定義的錨定盒。提出的探測器FCOS是錨箱自由,通過消除預先定義的錨箱集合,FCOS完全避免了訓練過程中錨箱計算重疊等與錨箱相關的復雜計算。更重要的是,還避免了與錨箱相關的所有超參數,這些參數通常對最終的檢測性能非常敏感。ResNeXt-64x4d-101的FCOS在單模型單尺度的AP中,僅采用后處理非最大抑制(NMS),就達到了44.7%,大大超過了以往的單級檢測器,具有簡單的優點。首次展示了一種更簡單靈活的檢測框架,以提高檢測精度。希望所提出的FCOS框架可以作為許多其他實例級任務的簡單而強大的替代方案。

算法流程

本文貢獻

1.  現在,檢測已與許多其他FCN可解決的任務(如語義分割)統一在一起,使重用這些任務中的思想變得更加容易。

2.  檢測變得無提議(proposal)且無錨(anchor),這大大減少了設計參數的數量。設計參數通常需要進行急速調整,並涉及許多技巧以實現良好的性能。因此新檢測框架使檢測器(尤其是其訓練)變得相當簡單。

3.  通過消除錨框,新型檢測器完全避免了與錨框相關的復雜計算,例如IOU計算以及訓練期間錨框與真值之間的匹配,從而加快了訓練和測試的時間,並且減少了訓練內存。

4.  在沒有奇淫技巧的情況下一階段檢測器中獲得了最先進的結果。還表明,提出的FCOS可以在兩階段檢測器中用作區域提議網絡(RPN),並且比基於錨的RPN對應項實現明顯更好的性能。鑒於更簡單的無錨檢測器的性能更好,鼓勵社區重新考慮在物體檢測中使用錨框的必要性,目前,錨框被視為事實上的檢測標准。

5.  提議的檢測器可以立即擴展以解決其他視覺任務,而只需進行最小的修改,包括實例分割和關鍵點檢測。這種新方法可以成為許多實例預測問題的新基准

主要框架

 

 

 FCOS的網絡體系結構,其中C3,C4和C5表示encoder的特征圖,P3至P7是用於最終預測的特征。H×W是要素圖的高度和寬度。“ / s”(s = 8、16,...,128)是功能圖到輸入圖像的水平下采樣率。

結論

本文提出了一種無錨和無提案的單級探測器FCOS。實驗表明,FCOS與目前流行的基於錨的單級檢測器(RetinaNet、YOLO和SSD)相比具有優勢,但設計復雜度要低得多。FCOS完全避免了與錨定盒相關的所有計算和超參數,並以每像素預測的方式解決目標檢測問題,類似於語義分割等其他密集預測任務。FCOS還實現了一級探測器的實時性能。還證明了FCOS可以作為兩級檢測器FasterR-CNN中的rpn,並在很大程度上優於其rpn。考慮到其有效性和效率,希望FCOS可以作為當前主流的錨定探測器的一個強大而簡單的替代品。FCOS可以擴展到解決許多其他即時級別的識別任務。

1. 整個算法步驟如下,

  • 步驟1. 對輸入的圖片進行預處理操作
  • 步驟2. 搭建如圖所示的網絡架構,將輸入數據送入backbone網絡中獲取輸入數據的feature_map,在feature_map的每一點上面進行回歸操作,進行網絡訓練獲取網絡模型
  • 步驟3. 將預訓練的網絡模型應用到測試圖片中,從特征金字塔的多個Head中獲得預測的結果
  • 步驟4. 使用NMS等后處理操作獲得最終的結果

2. 算法細節

對於基於anchor的檢測器, 會在得到的feature map的每一位置上使用預先定義好的anchors,而FCOS的改動點是對於特征圖Fi上的每個位置,可以將其映射回輸入圖像,如果這個映射回原始輸入的點在相應的真值的目標框范圍之內,而且類別標簽對應,將其作為訓練的正樣本塊. 換句話說檢測器直接將位置視為訓練樣本,而不是基於錨的檢測器中的錨框,這與用於語義分割的FCN相同。接着,回歸的目標是(l,t,r,b),即中心點與目標框的left、top、right和bottom之間的距離,具體如下圖所示:

 

 

 當然還有一種情況,就是一個location和多個box有關,作者考慮如果一個位置在多個box的內部,將其看左邊一個模糊樣本,針對這樣樣本文中采樣的方法是直接選擇擇面積最小的邊界框作為其回歸目標。由於網絡中FPN的存在,導致這樣的模糊樣本的數量大大減少.

3.損失函數

 

 

 L_cls是凱明大佬提出的focal loss, L_reg是IOU損失函數,作者采用的GIOU.

4.中心度

雖然使用了FPN,但是FCOS和anchor-based 的檢測器還是有些差距. 即會引入一些低質量的box,即遠離目標中心的檢測框,而Center-ness的作用就是用來很好的抑制這些低質量的box的產生,它的優點是比較簡單。不需要引入其它的超參數。它的位置是在Head網絡的分類網絡分支下面。對於給定的一個位置的回歸目標的l、t、r、b而言,center-ness目標的定義如下所示:

 

 

 實驗主要結果

1.消融實驗

1.1  子模塊對比

 

 

 

 

 是否使用中心度的FCOS在COCO2014上的結果

1.2  SOTA算法對比

 

 

 FCOS與其他最先進的兩階段或一階段檢測器(單模型和單標度結果)相比。在具有相同backbone的AP中,FCOS優於基於錨的同類RetinaNet 2.4%MAP。FCOS還以更低的設計復雜度勝過了最新的無錨點單階段探測器CornerNet

的實驗是在大規模檢測基准COCO上進行的[16]。按照常規做法[15,14,24],使用COCO trainval35k分割(115Kimages)進行訓練和minival分割(5Kimages)作為消融研究的驗證。通過將檢測結果上傳到評估服務器,將主要結果報告給測試開發人員分割(20K個圖像)。

 

 

 

  Conclusion

中心-nessvs.IoUNet:             

蔣等人的中心和觀點。“獲取精確目標檢測的定位證據”與不同的方法有着相似的目的(即抑制低質量預測)。IoUNet訓練一個單獨的網絡來預測預測邊界框和地面真值框之間的IoU分數。中心度作為探測器的一部分,只有一層,與檢測聯合訓練,因此簡單得多。此外,“中心度”不作為預測邊界框的輸入。相反,它直接訪問位置預測高質量邊界框的能力。

BPR和歧義分析:             

不打算將“按特定IoU召回”與“按框內像素召回”進行比較。表1的主要目的是表明FCOS的召回上界與錨定視網膜的召回上界非常接近(98.4%對99.23%)。其他IoU閾值的BPR列為視網膜網官方代碼中使用的閾值。此外,沒有證據表明,fcos的回歸目標很難訓練,因為它們更分散。FCOS實際上產生了更精確的邊界框。在訓練過程中,通過選擇最小面積的地面真值盒來處理同一FPN水平上的模糊問題。測試時,如果同一類的兩個對象A和B有重疊,無論重疊中的位置預測的是哪一個對象,預測都是正確的,漏掉的預測只能由屬於它的位置來預測。在A和B不屬於同一類的情況下,重疊中的一個位置可能會預測A的類,但會回歸B的邊界框,這是一個錯誤。這就是為什么只計算不同類之間的模糊性。此外,如表8所示,這種模糊性似乎不會使FCOS比AP中的RetinaNet更糟。             

附加融合研究:             

如表8所示,香草型FCOS的性能與RetinaNet相當,設計簡單,網絡輸出少9×9。此外,FCOS比單錨的RetinaNet更有效。對於testdev上的2%增益,除了表8中的組件帶來的性能增益外,推測不同的訓練細節(例如,學習率計划)可能會導致性能的輕微差異。             

中心性視網膜網:             

中心度不能在每個位置有多個錨定框的視網膜網絡中直接使用,因為特征地圖上的一個位置只有一個中心度得分,但不同錨定框的位置要求不同的“中心度”(注意,中心度對於正/負樣本來說是“軟”閾值)。對於基於錨的RetinaNet,錨箱和地面真值箱之間的IoU分數可以作為“中心度”的替代。

正樣本與視網膜網重疊:             

想強調的是,中心性只在測試時起作用。訓練時,地面真相框中的所有位置都標記為正邊界框。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM