在圖像分割領域,圖像輸入到CNN,FCN先像傳統的CNN那樣對圖像做卷積再pooling,降低圖像尺寸的同時增大感受野,但是由於圖像分割預測是pixel-wise的輸出,所以要將pooling后較小的圖像尺寸upsampling到原始的圖像尺寸進行預測,之前的pooling操作使得每個pixel預測都能看到較大感受野信息。因此圖像分割FCN中有兩個關鍵,一個是pooling減小圖像尺寸增大感受野,另一個是upsampling擴大圖像尺寸。在先減小再增大尺寸的過程中,內部數據結構丟失;空間層級化信息丟失。小物體信息無法重建 (假設有四個pooling layer 則 任何小於 2^4 = 16 pixel 的物體信息將理論上無法重建。),在這樣問題的存在下,語義分割問題一直處在瓶頸期無法再明顯提高精度, 而 dilated convolution 的設計就良好的避免了這些問題。


(a) (b)
(a). 圖對應3x3的1-dilated conv,和普通的卷積操作一樣
(b). 圖對應3x3的2-dilated conv,實際的卷積kernel size還是3x3,但是空洞為1,也就是對於一個5x6的圖像patch,只有9個紅色的點和3x3的kernel發生卷積操作,其余的點略過。也可以理解為kernel的size為5x5,但是只有圖中的9個點的權重不為0,其余都為0。 可以看到雖然kernel size只有3x3,但是這個卷積的感受野已經增大 到了5x5
好處:
1. dilated的好處是不做pooling損失信息的情況下,加大了感受野,讓每個卷積輸出都包含較大范圍的信息。
2. 在贏得其中一屆ImageNet比賽里VGG網絡的文章中,他最大的貢獻並不是VGG網絡本身,而是他對於卷積疊加的一個巧妙觀察。
This (stack of three 3 × 3 conv layers) can be seen as imposing a regularisation on the 7 × 7 conv. filters, forcing them to have a decomposition through the 3 × 3 filters (with non-linearity injected in between).
3. 這里意思是 7 x 7 的卷積層的正則等效於 3 個 3 x 3 的卷積層的疊加。而這樣的設計不僅可以大幅度的減少參數,其本身帶有正則性質的 convolution map 能夠更容易學一個 generlisable, expressive feature space。這也是現在絕大部分基於卷積的深層網絡都在用小卷積核的原因。
潛在問題:
假設我們僅僅多次疊加 dilation rate 2 的 3 x 3 kernel 的話,則會出現這個問題:
我們發現我們的 kernel 並不連續,也就是並不是所有的 pixel 都用來計算了,因此這里將信息看做 checker-board 的方式會損失信息的連續性。這對 pixel-level dense prediction 的任務來說是致命的。