YOLOF:單層特徵檢測也可以比FPN更出色 | CVPR 2021

 論文通過分析發現FPN的成功在於divide-and-conquer策略解決了目標檢測的優化問題,藉此研究設計了僅用單層特徵預測的高效檢測網絡YOLOF。YOLOF在結構上沒有很多花哨的結構,卻在準確率、推理速度和收斂速度上都有不錯的提升,相對於眼花繚亂的FPN魔改結構,十分值得學習

來源:曉飛的算法工程筆記 公衆號

論文: You Only Look One-level Feature

Introduction


 在當前的目標檢測算法中,特徵金字塔是必備的組件,一般通過FPN來實現,主要帶來兩個收益:1)multi-scale feature fusion:融合高低分辨率特徵來取得更好的特徵表達;2)divide-and-conquer:不同大小的目標在對應大小的特徵圖上檢測。目前人們普遍認爲FPN帶來的提升主要得益於multi-scale feature,於是設計了一系列複雜的特徵融合結構和方法,完全忽略了divide-and-conquer的作用。

 本篇論文的主要目的就是在one-stage檢測算法上驗證FPN的兩個收益的影響,對這兩種收益進行不同的組合,設計了Multiple-in-Multiple-out (MiMo)、Single-inMultiple-out (SiMo)、Multiple-in-Single-out (MiSo)和Single-in-Single-out (SiSo)四種encoder結構,如上圖所示。將上述四種結構嵌入到RetinaNet中進行實驗對比,其中MiMo就是原版的RetinaNet。比較意外的是,SiMo encoder的性能居然和MiMo encoder相差不到1mAP,而SiSo encoder與MiSo encoder則相差12mAP以上。
 從上面的現象可以得到以下兩個結論:

  • C5特徵有足夠的上下文用於檢測不同尺寸的目標,使得SiMo encoder依然能有不錯的表現。
  • multi-scale feature fusion帶來的提升遠低於divide-and-conquer,所以multi-scale feature fusion可能不是FPN的最重要收益。而divide-and-conquer則與目標檢測的優化過程有關,將複雜的檢測問題根據目標尺寸分解成多個子問題,加速了優化過程。

 上面的結論表明,FPN的主要作用是解決目標檢測的優化問題。雖然divide-and-conquer是很不錯的解決方法,但會帶來過多的內存消耗,導致檢測模型的結構變複雜。既然C5特徵已經包含了足夠多的上下文信息,那應該可以用更簡單的方法來解決優化問題。
 爲此,論文提出了YOLOF(You Only Look One-level Feature),僅使用C5特徵進行檢測。爲了縮小SiSo encoder與MiMo encoder之間的性能差異,論文設計了dilated encoder用於提取不同大小目標的多尺度上下文信息,彌補multiple-level features的缺少,再通過uniform matching來解決預設anchor過於稀疏帶來的正樣本不平衡問題。
 論文的貢獻如下:

  • 證明FPN帶來的提升主要得益於divide-and-conquer解決了檢測問題的優化問題,而非multi-scale feature fusion功能。
  • 提出不含FPN的YOLOF模型,包含兩個關鍵模塊:Dilated Encoder和Uniform Matching,能夠縮小SiSo encoder和MiMo encoder的性能差異。
  • 通過COCO數據集上的實驗證明YOLOF各模塊的重要性,YOLOF不僅準確率比得上RetinaNet、DETR和YOLOv4,速度還更快。

Cost Analysis of MiMo Encoders


 MiMo encoder使得檢測器更復雜,帶來更大內存使用,造成檢測速度下降。爲了弄清楚這一影響,論文基於RetinaNet對MiMo encoder進行了量化分析,將檢測過程分解成了上圖的3個關鍵模塊。

 多種模式下,各模塊的量化結果如上圖所示。對比SiSo encoder,MiMo encoder帶來了巨大的內存使用(134G vs. 6G)以及造成運行速度大幅下降(13FPS vs. 34 FPS)。速度的下降主要在於高分辨率特徵圖(如C3)上的目標檢測。基於上述MiMo encoder的缺點,論文嘗試在保持檢測器簡單、準確和快速的同時,找到替代的方法來解決優化問題。

Method


 雖然C5特徵包含了足夠的上下文信息,但用SiSo encoder替換MiMo encoder並不是簡單的事,直接替換會造成大幅性能下降。經過分析,造成性能下降的原因主要有兩個:1)limited scale range:C5特徵的感受域是固定的,妨礙多尺度目標的檢測性能。2)imbalance problem on positive anchors:anchor分佈稀疏造成正樣本不平衡。

