一般,利用網絡對物體進行檢測時,淺層網絡分辨率高,學到的是圖片的細節特徵,深層網絡,分辨率低,學到的更多的是語義特徵。網絡
1)、一般的CNN使用以下圖中顯示的網絡,使用最後一層特徵圖進行預測ide
例如VGG16,feat_stride=16,表示若原圖大小是1000*600,通過網絡後最深一層的特徵圖大小是60*40,可理解爲特徵圖上一像素點映射原圖中一個16*16的區域;那這個是否是就表示,若是原圖中有一個小於16*16大小的小物體,是否是就會被忽略掉,檢測不到呢!性能
因此,使用上圖中的網絡的缺點就是,會形成檢測小物體的性能急劇降低學習
2)、若是上面的單層檢測會丟失細節特徵;就會想到,利用圖像的各個尺度進行訓練和測試,好比下圖所展現(圖片金字塔生成特徵金字塔)測試
將圖片縮放成多個比例,每一個比例單獨提取特徵圖進行預測,這樣,能夠獲得比較理想的結果,可是比較耗時,不太適合運用到實際當中。blog
3)、爲了節約時間,直接使用卷積網絡中產生的各層特徵圖分別進行預測圖片
SSD網絡也採用了相似的思想,這種方法的問題在於,讓不一樣深度的特徵圖去學習一樣的語義信息,一樣會忽略掉底層網絡中的細節特徵博客
4)FPN網絡,網絡結構原理以下圖所示class
先來講下FPN能解決什麼問題原理
FPN主要解決的是物體檢測中的多尺度問題,經過簡單的網絡鏈接改變,在基本不增長原有模型計算量的狀況下,大幅度提高了小物體檢測的性能
左邊的稱爲「自底向上」,右邊的稱爲「自上而下」
① 自底向上:
自底向上的過程就是神經網絡普通的正向傳播過程,特徵圖通過卷積覈計算,一般會越變越小
② 自上而下:
自上而下的過程是把更抽象、語義更強的高層特徵圖進行上採樣,而後把該特徵橫向鏈接至前一層特徵,所以,高層特徵獲得了加強,每一層預測所用的feature map都融合了不一樣分辨率、不一樣語義強度的特徵,能夠完成對應分辨率大小的物體進行檢測,保證每一層都有合適的分辨率以及強語義特徵。
值得注意的是:橫向鏈接的兩層特徵在空間尺寸上要相同,這樣作能夠利用底層定位細節信息
上面經過文字描述完成了FPN網絡的演化歷程及其基本原理,下面經過一張圖,對FPN的工做原理進行補充描述(基於ResNet50網絡)
從上圖中能夠很清晰的看到FPN工做的原理,至於後面省略掉的網絡不是此次的重點,能夠參看RPN相關知識點
做爲一枚技術小白,寫這篇筆記的時候參考了不少博客論文,在這裏表示感謝,同時,未經贊成,請勿轉載....