天天看點

fcn語義分割 論文

全卷積網絡:

個人認為本文主要是兩個重點:

第一是fcn,全卷積網絡(+上采樣)

第二是skip net

首先說全卷積網絡:

通常cnn在卷積層後會接上若幹全連接配接層,但是全連接配接層和卷積層的連接配接數量是固定的,這也就導緻了輸入必須是固定的尺寸。如下圖所示:

fcn語義分割 論文

但是在fcn中将fc用卷積取代,再加上采樣層,這樣能夠輸入任何大小的圖檔,同時輸出圖檔相應大小的語義分割。如下圖所示:

fcn語義分割 論文

可以看到兩站圖中的紅色部分略有不同,這是因為第一幅圖中通過全連接配接層,已經破壞了卷積層輸出feature map的空間結構,而第二幅圖中通過全卷積網絡保持了feature map空間結構,在通過反卷積完全可以恢複原圖像中目标的空間位置,也成為heat map。從下圖中可以看出heat map中的标記與原圖中cat的位置相似。

fcn語義分割 論文

那作者是如何将fc層替換為全連接配接層呢?這就樣引出卷積層和全連接配接層可以互相轉化的關系了。

卷積--------》全連接配接 :全連接配接矩陣是一個非常巨大的矩陣,很明顯,全連接配接層的連接配接數量要遠遠多于卷積層,是以就可以通過将某些連接配接置0,使其模拟卷積。

全連接配接-------》卷積:例如将100x100x1的feature map通過全連接配接輸出1000大小的一維向量,就可以将每一個輸出看做一個卷積的結果,而卷積的核大小為100x100。

将fc都用conv替換後,接下來就是上采樣(很多部落格稱為反卷積,但是為了差別可視化中的反卷積還是稱為上采樣了好了)。引用一張cs231n中的ppt,

fcn語義分割 論文

通過輸入設定卷積的權重,然後在輸出中相加。類似于插值的思想。(ps:既然如此那能夠使用反卷積網絡搭建一個可學習的插值器,理論上這比采用人工設計的插值要好很多,不知道現在有沒有人做)。

當然整個卷積網絡是可以使用反向傳播的。

其次是skip net:

雖然作者在文中也并不是那麼重點地講,但是這種思想還是可以學習的。如下圖:

fcn語義分割 論文

在卷積網絡(包括卷積、池化)中,層數越深,感受野越大,學習到的特征就越概括,作者稱之為coarse(粗糙)。fcn-32s從pooling5上采樣,而結果也顯示細節處理很不好。如下圖:

fcn語義分割 論文

作者通過将低層和高層進行連接配接,最終可以将低層的圖像細節加到粗糙的輪廓中,如上圖。具體怎樣連接配接的可以看圖。

當見過skip net這種結構的時候,再見到下圖的結構也就不懵逼了。

fcn語義分割 論文

https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/

繼續閱讀