1榔幸、Dilated convolution(空洞卷積)
??傳統(tǒng)的CNN通常采用pooling或up-sampling來整合多尺度的上下文信息,這種方式會損失分辨率。FCN的做法是先像傳統(tǒng)的CNN那樣對圖像做卷積再pooling惑芭,降低圖像尺寸的同時增大感受野掸绞,但是由于圖像分割預(yù)測是pixel-wise的輸出,所以將pooling后較小的圖像尺寸up-sampling到原始的圖像尺寸進行預(yù)測咽安,up-sampling一般采用反卷積(deconv)操作伴网。但是在先縮小再放大尺寸的過程中,肯定有一些信息損失掉了妆棒。Dilated convolution就是用來解決這個問題澡腾,它沒有pooling或up-sampling,不需要分析重新放縮的圖像糕珊,能看到較大感受野信息(感受野指數(shù)級增長)动分,不損失分辨率。
??空洞卷積比正常卷積多了一個空洞率(dilation rate)參數(shù)红选,主要用來表示擴張的大小澜公。空洞率為1的空洞卷積就是正常卷積喇肋,卷積核大小為3x3坟乾,padding為1,步長為2蝶防,對輸入為5x5的特征圖進行卷積糊渊,生成3x3的特征圖,如圖1所示慧脱。
??卷積核大小為3x3渺绒,空洞率(dilated rate)為2,步長為1,對輸入為7x7的特征圖進行空洞卷積宗兼,生成3x3的特征圖躏鱼,如圖2所示。
??具體分析空洞卷積能夠擴大感受野并且保持分辨率殷绍,用圖3來說明染苛。
??其中,紅色圓點為卷積核對應(yīng)的輸入“像素”主到,綠色為其在原輸入中的感受野茶行。圖(a)對應(yīng)3x3的1-dilated conv,和普通的卷積操作一樣登钥。圖(b)對應(yīng)3x3的空洞率為2的卷積畔师,實際的卷積核還是3x3,但空洞率為2牧牢。對于一個7x7的圖像塊看锉,只有9個紅色的點即3x3的卷積核發(fā)生卷積操作,其余的點略過塔鳍。也可以理解為卷積核的大小為7x7伯铣,但是只有圖中的9個點的權(quán)重不為0,其余都為0轮纫∏还眩可以看到雖然卷積核的大小只有3x3,但是這個卷積的感受野已經(jīng)增大到了7x7掌唾。如果考慮到這個2-dilated convolution的前一層有一個1-dilated convolution的話放前,那么每個紅點就是1-dilated的卷積輸出,感受野為3x3郑兴,所以1-dilated和2-dilated合起來就能達到7x7的卷積。圖(c)圖是4-dilated convolution操作贝乎,同理跟在1-dilated和2-dilated convolution的后面情连,能達到15x15的感受野。對比傳統(tǒng)的卷積操作览效,3層3x3的卷積加起來却舀,stride為1的話,只能達到(kernel-1)xlayer+1=7的感受野锤灿,也就是和層數(shù)layer成線性關(guān)系挽拔,而空洞卷積的感受野是指數(shù)級的增長。
??Dilated convolution在不做pooling損失信息的情況下但校,加大了感受野螃诅,讓每個卷積輸出都包含較大范圍的信息。
2.Deformable convolution(可變卷積)
??可變卷積來源于微軟亞洲研究院在2017年ICCV發(fā)表的論文《Deformable Convolutional Networks》。
??當(dāng)前的卷積神經(jīng)網(wǎng)絡(luò)(CNN)所用的模塊中幾何結(jié)構(gòu)是固定不變的术裸,對于物體在大小倘是、姿態(tài)、角度上的幾何變換袭艺,CNN網(wǎng)絡(luò)是很難處理的(通俗點說一個物體由于拍攝角度搀崭、位置遠(yuǎn)近等因素,最終呈現(xiàn)出的效果可能不一樣猾编,對于人來說很好分辨瘤睹,計算機就很難分辨是同一物體)。于是就有了Deformable convolution可變卷積(論文中還提到了deformable POI pooling答倡,都是用額外的偏置來增強空間采樣的位置轰传,原理相似),從而實現(xiàn)動態(tài)調(diào)節(jié)感受野苇羡。圖4中展示了卷積核為3×3的正常卷積和可變卷積的采樣方式绸吸。
??其中,(a)是正常卷積網(wǎng)絡(luò)设江。(b)是變換后的卷積采樣點分布锦茁,綠色是原采樣點,藍色是變換后的采樣點叉存。(c)是(b)的特例码俩,采樣尺寸放大的情況。(d)也是(b)的特例歼捏,采樣尺寸放大+旋轉(zhuǎn)的情況稿存。
??在2D卷積中,卷積核在輸入feature map上采樣瞳秽,將采樣值和對應(yīng)的權(quán)重對應(yīng)相乘在求和瓣履。R表示感受野大小(dilation=1):
??原輸入特征中點卷積后的值,即采樣點的值×卷積核權(quán)重之和:
??可變卷積操作并沒有改變卷積的計算操作练俐,而是在卷積操作的作用區(qū)域上袖迎,加一個可學(xué)習(xí)的參數(shù),即對于每一個采樣點腺晾,增加一個偏移量燕锥,where ∶醪酰可變卷積公式如下:
??可變卷積就是對每個采樣點做偏置归形,對輸入feature map的每個位置學(xué)習(xí)一個offset。在給每個采樣點增加偏置量后鼻由,由于一般很小暇榴,得到的新坐標(biāo)不一定落在整數(shù)坐標(biāo)點上(需要對不連續(xù)的位置變量求導(dǎo))厚棵,這里使用了雙線性插值將任何位置的輸出,轉(zhuǎn)換成對于feature map的插值操作跺撼。具體結(jié)構(gòu)如圖5所示窟感。
??其中,offset field是通過conv層學(xué)到的偏置歉井。輸入一張feature map柿祈,每個點都需要一個偏置offset(x上的偏置,y上的偏置)哩至,則offset field的長寬和輸入的feature map是相同的躏嚎,但channel是輸入feature map的兩倍(x,y兩個方向的偏置)菩貌。這樣就可以通過可變卷積公式卢佣,得到輸出的feature map。
3.Partial Convolutional(部分卷積)
??部分卷積來源于英偉達在ECCV2018發(fā)表的論文《Image Inpainting for Irregular Holes Using Partial Convolutions》箭阶,適用于image inpainting任務(wù)虚茶。論文值得好好看一下。
??之前的image inpainting任務(wù)中仇参,只在第一層使用mask嘹叫,mask不會得到更新 。而文中將部分卷積運算和mask更新函數(shù)聯(lián)合成為部分卷積層诈乒。部分卷積運算可以表示為:
??其中罩扇,表示卷積層濾波器的權(quán)重;是相應(yīng)的偏差怕磨;是當(dāng)前卷積(滑動)窗口的特征值(像素值)喂饥;是相應(yīng)的二進制mask; 表示element-wise點乘運算肠鲫;是縮放因子员帮,即應(yīng)用適當(dāng)?shù)目s放比例來調(diào)整有效(unmasked)輸入的變化量;是輸入圖片經(jīng)過卷積后的輸出(僅取決于unmasked的輸入)导饲。
??在partial convolutions后捞高,每次都使用更新后的mask。mask更新原則為:
??如果原來mask中有已知區(qū)域帜消,即棠枉,那么卷積后的mask會變成1浓体。隨著網(wǎng)絡(luò)層數(shù)的增加泡挺,mask輸出為0的像素值越來越少,輸出的結(jié)果中有效區(qū)域的面積越來越大命浴,mask對整體loss的影響也會越來越小娄猫。