ANN:Asymmetric Non-local Neural Networks for Semantic Segmentation 文章解讀

《Asymmetric Non-local Neural Networks for Semantic Segmentation 》文章解讀

網絡簡介

文中提出了兩個模塊Asymmetric Pyramid Non-local Block (APNB) 和Asymmetric Fusion Non-local Block (AFNB)。APNB將金字塔採樣利用到non-local塊中,在不犧牲性能的情況下大大降低了計算量和內存消耗,AFNB由APNB改造而來,在充分考慮到遠程依賴關係的情況下融合了不同級別的特徵。
一些研究表明如果充分利用遠程依賴關係,可以提高網絡性能,單個卷積核的感受野不足以覆蓋相關區域,選擇大尺寸的卷積核或者級聯組成較深的網絡可以提高網絡的感受野但是計算量和參數量太大,所以一些研究使用全局方法比如non-local means或者spp。
在王小龍的《 Non-local neural networks》裏將CNN與傳統non-local means結合,組合成了non-local block以便利用圖像中所有位置的特徵,該方法提高了性能但是計算量的增加限制了其使用場景。普通的non-local block如圖a所示
在這裏插入圖片描述
這個塊首先計算了所有位置之間的相似性,在輸入特徵圖尺寸爲CxHxW時所需要矩陣乘法的複雜度爲O(CH2W2),然後同樣需要一個複雜度爲O(CH2W2)的乘法來手機所有位置對自己的影響。
我們注意到只要key和value分支的輸出保持同樣的尺寸,non-local block的輸出將保持相同大小,所以作者上從key分支採樣出幾個代表性的點,把N採樣到S,S<<N,這樣輸出的尺寸保持不變,計算量卻大大減小,這是本文的出發點。
所以本文提出了APNB塊,將SPP金字塔採樣嵌入到non-local block中,大大減小了矩陣乘法的計算開銷同時提供豐富的語義信息,這樣總體的計算時間比之前減少了6倍,同時作者還提出了AFNB,用以融合深度網絡不同stage的特徵,AFNB計算低級特徵圖和高級特徵圖的每個像素之間的相關性,從而產生長距離交互作用的融合特徵。

Asymmetric Non-local Neural Network 結構詳解

1.回顧Non-local Block

一個經典的non-local block結構如圖所示
在這裏插入圖片描述
考慮輸入特徵爲 X ∈ RC×H×W,首先有3個1x1卷積將特徵圖轉化爲三個特徵,尺寸都爲^C×H×W,通道數有所改變,然後將這三個特徵展開爲C×N的特徵,其中N=H×W,然後相似矩陣V ∈RN×N 由前兩個特徵矩陣乘法計算而來:
V = φT ×θ
之後對V進行歸一化得到相似矩陣V,尺寸爲N×N。(歸一化函數可以爲softmax,縮放或者none),在這裏我們使用softmax,相當於一個self attention機制)。 attention層輸出結果爲O=V × γT,O ∈ RN׈ C
最終non-local block的輸出結果爲:
Y = Wo(OT) + X 或者Y = cat(Wo(OT),X),
Wo是一個1x1的卷積操作,相當於一個通道上的權重參數,同時還原通道數C,然後通過summation或者concat與原輸入特徵結合在一起。

2.Asymmetric Pyramid Non-local Block(APNB)

non-local block有效地捕獲了遠程依賴關係,但是non-local操作相比於傳統卷積核激活操作而言非常耗時耗內存,仔細觀察可以發現non-block中
在這裏插入圖片描述
這兩個矩陣乘法佔據了主要的計算量,這兩步的時間複雜度都爲O( ˆCN2) = O( ˆCH2W2)。在語義分割中,爲了保留細節的語義特徵,網絡的輸出通常有很高的分辨率,這意味着N=H×W會很大,所以大矩陣的乘法運算是導致non-local效率低下的主要原因。non-local運算更爲直接的流程如下:
在這裏插入圖片描述
從公式的角度出發,發現如果將N改爲另一個值S(S<<N),輸出大小將會保持不變:
在這裏插入圖片描述
回到non-local的流程圖來看,相當於從 θ and γ中採樣出幾個代表點,而不是將所有點都帶入運算,即展開後形狀爲C×N的特徵,從N中採樣出S個代表點進行下一步運算,計算複雜度就能大大減小,流程圖更改後如下:
在這裏插入圖片描述

方案:

基於以上觀察,作者提出加入兩個採樣模型 Pθ 和 Pγ ,對 θ 和 γ 採樣出幾個稀疏的錨點 θP ∈ R^ˆ C×S^ 和 γP ∈ R^ˆ C×S^
所以通過 Vp= φT × θp 計算出來的是θp和φ之間的相似度矩陣,Vp的尺寸是N × S。Vp經過與標準non-local塊同樣的歸一化操作之後,繼續計算attention:
在這裏插入圖片描述
最後的輸出爲;
在這裏插入圖片描述
這種非對稱的矩陣乘法時間複雜度爲O( ˆCNS), 遠小於標準non-local的O( ˆCN2),理想情況下S應該遠小於N才能保證計算優勢,但是很難保證S多小時性能會下降太多。

