1. 程式人生 > >Dilated/Atrous conv空洞卷積/多孔卷積

Dilated/Atrous conv空洞卷積/多孔卷積

Dilated Dilated convolution/Atrous convolution/Atrous convolution convolution 可以叫空洞卷積或者擴張卷積。

空洞卷積誕生於影象分割領域, 影象輸入到網路中經過CNN提取特徵,在經過pooling降低影象尺度的同時增大感受野。由於影象分割是pixel-wise預測輸出,所以還需要通過upsampling將變小的影象恢復到原始大小。

upsampling通常是通過deconv(轉置卷積)完成。因此影象分割FCN有兩個關鍵步驟:池化操作增大感受野, upsampling操作擴大影象尺寸。這兒有個問題,就是雖然影象經過upsampling操作恢復了大小,但是很多細節還是被池化操作丟失了。那麼有沒有辦法既增大了感受野又不減小影象大小呢?Dilated conv 橫空出世。在將空洞卷積都會用到原論文中的一張圖來說明 

   

在空洞卷積中有個重要的引數叫rate,這個引數代表了空洞的大小。

要理解空洞概念和如何操作可以從兩個角度去看:

1)從原圖角度, 所謂空洞就是在原圖上做取樣。取樣的頻率是根據rate引數來設定的,當rate為1時候,就是原圖不丟失任何資訊取樣,此時卷積操作就是標準的卷積操作,當rate>1,比如2的時候,就是在原圖上每隔一 (rate-1)個畫素取樣, 如圖b,可以把紅色的點想象成在原圖上的取樣點,然後將取樣後的影象與kernel做卷積,這樣做其實變相增大了感受野。

2)從kernel角度去看空洞的話就是擴大kernel的尺寸,在kernel中,相鄰點之間插入rate-1個零,然後將擴大的kernel和原圖做卷積,這樣還是增大了感受野。

在VGG網路中就證明了使用小卷積核疊加來取代大卷積核可以起到減少引數同時達到大卷積同樣的感受野的功效。但是通過疊加小卷積核來擴大感受野只能線性增長,公式為(kernelSize−1)∗layers+1, 也就是線性增長,而空洞卷積可以以指數級增長感受野。