目標檢測之FPN-Feature Pyramid Networks for Object Detection

這篇論文是CVPR2017年的文章,採用特徵金字塔做目標檢測。特徵金字塔是識別系統中用於檢測不同比例物體的基本組件。但是最近的基於深度學習目標檢測算法都避免了使用金字塔的特徵表示,部分原因是它們需要大量計算和內存。在本文中,利用深度卷積網絡固有的多尺度金字塔層次結構來構建具有marginal extra cost的特徵金字塔,提出了具有橫向連接的自上而下的網絡結構,用以構建各種規模的高級語義特徵圖。這種稱為特徵金字塔網絡(FPN)的結構在多個應用程序中作為通用特徵提取器顯示出了顯著的提升。在基本的Faster R-CNN系統中使用FPN,本文的方法在COCO檢測基準上獲得了最新的單模型結果。不使用任何的技巧,本文提出的模型超過了所有現有的單模型結果,包括來自2016年COCO挑戰賽獲獎者的模型。

一、Introduction


目標檢測之FPN-Feature Pyramid Networks for Object Detection

識別尺寸差異很大的對象是計算機視覺的一項基本挑戰。 基於圖像金字塔的特徵金字塔(以下簡稱為特徵化圖像金字塔)構成了標準解決方案的基礎(圖1(a))。 這些金字塔具有尺度不變性,即對象的尺度變化可以通過在金字塔層級上移動來抵消。 直觀地講,此屬性使模型能夠通過在位置和金字塔等級上掃描來檢測大範圍的物體。

特徵化的圖像金字塔在手工設計的特徵時代被大量使用。 它們是如此關鍵,以至於像DPM之類的物體檢測器都需要密集採樣以取得良好的結果。 對於識別任務,工程特徵在很大程度上已被深度卷積網絡(ConvNets)計算的特徵所取代。 除了能夠表示更高層次的語義外,ConvNet還對尺寸變化具有更強的魯棒性,因此有助於從單個輸入尺寸上計算出的特徵中進行識別(圖1(b))。但是即使具有這種魯棒性,仍然需要金字塔來獲得最準確的結果。 ImageNet和COCO檢測挑戰中所有最近的熱門模型都對特徵化的圖像金字塔進行了多尺度測試。 使圖像金字塔的每個級別特徵化的主要優點是,它會產生多尺度特徵表示,其中所有級別在語義上都很強大,包括高分辨率級別。

然而,使圖像金字塔的每個級別均具有特徵有明顯的侷限性。 推理時間大大增加,使得這種方法在實際應用中不切實際。 而且,就內存而言,在圖像金字塔上端到端地訓練深度網絡是不可行的,因此,如果利用金字塔,則僅在測試時使用圖像金字塔,這會導致訓練/測試時推理之間出現不一致。 由於這些原因,在默認設置下,Fast RCNN和Faster RCNN選擇不使用特徵化的圖像金字塔。

但是,圖像金字塔並不是計算多尺度特徵表示的唯一方法。 深度ConvNet會逐層計算特徵層次結構,並且通過下采樣層,特徵層次結構具有固有的多尺度、金字塔形狀。這在網絡特徵層次結構中會產生不同空間分辨率的特徵圖,但會引入由不同深度引起的較大語義差距。 高分辨率地圖具有低級特徵,會損害其目標識別的表示能力。

SSD是首次使用ConvNet的金字塔特徵層次結構的嘗試之一,就好像它是特徵化的圖像金字塔一樣(圖1(c))。理想情況下,SSD式的金字塔將重用前向遍歷中計算出的不同層級的多尺度特徵圖,從而節省計算成本。但是為了避免使用低級功能,SSD放棄了重用已經計算出的層,而是從網絡的高層開始,然後通過添加幾個新層來構建金字塔。 因此,它錯過了重用特徵層次結構的高分辨率feature map的機會。 本文證明了這些對於檢測小物體很重要。

本文的目的是自然地利用ConvNet的特徵層次結構的金字塔形狀,同時創建在各個尺度上具有強大語義的特徵金字塔。 為了實現此目標,依靠通過自上而下的路徑和橫向連接把低分辨率、強語義的特徵與高分辨率、弱語義的特徵相結合的網絡結構(圖1(d))。結果是一個特徵金字塔,它在所有級別上都具有豐富的語義,並且可以從單個尺寸的輸入圖像快速構建。 換句話說,本文展示瞭如何創建網絡內特徵金字塔,這些特徵金字塔可用於替換特徵化的圖像金字塔,而不會犧牲表示能力,速度或內存。

在最近的研究中,採用自頂向下和跳躍連接的類似網絡結構很流行。 他們的目標是製作一個具有高分辨率的單一高級特徵圖,並在該特徵圖上進行預測(圖2頂部)。 相反,本文的方法將這種架構用作特徵金字塔,其中在每個級別上獨立進行預測(例如,對象檢測)(圖2底部)。

