原文標題:Feature Pyramid Networks for Object Detection
論文鏈接:http://arxiv.org/abs/1612.03144
概要
利用特征金字塔檢測不同尺度的目標是一種基本的方法,但很多目標檢測器都避免使用特征金字塔,因為特征金字塔這種表示方法計算速度代價比較大。作者提出了一種內在多尺度,金字塔層級的表示結構,能夠構造高級語義特征的不同尺度表示,並且增加了較少的代價,稱為FPN特征金字塔。所謂的內在多尺度是在不同的層級上去預測,而不是融合不同層級的feature map然后去預測;而高級語義特征的不同尺度表示,我認為是因為每一層都有上一層的特征的融合,所以每一層的feature map也有一定的高級語義的表達能力,同時還保留着低級別的特征。
對於多尺度目標的表示,有上述四種方法。
a是特征化的圖像金字塔,這種方式比較慢。論文中 These pyramids are scale-invariant in the sense that an object's scale change is offset by shifting its level in the pyramid,我的理解是這里的object表示的是同類別的不同尺度的目標,這些目標有大有小,較大的目標在高層次的feature map中的表示應該和較小的目標在低層次的feature map中的表示是形同的,所以就可以說這個金字塔是尺度不變的。
b是常見的單一feature map的預測,能夠表示高級的語義信息,而且具有一定的尺度不變性,而且比上一種更快,但不能具有更魯棒的尺度不變性。
c作者稱為金字塔化的特征層級表示,就是從不同層級的feature map中去直接預測,與作者提出的很相近
d是作者所提出的方案,比較快而且也比較准確。
結構框架
FPN是一種自頂向下的結構,它不只是將top層上采樣然后橫向融合對應自底向上的一層,而是在融合之前,將自底向上中的對應層經過了1個1x1conv減少通道數 ,然后再進行的融合,后面結果表明這個lateral層很有必要;自頂向下經過迭代之后還不是最終的feature map,將各層feature map再經過一個3x3conv(目的是減少上采樣的混疊效應,不太理解?)得到最終圖中藍框的feature maps,圖中越藍的框表示那一層有較強的語義信息。
應用
作者將FPN分別應用於rpn以及fast rcnn。
rpn,對於FPN的每一level都經過1個3x3conv和兩個1x1conv,在這里所有一個共享參數,就是在rpn head時,每一level的特征都經過相同的層,比非共享表現好一點,而且時間更少,這說明金字塔各層次的feature map有相似的語義級別。rpn實際上就是按照feature map的每一個點去滑動anchor生成多個anchor,只不過之前是在一個feature map上去滑動窗口,anchor有面積縱橫比的區別,area(32,64,128,256,512)5種,根據縱橫比(0.5,1,2)3種,在feature map的每個點上有15種不同的anchor。而運用了fpn之后,area分別對應於5個level的feature map,每一level又有上面3種縱橫比,也就是在每一level的feature map上的每個點上變成只有3個anchor。沒用fpn之前通過不同area的anchor來捕獲不同尺度的目標,而fpn有不同尺度的feature map則可以再不同的level上捕獲不同尺度的目標特征。
fast cnn, 主要的區別在於ROI pooling不在是在一個feature map上而是在多level的feature maps上。對於從rpn得到的Bbox它是怎么確定level的呢?根據下面公式確定
k0 = 4 表示如果wh = 224時,它應該map到level4
,這個224是ImageNet標准的預訓練的圖片大小,fasterCNN中采用C4作為單feature map輸出,因此這里k0取為4。因為從rpn得到的Bbox有不同的area,所以就會被map到不同的level,進行roipooling,ROIpooling固定輸出7x7,經過兩個fc層,最后進行最終分類以及回歸
實驗
數據集:coco
RPN vs FPN
lateral是使用橫向的層,top-down是自頂向下迭代融合生成各level。
Fast R-CNN vs FPN
Faster R-CNN vs FPN
總結
FPN主要是提供了一個多尺度特征表示的方法,稱之為特征金字塔,主要就是將高層特征上采樣加上經過lateral的下層特征得到具體的一層,然后自頂向下依次構造,各層經過分別處理后得到最終的多level feature maps。
深層的卷積神經網絡雖然有着更豐富的語義表達,具有有限的尺度不變性,因此需要多尺度的特征表示來彌補,這對於目標檢測以及分割等任務都是有益的。