論文閱讀筆記-Fully Convolutional One-Stage Object Detection

這篇是發表在CVPR2019的目標檢測論文,主要創新點在anchor-free的目標檢測。FCOS是全卷積的one-stage目標檢測算法,類似於語義分割,FCOS以pixel-wise的預測方式解決目標檢測問題。由於不需要anchor box,FCOS在訓練時可以避免由anchor box帶來的複雜運算,如計算overlap。FCOS的anchor-free檢測方式也避免了由anchor帶來的對結果高度敏感的超參數。僅僅使用NMS預處理,使用ResNeXt-64x4d-101做backbone的FCOS取得了AP 44.7%的結果。

論文:FCOS: Fully Convolutional One-Stage Object Detection

一、Introduction

object-detection是計算機視覺中一項基本但具有挑戰性的任務,它要求算法為圖像中每個感興趣的實例預測帶有類別標籤的邊界框。現有的主流檢測器,如Faster R-CNN、SSD、YOLO等,依靠一組預定義的anchor box,長期以來anchor box也一直被是這些算法成功的關鍵。儘管這些算法都取得了巨大的成功,但值得注意的是anchor-based的檢測算法仍存在一些缺陷。1)檢測的性能對anchor的大小、長寬比、數量等參數敏感。例如,受超參數等影響,RetinaNet在COCO benchmark上等性能波動範圍高達4%。在anchor-based的檢測器中,這些超參數需要仔細的調整。2)儘管仔細的設計了超參數,由於anchor的尺寸和長寬比是固定的,檢測器依然難以處理形狀變化太大的物體,尤其是對於小的物體。預定義的anchor box依然會影響檢測器的泛化性能,因為anchor box需要在新任務上根據不同物體的尺寸和長寬比重新設計。3)為了獲得高的召回率,anchor-based的檢測算法需要在圖上稠密的放置大量的anchor,其中大部分anchor都是負例。過多的負樣本會加劇訓練過程中正負例的imbalance。4)anchor box還涉及複雜的運算,如計算IoU。

近來,FCN在密集預測任務,如語義分割、depth estimation、keypoint detection and counting等任務中取得了巨大的成功。作為高級視覺任務之一的object-detection可能是唯一偏離全卷積pixel-wise預測框架的對象,這主要是由於使用了anchor box。這自然會產生一個問題:是否可以像FCN進行語義分割那樣,使用pixel-wise預測的方式來解決目標檢測任務?因此,這些基本的視覺任務可以(幾乎)統一在一個框架中。這篇論文證明答案是肯定的。而且,這篇論文首次證明,基於FCN的檢測器比基於anchor的檢測器更簡單,其性能甚至更高。

已有一些文獻嘗試使用FCNs-based框架進行object-detection,如DenseBox。具體來說,這些基於FCN的框架可直接預測4D向量以及特徵圖級別上每個空間位置的類別。如圖1(左)所示,4D向量描述了從一個bounding box的四邊到該位置的相對偏移。這些框架類似於用於語義分割的FCN,不同之處在於每個位置都需要回歸一個4D連續向量。為了處理不同尺寸的bounding box,DenseBox將訓練圖片裁剪和resize到固定到尺寸。因此,DenseBox必須對圖像金字塔進行檢測,這與FCN一次計算所有卷積的哲學背道而馳。此外,更重要的是,這些方法主要用於特殊領域的異物檢測,例如場景文本檢測或人臉檢測,因為認為這些方法在應用於具有高度重疊的邊界框的通用對象檢測的效果不佳 。如圖1(右)所示,高度重疊的邊界框會導致難以理解的歧義:不清楚對於重疊區域中的像素,該對哪個邊界框進行迴歸。

論文閱讀筆記-Fully Convolutional One-Stage Object Detection

論文續篇中,仔細研究了該問題,並表明使用FPN可以消除這種歧義。結果,本文的方法已經可以獲得與傳統的anchor-based的檢測器相當的檢測精度。此外,還觀察到本文對方法可能會在遠離目標物體中心的位置產生許多低質量的預測bounding box 。為了抑制這些低質量的檢測,我們引入了一種新穎的“center-ness”分支(僅一層),以預測像素與其相應邊界框中心的偏差,其定義如Eq(3)所示。然後這個分數在NMS中用於抑制低質量檢測框以及聚合檢測結果。簡單而有效的中心度分支使基於FCN的檢測器在完全相同的訓練和測試設置下勝過anchor-based的檢測器。