Limited Scale Range

 MiMo或SiMo encoder構造了不同感受域的多層特徵(P3-P7),根據目標尺寸在不同的特徵上進行目標檢測。而SiSo encoder則只有單層特徵,其特徵的感受域是固定的,如圖a所示,只能覆蓋有限的尺寸範圍。需要找到一個方法來增加特徵的感受域範圍,彌補多層特徵的缺失。
 先通過堆疊dilated convolutions來增大感受域,覆蓋的尺寸範圍會偏移到較大尺寸,如圖b所示。然後將原本的特徵與增大後的特徵合併,得到新的能覆蓋全部尺寸範圍的特徵,如圖c所示。

  • Dilated Encoder

 爲了實現上述目的,論文設計了Dilated Encoder,分爲Projector和Residual Blocks兩部分。Projector結構跟FPN一樣,先通過\(1\times 1\)卷積降低維度,然後通過\(3\times 3\)卷積來修復上下文信息,此處的卷積後跟BN層。隨後堆疊連續4個不同dilation rates的dilated residual blocks,生成包含多種感受域大小的特徵,此處的卷積後跟BN層+ReLU層。

  • Discussion

 在目標檢測中,使用dilated convolution來增大特徵感受域是一種常見的做法。TridentNet使用參數共享的dilated convolution來生成多尺寸特徵,DetNet則使用dilated convolution來生成分辨率不變而感受域增大的主幹特徵。而論文使用的dilated convolution的目的則跟上面的都不太一樣,主要爲了在單層特徵上檢測所有尺寸的目標。

Imbalance Problem on Positive Anchors

 正樣本的定義是優化目標檢測問題的關鍵,目前大多數anchor-based檢測器都採用Max-IoU匹配。對於MiMo encoder,先在多個特徵層上密集地平鋪anchor,根據GT尺寸在對應的層選擇正樣本。基於divide-and-conquer策略,Max-IoU匹配使得不同大小的GT都能產生足夠多的正樣本。

 但由於SiSo encoder只有單層特徵,anchor數從100k下降到了5k,而且C5下采樣率較大,在C5上預設的anchor映射回原圖就顯得較爲“稀疏”。如上圖所示,大目標相對於小目標匹配到更多正樣本,造成正樣本不平衡的問題。不平衡問題使得檢測器在訓練時會更關注大目標的學習,忽略了小目標。

  • Uniform Matching

 爲了解決正樣本不平衡的問題,論文提出了Uniform Matching策略。該策略直接選擇k個最近的anchor作爲正樣本,保證每個GT都能匹配到相同數量的anchor,在訓練中得到平等對待。此外,根據Max-IoU匹配,忽略IoU較大(>0.7)的負樣本以及IoU較小(<0.15)的正樣本。

  • Discussion

 在匹配中選擇topk並不是新鮮事,比如ATSS先在每層選擇topk anchor作爲候選,再根據動態閾值過濾出正樣本。但ATSS關注的是自適應區分正負樣本,而論文關注的是少anchors下的正樣本平衡問題,出發點不一樣。

YOLOF


 基於上述的分析,論文提出簡潔的基於單層特徵的檢測器YOLOF,結果如上圖所示,包含以下模塊:

  • Backbone:採用預訓練的ResNet和ResNeXt系列作爲主幹網絡,主幹輸出爲C5特徵,特徵維度和下采樣率分別爲2048和32。爲了公平比較,BN層默認是凍結的。
  • Encoder:採用dilated encoder結構,projector輸出維度爲512,後續經過連續的dilated residual blocks處理,其中的\(1\times 1\)卷積下采樣率爲4。
  • Decoder:採用RetinaNet的設計,包含並行的task-specific heads:classification head和regression head。這裏做了兩個小修改:1)根據DETR的FFN設計修改兩個head的卷積數,regression head包含4個卷積+BN+ReLU結構,classification head僅包含2個。2)根據Autoassign,在regression head爲每個anchor增加無直接監督的顯式objectness預測,最後的分數爲分類分數和objectness分數的乘積。
  • Other Details:由於YOLOF預設的anchor較稀疏,降低了GT和anchor之間的匹配質量,論文提出隨機偏移來回避這個問題。該操作將圖片隨機向四個方向偏移最多32像素,爲目標的位置引入噪聲,增大目標匹配到高質量anchor的概率。此外,論文發現,在只有單層特徵預測時,限制anchor中心的迴歸修正在32像素內也對最終的分類有幫助。

Experiment


 與RetinaNet進行對比。

 與DETR進行對比。

 各組件的對比實驗。

Conclusion


 論文通過分析發現FPN的成功在於divide-and-conquer策略解決了目標檢測的優化問題,藉此研究設計了僅用單層特徵預測的高效檢測網絡YOLOF。YOLOF在結構上沒有很多花哨的結構,卻在準確率、推理速度和收斂速度上都有不錯的提升,相對於眼花繚亂的FPN魔改結構,十分值得學習。



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

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