全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation
論文閱讀筆記:Fully Convolutional Networks forSemantic Segmentation
這是CVPR 2015拿到best paper候選的論文。
論文下載地址:Fully Convolutional Networks forSemantic Segmentation
尊重原創(chuàng),轉(zhuǎn)載請注明:http://blog.csdn.net/tangwei2014
?
1.概覽&主要貢獻
提出了一種end-to-end的做semantic segmentation的方法,簡稱FCN。
如下圖所示,直接拿segmentation 的 ground truth作為監(jiān)督信息,訓練一個端到端的網(wǎng)絡(luò),讓網(wǎng)絡(luò)做pixelwise的prediction,直接預(yù)測label map。
2.問題&解決辦法
1)如何做pixelwise的prediction?
傳統(tǒng)的網(wǎng)絡(luò)是subsampling的,對應(yīng)的輸出尺寸會降低,要想做pixelwiseprediction,必須保證輸出尺寸。
解決辦法:
(1)對傳統(tǒng)網(wǎng)絡(luò)如AlexNet,VGG等的最后全連接層變成卷積層。
例如VGG16中第一個全連接層是25088x4096的,將之解釋為512x7x7x4096的卷積核,則如果在一個更大的輸入圖像上進行卷積操作(上圖的下半部分),原來輸出4096維feature的節(jié)點處(上圖的上半部分),就會輸出一個coarsefeature map。
這樣做的好處是,能夠很好的利用已經(jīng)訓練好的supervisedpre-training的網(wǎng)絡(luò),不用像已有的方法那樣,從頭到尾訓練,只需要fine-tuning即可,訓練efficient。
(2)加In-network upsampling layer。
對中間得到的featuremap做bilinear上采樣,就是反卷積層。實現(xiàn)把conv的前傳和反傳過程對調(diào)一下即可。
2)如何refine,得到更好的結(jié)果?
upsampling中步長是32,輸入為3x500x500的時候,輸出是544x544,邊緣很不好,并且limit thescale of detail of the upsampling output。
解決辦法:
采用skiplayer的方法,在淺層處減小upsampling的步長,得到的finelayer 和 高層得到的coarselayer做融合,然后再upsampling得到輸出。這種做法兼顧local和global信息,即文中說的combiningwhat and where,取得了不錯的效果提升。FCN-32s為59.4,FCN-16s提升到了62.4,FCN-8s提升到62.7。可以看出效果還是很明顯的。
?
3.訓練細節(jié)
用AlexNet,VGG16或者GoogleNet訓練好的模型做初始化,在這個基礎(chǔ)上做fine-tuning,全部都fine-tuning。
采用wholeimage做訓練,不進行patchwisesampling。實驗證明直接用全圖已經(jīng)很effectiveand efficient。
對classscore的卷積層做全零初始化。隨機初始化在性能和收斂上沒有優(yōu)勢。
?
4.結(jié)果
當然是state-of-the-art的了。感受一下:
總結(jié)
以上是生活随笔為你收集整理的全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cannot import caffe
- 下一篇: 基于深度学习的图像语义分割技术概述之背景