論文閱讀筆記-Fully Convolutional One-Stage Object Detection

這種新的檢測框架具有以下優點:

  • FCOS與許多基於FCN的思想是統一的,因此可以更輕鬆的重複使用這些任務的思路。
  • 檢測器實現了proposal free和anchor free,顯著的減少了設計參數的數目。設計參數通常需要啟發式調整,並且設計許多技巧。
  • 另外,通過消除anchor box,新檢測器完全避免了複雜的IOU計算以及訓練期間anchor box和ground-truth box之間的匹配,並將總訓練內存佔用空間減少了2倍左右。
  • FCOS可以作為二階檢測器的區域建議網絡(RPN),其性能明顯優於基於錨點的RPN算法。
  • FCOS可以經過最小的修改便可擴展到其他的視覺任務,包括實例分割、關鍵點檢測。
  • 二、Related Work

    Anchor-based Detectors. Anchor-based檢測器繼承了傳統的基於劃窗和proposal的檢測器,如Fast RCNN。anchor-based檢測器的anchor box可以看作是預定義的劃窗或proposal,將其分類為正例或負例,並進行額外的偏移回歸以refine對bounding box位置的預測。因此,這類檢測器的anchor box可以看作訓練樣本。與之前的Fast RCNN檢測器(重複為每個滑動窗口/proposal計算圖像特徵)不同,anchor box利用CNN的特徵圖來避免重複的特徵計算,從而大大加快了檢測過程。anchor box的設計由Faster RCNN的RPN,SSD,YOLOv2中深受歡迎,已經成為現在檢測算法的通常做法。

    然而,如上所示,anchor-box的算法有額外的超參數,需要仔細設計以獲得最好的性能。除了關於anchor box形狀的超參數,還需要超參數來標定anchor box是正例還是負例。在以前的工作中,經常使用anchor box和ground-truth box的交併比(IOU)來確定anchor框的標籤。這些超參數對最終的準確性有極大的影響,需要啟發式的調試。同時,這些超參數特定於檢測任務,從而使檢測任務偏離了用於其他密集預測任務(如語義分割)的整潔的FCN體系結構。

    Anchor-free Detectors.最受歡迎的anchor-free檢測器可能是YOLOv1。YOLOv1不使用anchor-box,而是預測對象中心附近的點處的bounding box。 之所以僅使用靠近中心的點,是因為它們被認為能夠產生更高質量的檢測。 但是,由於僅使用中心附近的點來預測bounding box,正如如YOLOv2中所述,YOLOv1的召回率較低。 因此,YOLOv2 也使用了anchor box。 與YOLOv1相比,FCOS利用ground-truth box框中的所有點來預bounding box框,而proposal的“中心度”分支抑制了檢測到的低質量bounding box。 結果,如實驗所示,FCOS能夠與anchor-based的檢測器提供相當的召回率。

    CornerNet是最近提出的一種one-stage的anchor-free檢測算法,它檢測bounding box的一組對角,並進行分類以形成最終的檢測。CornerNet需要更復雜的後處理才能將屬於同一實例的角對進行分組。 為了達到分組的目的,CornerNet學習了額外的距離度量。

    另一類anchor-free的檢測器是基於DenseBox的。由於難以處理重疊的邊界框並且召回率相對較低,該系列檢測器被認為不適合用於一般物體檢測。 在這項工作中,本文表明,使用多級FPN預測可以大大緩解這兩個問題。此外,本文還證實了與提出的中心度分支一起使用,比anchor-based的同類檢測器更簡單的檢測器可以實現更好的檢測性能。

    三、Method

    在本節中,首先以pixel-wise的預測方式重新構造object檢測任務。 接下來,說明如何利用多級預測來提高召回率並解決邊界框重疊導致的歧義。 最後,提出“中心性”分支,該分支有助於抑制檢測到的劣質bounding box並大幅度提高整體性能。

    3.1. Fully Convolutional One-Stage Object Detector

    記F_i (R^HXWXC)是cnn backbone的第i層輸出的feature map,s是該層整體的stride。輸入圖片的ground-truth boxes集合為{B_i}。

    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    對於feature map上每個位置(x, y),將其映射到原圖的位置:

    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    處於(x,y)的感受野的中心附近,與anchor-based的檢測器(將該位置作為anchor box的中心,並回歸target的bounding box)不同,FCOS直接在該位置處迴歸target的bounding box。換句話說,FCOS直接將位置視為訓練樣本,而不是anchor-based的檢測器中的anchor-box,這與用於語義分割的FCN相同。具體來說,如果位置(x,y)落入任何一個ground-truth box並且該位置的類別標籤c∗是ground truth box的類別標籤,則它被視為正樣本。負責是負例,c∗=0。FCOS迴歸一個4-D向量t∗=(l∗;t∗;r∗;b∗),(l∗;t∗;r∗;b∗)代表該位置到bounding box四個邊的距離,如圖1(左)所示。如果某個位置落入多個bounding box,則將其視為ambiguous樣本。 只需選擇面積最小的邊界框作為其迴歸目標。 在下一部分中,將介紹通過多級預測,可以顯著減少ambiguous樣本的數量,因此它們幾乎不會影響檢測性能。 如果位置(x,y)與邊界框Bi關聯,則該位置的訓練迴歸目標可以公式化為:

    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    值得注意的是,FCOS可以利用盡可能多的前景樣本來訓練迴歸器。 它與anchor-based的檢測器不同,後者僅將與ground-truth box具有足夠高的IoU的anchor box視為正樣本。 這可能是FCOS優於anchor-based檢測器的原因之一。

    Network Outputs.與訓練目標相對應,網絡的最後一層預測了分類標籤的80D向量p和4D向量t =(l,t,r,b)bounding box座標。本文訓練C個二類分類器,而不是訓練多分類器。在backbone的特徵圖之後分別添加了四個卷積層,用於分類和迴歸分支。此外,由於迴歸目標始終為正,因此在迴歸分支頂部使用exp(x)將任何實數映射到(0,∞)。 值得注意的是,FCOS的網絡輸出變量比流行的anchor-base檢測器(每個位置有9個錨框)少9倍。

    Loss Function.本文定義的loss函數如下:

    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    Inference. FCOS的推理很簡單。 給定輸入圖像,我們將其通過網絡,並獲得特徵圖Fi上每個位置的分類得分p(x,y)和迴歸預測t(x,y)。 選擇p(x,y)> 0.05的位置作為正樣本,然後將Eq(1)取反獲得預測的邊界框。

    3.2. Multi-level Prediction with FPN for FCOS

    在一節展示瞭如何使用FPN通過多級預測來解決所提出的FCOS可能存在兩個問題。1)CNN中最終特徵圖的大的stride(例如16倍)可能導致相對較低的最佳可能召回率(BPR)。對於anchor-based的檢測器,可以通過降低anchor box所需的IOU分數在一定程度上補償由於stride較大而導致的較低召回率。對於FCOS,乍一看可能會認為BPR可能比anchor-base的檢測器低得多,因為不可能召回由於stride較大而導致最終特徵圖上沒有位置編碼的對象。在這裡,根據實驗顯示,即使stride較大,基於FCN的FCOS仍然能夠產生良好的BPR,甚至可以比官方實現中的anchor-base探測器的RetinaNet 的BPR更好[ 7](見Table1)。 因此,BPR實際上不是FCOS的問題。更進一步,使用多級FPN預測,BPR進一步得到提升,可以與anchor-base的RetinaNet可以實現的最佳BPR相匹配。2)ground-truth(gt) box中的重疊會引起難以理解的歧義,即重疊中的某個位置應該回歸哪個bounding box框? 這種歧義導致基於FCN的檢測器性能下降。 在這項工作中,證明可以通過多級預測極大地解決歧義問題,並且與anchor-base的檢測器相比,基於FCN的檢測器可以獲得同等甚至更好的性能。

    類比FPN,本文在不同級別的特徵圖上檢測到不同大小的對象。 具體來說,使用了五個級別的特徵圖,分別定義為{P3,P4,P5,P6,P7}。P3,P4和P5由主幹CNN的特徵圖C3,C4和C5後跟具有自頂向下連接的1×1卷積層所產生,如圖2所示,通過在P5和P6上分別應用一個stride為2的卷積層來生成P6和P7。結果,特徵等級P3,P4,P5,P6和P7分別具有8、16、32、64和128的stride。

    與anchor-base的檢測器不同(後者將不同大小的anchor box分配給不同的特徵級別),本文直接限制每個級別的特徵所迴歸的bounding box的尺寸。更具體地說,首先計算所有特徵級別上每個位置的迴歸目標l ∗,t ∗,r ∗和b ∗。接下來,如果某個位置滿足max(l ∗,t ∗,r ∗,b ∗)> mi或max(l ∗,t ∗,r ∗,b ∗)<mi-1>

    論文閱讀筆記-Fully Convolutional One-Stage Object Detection


    論文閱讀筆記-Fully Convolutional One-Stage Object Detection


    3.3. Center-ness for FCOS

    在FCOS中使用多級預測後,FCOS與anchor-base的檢測器之間仍然存在性能差距。 觀察到,這是由於遠離對象中心的位置產生了許多低質量的預測bounding box。

    本文提出了一種簡單而有效的策略來抑制這些檢測到的低質量的的bounding box,而無需引入任何超參數。 具體來說,本文添加一個與分類分支(如圖2所示)平行的單層分支,以預測每個位置位置的“中心度”。 中心度表示從位置到該位置所負責的對象中心的標準化距離,如圖7所示。給定某個位置的迴歸目標l ∗,t ∗,r ∗和b ∗,則中心度目標定義為:

    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    在此處使用sqrt來減慢中心度的衰減。 中心度的範圍是0到1,因此可以使用二進制交叉熵(BCE)損失進行訓練。損失函數被添加到Eq(2)中。在測試時,通過將預測的中心度乘以相應的分類分數來計算最終分數(用於對檢測到的bounding box進行排序)。 因此,中心度可以降低遠離對象中心的bouding box的分數。 結果,這些低質量的bounding box很有可能被最終的非最大抑制(NMS)過程濾除,從而顯著提高了檢測性能。

    中心度的另一個選擇是僅僅使用gt box的中心做正樣本,需要額外增加一個超參數。兩種方法的結合能進一步提升性能,見實驗結果Table 3。

    四、 Experiments

    實驗是在大規模檢測基準COCO上進行的。

    4.1. Ablation Study

    4.1.1 Multi-level Prediction with FPN

    如前所述,基於FCN的檢測器的主要關注點是召回率低以及由於gt邊界框中的重疊而導致的樣本不明確。BPR實驗結果Table 1所示,Ambiguous Samples實驗結果如Table 2所示。


    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    4.1.2 With or Without Center-ness

    同時使用中心度和閾值可以導致更好的性能,如表3中的“+ ctr. sampling”行所示。也可以使用預測的迴歸向量來計算中心度,而無需引入額外的中心度分支。 但是,如表4所示,根據迴歸向量計算出的中心度無法提高性能,因此需要單獨的中心度。


    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    4.1.3 FCOS vs. Anchor-based Detectors

    前面提到的FCOS與標準RetinaNet有兩個微小的區別。 1)除了最後的預測層,在新添加的卷積層中使用組歸一化(GN)[29],這使訓練更加穩定。 2)使用P5來生產P6和P7,而不是標準RetinaNet中的C5。 觀察到使用P5可以稍微改善性能。

    為了表明FCOS可以作為anchor-base的檢測器的簡單而強大的替代方案,並且為了進行公平的比較,本文刪除了GN(對梯度進行了裁剪以防止爆炸),並在檢測器中使用了C5。 如表3所示,在完全相同的設置下,FCOS仍然可以與anchor-base的檢測器相媲美(36.3%vs 35.9%)。 此外,值得注意的是,本文直接使用了RetinaNet的所有超參數(例如學習率,NMS閾值等),這些參數已針對anchor-base的檢測器進行了優化。 因此認為,如果針對超參數進行調整,則可以進一步提高FCOS的性能。值得注意的是,如表3所示,通過一些幾乎無代價的改進,anchor-free檢測器的性能可以大大提高。

    4.2. Comparison with State-of-the-art Detectors


    論文閱讀筆記-Fully Convolutional One-Stage Object Detection

    "/<mi-1>


    分享到:


    相關文章: