Large Kernel Matters論文解讀

Introduction

這篇文章來自於17年的ICCV會議,作者來自清華與曠視,這篇文章提出大的卷積覈對分割網絡非常重要,並使用論文中提出的GCN(Global Convolution Network)顯著提高了分割的精度。這篇文章還有一個後續,叫做ExFuse,但ExFuse這篇文章更多的是各種小trick的疊加,質量一般。
ExFuse的論文全稱爲ExFuse: Enhancing Feature Fusion for Semantic Segmentation,有興趣的同學可以去看一下。
回到文章內容,對於如今的CNN,使用1x1, 3x3等小卷積核的堆疊來模擬大卷積核的操作已經是非常常見了,但是文章提出,在語義分割領域,大的卷積核卻要比小的卷積核堆疊更爲好使,一方面是因爲實際感受野的大小區別,另一方面則是因爲分割要同時完成分類與定位。

而分類與定位任務是天生矛盾的:
1、對於分類任務,模型需要具有平移不變性,無論關鍵物體是旋轉還是位移縮放,模型都要能保持對目標的激活,從而進行分類
2、對於定位任務,模型需要對物體的位置非常敏感,需要對物體的每個像素都判斷其語義信息,並根據所有像素的語義信息來找到物體的位置,如果模型具有非常好的平移不變性,那就很難以確定物體的具體空間位置,定位的精度也會非常低。

爲了解決定位與分類的矛盾,文章提出了兩個原則:
1、從定位的角度考慮,模型一定要全卷積網絡,因爲全局池化和fc層會破壞原圖的相關位置信息,而卷積可以保留這些信息。
2、從分類的角度考慮,網絡應該使用較大的卷積核使特徵圖和逐像素的分類器之間能夠保持密集的連接,而不是通過小卷積核只保留較稀疏的連接。

1
如上所示,在分類網絡中,所有特徵都貢獻給一個分類器,由分類器判斷物體的種類。在傳統的分割網絡中,逐像素的分類結果由位置與之對應的特徵圖的特徵來確定,特徵圖與分類結果之間是稀疏連接的,而文章所提出的網絡,則是要實現特徵圖與每個分類結果之間的密集連接,使每一個像素的分類結果都能利用全局信息。
爲了保證密集連接,文章提出了GCN。

Global Convolutional Network

目前最state-of-the-art的分割網絡通常都是用較大的特徵圖尺寸,減少網絡中stride的個數,這些都是爲定位而設計的,但這樣的網絡對於分割中的分類問題並不一定是最優的。雖然如今的CNN感受野都非常大,但實際的感受野遠比理論感受野要小很多,因此一旦特徵圖很大,那麼有效感受野(Valid Receptive Field)會難以覆蓋全部的特徵,分類的結果也就會更加不準確。
2
如上所示,普通的CNN感受野爲A,不能夠覆蓋整個畫面,而當物體尺度改變的時候,感受野爲B,連物體都無法覆蓋,但是使用GCN則可以使感受野擴大爲C,幾乎覆蓋了全圖。

因此GCN一定要有非常大的卷積核,最好能夠覆蓋整個特徵圖。
但是這樣一來又會有一個限制,那就是參數量,使用3x3卷積核堆疊的原因就是在同樣理論感受野的前提下減少了參數,增加了非線性,但顯然把3x3再換回5x5,7x7甚至更大,計算量也會同樣指數級擴大,而且過多的參數也會使網絡難以收斂,因此文章把一個大的kxk的卷積核分解爲兩個1xk與kx1,並且中間不使用ReLU等激活函數。
3

在整體的框架中,文章又設計了一個模塊,叫做Boundary Refinement,爲了對輸出的heatmap的邊緣進行銳化。模塊的結構也非常簡單,就是一個基礎的殘差模塊:
這裏寫圖片描述

那麼爲什麼這樣的模塊就可以做到邊緣的銳化呢?

其實道理也很簡單,這就是殘差網絡的原理,BR中的兩個卷積層作爲殘差支路,學習到的是輸出heatmap和輸入heatmap之間的殘差,對於某類物體的中間部位,heatmap的激活值已經很高了,過softmax之後的概率值也會非常大,而邊緣位置相對於中心位置的激活值就要低很多,概率值也會低一些,這樣在與ground-truth計算loss的時候,邊緣部分的loss也會遠大於中間部分,於是網絡就會促使這兩層卷積層去學習尋找邊緣,得到的heatmap也會是邊緣激活值高中間低,最終與原來的heatmap相加,就可以起到提高邊緣激活值,銳化邊緣的作用。

最終的網絡結構如下:
5

Conclusion

在後續的實驗中,文章發現了以下幾個結論:
1、普通的大卷積核會使網絡難以收斂,但GCN則不會
2、隨着GCN中k值的增加,網絡的性能越來越好,而普通卷積與堆疊3x3卷積在k>5之後性能均會下降
3、GCN的確提升了物體內部的分割精度但對邊緣精度沒有什麼影響,而BR的確提升了物體邊緣的分割精度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章