[Paper Reading] DeepLab v1 & v2

DeepLab V1:SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONALNETS AND FULLY CONNECTED CRFS


Background:
       CNN的一個特性是invariance(不變性),這個特性使得它在high-level的計算機視覺任務比如classification中,取得很好的效果。但是在semantic segmentation任務中,這個特性反而是個障礙。畢竟語義分割是像素級別的分類,高度抽象的空間特徵對如此low-level並不適用。
    所以,要用CNN來做分割,就需要考慮兩個問題,一個是feature map的尺寸,以及空間不變性。


Solution:
    對於第一個問題,回憶一下之前的FCN,FCN通過反捲積層(現在反捲積層似乎有了更好的叫法,但是這裏暫時沿用反捲積這個名字)將feature map還原到原圖尺寸。
    可是feature map爲什麼會變小呢?因爲stride的存在。於是DeepLab就考慮,我直接把stride改成1,feature map不就變大了嗎。將stride改小,確實能得到更加dense的feature map這個是毋庸置疑的,可是卻也帶來了另外一個問題即receptive field(RF)的改變問題。receptive field是直接和stride掛鉤的,即

RFi+1 = RFi + (kernel-1)*stride (i越小越bottom)

    按照公式,stride變小,要想保持receptive field不變,那麼,就應該增大kernel size。於是就有了接下來的hole算法。

    (P.S.:理論上來說,在pooling layer和convolution layer改變stride都是可以的,以下圖示以pooling layer爲例,PPT做的圖比較粗糙= =)

    一開始,pooling layer stride = 2,convolution layer kernel size = 2,convolution layer第一個點的receptive field是{1,2,3,4},size爲4

    

    爲了得到更加dense的feature map,將pooling layer stride改爲1,如果這個時候保持convolution layer的kernel size不變的話,可以看到,雖然是更dense了,可是不再存在RF = {1,2,3,4}的點了。

    

    當採用hole算法,在kernel裏面增加“hole”,kernel size變大,相當於卷積的時候跨過stride減小額外帶來的像素,RF就保持不變了,當然如果調整hole的size還能得到比原來更大的RF。

    

    這個擴大後的卷積核直觀上可以以通過對原卷積核填充0得到,不過在具體實現上填0會帶來額外的計算量,所以實際上是通過im2col調整像素的位置實現的,這裏不展開,有興趣的可以看看caffe源碼(hole算法已經集成在caffe裏了,在caffe裏叫dilation)
    於是,通過hole算法,我們就得到了一個8s的feature map,比起FCN的32s已經dense很多了


    對於第二個問題,圖像輸入CNN是一個被逐步抽象的過程,原來的位置信息會隨着深度而減少甚至消失。Conditional Random Field (CRF,條件隨機場)在傳統圖像處理上的應用有一個是做平滑。CRF簡單來說,能做到的就是在決定一個位置的像素值時(在這個paper裏是label),會考慮周圍鄰居的像素值(label),這樣能抹除一些噪音。但是通過CNN得到的feature map在一定程度上已經足夠平滑了,所以short range的CRF沒什麼意義。於是作者採用了fully connected CRF,這樣考慮的就是全局的信息了。
    
    另外,CRF是後處理,是不參與訓練的,在測試的時候對feature map做完CRF後,再雙線性插值resize到原圖尺寸,因爲feature map是8s的,所以直接放大到原圖是可以接受的。


DeepLab V2:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

    v1之後,Liang-Chieh Chen很快又推出了DeepLab的v2版本。這裏就簡單講講改進的地方。

    Multi-scale對performance提升很大,而我們知道,receptive field,視野域(或者感受野),是指feature map上一個點能看到的原圖的區域,那麼如果有多個receptive field,是不是相當於一種Multi-scale?出於這個思路,v2版本在v1的基礎上增加了一個多視野域。具體看圖可以很直觀的理解。

    



    rate也就是hole size

    這個結構作者稱之爲ASPP(atrous spatial pyramid pooling),基於洞的空間金字塔
    此外,DeepLab v2有兩個基礎網絡結構,一個是基於vgg16,另外一個是基於resnet101的,目前性能是benchmark上的第一名。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章