天天看點

FPN(Feature Pyramid Networks) 網絡FPN 網絡

FPN 網絡

1. 前言

通常在神經網絡中,淺層特征圖(feature maps)的感受野比較小,包含語義資訊比較少,但是其空間位置資訊準确,而深層網絡,感受野大,語義資訊強,但是由于 pooling 等造成了像素位置資訊丢失等,是以空間位置資訊比較粗糙。但是對于檢測任務,往往既需要語義資訊(分類),也需要位置資訊(bbox),此外由于深層特征圖往往被壓縮到比較小的size,也會影響小目标的檢測,是以低層和高層特征的融合是有必要的,而 FPN 就是一種特征融合的方式。

FPN(Feature Pyramid Networks) 是 Tsung-Yi Lin 等人于 2016 年在 Feature Pyramid Networks for Object Detection 提出的。FPN 的概念并不是憑空産生的,其實和圖像金字塔的思想類似,隻不過是特征層面的,是以叫 Feature Pyramid。

2. FPN

下面這幅圖是作者在原文中給出來的示意圖。

  • a 對某一輸入圖檔我們通過壓縮或放大進而形成一系列不同次元的圖檔,把這些圖檔分别輸入模型,得到一系列的特征圖(feature maap)的集合,這個集合就是可反映多元度資訊的特征集。這種方法原本一張圖變成了多張,是以對計算機的算力及記憶體大小都有較高要求。
  • b 就是常見的,比如 RCNN 系列中的做法,沒有多尺度的概念。優點是計算簡單,對計算機算力及記憶體大小都無過高需求。但是這些模型對小次元的目标檢測性能不是很好。
  • c 和 b 一樣是一張圖檔輸入,不同的是并不是簡單的隻取最後的到的 feature map,而是同時輸出了多個層的 feature map,也就是說輸出的是一個特征組合。通常得到這個組合的方法有 concat, element wise add/multiply, 這裡一般用的是 concat。也就是說此方法不隻選用了最後一層的 high level feature maps,同樣也會選用稍靠下的反映圖檔 low level 資訊的 feature maps。比如 SSD 中就有類似的操作。
  • d 就是作者提出的 FPN,也是拿單一次元的圖檔作為輸入,然後它會選取所有層的特征來處理然後再聯合起來做為最終的特征輸出組合。(作者在論文中拿Resnet為執行個體時并沒選用Conv1層,那是為了算力及記憶體上的考慮,畢竟Conv1層的size還是比較大的,所包含的特征跟直接的圖檔像素資訊也過于接近)。不同的是還對這些反映不同級别圖檔資訊的各層自上向下進行了再處理,以能更好地組合進而形成較好的特征表達(詳細過程會在下面章節中進一步介紹)。而此方法正是我們本文中要講的FPN CNN特征提取方法。
FPN(Feature Pyramid Networks) 網絡FPN 網絡

值得一提的是,FPN 所采用的方式(下圖中的下方的視圖)并不是隻用了融合了所有特征圖的輸出,而是自上而下融合後的每一步輸出所共同建構的 feature pyramid。

FPN(Feature Pyramid Networks) 網絡FPN 網絡

3. FPN 細節

下面這張圖解釋了如何進行特征圖融合。橫向進行 1×1 的卷積操作,也就是為了改變 feature map 的 channel,使得 channel 相同,從上向下進行上采樣(雙線性插值),然後進行 element-wise 加法進行融合。

FPN(Feature Pyramid Networks) 網絡FPN 網絡

FPN 提供了一種端到端的建構 feature pyramid 的方法,它是可以被用到其他網絡中的,比如 ResNet。

FPN(Feature Pyramid Networks) 網絡FPN 網絡

4. 思考

  • Q1:不同深度的 feature map 為什麼可以經過 upsample 後直接相加?

    作者解釋說這個原因在于我們做了end-to-end的training,因為不同層的參數不是固定的,不同層同時給監督做end-to-end training,是以相加訓練出來的東西能夠更有效地融合淺層和深層的資訊。

  • Q2:為什麼 FPN 對小目标檢測效果有提升?因為深層次的 feature map 提供了更多的語義資訊,而淺層次提供了高分辨率的小目标,融合後可以更好的檢測小目标。
  • Q3:如果不考慮時間情況下,image pyramid是否可能會比feature pyramid的性能更高?作者覺得經過精細調整訓練是可能的,但是image pyramid(金字塔)主要的問題在于時間和空間占用太大,而feature pyramid可以在幾乎不增加額外計算量情況下解決多尺度檢測問題。

參考

  • 『計算機視覺』FPN:feature pyramid networks for object detection
  • FPN詳解
  • FPN: 一種高效的CNN特征提取方法

繼續閱讀