目標檢測之FPN-Feature Pyramid Networks for Object Detection

本文在各種用於檢測和分割的系統中評估FPN。 不使用任何技巧,僅基於FPN和基本的Faster R-CNN檢測器,就可以在具有挑戰性的COCO檢測基準上得到state-of-the-art的單模型結果,超過了所有現有的經過精心設計的競賽獲勝者的單模型。在消融實驗中,我們發現對於bounding box proposal,FPN顯著的將平均召回率(AR)提高了8個百分點; 對於物體檢測,在ResNets上的Faster R-CNN的強大單尺度基線上,它可將COCO的平均精度(AP)提高2.3個百分點,將PASCAL上的AP指標提高3.8個百分點。本文的方法也很容易擴展為mask proposal,相比嚴重依賴圖像金字塔的最新的instance segmentation方法,可以提高實例分割AR和速度。

此外,本文的金字塔結構可以進行各種尺度的端到端訓練,並且在訓練/測試時始終一致,而由於內存限制,這在使用圖像金字塔時是不可行的。

二、Related Work

Hand-engineered features and early neural networks. SIFT特徵最初是在尺度空間極值處提取的,用於特徵點匹配。 HOG特徵和後來的SIFT特徵在整個圖像金字塔上進行了密集計算。 這些HOG和SIFT金字塔已在許多作品中用於圖像分類,目標檢測,人體姿勢估計等。 快速計算特徵化圖像金字塔也引起了人們極大的興趣。 Dollar´通過首先計算稀疏採樣(按比例)的金字塔,然後對缺失特徵等級進行插值,完成快速金字塔特徵計算。 在HOG和SIFT之前,早期使用ConvNets 進行人臉檢測的工作是在圖像金字塔上進行淺層網絡的計算,以檢測跨尺度的人臉。

Deep ConvNet object detectors. 隨著現代深層ConvNets 的發展,諸如OverFeat 和R-CNN 之類的目標檢測器在準確性上有了顯著的提高。 OverFeat採用了類似於早期神經網絡人臉檢測器的策略,在圖像金字塔上使用一個ConvNet作為滑動窗口檢測器。R-CNN採用了region proposal-base的策略,其中每個proposal在使用ConvNet進行分類之前都進行了尺度歸一化。 SPPnet 證明了這種region proposal-base的檢測器可以更有效地應用在使用單尺寸圖像提取的特徵圖上。最近的更精確的檢測方法,如Fast R-CNN 和Faster R-CNN 提倡使用從單個尺度計算出的特徵,因為它在精度和速度之間提供了很好的權衡。 但是,多尺度檢測仍然表現更好,尤其是對於小物體。

Methods using multiple layers. 許多最新方法通過在ConvNet中使用不同的層來改善檢測和分段。 FCN對多個類別中每個類別的partial score進行聚合,以計算語義分割。 Hypercolumns使用類似的方法進行對象實例分割。其他幾種方法(HyperNet,ParseNet和ION)在計算預測之前將多層的特徵concat起來,這等價於對變換後的特徵進行聚合。 SSD和MS-CNN可以在不合並特徵或得分的情況下在多個特徵層級上預測目標。

最近有一些利用橫向/跳躍連接的方法,這些方法將各種分辨率和語義級別上的低級特徵圖相關聯,包括用於分割的U-Net和SharpMask,用於面部檢測的Recombinator網絡以及用於關鍵點估計的Stacked Hourglass網絡。 Ghiasi等人針對FCN提出了拉普拉斯金字塔的介紹,以逐步細化分割結果。 儘管這些方法採用具有金字塔形狀的體系結構,但它們與特徵化的圖像金字塔不同,在特徵化的圖像金字塔中,各個級別的預測都是獨立進行的,請參見圖2。實際上,對於圖2(頂部)中的金字塔體系結構,仍然需要圖像金字塔去識別多個尺度的對象。

三、 Feature Pyramid Networks

本文的目標是利用ConvNet的金字塔特徵層次結構,該層次結構具有從低到高的語義,並在整個過程中構建具有高層語義的特徵金字塔。 由此產生的特徵金字塔網絡是通用的,在本文中,重點關注RPN和region proposal-base的檢測器,Faster RCNN。

本文的方法將任意大小的單尺度圖像作為輸入,並以全卷積的方式在多個級別上輸出對應比例大小的特徵圖。 該過程與骨幹卷積體系結構無關,在本文中,使用ResNets。 本文的金字塔的構造涉及自下而上的路徑,自上而下的路徑和橫向連接,如下所述。