全局和多尺度表示對於語義分割很有效果,可以通過SPP(Spatial Pyramid Pooling)來實現,SPP沒有參數而且非常有效,作者將其嵌入non-local來增強全局表示同時減少計算開銷。
這樣得到了APNB的最終結構:
在這裏插入圖片描述
可以看出APNB源自標準的non-local block, key 和 value 分支共享一個1
×1卷積核採樣模塊,這樣在沒有犧牲性能的情況下降低了參數量。採樣模塊用的時SPP:
在這裏插入圖片描述
其中n表示採樣後的邊長,取四個{1,3,6,8},也就是一共有4個並行的pool,最後展開得到S=∑n2=110,所以非對稱non-local的計算複雜度僅爲原來的S/N,當輸入H=128,W=256時,節省了大約298倍的計算時間。另外,SPP提供了全局場景語義線索的足夠特徵統計信息,以糾正由於減少計算量導致的性能下降。

3.Asymmetric Fusion Non-local Block

很多工作提到不同級別的特徵融合有助於語義分割和目標跟蹤,但常見的方法是添加像素之間的局部連接,作者提出一種non-local長依賴的多級融合方式,成爲Fusion Non-local Block(FNB)。
一個標準的non-local block只有一個輸入,而FNB有兩個:高級別的特徵圖Xh和低級別的特徵圖Xl:
在這裏插入圖片描述
參照APNB的計算過程,得到的輸出OF反映出Xl中全局特徵對Xh的影響,OF經過一個1×1卷積恢復通道數後,得到最終輸出:
在這裏插入圖片描述

4.網絡結構

網絡的整體結構如圖所示:
在這裏插入圖片描述
作者選擇了ResNet101作爲backbone,移除了最後兩個下采樣層,使用空洞卷積以維持分辨率,使最後輸出分辨率是輸入圖像的1/8,最後的三個stage都維持了相同的分辨率。將第四個和第五個stage的特徵用AFNB混合後,與第五個stage的輸出concat在一起,這樣的特徵充滿了來自不同級別特徵的大範圍線索,將其作爲APNB的輸入,然後幫助發現像素之間的相關性。APNB的輸出同樣和輸入concat在一起,最後送入一個分類器生成通道語義特徵圖,之後用於監督訓練。

總的來說,APNB旨在減少 non-local block 的計算開銷,而AFNB通過提高non-local block的學習能力來提高分割性能。

實驗

作者在 Cityscapes, ADE20K 和 PASCAL Context 上做了實驗,並在NYUD-V2 和 COCOStuff-10K 上做了補充實驗。

APNB對比普通NB(Non-local Block)

在這裏插入圖片描述
可見採用APNB後,FLops和內存佔用以及推理時間都大大優化

在各個數據集上與SOTA對比:

CityScapes:
在這裏插入圖片描述
ADE20K:
在這裏插入圖片描述
PASCAL Context:
在這裏插入圖片描述

消融實驗:

在這裏插入圖片描述
在消融實驗中往往更能看出網絡結構中每個模塊的作用,跟Baseline對比,加上普通的NB(Non-local Block)沒有APNB好,這說明APNB在大大降低計算量和內存佔用的同時,還提高了性能,這應該是與SPP的全局信息表示能力有關。而在高級特徵低級特徵融合方面,普通的融合FNB和借鑑了APNB思路的AFNB相比則更勝一籌,最後同時使用APNB和AFNB效果更好。
但是這裏作者沒有給出APNB和FNB組合的效果,應該是更好的,但是AFNB的計算量還是大大降低了。

採樣方法的選擇:

在這裏插入圖片描述
可見SPP還是明顯優於普通的random、max、average方法,且在SPP的池化方法中,平均池化效果最好,而在池化尺寸的選擇上,{1,4,8,12} 效果最好,但是考慮到計算量,還是選擇 {1,3,6,8} 作爲默認值。

分割效果對比:

在這裏插入圖片描述
其中紅圈部分是由於其他網絡的細節,可見在圍欄、建築物等大型物體上,以及電線杆等細長物體上 ANN更好。

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

背景知識Non-local Networks ,可以參考這兩位的說明:

ICCV2019 語義分割之高效Non-local Networks - 楊先生的文章 - 知乎
https://zhuanlan.zhihu.com/p/80254858

Non-local neural networks - Gapeng的文章 - 知乎
https://zhuanlan.zhihu.com/p/33345791

發佈了20 篇原創文章 · 獲贊 11 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章