Fully Convolutional Networks for Semantic Segmentation

這是CVPR 2015拿到best paper候選的論文。

論文下載地址:Fully Convolutional Networks for Semantic Segmentation

尊重原創,轉載請註明:http://blog.csdn.net/tangwei2014


1.概覽&主要貢獻

提出了一種end-to-end的做semantic segmentation的方法,簡稱FCN

如下圖所示,直接拿segmentation 的 ground truth作爲監督信息,訓練一個端到端的網絡,讓網絡做pixelwise的prediction,直接預測label map。




2.問題&解決辦法

1)如何做pixelwise的prediction?

傳統的網絡是subsampling的,對應的輸出尺寸會降低,要想做pixelwise prediction,必須保證輸出尺寸。

解決辦法:

(1)對傳統網絡如AlexNet,VGG等的最後全連接層變成卷積層。


例如VGG16中第一個全連接層是25088x4096的,將之解釋爲512x7x7x4096的卷積核,則如果在一個更大的輸入圖像上進行卷積操作(上圖的下半部分),原來輸出4096維feature的節點處(上圖的上半部分),就會輸出一個coarse feature map。

這樣做的好處是,能夠很好的利用已經訓練好的supervised pre-training的網絡,不用像已有的方法那樣,從頭到尾訓練,只需要fine-tuning即可,訓練efficient。

(2)加 In-network upsampling layer。

對中間得到的feature map做bilinear上採樣,就是反捲積層。實現把conv的前傳和反傳過程對調一下即可。

2)如何refine,得到更好的結果?

upsampling中步長是32,輸入爲3x500x500的時候,輸出是544x544,邊緣很不好,並且limit the scale of detail of the upsampling output。

解決辦法:


採用skip layer的方法,在淺層處減小upsampling的步長,得到的fine layer 和 高層得到的coarse layer做融合,然後再upsampling得到輸出。這種做法兼顧local和global信息,即文中說的combining what and where,取得了不錯的效果提升。FCN-32s爲59.4,FCN-16s提升到了62.4,FCN-8s提升到62.7。可以看出效果還是很明顯的。


3.訓練細節

用AlexNet,VGG16或者GoogleNet訓練好的模型做初始化,在這個基礎上做fine-tuning,全部都fine-tuning。

採用whole image做訓練,不進行patchwise sampling。實驗證明直接用全圖已經很effective and efficient。

對class score的卷積層做全零初始化。隨機初始化在性能和收斂上沒有優勢。


4.結果

當然是state-of-the-art的了。感受一下:



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