Bottom-up pathway.自下而上的途徑是主幹ConvNet的前饋計算,它計算由多個尺度縮放比例為2的特徵圖組成的特徵層次結構。通常有許多層生成相同大小的輸出map,這些層 處於同一網絡stage。 對於本文的特徵金字塔,本文為每個stage定義一個金字塔等級。 選擇每個stage最後一層的輸出作為特徵圖的參考集,並對其進行enrich以創建金字塔。 這種選擇是很自然的,因為每個階段的最深層都應該具有最強的特徵。

具體來說,對於ResNet,使用每個階段的最後的殘差block的激活輸出。 對於conv2,conv3,conv4和conv5輸出,將這些最後的殘差block的輸出表示為{C2,C3,C4,C5},並注意它們相對於輸入圖像的stride分別是{4、8、16、32}。 由於conv1佔用大量內存,因此本文不將其包含在金字塔中。

Top-down pathway and lateral connections.自上而下的路徑通過從較高層級金字塔產生的空間上較粗糙但語義上更強的特徵圖進行上採樣來產生更高分辨率的特徵圖。然後自下而上的路徑產生特徵通過橫向連接來進行增強。 每個橫向連接將自下而上的路徑和自上而下的路徑產生的空間大小的特徵圖進行聚合。 自下而上的特徵圖具有較低級別的語義,但是由於對其進行了較少次數的下采樣,因此其激活輸出的定位更加準確。

目標檢測之FPN-Feature Pyramid Networks for Object Detection

圖3顯示了構建自上而下的特徵圖的結構。使用較粗分辨率的特徵圖,我們將空間分辨率上採樣2倍(為簡單起見,使用最近的鄰居上採樣)。 然後,通過逐元素相加將上採樣的特徵圖與相應的自下而上產生的特徵圖(經過1×1卷積層以減小通道尺寸)合併。 重複此過程,直到生成最高分辨率的特徵圖。 我們只需在C5上附加一個1×1卷積層即可生成最粗糙的分辨率特徵圖。 最後,我們在每個合併的feature map上附加一個3×3卷積以生成最終的特徵圖,這將減少上採樣的混疊效果。 這最後一組特徵圖稱為{P2,P3,P4,P5},分別對應於{C2,C3,C4,C5},它們分別具有相同的空間大小。

如傳統的特徵化圖像金字塔一樣,由於金字塔的所有級別都使用共享的分類器/迴歸器,因此在所有特徵圖中固定了特徵維度(通道數,表示為d)。 在本文中將d設置為256,因此所有額外的卷積層都具有256通道輸出。 在這些額外的層中沒有非線性變換,憑經驗發現這些影響很小。

四、Applications

本文的方法是在深層ConvNets內部構建特徵金字塔的通用解決方案。 接下來,在RPN中採用本文的方法來生成bounding box proposal,並使用Fast R-CNN中來進行對象檢測。 為了證明本文方法的簡單性和有效性,在對原始系統進行最小化修改後使其適應了本文的特徵金字塔。

4.1. Feature Pyramid Networks for RPN

在原始的RPN設計中,在每個尺度特徵圖的頂部,連接了一個由一個3X3的卷積層,並行的兩個1X1卷積層構成的子網絡——network head,進行是否目標的二分類以及bounding box迴歸,network head的參數在所有特徵層級之間是共享的。二分類是否前景的定義規則以及bounding box迴歸目標的定義與一組預先定義的anchors有關,具體參見Faster RCNN。anchors具有多個尺度和縱橫比,用以覆蓋不同形狀的物體。

本文中,將Faster RCNN的RPN用FPN來替換,將相同設計的network head連接到FPN的每一級後面,因為要在各個級別金字塔上的所有位置都進行劃窗,所以沒有必要在各級的金字塔上使用多尺度的anchors,在每一級的金字塔上僅使用一種尺度的anchors。本文分別在{P2,P3,P4,P5,P6}上定義了具有{32X32、64X64、128X128、256X256、512X256}個像素anchors。與Faster RCNN一樣,每個特徵層級的anchors具有{1:2,1:1,2:1}三種縱橫比,因此共有15種anchors。

與Faster RCNN一樣,根據anchors與ground-truth的IoU為他們賦予訓練的標籤。具體而言,如果一個anchor與某個ground-truth的box具有最大的IoU,或者與某個ground-truth 的box具有大與0.7的IoU,則該anchor認為是正樣本。與任何ground-truth的IoU都小於0.3的anchor是負樣本。

4.2. Feature Pyramid Networks for Fast R-CNN


Fast R-CNN [11]是一種region-base的object檢測器,其中使用了ROI Pooling提取特徵。 Fast R-CNN一般在單比例尺特徵圖上運行。 要將其與FPN一起使用,我們需要將不同比例的RoI分配給金字塔級別。將寬度w和高度h(在網絡的輸入圖像上)的RoI分配給特徵金字塔的層級Pk的規則如下:

