FPN網絡圖解
原圖片以及PPT源文件下載鏈接(歡迎關注我的知乎!):
鏈接:https://pan.baidu.com/s/10y78HagInyCuCA-aMeNJpg
提取碼:iccm
復制這段內容后打開百度網盤手機App,操作更方便哦
基本信息
-
論文名稱
Feature Pyramid Networks for Object Detection
-
作者
Tsung-Yi Lin等
Facebook AI Research
-
發表時間
2017年
-
來源
CVPR2017
主要收獲
-
知識
-
高級語義信息是有助於識別目標但有害於定位目標,低級空間信息有害於識別目標但有助於定位目標(由於其下采樣次數較少,所以其可以更准確地定位)。
-
SSD沒有利用higher-resolution maps,而本文證明了higher-resolution maps對於檢測小物體很重要。
-
Introduction整體思路
Feature Pyramids可以用於檢測不同尺度的目標。
Featurized Image Pyramids將圖片縮放到不同大小並分別提取其特征並進行檢測,其結構如圖1(a)所示,其被大量應用於手工特征,其優點是每個層次都具有很強的語義信息(即使是high-resolution levels),其缺點是分別提取每個層次的特征並進行檢測導致推理時間相應加倍。
在recognition任務中,卷積網絡逐漸取代了手工特征。卷積網絡(Single feature map)逐漸不僅可以表示高級語義,在尺度變化方面也更具穩健性,因此可以只在一個尺度的特征圖上進行檢測,其結構如圖1(b)所示,但其缺點是未利用到卷積網絡固有的Pyramidal feature hierarchy。
卷積網絡(Pyramidal feature hierarchy)天然具有多尺度的、金字塔型的特征層次,其結構如圖1(c)所示,其缺點是造成不同層次特征圖之間的語義差異,high-resolution maps中包含的低級特征降低了該特征圖在目標檢測任務中的表征能力。SSD並沒有利用higher-resolution maps,但本文證明了higher-resolution maps對於檢測小物體很重要。
如圖2(top)所示,一些采用自上到下路徑和skip connections的方法僅在自上到下路徑頂部的單個特征圖上進行預測,實際上這些方法還需要image pyramids以識別多尺度的目標。
如圖2(bottom)和圖1(d)所示,FPN自然地利用卷積網絡固有的金字塔層次同時創建每層都有較強語義信息的特征金字塔,通過1個從上到下的路徑和側邊連接將low-resolution、semantically strong的特征和high-resolution、semantically weak的特征結合起來,在自上到下路徑所有特征圖上都進行預測,最終僅從單尺度的輸入圖片得到各層都有較強語義信息的特征金字塔,且不需額外計算成本。
-
FPN以任意大小的單張圖片為輸入。
-
對於ResNet,FPN並不將其第1個stage的輸出包含到FPN中因為其內存占用量比較大。
-
FPN中bottom-up路徑中相鄰層間下采樣比例為2
-
FPN的building block
圖3展示了創建top-down路徑中特征圖的building block。將top-down路徑中coarser-resolution的特征圖上采樣(比例為2),將bottom-up路徑中的特征圖通過1×1卷積減少通道數,然后將兩者相加(element-wise)。這個過程一直迭代到生成最大的特征圖。在開始top-down路徑之前會在bottom-up路徑頂層使用1×1卷積生成尺度最小的特征圖。在每個相加操作之后使用3×3卷積減少上采樣帶來的混淆效應(aliasing effect)。
-
FPN和傳統的featurized image pyramid一樣,各個金字塔層都使用共享的classifier/regressor。
-
-
一些未知的東西
-
特征金字塔
原文:E. H. Adelson, C. H. Anderson, J. R. Bergen, P. J. Burt, and J. M. Ogden. Pyramid methods in image processing. RCA engineer, 1984.
-
尺度不變性(scale-invariant)
-
Abstract
-
Feature Pyramids(特征金字塔)是識別系統中用來檢測不同尺度的目標的一個基本組件
-
近期深度學習目標檢測方法卻避免了pyramid representations,如原文圖1(b),部分原因是它們是計算和內存密集型的
-
FPN(Feature Pyramid Network)
- 使用少量成本,利用卷積網絡固有的多尺度金字塔層次結構來構建特征金字塔
- 是一種帶有側向連接的自頂向下的結構,可以在所有尺度上構建高級語義特征
-
性能
- 將FPN應用於基本的Faster-RCNN,在COCO detection benchmark上超過SOTA的single model
- 在GPU上達6FPS
1. Introduction
-
識別不同尺寸的目標是計算機視覺領域的一個基礎挑戰
-
Featurized Image Pyramids(特征化的圖像金字塔)
-
定義
Featurized Image Pyramids即Feature pyramids built upon image pyramids(建立在圖像金字塔上的特征金字塔),見原文圖1(a)。也就是將圖片縮放到不同大小並分別提取其特征並進行檢測。
其構成了標准解決方案的基礎,其具有尺度不變性(scale-invariant),因為可以通過金字塔中的不同層來處理不同尺寸的目標,可以基於層維度和位置維度對目標進行掃描檢測。
-
應用
Featurized Image Pyramids在手工設計的特征中被大量使用,如DPM算法。
-
優點
所有最近的ImageNet和COCO比賽的前幾名都在Featurized Image Pyramids上進行多尺度測試。
Featurized Image Pyramids的主要優點是每個層次都具有很強的語義信息,即使是high-resolution levels。
-
缺點
- 分別提取每個層次的特征並進行檢測,推理時間相應地加倍。
- 考慮到內存等因素,不可能端到端地在圖像金字塔上訓練卷積網絡,最多只能在測試的時候使用圖像金字塔(同時這也造成訓練和測試的不一致性)
因為這些原因,Fast和Faster R-CNN默認也就沒有使用FIP。
-
-
卷積網絡(Single feature map)
在Recognition任務中,手工特征逐漸被卷積網絡取代。
卷積網絡不僅可以表示高級語義,在尺度變化方面也更具穩健性,因此可以只在一個尺度的特征圖上進行檢測,如原文圖1(b)。
但即使具備這樣的穩健性,卷積網絡中仍然需要金字塔(可以通過Pyramidal feature hierarchy改進)。
-
卷積網絡(Pyramidal feature hierarchy)
-
固有金字塔特征層次
然而image pyramids並不是實現多尺度特征表示的唯一方法,卷積神經網絡天然具有多尺度的、金字塔型的特征層次(feature hierarchy),如原文圖1(c)。
-
缺點
卷積網絡的特征層次產生了不同尺寸的特征圖,但是造成不同層次特征圖之間的語義差異,尺寸大的特征圖(high-resolution maps)包含着低級特征,這些低級特征降低了該特征圖在目標檢測任務中的表征能力。
SSD是第一批嘗試利用卷積網絡中Pyramidal feature hierarchy的方法之一,但其也存在不足。理想情況中,SSD系列會利用forward pass中生成的多尺度特征,因此沒有額外計算成本。但是為了避免使用低級特征,SSD沒有使用已有的層,而是從網絡高層開始構建金字塔並添加幾個新層。因此SSD沒有利用higher-resolution maps,而本文證明了higher-resolution maps對於檢測小物體很重要。
-
-
Feature Pyramid Network
-
定義
自然地利用卷積網絡固有的金字塔層次同時創建每層都有較強語義信息的特征金字塔。如圖1(d)和圖2(bottom)所示,通過1個從上到下的路徑和側邊連接將low-resolution、semantically strong的特征和high-resolution、semantically weak的特征結合起來,僅從單尺度的輸入圖片得到各層都有較強語義信息的特征金字塔,且不需額外計算成本。
-
相關工作
如圖2(top)所示,其它采用自上到下路徑和skip connections的方法僅在自上到下路徑頂部的單個特征圖上進行預測,實際上這些方法還需要image pyramids以識別多尺度的目標,而FPN是在自上到下路徑所有特征圖上都進行預測。
-
效果
在detection和segmentation系統上進行評估,僅將FPN應用於基礎的Faster R-CNN在COCO detection benchmark上實現SOTA。
在ablation experiments中,對於bounding box proposals,FPN將AR(Average Recall)提升了8 points;對於目標檢測,將COCO-style Average Precision (AP)提升了2.3 points,將PASCAL-style AP,提高了3.8 points。
FPN易於應用於到mask proposals並能提升實例分割的AR和速度。
FPN可以進行端到端的多尺度訓練,並且在訓練和測試時都可以用,還不增加計算成本。
-
2. Related Work
-
Hand-engineered features and early neural networks
SIFT特征用於特征點匹配,HOG和后來的SIFT在整個圖像金字塔上進行密集計算,它們在圖像分類、目標檢測、人體姿態估計等任務中被大量使用。
很快地也有了許多關於featurized image pyramids的研究。Dollar等人首先按尺度稀疏采樣得到1個金字塔,然后對缺失的level進行插值,實現了快速的金字塔計算。在HOG和SIFT之前,使用卷積網絡進行人臉檢測的早期工作計算圖像金字塔上的淺層網絡以檢測跨多尺度的人臉。
-
Deep ConvNet object detectors
OverFeat采用1種與早期神經網絡人臉檢測器相似的策略,其將1個卷積網絡作為1個sliding window detector應用於圖像金字塔。
R-CNN采用1種基於region proposal的策略,其中在使用卷積網絡分類之前each proposal was scale-normalized。
SPPNet表明這些基於region的detector可以更有效地應用於從單尺度圖片提取出的特征圖上。
最近更加准確的Fast R-CNN和Faster R-CNN等算法提倡使用從單尺度圖片計算得到的特征,因為這可以實現accuracy和speed的trade-off。
Multi-scale detection仍然表現更佳,特別是對於小目標。
-
Methods using multiple layers
最近大量方法利用卷積網絡中的不同層提高了檢測和分割的性能。FCN在多個尺度上計算每個category的的partial score以得到語義分割,Hypercolumns將類似方法應用於object instance segmentation。HyperNet、ParseNet和ION等方法在計算結果前將多層特征拼接,這等價於對轉換后的特征求和。SSD和MS-CNN在多個特征層分別預測結果,並沒有將多層特征結合。
最近有很多方法在探索可以將低級特征和高級特征融合的lateral/skip connections,包括用於segmentation的U-Net和SharpMask、用於人臉檢測的Recombinator networks、用於關鍵點預測的Stacked Hourglass networks。Ghiasi等人實現了在FCN上實現了1個Laplacian pyramid presentation,可以逐漸優化分割結果。即使這些方法采用了金字塔形狀的結構,它們並不像featurized image pyramids一樣在所有層獨立預測結果,如圖2所示,實際上這些方法還需要image pyramids以識別多尺度的目標。
3. Feature Pyramid Networks
FPN的目標是構造1個各層都具有較強高級語義信息的特征金字塔。FPN is general-purpose(多用途的),本文將其應用於RPN和Fast R-CNN,在Sec. 6中將其generalize到instance segmentation proposals。
FPN通過全卷積的方式,以任意大小的單張圖片為輸入,在多個尺度輸出對應比例大小的特征圖。該過程獨立於骨干網絡的具體架構,本文展示了基於ResNet的結果。FPN的構建包括1個bottom-up路徑、1個top-down路徑和lateral connections。
-
Bottom-up pathway
Bottom-up pathway就是骨干網絡的feedforward,每層間下采樣比例為2。網絡中經常有連續幾個層輸出的特征圖尺寸相同,我們稱這些層位於同1個stage。在FPN中,為每個stage定義1個金字塔層。取每個stage中最后1層的輸出代表該stage,因為每個stage中最深的層應該具有最強的特征。
對於ResNet,使用后4個stage(相對於輸入的步長分別為4、8、16、32)的輸出,並不將第1個stage的輸出包含到FPN中因為其內存占用量比較大。
-
Top-down pathway and lateral connections
top-down pathway將金字塔中空間信息粗糙、語義信息更強的高層特征圖上采樣生成尺寸較大的特征圖,然后通過lateral connections用bottom-up路徑中的特征對這些特征進行增強。每個lateral connection將bottom-up路徑和top-down路徑中相同尺寸的特征圖融合。bottom-up路徑中的特征圖具有較低級別的語義信息,但是由於其下采樣次數較少所以其可以更准確地定位。
圖3展示了創建top-down路徑中特征圖的building block。將top-down路徑中coarser-resolution的特征圖上采樣(比例為2),將bottom-up路徑中的特征圖通過1×1卷積減少通道數,然后將兩者相加(element-wise)。這個過程一直迭代到生成最大的特征圖。在開始top-down路徑之前會在bottom-up路徑頂層使用1×1卷積生成尺度最小的特征圖。在每個相加操作之后使用3×3卷積減少上采樣帶來的混淆效應(aliasing effect)。
因為各個金字塔層都和傳統的featurized image pyramid一樣使用共享的classifier/regressor,所以將所有額外卷積層的輸出通道數設置為256。在這些額外的層中,並不存在non-linearities,但我們憑經驗發現其影響很小。
simplicity對FPN非常重要,我們發現FPN對很多設計選擇具有魯棒性。我們使用更sophisticated的block(比如使用multilayer residual blocks作為連接)進行實驗並觀察到了略勝一籌的結果。設計更優的connection並非本文的重點,所以我們采用了上述的簡單設計。
4. Applications
略……
Github(github.com):@chouxianyu
Github Pages(github.io):@臭咸魚
知乎(zhihu.com):@臭咸魚
博客園(cnblogs.com):@臭咸魚
B站(bilibili.com):@絕版臭咸魚
微信公眾號:@臭咸魚
轉載請注明出處,歡迎討論和交流!