特徵金字塔網絡 (FPN)

特徵金字塔網絡 (FPN)

  特徵金字塔網絡 (FPN) 發表在 2017 年的 CVPR 上。
  FPN 是基於一個特徵提取網絡的,即是基於一個主幹模型的,它可以是常見的 ResNet 或者 DenseNet 之類的網絡(常見的命名方法是:主幹網絡-層數-FPN,例如:ResNet-101-FPN)。
  這是個萬金油網絡,可以用在目標檢測、實例分割、姿態識別、面部識別等各種各樣的應用裏。文章僅僅公開幾個月就有了近 100 次引用。文章題目是《用於目標識別的金字塔特徵網絡》,所以作者把 FPN 帶入到 Faster-RCNN 中作爲區域推薦網絡 (RPN)。很多關鍵的細節在原文中都有詳細的解釋,爲了節約時間我這裏列幾條重點。
  參考資料:
  http://baijiahao.baidu.com/s?id=1597136132623599006&wfr=spider&for=pc

多尺度的實現

  圖像裏的目標尺寸大小各種各樣,數據集裏的物體不可能涵蓋所有的尺度,所以人們利用圖像金字塔(不同分辨率的下采樣)來幫助 CNN 學習。但是這樣的速度太慢了,所以人們只使用單一尺度來預測,也有人會取中間結果來預測。後者和前者很像,只不過是在特徵圖上的。比較容易想到的方法是,在幾層殘差模塊後面加一層轉置卷積,提高分辨率,得到分割的結果,或者通過 1x1 的卷積或 GlobalPool 得到分類的結果。這種架構在有輔助信息和輔助損失函數時被大量使用。
  FPN 的作者用一種很巧妙的辦法提高了上述的方法。除了側向的連接,還加入了自上而下的連接。這樣做效果非常好。作者把從上到下的結果和側向得到的結果通過相加的辦法融合到一起。這裏的重點在於,低層次的特徵圖語義不夠豐富,不能直接用於分類,而深層的特徵更值得信賴。將側向連接與自上而下的連接組合起來,就可以得到不同分辨率的的特徵圖,而它們都包含了原來最深層特徵圖的語義信息。
在這裏插入圖片描述

模型細節

  1)金字塔
  同樣尺寸的特徵圖屬於同一級。每級最後一層輸出是金字塔的特徵圖,比如 ResNet 第 2,3,4,5 個模塊的最後一層。你可以根據需要進行調整。

  2)側向連接
  通過 1x1 卷積並與經過上採樣的從上到下連接的結果相加求和。自上而下的部分生成粗粒度特徵,自下而上的部分通過側向連接加入細粒度特徵。原文的圖示表達的非常明瞭。 原文中只是用一個簡單的例子展示了 FPN 的設計之簡單以及效果之可觀,這不代表它不能用於更復雜的研究中。

  3)用 FPN 作爲 RPN
用 FPN 的多分辨率特徵取代單一分辨率的特徵圖,每一級上用同樣的尺寸的 anchor(因爲特徵圖尺度不同從而達到了多尺度 anchor 的效果)。金字塔的每一級都共享相似的語義水平。
  FasterRCNN - 用類似於處理圖像金字塔的方法來處理 FPN。ROI通過公式來分派給特定的一級。

實驗結果

  簡單粗暴地在 COCO 數據集上獲得了最優效果。對每一個模塊都進行了單變量實驗,從而證明了開頭的說法。
  ResNet 後續作品中, ResNeXt, Wide-ResNet, ResNet-In-ResNet, FractcalNet … 不乏有在 imagenet 上 performance 更好的,但在實踐中踩過坑後,大家仍會偏愛 ResNet。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章