FPN 學習筆記


通常,利用網絡對物體進行檢測時,淺層網絡分辨率高,學到的是圖片的細節特征,深層網絡,分辨率低,學到的更多的是語義特征。

1)、通常的CNN使用如下圖中顯示的網絡,使用最后一層特征圖進行預測

例如VGG16,feat_stride=16,表示若原圖大小是1000*600,經過網絡后最深一層的特征圖大小是60*40,可理解為特征圖上一像素點映射原圖中一個16*16的區域;那這個是不是就表示,如果原圖中有一個小於16*16大小的小物體,是不是就會被忽略掉,檢測不到呢!

所以,使用上圖中的網絡的缺點就是,會造成檢測小物體的性能急劇下降

 

2)、如果上面的單層檢測會丟失細節特征;就會想到,利用圖像的各個尺度進行訓練和測試,比如下圖所展示(圖片金字塔生成特征金字塔)

將圖片縮放成多個比例,每個比例單獨提取特征圖進行預測,這樣,可以得到比較理想的結果,但是比較耗時,不太適合運用到實際當中。

 

3)、為了節約時間,直接使用卷積網絡中產生的各層特征圖分別進行預測

SSD網絡也采用了類似的思想,這種方法的問題在於,讓不同深度的特征圖去學習同樣的語義信息,同樣會忽略掉底層網絡中的細節特征

 

4)FPN網絡,網絡結構原理如下圖所示

先來說下FPN能解決什么問題

FPN主要解決的是物體檢測中的多尺度問題,通過簡單的網絡連接改變,在基本不增加原有模型計算量的情況下,大幅度提升了小物體檢測的性能

左邊的稱為“自底向上”,右邊的稱為“自上而下”

①   自底向上:

自底向上的過程就是神經網絡普通的正向傳播過程,特征圖經過卷積核計算,通常會越變越小

②   自上而下:

自上而下的過程是把更抽象、語義更強的高層特征圖進行上采樣,然后把該特征橫向連接至前一層特征,因此,高層特征得到了增強,每一層預測所用的feature map都融合了不同分辨率、不同語義強度的特征,可以完成對應分辨率大小的物體進行檢測,保證每一層都有合適的分辨率以及強語義特征。

值得注意的是:橫向連接的兩層特征在空間尺寸上要相同,這樣做可以利用底層定位細節信息

 

上面通過文字描述完成了FPN網絡的演化歷程及其基本原理,下面通過一張圖,對FPN的工作原理進行補充描述(基於ResNet50網絡)

從上圖中可以很清晰的看到FPN工作的原理,至於后面省略掉的網絡不是這次的重點,可以參看RPN相關知識點

 

作為一枚技術小白,寫這篇筆記的時候參考了很多博客論文,在這里表示感謝,同時,未經同意,請勿轉載....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM