目標檢測演算法之——FPN(Feature Pyramid Networks)
阿新 • • 發佈:2019-01-08
以往多數的object detection演算法都是只採用頂層特徵做預測,但我們知道低層的特徵語義資訊比較少,但是目標位置準確;高層的特徵語義資訊比較豐富,但是目標位置比較粗略。另外雖然也有些演算法採用多尺度特徵融合的方式,但是一般是採用融合後的特徵做預測,而本文不一樣的地方在於預測是在不同特徵層獨立進行的。這篇文章,作者利用了深度卷積神經網路固有的多尺度、多層級的金字塔結構去構建特徵金字塔網路,使用一種自上而下的側邊連線,在所有尺度構建了高階語義特徵圖,這種結構就叫特徵金字塔網路(FPN)。其在特徵提取上改進明顯,把FPN用在Faster R-CNN上,在COCO資料集上,一舉超過了目前所有的單模型(single-model)檢測方法。
4種特徵map的使用形式: (a)影象金字塔,即將影象做成不同的scale,然後不同scale的影象生成對應的不同scale的特徵。這種方法的缺點在於增加了時間成本。有些演算法會在測試時候採用影象金字塔。 (b)像SPP net,Fast RCNN,Faster RCNN是採用這種方式,即僅採用網路最後一層的特徵。 (c)像SSD(Single Shot Detector)採用這種多尺度特徵融合的方式,沒有上取樣過程,即從網路不同層抽取不同尺度的特徵做預測,這種方式不會增加額外的計算量。作者認為SSD演算法中沒有用到足夠低層的特徵(在SSD中,最低層的特徵是VGG網路的conv4_3),而在作者看來足夠低層的特徵對於檢測小物體是很有幫助的。 (d)本文作者是採用這種方式,頂層特徵通過上取樣和低層特徵做融合,而且每層都是獨立預測的。 |
上面一個帶有skip connection的網路結構在預測的時候是在finest level(自頂向下的最後一層)進行的,簡單講就是經過多次上取樣並融合特徵到最後一步,拿最後一步生成的特徵做預測。而下面一個網路結構和上面的類似,區別在於預測是在每一層中獨立進行的。 | 主網路採用ResNet。 一個自底向上的線路,一個自頂向下的線路,橫向連線(lateral connection)。圖中放大的區域就是橫向連線,這裡1*1的卷積核的主要作用是減少卷積核的個數,也就是減少了feature map的個數,並不改變feature map的尺寸大小。 |
Faster R-CNN+Resnet-101
把Faster-RCNN中原有的VGG網路換成ResNet-101
Faster R-CNN with FPN