文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡書
聲明:作者翻譯論文僅為學(xué)習(xí),如有侵權(quán)請聯(lián)系作者刪除博文,謝謝!
翻譯論文匯總:https://github.com/SnailTyan/deep-learning-papers-translation
Feature Pyramid Networks for Object Detection
摘要
特征金字塔是識別系統(tǒng)中用于檢測不同尺度目標(biāo)的基本組件。但最近的深度學(xué)習(xí)目標(biāo)檢測器已經(jīng)避免了金字塔表示,部分原因是它們是計算和內(nèi)存密集型的。在本文中,我們利用深度卷積網(wǎng)絡(luò)內(nèi)在的多尺度、金字塔分級來構(gòu)造具有很少額外成本的特征金字塔。開發(fā)了一種具有橫向連接的自頂向下架構(gòu),用于在所有尺度上構(gòu)建高級語義特征映射。這種稱為特征金字塔網(wǎng)絡(luò)(FPN)的架構(gòu)在幾個應(yīng)用程序中作為通用特征提取器表現(xiàn)出了顯著的改進。在一個基本的Faster R-CNN系統(tǒng)中使用FPN,沒有任何不必要的東西,我們的方法可以在COCO檢測基準(zhǔn)數(shù)據(jù)集上取得最先進的單模型結(jié)果,結(jié)果超過了所有現(xiàn)有的單模型輸入,包括COCO 2016挑戰(zhàn)賽的獲獎?wù)摺4送猓覀兊姆椒梢栽贕PU上以6FPS運行,因此是多尺度目標(biāo)檢測的實用和準(zhǔn)確的解決方案。代碼將公開發(fā)布。
1. 引言
識別不同尺度的目標(biāo)是計算機視覺中的一個基本挑戰(zhàn)。建立在圖像金字塔之上的特征金字塔(我們簡稱為特征化圖像金字塔)構(gòu)成了標(biāo)準(zhǔn)解決方案的基礎(chǔ)[1](圖1(a))。這些金字塔是尺度不變的,因為目標(biāo)的尺度變化是通過在金字塔中移動它的層級來抵消的。直觀地說,該屬性使模型能夠通過在位置和金字塔等級上掃描模型來檢測大范圍尺度內(nèi)的目標(biāo)。
圖1。(a)使用圖像金字塔構(gòu)建特征金字塔。每個圖像尺度上的特征都是獨立計算的,速度很慢。(b)最近的檢測系統(tǒng)選擇只使用單一尺度特征進行更快的檢測。(c)另一種方法是重用ConvNet計算的金字塔特征層次結(jié)構(gòu),就好像它是一個特征化的圖像金字塔。(d)我們提出的特征金字塔網(wǎng)絡(luò)(FPN)與(b)和(c)類似,但更準(zhǔn)確。在該圖中,特征映射用藍色輪廓表示,較粗的輪廓表示語義上較強的特征。
特征化圖像金字塔在手工設(shè)計的時代被大量使用[5,25]。它們非常關(guān)鍵,以至于像DPM[7]這樣的目標(biāo)檢測器需要密集的尺度采樣才能獲得好的結(jié)果(例如每組10個尺度,octave參考SIFT特征)。對于識別任務(wù),工程特征大部分已經(jīng)被深度卷積網(wǎng)絡(luò)(ConvNets)[19,20]計算的特征所取代。除了能夠表示更高級別的語義,ConvNets對于尺度變化也更加魯棒,從而有助于從單一輸入尺度上計算的特征進行識別[15,11,29](圖1(b))。但即使有這種魯棒性,金字塔仍然需要得到最準(zhǔn)確的結(jié)果。在ImageNet[33]和COCO[21]檢測挑戰(zhàn)中,最近的所有排名靠前的輸入都使用了針對特征化圖像金字塔的多尺度測試(例如[16,35])。對圖像金字塔的每個層次進行特征化的主要優(yōu)勢在于它產(chǎn)生了多尺度的特征表示,其中所有層次上在語義上都很強,包括高分辨率層。
盡管如此,特征化圖像金字塔的每個層次都具有明顯的局限性。推斷時間顯著增加(例如,四倍[11]),使得這種方法在實際應(yīng)用中不切實際。此外,在圖像金字塔上端對端地訓(xùn)練深度網(wǎng)絡(luò)在內(nèi)存方面是不可行的,所以如果被采用,圖像金字塔僅在測試時被使用[15,11,16,35],這造成了訓(xùn)練/測試時推斷的不一致性。出于這些原因,F(xiàn)ast和Faster R-CNN[11,29]選擇在默認(rèn)設(shè)置下不使用特征化圖像金字塔。
但是,圖像金字塔并不是計算多尺度特征表示的唯一方法。深層ConvNet逐層計算特征層級,而對于下采樣層,特征層級具有內(nèi)在的多尺度金字塔形狀。這種網(wǎng)內(nèi)特征層級產(chǎn)生不同空間分辨率的特征映射,但引入了由不同深度引起的較大的語義差異。高分辨率映射具有損害其目標(biāo)識別表示能力的低級特征。
單次檢測器(SSD)[22]是首先嘗試使用ConvNet的金字塔特征層級中的一個,好像它是一個特征化的圖像金字塔(圖1(c))。理想情況下,SSD風(fēng)格的金字塔將重用正向傳遞中從不同層中計算的多尺度特征映射,因此是零成本的。但為了避免使用低級特征,SSD放棄重用已經(jīng)計算好的圖層,而從網(wǎng)絡(luò)中的最高層開始構(gòu)建金字塔(例如,VGG網(wǎng)絡(luò)的conv4_3[36]),然后添加幾個新層。因此它錯過了重用特征層級的更高分辨率映射的機會。我們證明這些對于檢測小目標(biāo)很重要。
本文的目標(biāo)是自然地利用ConvNet特征層級的金字塔形狀,同時創(chuàng)建一個在所有尺度上都具有強大語義的特征金字塔。為了實現(xiàn)這個目標(biāo),我們所依賴的架構(gòu)將低分辨率、強語義的特征與高分辨率、弱語義的特征通過自頂向下的路徑和橫向連接相結(jié)合。(圖1(d))。其結(jié)果是一個特征金字塔,在所有級別都具有豐富的語義,并且可以從單個輸入圖像尺度上進行快速構(gòu)建。換句話說,我們展示了如何創(chuàng)建網(wǎng)絡(luò)中的特征金字塔,可以用來代替特征化的圖像金字塔,而不犧牲表示能力,速度或內(nèi)存。
最近的研究[28,17,8,26]中流行采用自頂向下和跳躍連接的類似架構(gòu)。他們的目標(biāo)是生成具有高分辨率的單個高級特征映射,并在其上進行預(yù)測(圖2頂部)。相反,我們的方法利用這個架構(gòu)作為特征金字塔,其中預(yù)測(例如目標(biāo)檢測)在每個級別上獨立進行(圖2底部)。我們的模型反映了一個特征化的圖像金字塔,這在這些研究中還沒有探索過。
圖2。頂部:帶有跳躍連接的自頂向下的架構(gòu),在最好的級別上進行預(yù)測(例如,[28])。底部:我們的模型具有類似的結(jié)構(gòu),但將其用作特征金字塔,并在各個層級上獨立進行預(yù)測。
我們評估了我們稱為特征金字塔網(wǎng)絡(luò)(FPN)的方法,其在各種系統(tǒng)中用于檢測和分割[11,29,27]。沒有任何不必要的東西,我們在具有挑戰(zhàn)性的COCO檢測基準(zhǔn)數(shù)據(jù)集上報告了最新的單模型結(jié)果,僅僅基于FPN和基本的Faster R-CNN檢測器[29],就超過了競賽獲獎?wù)咚鞋F(xiàn)存的嚴(yán)重工程化的單模型競賽輸入。在消融實驗中,我們發(fā)現(xiàn)對于邊界框提議,F(xiàn)PN將平均召回率(AR)顯著增加了8個百分點;對于目標(biāo)檢測,它將COCO型的平均精度(AP)提高了2.3個百分點,PASCAL型AP提高了3.8個百分點,超過了ResNet[16]上Faster R-CNN強大的單尺度基準(zhǔn)線。我們的方法也很容易擴展掩模提議,改進實例分隔AR,加速嚴(yán)重依賴圖像金字塔的最先進方法。
另外,我們的金字塔結(jié)構(gòu)可以通過所有尺度進行端對端培訓(xùn),并且在訓(xùn)練/測試時一致地使用,這在使用圖像金字塔時是內(nèi)存不可行的。因此,F(xiàn)PN能夠比所有現(xiàn)有的最先進方法獲得更高的準(zhǔn)確度。此外,這種改進是在不增加單尺度基準(zhǔn)測試時間的情況下實現(xiàn)的。我們相信這些進展將有助于未來的研究和應(yīng)用。我們的代碼將公開發(fā)布。
2. 相關(guān)工作
手工設(shè)計特征和早期神經(jīng)網(wǎng)絡(luò)。SIFT特征[25]最初是從尺度空間極值中提取的,用于特征點匹配。HOG特征[5],以及后來的SIFT特征,都是在整個圖像金字塔上密集計算的。這些HOG和SIFT金字塔已在許多工作中得到了應(yīng)用,用于圖像分類,目標(biāo)檢測,人體姿勢估計等。這對快速計算特征化圖像金字塔也很有意義。Dollar等人[6]通過先計算一個稀疏采樣(尺度)金字塔,然后插入缺失的層級,從而演示了快速金字塔計算。在HOG和SIFT之前,使用ConvNet[38,32]的早期人臉檢測工作計算了圖像金字塔上的淺網(wǎng)絡(luò),以檢測跨尺度的人臉。
Deep ConvNet目標(biāo)檢測器。隨著現(xiàn)代深度卷積網(wǎng)絡(luò)[19]的發(fā)展,像OverFeat[34]和R-CNN[12]這樣的目標(biāo)檢測器在精度上顯示出了顯著的提高。OverFeat采用了一種類似于早期神經(jīng)網(wǎng)絡(luò)人臉檢測器的策略,通過在圖像金字塔上應(yīng)用ConvNet作為滑動窗口檢測器。R-CNN采用了基于區(qū)域提議的策略[37],其中每個提議在用ConvNet進行分類之前都進行了尺度歸一化。SPPnet[15]表明,這種基于區(qū)域的檢測器可以更有效地應(yīng)用于在單個圖像尺度上提取的特征映射。最近更準(zhǔn)確的檢測方法,如Fast R-CNN[11]和Faster R-CNN[29]提倡使用從單一尺度計算出的特征,因為它提供了精確度和速度之間的良好折衷。然而,多尺度檢測性能仍然更好,特別是對于小型目標(biāo)。
使用多層的方法。一些最近的方法通過使用ConvNet中的不同層來改進檢測和分割。FCN[24]將多個尺度上的每個類別的部分分?jǐn)?shù)相加以計算語義分割。Hypercolumns[13]使用類似的方法進行目標(biāo)實例分割。在計算預(yù)測之前,其他幾種方法(HyperNet[18],ParseNet[23]和ION[2])將多個層的特征連接起來,這相當(dāng)于累加轉(zhuǎn)換后的特征。SSD[22]和MS-CNN[3]可預(yù)測特征層級中多個層的目標(biāo),而不需要組合特征或分?jǐn)?shù)。
最近有一些方法利用橫向/跳躍連接將跨分辨率和語義層次的低級特征映射關(guān)聯(lián)起來,包括用于分割的U-Net[31]和SharpMask[28],Recombinator網(wǎng)絡(luò)[17]用于人臉檢測以及Stacked Hourglass網(wǎng)絡(luò)[26]用于關(guān)鍵點估計。Ghiasi等人[8]為FCN提出拉普拉斯金字塔表示,以逐步細化分割。盡管這些方法采用的是金字塔形狀的架構(gòu),但它們不同于特征化的圖像金字塔[5,7,34],其中所有層次上的預(yù)測都是獨立進行的,參見圖2。事實上,對于圖2(頂部)中的金字塔結(jié)構(gòu),圖像金字塔仍然需要跨多個尺度上識別目標(biāo)[28]。
3. 特征金字塔網(wǎng)絡(luò)
我們的目標(biāo)是利用ConvNet的金字塔特征層級,該層次結(jié)構(gòu)具有從低到高的語義,并在整個過程中構(gòu)建具有高級語義的特征金字塔。由此產(chǎn)生的特征金字塔網(wǎng)絡(luò)是通用的,在本文中,我們側(cè)重于滑動窗口提議(Region Proposal Network,簡稱RPN)[29]和基于區(qū)域的檢測器(Fast R-CNN)[11]。在第6節(jié)中我們還將FPN泛化到實例細分提議。
我們的方法以任意大小的單尺度圖像作為輸入,并以全卷積的方式輸出多層適當(dāng)大小的特征映射。這個過程獨立于主卷積體系結(jié)構(gòu)(例如[19,36,16]),在本文中,我們呈現(xiàn)了使用ResNets[16]的結(jié)果。如下所述,我們的金字塔結(jié)構(gòu)包括自下而上的路徑,自上而下的路徑和橫向連接。
自下而上的路徑。自下向上的路徑是主ConvNet的前饋計算,其計算由尺度步長為2的多尺度特征映射組成的特征層級。通常有許多層產(chǎn)生相同大小的輸出映射,并且我們認(rèn)為這些層位于相同的網(wǎng)絡(luò)階段。對于我們的特征金字塔,我們?yōu)槊總€階段定義一個金字塔層。我們選擇每個階段的最后一層的輸出作為我們的特征映射參考集,我們將豐富它來創(chuàng)建我們的金字塔。這種選擇是自然的,因為每個階段的最深層應(yīng)具有最強大的特征。
具體而言,對于ResNets[16],我們使用每個階段的最后一個殘差塊輸出的特征激活。對于conv2,conv3,conv4和conv5輸出,我們將這些最后殘差塊的輸出表示為,并注意相對于輸入圖像它們的步長為{4,8,16,32}個像素。由于其龐大的內(nèi)存占用,我們不會將conv1納入金字塔。
自頂向下的路徑和橫向連接。自頂向下的路徑通過上采樣空間上更粗糙但在語義上更強的來自較高金字塔等級的特征映射來幻化更高分辨率的特征。這些特征隨后通過來自自下而上路徑上的特征經(jīng)由橫向連接進行增強。每個橫向連接合并來自自下而上路徑和自頂向下路徑的具有相同空間大小的特征映射。自下而上的特征映射具有較低級別的語義,但其激活可以更精確地定位,因為它被下采樣的次數(shù)更少。
圖3顯示了建造我們的自頂向下特征映射的構(gòu)建塊。使用較粗糙分辨率的特征映射,我們將空間分辨率上采樣為2倍(為了簡單起見,使用最近鄰上采樣)。然后通過按元素相加,將上采樣映射與相應(yīng)的自下而上映射(其經(jīng)過1×1卷積層來減少通道維度)合并。迭代這個過程,直到生成最佳分辨率映射。為了開始迭代,我們只需在上添加一個1×1卷積層來生成最粗糙分辨率映射。最后,我們在每個合并的映射上添加一個3×3卷積來生成最終的特征映射,這是為了減少上采樣的混疊效應(yīng)。這個最終的特征映射集稱為
,對應(yīng)于
,分別具有相同的空間大小。
圖3。構(gòu)建模塊說明了橫向連接和自頂向下路徑,通過加法合并。
由于金字塔的所有層都像傳統(tǒng)的特征圖像金字塔一樣使用共享分類器/回歸器,因此我們在所有特征映射中固定特征維度(通道數(shù)記為)。我們在本文中設(shè)置
,因此所有額外的卷積層都有256個通道的輸出。在這些額外的層中沒有非線性,我們在實驗中發(fā)現(xiàn)這些影響很小。
簡潔性是我們設(shè)計的核心,我們發(fā)現(xiàn)我們的模型對許多設(shè)計選擇都很魯棒。我們已經(jīng)嘗試了更復(fù)雜的塊(例如,使用多層殘差塊[16]作為連接)并觀察到稍微更好的結(jié)果。設(shè)計更好的連接模塊并不是本文的重點,所以我們選擇上述的簡單設(shè)計。
4. 應(yīng)用
我們的方法是在深度ConvNets內(nèi)部構(gòu)建特征金字塔的通用解決方案。在下面,我們采用我們的方法在RPN[29]中進行邊界框提議生成,并在Fast R-CNN[11]中進行目標(biāo)檢測。為了證明我們方法的簡潔性和有效性,我們對[29,11]的原始系統(tǒng)進行最小修改,使其適應(yīng)我們的特征金字塔。
4.1. RPN的特征金字塔網(wǎng)絡(luò)
RPN[29]是一個滑動窗口類不可知的目標(biāo)檢測器。在原始的RPN設(shè)計中,一個小型子網(wǎng)絡(luò)在密集的3×3滑動窗口,單尺度卷積特征映射上進行評估,執(zhí)行目標(biāo)/非目標(biāo)的二分類和邊界框回歸。這是通過一個3×3的卷積層實現(xiàn)的,后面跟著兩個用于分類和回歸的1×1兄弟卷積,我們稱之為網(wǎng)絡(luò)頭部。目標(biāo)/非目標(biāo)標(biāo)準(zhǔn)和邊界框回歸目標(biāo)的定義是關(guān)于一組稱為錨點的參考框的[29]。這些錨點具有多個預(yù)定義的尺度和長寬比,以覆蓋不同形狀的目標(biāo)。
我們通過用我們的FPN替換單尺度特征映射來適應(yīng)RPN。我們在我們的特征金字塔的每個層級上附加一個相同設(shè)計的頭部(3x3 conv和兩個1x1兄弟convs)。由于頭部在所有金字塔等級上的所有位置密集滑動,所以不需要在特定層級上具有多尺度錨點。相反,我們?yōu)槊總€層級分配單尺度的錨點。在形式上,我們定義錨點分別具有
個像素的面積。正如在[29]中,我們在每個層級上也使用了多個長寬比
的錨點。所以在金字塔上總共有十五個錨點。
如[29],我們根據(jù)錨點和實際邊界框的交并比(IoU)比例將訓(xùn)練標(biāo)簽分配給錨點。形式上,如果一個錨點對于一個給定的實際邊界框具有最高的IoU或者與任何實際邊界框的IoU超過0.7,則給其分配一個正標(biāo)簽,如果其與所有實際邊界框的IoU都低于0.3,則為其分配一個負標(biāo)簽。請注意,實際邊界框的尺度并未明確用于將它們分配到金字塔的層級;相反,實際邊界框與已經(jīng)分配給金字塔等級的錨點相關(guān)聯(lián)。因此,除了[29]中的內(nèi)容外,我們不引入額外的規(guī)則。
我們注意到頭部的參數(shù)在所有特征金字塔層級上共享;我們也評估了替代方案,沒有共享參數(shù)并且觀察到相似的準(zhǔn)確性。共享參數(shù)的良好性能表明我們的金字塔的所有層級共享相似的語義級別。這個優(yōu)點類似于使用特征圖像金字塔的優(yōu)點,其中可以將常見頭部分類器應(yīng)用于在任何圖像尺度下計算的特征。
通過上述改編,RPN可以自然地通過我們的FPN進行訓(xùn)練和測試,與[29]中的方式相同。我們在實驗中詳細說明實施細節(jié)。
4.2. Fast R-CNN的特征金字塔網(wǎng)絡(luò)
Fast R-CNN[11]是一個基于區(qū)域的目標(biāo)檢測器,利用感興趣區(qū)域(RoI)池化來提取特征。Fast R-CNN通常在單尺度特征映射上執(zhí)行。要將其與我們的FPN一起使用,我們需要為金字塔等級分配不同尺度的RoI。
我們將我們的特征金字塔看作是從圖像金字塔生成的。因此,當(dāng)它們在圖像金字塔上運行時,我們可以適應(yīng)基于區(qū)域的檢測器的分配策略[15,11]。在形式上,我們通過以下公式將寬度為和高度為
(在網(wǎng)絡(luò)上的輸入圖像上)的RoI分配到特征金字塔的級別
上:
這里
是規(guī)范的ImageNet預(yù)訓(xùn)練大小,而
是大小為
的RoI應(yīng)該映射到的目標(biāo)級別。類似于基于ResNet的Faster R-CNN系統(tǒng)[16]使用
作為單尺度特征映射,我們將
設(shè)置為4。直覺上,方程(1)意味著如果RoI的尺寸變小了(比如224的1/2),它應(yīng)該被映射到一個更精細的分辨率級別(比如
)。
我們在所有級別的所有RoI中附加預(yù)測器頭部(在Fast R-CNN中,預(yù)測器頭部是特定類別的分類器和邊界框回歸器)。再次,預(yù)測器頭部都共享參數(shù),不管他們在什么層級。在[16]中,ResNet的conv5層(9層深的子網(wǎng)絡(luò))被用作conv4特征之上的頭部,但我們的方法已經(jīng)利用了conv5來構(gòu)建特征金字塔。因此,與[16]不同,我們只是采用RoI池化提取7×7特征,并在最終的分類層和邊界框回歸層之前附加兩個隱藏單元為1024維的全連接()層(每層后都接ReLU層)。這些層是隨機初始化的,因為ResNets中沒有預(yù)先訓(xùn)練好的
層。請注意,與標(biāo)準(zhǔn)的conv5頭部相比,我們的2-
MLP頭部更輕更快。
基于這些改編,我們可以在特征金字塔之上訓(xùn)練和測試Fast R-CNN。實現(xiàn)細節(jié)在實驗部分給出。
5. 目標(biāo)檢測實驗
我們在80類的COCO檢測數(shù)據(jù)集[21]上進行實驗。我們訓(xùn)練使用80k張訓(xùn)練圖像和35k大小的驗證圖像子集(trainval35k
[2])的聯(lián)合,并報告了在5k大小的驗證圖像子集(minival
)上的消融實驗。我們還報告了在沒有公開標(biāo)簽的標(biāo)準(zhǔn)測試集(test-std
)[21]上的最終結(jié)果。
正如通常的做法[12],所有的網(wǎng)絡(luò)骨干都是在ImageNet1k分類集[33]上預(yù)先訓(xùn)練好的,然后在檢測數(shù)據(jù)集上進行微調(diào)。我們使用公開可用的預(yù)訓(xùn)練的ResNet-50和ResNet-101模型。我們的代碼是使用Caffe2重新實現(xiàn)py-faster-rcnn
。
5.1. 區(qū)域提議與RPN
根據(jù)[21]中的定義,我們評估了COCO類型的平均召回率(AR)和在小型,中型和大型目標(biāo)(AR, AR
, and AR
)上的AR。我們報告了每張圖像使用100個提議和1000個提議的結(jié)果(AR
and AR
)。
實施細節(jié)。表1中的所有架構(gòu)都是端對端訓(xùn)練。輸入圖像的大小調(diào)整為其較短邊有800像素。我們采用8個GPU進行同步SGD訓(xùn)練。小批量數(shù)據(jù)包括每個GPU上2張圖像和每張圖像上256個錨點。我們使用0.0001的權(quán)重衰減和0.9的動量。前30k次小批量數(shù)據(jù)的學(xué)習(xí)率為0.02,而下一個10k次的學(xué)習(xí)率為0.002。對于所有的RPN實驗(包括基準(zhǔn)數(shù)據(jù)集),我們都包含了圖像外部的錨盒來進行訓(xùn)練,這不同于[29]中的忽略這些錨盒。其它實現(xiàn)細節(jié)如[29]中所述。使用具有FPN的RPN在8個GPU上訓(xùn)練COCO數(shù)據(jù)集需要約8小時。
表1。使用RPN[29]的邊界框提議結(jié)果,在COCO的minival
數(shù)據(jù)集上進行評估。所有模型都是通過trainval35k
訓(xùn)練的。列“l(fā)ateral”和“top-down”分別表示橫向連接和自上而下連接的存在。列“feature”表示附著頭部的特征映射。所有結(jié)果都是基于ResNet-50的并共享相同的超參數(shù)。
5.1.1 消融實驗
與基線進行比較。為了與原始RPNs[29]進行公平比較,我們使用(與[16]相同)或
_5
\lbrace 32^2, 64^2, 128^2, 256^2, 512^2\rbrace$。表1(b)顯示沒有優(yōu)于(a),這表明單個更高級別的特征映射是不夠的,因為存在在較粗分辨率和較強語義之間的權(quán)衡。
將FPN放在RPN中可將AR提高到56.3(表1(c)),這比單尺度RPN基線(表1(a))增加了8.0個點。此外,在小型目標(biāo)(AR
)上的性能也大幅上漲了12.9個點。我們的金字塔表示大大提高了RPN對目標(biāo)尺度變化的魯棒性。
自上而下改進的重要性如何?表1(d)顯示了沒有自上而下路徑的特征金字塔的結(jié)果。通過這種修改,將1×1橫向連接和后面的3×3卷積添加到自下而上的金字塔中。該架構(gòu)模擬了重用金字塔特征層次結(jié)構(gòu)的效果(圖1(b))。
橫向連接有多重要?表1(e)顯示了沒有1×1橫向連接的自頂向下特征金字塔的消融結(jié)果。這個自頂向下的金字塔具有強大的語義特征和良好的分辨率。但是我們認(rèn)為這些特征的位置并不精確,因為這些映射已經(jīng)進行了多次下采樣和上采樣。更精確的特征位置可以通過橫向連接直接從自下而上映射的更精細層級傳遞到自上而下的映射。因此,F(xiàn)PN的AR的得分比表1(e)高10個點。
金字塔表示有多重要?可以將頭部附加到的最高分辨率的強語義特征映射上(即我們金字塔中的最好層級),而不采用金字塔表示。與單尺度基線類似,我們將所有錨點分配給
特征映射。這個變體(表1(f))比基線要好,但不如我們的方法。RPN是一個具有固定窗口大小的滑動窗口檢測器,因此在金字塔層級上掃描可以增加其對尺度變化的魯棒性。
另外,我們注意到由于較大的空間分辨率,單獨使用
會導(dǎo)致更多的錨點(750k,表1(f))。這個結(jié)果表明,大量的錨點本身并不足以提高準(zhǔn)確率。
5.2. 使用Fast/Faster R-CNN的目標(biāo)檢測
接下來我們研究基于區(qū)域(非滑動窗口)檢測器的FPN。我們通過COCO類型的平均精度(AP)和PASCAL類型的AP(單個IoU閾值為0.5)來評估目標(biāo)檢測。我們還按照[21]中的定義報告了在小尺寸,中尺寸和大尺寸(即AP,AP
和AP
)目標(biāo)上的COCO AP。
實現(xiàn)細節(jié)。調(diào)整大小輸入圖像,使其較短邊為800像素。同步SGD用于在8個GPU上訓(xùn)練模型。每個小批量數(shù)據(jù)包括每個GPU2張圖像和每張圖像上512個RoI。我們使用0.0001的權(quán)重衰減和0.9的動量。前60k次小批量數(shù)據(jù)的學(xué)習(xí)率為0.02,而接下來的20k次迭代學(xué)習(xí)率為0.002。我們每張圖像使用2000個RoIs進行訓(xùn)練,1000個RoI進行測試。使用FPN在COCO數(shù)據(jù)集上訓(xùn)練Fast R-CNN需要約10小時。
5.2.1 Fast R-CNN(固定提議)
為了更好地調(diào)查FPN對僅基于區(qū)域的檢測器的影響,我們在一組固定的提議上進行Fast R-CNN的消融。我們選擇凍結(jié)RPN在FPN上計算的提議(表1(c)),因為它在能被檢測器識別的小目標(biāo)上具有良好的性能。為了簡單起見,我們不在Fast R-CNN和RPN之間共享特征,除非指定。
作為基于ResNet的Fast R-CNN基線,遵循[16],我們采用輸出尺寸為14×14的RoI池化,并將所有conv5層作為頭部的隱藏層。這得到了31.9的AP,如表2(a)。表2(b)是利用MLP頭部的基線,其具有2個隱藏的fc層,類似于我們的架構(gòu)中的頭部。它得到了28.8的AP,表明2-fc頭部沒有給我們帶來任何超過表2(a)中基線的正交優(yōu)勢。
表2。使用Fast R-CNN[11]在一組固定提議(RPN,{},表1(c))上的目標(biāo)檢測結(jié)果,在COCO的
minival
數(shù)據(jù)集上進行評估。模型在trainval35k
數(shù)據(jù)集上訓(xùn)練。所有結(jié)果都基于ResNet-50并共享相同的超參數(shù)。
表2(c)顯示了Fast R-CNN中我們的FPN結(jié)果。與表2(a)中的基線相比,我們的方法將AP提高了2.0個點,小型目標(biāo)AP提高了2.1個點。與也采用2頭部的基線相比(表2(b)),我們的方法將AP提高了5.1個點。這些比較表明,對于基于區(qū)域的目標(biāo)檢測器,我們的特征金字塔優(yōu)于單尺度特征。
表2(d)和(e)表明,去除自上而下的連接或去除橫向連接會導(dǎo)致較差的結(jié)果,類似于我們在上面的RPN小節(jié)中觀察到的結(jié)果。值得注意的是,去除自上而下的連接(表2(d))顯著降低了準(zhǔn)確性,表明Fast R-CNN在高分辨率映射中使用了低級特征。
在表2(f)中,我們在的單個最好的尺度特征映射上采用了Fast R-CNN。其結(jié)果(33.4 AP)略低于使用所有金字塔等級(33.9 AP,表2(c))的結(jié)果。我們認(rèn)為這是因為RoI池化是一種扭曲式的操作,對區(qū)域尺度較不敏感。盡管這個變體具有很好的準(zhǔn)確性,但它是基于{
}的RPN提議的,因此已經(jīng)從金字塔表示中受益。
5.2.2 Faster R-CNN(一致提議)
在上面我們使用了一組固定的提議來研究檢測器。但是在Faster R-CNN系統(tǒng)中[29],RPN和Fast R-CNN必須使用相同的骨干網(wǎng)絡(luò)來實現(xiàn)特征共享。表3顯示了我們的方法和兩個基線之間的比較,所有這些RPN和Fast R-CNN都使用一致的骨干架構(gòu)。表3(a)顯示了我們再現(xiàn)[16]中描述的Faster R-CNN系統(tǒng)的基線。在受控的環(huán)境下,我們的FPN(表3(c))比這個強勁的基線要好2.3個點的AP和3.8個點的AP@0.5。
表3。使用Faster R-CNN[29]在COCOminival
數(shù)據(jù)集上評估的目標(biāo)檢測結(jié)果。RPN與Fast R-CNN的骨干網(wǎng)絡(luò)是一致的。模型在trainval35k
數(shù)據(jù)集上訓(xùn)練并使用ResNet-50。由[16]的作者提供。
請注意,表3(a)和(b)的基線比He等人[16]在表3()中提供的基線強大得多。我們發(fā)現(xiàn)以下實現(xiàn)有助于縮小差距:(i)我們使用800像素的圖像尺度,而不是[11,16]中的600像素;(ii)與[11,16]中的64個ROI相比,我們訓(xùn)練時每張圖像有512個ROIs,可以加速收斂;(iii)我們使用5個尺度的錨點,而不是[16]中的4個(添加);(iv)在測試時,我們每張圖像使用1000個提議,而不是[16]中的300個。因此,與表3()中的He等人的ResNet-50 Faster R-CNN基線相比,我們的方法將AP提高了7.6點個并且將AP@0.5提高了9.6個點。
共享特征。在上面,為了簡單起見,我們不共享RPN和Fast R-CNN之間的特征。在表5中,我們按照[29]中描述的4步訓(xùn)練評估了共享特征。與[29]類似,我們發(fā)現(xiàn)共享特征提高了一點準(zhǔn)確率。特征共享也縮短了測試時間。
表5。使用Faster R-CNN和我們的FPN在minival
上的更多目標(biāo)檢測結(jié)果。共享特征將訓(xùn)練時間增加了1.5倍(使用4步訓(xùn)練[29]),但縮短了測試時間。
運行時間。通過特征共享,我們的基于FPN的Faster R-CNN系統(tǒng)使用ResNet-50在單個NVIDIA M40 GPU上每張圖像的推斷時間為0.148秒,使用ResNet-101的時間為0.172秒。作為比較,表3(a)中的單尺度ResNet-50基線運行時間為0.32秒。我們的方法通過FPN中的額外層引入了較小的額外成本,但具有更輕的頭部。總體而言,我們的系統(tǒng)比對應(yīng)的基于ResNet的Faster R-CNN更快。我們相信我們方法的高效性和簡潔性將有利于未來的研究和應(yīng)用。
5.2.3 與COCO競賽獲勝者的比較
我們發(fā)現(xiàn)表5中我們的ResNet-101模型在默認(rèn)學(xué)習(xí)速率的情況下沒有進行足夠的訓(xùn)練。因此,在訓(xùn)練Fast R-CNN步驟時,我們將每個學(xué)習(xí)速率的小批量數(shù)據(jù)的數(shù)量增加了2倍。這將minival
上的AP增加到了35.6,沒有共享特征。該模型是我們提交給COCO檢測排行榜的模型,如表4所示。由于時間有限,我們尚未評估其特征共享版本,這應(yīng)該稍微好一些,如表5所示。
表4。在COCO檢測基線上單模型結(jié)果的比較。一些在test-std
數(shù)據(jù)集上的結(jié)果是不可獲得的,因此我們也包括了在test-dev
上的結(jié)果(和Multipath[40]在minival
上的結(jié)果)。:[http://image-net.org/challenges/ talks/2016/GRMI-COCO-slidedeck.pdf](http://image-net.org/challenges/ talks/2016/GRMI-COCO-slidedeck.pdf)。
:http://mscoco.org/dataset/#detections-leaderboard。
:AttractioNet[10]的輸入采用VGG-16進行目標(biāo)提議,用Wide ResNet[39]進行目標(biāo)檢測,因此它不是嚴(yán)格意義上的單模型。
表4將我們方法的單模型結(jié)果與COCO競賽獲勝者的結(jié)果進行了比較,其中包括2016年冠軍G-RMI和2015年冠軍Faster R-CNN+++。沒有添加額外的東西,我們的單模型提交就已經(jīng)超越了這些強大的,經(jīng)過嚴(yán)格設(shè)計的競爭對手。在test-dev
數(shù)據(jù)集中,我們的方法在現(xiàn)有最佳結(jié)果上增加了0.5個點的AP(36.2 vs.35.7)和3.4個點的AP@0.5(59.1 vs. 55.7)。值得注意的是,我們的方法不依賴圖像金字塔,只使用單個輸入圖像尺度,但在小型目標(biāo)上仍然具有出色的AP。這只能通過使用前面方法的高分辨率圖像輸入來實現(xiàn)。
此外,我們的方法沒有利用許多流行的改進,如迭代回歸[9],難例挖掘[35],上下文建模[16],更強大的數(shù)據(jù)增強[22]等。這些改進與FPN互補,應(yīng)該會進一步提高準(zhǔn)確度。
最近,F(xiàn)PN在COCO競賽的所有方面都取得了新的最佳結(jié)果,包括檢測,實例分割和關(guān)鍵點估計。詳情請參閱[14]。
6. 擴展:分割提議
我們的方法是一種通用金字塔表示,可用于除目標(biāo)檢測之外的其他應(yīng)用。在本節(jié)中,我們使用FPN生成分割建議,遵循DeepMask/SharpMask框架[27,28]。
DeepMask/SharpMask在裁剪圖像上進行訓(xùn)練,可以預(yù)測實例塊和目標(biāo)/非目標(biāo)分?jǐn)?shù)。在推斷時,這些模型是卷積運行的,以在圖像中生成密集的提議。為了在多個尺度上生成分割塊,圖像金字塔是必要的[27,28]。
改編FPN生成掩碼提議很容易。我們對訓(xùn)練和推斷都使用全卷積設(shè)置。我們在5.1小節(jié)中構(gòu)造我們的特征金字塔并設(shè)置。在特征金字塔的每個層級上,我們應(yīng)用一個小的5×5MLP以全卷積方式預(yù)測14×14掩碼和目標(biāo)分?jǐn)?shù),參見圖4。此外,由于在[27,28]的圖像金字塔中每組使用2個尺度,我們使用輸入大小為7×7的第二個MLP來處理半個組。這兩個MLP在RPN中扮演著類似于錨點的角色。該架構(gòu)是端到端訓(xùn)練的,完整的實現(xiàn)細節(jié)在附錄中給出。
圖4。目標(biāo)分割提議的FPN。特征金字塔的構(gòu)造結(jié)構(gòu)與目標(biāo)檢測相同。我們在5x5窗口上應(yīng)用一個小的MLP來生成輸出尺寸為14x14的密集目標(biāo)塊。以橙色顯示的掩碼是每個金字塔層級所對應(yīng)的圖像區(qū)域的大小(此處顯示的是層級 7 \ approx 5 \ sqrt 2 $)處理,此處未展示。詳情見附錄。
6.1. 分割提議結(jié)果
結(jié)果如表6所示。我們報告了分割A(yù)R和在小型,中型和大型目標(biāo)上的分割A(yù)R,都是對于1000個提議而言的。我們的具有單個5×5MLP的基線FPN模型達到了43.4的AR。切換到稍大的7×7MLP,精度基本保持不變。同時使用兩個MLP將精度提高到了45.7的AR。將掩碼輸出尺寸從14×14增加到28×28會增加AR另一個點(更大的尺寸開始降低準(zhǔn)確度)。最后,加倍訓(xùn)練迭代將AR增加到48.1。
表6。在前5k張COCOval
圖像上評估的實例分割提議。所有模型都是在train
數(shù)據(jù)集上訓(xùn)練的。DeepMask,SharpMask和FPN使用ResNet-50,而Instance-FCN使用VGG-16。DeepMask和SharpMask性能計算的模型是從[https://github. com/facebookresearch/deepmask](https://github. com/facebookresearch/deepmask)上獲得的(都是‘zoom’變體)。運行時間是在NVIDIA M40 GPU上測量的,除了基于較慢的K40的InstanceFCN。
我們還報告了與DeepMask[27],Sharp-Mask[28]和InstanceFCN[4]的比較,這是以前的掩模提議生成中的先進方法。我們的準(zhǔn)確度超過這些方法8.3個點的AR。尤其是我們幾乎將小目標(biāo)的精度提高了一倍。
現(xiàn)有的掩碼提議方法[27,28,4]是基于密集采樣的圖像金字塔的(例如,[27,28]中的縮放為),使得它們是計算昂貴的。我們的方法基于FPN,速度明顯加快(我們的模型運行速度為6至7FPS)。這些結(jié)果表明,我們的模型是一個通用的特征提取器,可以替代圖像金字塔以用于其他多尺度檢測問題。
7. 結(jié)論
我們提出了一個干凈而簡單的框架,用于在ConvNets內(nèi)部構(gòu)建特征金字塔。我們的方法比幾個強大的基線和競賽獲勝者顯示出了顯著的改進。因此,它為特征金字塔的研究和應(yīng)用提供了一個實用的解決方案,而不需要計算圖像金字塔。最后,我們的研究表明,盡管深層ConvNets具有強大的表示能力以及它們對尺度變化的隱式魯棒性,但使用金字塔表示對于明確地解決多尺度問題仍然至關(guān)重要。
References
[1] E. H. Adelson, C. H. Anderson, J. R. Bergen, P. J. Burt, and J. M. Ogden. Pyramid methods in image processing. RCA engineer, 1984.
[2] S. Bell, C. L. Zitnick, K. Bala, and R. Girshick. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In CVPR, 2016.
[3] Z. Cai, Q. Fan, R. S. Feris, and N. Vasconcelos. A unified multi-scale deep convolutional neural network for fast object detection. In ECCV, 2016.
[4] J. Dai, K. He, Y. Li, S. Ren, and J. Sun. Instance-sensitive fully convolutional networks. In ECCV, 2016.
[5] N. Dalal and B. Triggs. Histograms of oriented gradients for human detection. In CVPR, 2005.
[6] P. Dollar, R. Appel, S. Belongie, and P. Perona. Fast feature pyramids for object detection. TPAMI, 2014.
[7] P.F.Felzenszwalb,R.B.Girshick,D.McAllester,andD.Ramanan. Object detection with discriminatively trained part-based models. TPAMI, 2010.
[8] G.GhiasiandC.C.Fowlkes.Laplacianpyramidreconstruction and refinement for semantic segmentation. In ECCV, 2016.
[9] S. Gidaris and N. Komodakis. Object detection via a multi-region & semantic segmentation-aware CNN model. In ICCV, 2015.
[10] S. Gidaris and N. Komodakis. Attend refine repeat: Active box proposal generation via in-out localization. In BMVC, 2016.
[11] R. Girshick. Fast R-CNN. In ICCV, 2015.
[12] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
[13] B.Hariharan,P.Arbelaez,R.Girshick,andJ.Malik.Hypercolumns for object segmentation and fine-grained localization. In CVPR, 2015.
[14] K. He, G. Gkioxari, P. Dollar, and R. Girshick. Mask r-cnn. arXiv:1703.06870, 2017.
[15] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV. 2014.
[16] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016.
[17] S. Honari, J. Yosinski, P. Vincent, and C. Pal. Recombinator networks: Learning coarse-to-fine feature aggregation. In CVPR, 2016.
[18] T. Kong, A. Yao, Y. Chen, and F. Sun. Hypernet: Towards accurate region proposal generation and joint object detection. In CVPR, 2016.
[19] A. Krizhevsky, I. Sutskever, and G. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, 2012.
[20] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel. Backpropagation applied to handwritten zip code recognition. Neural computation, 1989.
[21] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dolla?r, and C. L. Zitnick. Microsoft COCO: Common objects in context. In ECCV, 2014.
[22] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, and S. Reed. SSD: Single shot multibox detector. In ECCV, 2016.
[23] W. Liu, A. Rabinovich, and A. C. Berg. ParseNet: Looking wider to see better. In ICLR workshop, 2016.
[24] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015.
[25] D. G. Lowe. Distinctive image features from scale-invariant keypoints. IJCV, 2004.
[26] A. Newell, K. Yang, and J. Deng. Stacked hourglass networks for human pose estimation. In ECCV, 2016.
[27] P. O. Pinheiro, R. Collobert, and P. Dollar. Learning to segment object candidates. In NIPS, 2015.
[28] P. O. Pinheiro, T.-Y. Lin, R. Collobert, and P. Dolla?r. Learning to refine object segments. In ECCV, 2016.
[29] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In NIPS, 2015.
[30] S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun. Object detection networks on convolutional feature maps. PAMI, 2016.
[31] O. Ronneberger, P. Fischer, and T. Brox. U-Net: Convolutional networks for biomedical image segmentation. In MIC- CAI, 2015.
[32] H. Rowley, S. Baluja, and T. Kanade. Human face detection in visual scenes. Technical Report CMU-CS-95-158R, Carnegie Mellon University, 1995.
[33] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet Large Scale Visual Recognition Challenge. IJCV, 2015.
[34] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014.
[35] A. Shrivastava, A. Gupta, and R. Girshick. Training region-based object detectors with online hard example mining. In CVPR, 2016.
[36] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.
[37] J. R. Uijlings, K. E. van de Sande, T. Gevers, and A. W. Smeulders. Selective search for object recognition. IJCV, 2013.
[38] R. Vaillant, C. Monrocq, and Y. LeCun. Original approach for the localisation of objects in images. IEE Proc. on Vision, Image, and Signal Processing, 1994.
[39] S. Zagoruyko and N. Komodakis. Wide residual networks. In BMVC, 2016.
[40] S. Zagoruyko, A. Lerer, T.-Y. Lin, P. O. Pinheiro, S. Gross, S. Chintala, and P. Dolla?r. A multipath network for object detection. In BMVC, 2016. 10