目標檢測之FPN-Feature Pyramid Networks for Object Detection

此處224是標準的ImageNet預訓練大小。k0是具有224X224的ROI應被映射到的特徵層級。將k0設為4,直觀上而言,如果ROI尺寸比224X224小,則應該映射到更高分辨率(低層級)的金字塔。在所有特徵層級的所有ROI上添加預測head network,各層級之間參數共享。本文中,僅使用ROI pooling提取7X7的特徵,然後在進行分類和迴歸前,添加了2個1024維跟有Relu激活的FC層。這兩個FC層參數都是隨機初始化。

五、Experiments on Object Detection

5.1. Region Proposal with RPN

目標檢測之FPN-Feature Pyramid Networks for Object Detection

5.1.1 Ablation Experiment

Comparisons with baselines.為了與原始Faster RCNN的RPN進行公平比較,使用C4,C5兩個單尺度,使用相同的超參數,包括5組anchors {32X32、64X64、128X128、256X256、512X256}運行了2組基線,(表1(a,b))。表1(b)沒有比(a)具有顯著的優勢,這表明僅憑一個更高級別的特徵圖是不夠的,因為需要在較粗的分辨率和更強的語義之間進行權衡。表1 c,使用FPN替換RPN後,指標有了顯著的提升。

How important are lateral connections? 表1(e)顯示了沒有1×1橫向連接的自頂向下特徵金字塔的ablation實驗結果。 該自上而下的金字塔具有強大的語義特徵和良好的分辨率。 但是這些特徵的位置並不精確,因為這些feature map已被下采樣和上採樣數次。 可以從自下而上的feature map通過橫向連接直接向自上而下的feature map傳遞的更精確的定位信息。其結果是,相比表1(e),AR^1k具有10個百分點的提升。

How important are pyramid representations? 無需使用金字塔表示,直接將network head添加到最要分辨率的特徵層級(P2)上。與單尺度基線相比,表1(f)有一定優勢,但是不如FPN。RPN是具有固定窗口大小的滑動窗口檢測器,因此在金字塔等級上進行掃描可以提高其對尺度變化的魯棒性。

5.2. Object Detection with Fast/Faster R-CNN

5.2.1 Fast R-CNN (on fixed proposals)

目標檢測之FPN-Feature Pyramid Networks for Object Detection

為了更好地研究FPN對region-base的檢測器的影響,在一組固定的proposal上對Fast R-CNN進行了ablation實驗。 選擇凍結RPN在FPN(表1(c))上計算出的proposal,因為它對要被檢測器識別的小物體具有良好的性能。 為簡單起見,除非另有說明,否則在Fast R-CNN和RPN之間不共享特徵。

基於ResNet的Fast R-CNN基線採用輸出大小為14×14的RoI Pooling,並將所有conv5層附加為network head的隱藏層,其結果如 表2(a)所示,AP為31.9%。 表2(b)是使用具有2個隱藏fc層的MLP 作為head的基線,類似於本文架構中的head。 它的AP為28.8,表明2-fc network head相比表2(a)中基線沒有任何優勢。

表2(c)顯示了FPN在Fast R-CNN中的結果。 與表2(a)中的基線相比,本文的方法將AP提高了2.0點,將小對象AP提高了2.1點。 與也採用2-fc head的基線相比(表2(b)),本文的方法將AP提高了5.1點。 這些比較表明,對於region-base的目標檢測,本文的特徵金字塔優於單尺度特徵。

表2(d)和(e)顯示,刪除自上而下的連接或刪除橫向連接會導致結果變差,這與在上述小節中對RPN觀察到的情況相似。 值得注意的是,刪除自上而下的連接(表2(d))會大大降低精度,這表明Fast R-CNN會在高分辨率特徵圖上使用低級特徵。

在表2(f)中,在單個最精細尺度特徵圖P2上使用Fast R-CNN。 其結果(33.4 AP)比使用所有金字塔等級(33.9 AP,表2(c))的結果略差。 認為這是因為RoI池化是一種類似捲曲的操作,因此對區域的尺度不那麼敏感。

5.2.2 Faster R-CNN (on consistent proposals)

在Faster RCNN中,為了特徵共享,RPN和Fast R CNN必須使用相同的backbone網絡。表3顯示了本文的方法與兩個基線之間的比較,全部都使用與RPN和Fast R-CNN相同的backbone架構。表3(a)是對Faster RCNN的復現,FPN(表3(c))比最強的基線要好2.3點AP和3.8點[email protected]


目標檢測之FPN-Feature Pyramid Networks for Object Detection

Sharing features. RPN和Fast RCNN是否共享特徵,結論如下:


目標檢測之FPN-Feature Pyramid Networks for Object Detection


分享到:


相關文章: