Asymmetric Non-local Neural Networks
Asymmetric Non-local Neural Networks
論文:Asymmetric Non-local Neural Networks for Semantic Segmentation,ICCV,2019.
鏈接:paper
代碼:github
本文是在Non-local Neural Networks(cvpr,2018) 這篇論文的基礎上改進得來的,non-local block Non-local模塊作為語義分割任務中很有用的技術,但因為計算量較大,需要較大的顯存開銷,這阻礙了non-local network在實際應用中的使用。本文提出了APNB來減少non-local block的計算量和顯存開銷,AFNB通過提升分割性能增強non-local block的學習能力。我們著重分析這篇論文的改進點。
Revisiting Non-local Block
輸入
1.經(jīng)過3個1x1的卷積Query,Key和Value變換之后,分別得到 : ,,
2.計算所有空間位置特征向量的相似度:
3.歸一化:
4.根據(jù)所有空間位置特征向量的相似度加權求和:
5.新特征經(jīng)過1*1卷積變換后與原輸入特征拼接:
計算復雜度:
Asymmetric Pyramid Non-local Block(APNB)
Non-local 的計算復雜度主要來自第2步和第4步:
可以看出經(jīng)N(紅色)改變?yōu)镾,不會改變輸出的size。
將N 減小到S ,相當于從θ 和 γ 采樣一些特征點,代替使用HxW空間范圍的點,如上圖1(b)所示,增加兩個sample模塊Pθ和PγP_θ 和 P_γPθ?和Pγ?,采樣一些稀疏的錨點和,S就是錨點的數(shù)量。
1.經(jīng)過3個1x1的卷積Query,Key和Value變換之后,分別得到,,
2.采樣:,
3.計算所有空間位置與S個采樣點的特征相似度:
4.歸一化:
5.根據(jù)相似度加權求和:
5.新特征經(jīng)過1X1卷積變換后與原輸入特征拼接:
計算復雜度:
可以看出sample之后,S(110)<<N,則該模型就大大減少了計算復雜度和內(nèi)存開銷。
分割網(wǎng)絡框架
由于作者將傳統(tǒng)的non-local模型中的N經(jīng)過Sample操作之后變成了較小的S,這樣就不能捕捉到每個像素點之間的相關性信息,可能會造成效果不是很好,為了使模型性能進一步的提升,作者又在考慮長依賴性的情況下融合不同級別下的特征。
作者提出的非對稱non-local網(wǎng)絡的框架如下圖所示:
首先作者采用ResNet - 101 網(wǎng)絡作為模型的backbone,并且去掉了原模型中最后兩個下采樣層,使用空洞卷積來保持最后兩個階段得到的特征分辨率是原圖像的1/8,作者將stage4和stage5的輸出用AFNB模塊進行融合,作者將Stage5得到的特征稱為high-level 特征,將stage4得到的特征稱為low-level特征,將這兩個特征輸入AFNB模塊進行融合,其具體的過程如下圖:
該模塊將stage5產(chǎn)生的高級特征作為Query,將stage4得到的低級特征作為Key 和 Value,首先對Query,Key和Value 分別使用1x1 的卷積核進行降維,根據(jù)Asymmetric non-local 網(wǎng)絡的特征需要進行Pyramid Pooling 操作,來對Key 和 Value 進行進一步的特征抽取,從而得到較小的特征表示。
APNB錨點采樣策略
通過金字塔池化(何凱明在fast-rcnn 中提出的)對Key路徑和Value路徑得到的特征圖和進行下采樣,得到和
使用4中不同的池化操作:{1,3,6,8},然后將池化后的特征圖展開成一維向量,拼接起來,一共得到 110 個錨點。經(jīng)過Pyramid Pooling操作后原本CN大小的特征變成了大小為CS的特征矩陣,然后計算Query和Key的相關性矩陣計算,就是將Query轉(zhuǎn)置后與Key相乘最終得到一個N*S的相關性矩陣,最后,將這個相關性矩陣與Value 特征進行轉(zhuǎn)置相乘最終得到了不同leve下的特征融合表示OFO_FOF?,最后將這個表示與Stage5輸出的特征拼接后得到原始圖像最新的特征表示YFY_FYF?.
然后對得到的最新的特征表示進行非對稱金字塔non-local 模塊,其目的與self-attention的目的是相似的,但是其過程是不相同的。其具體的流程如下圖所示:
該過程和Non-local block 過程相似,只不過是key 和 Value 進行了統(tǒng)一的下采樣操作。
該過程對YFY_FYF?使用兩次1x1 的卷積操作,得到non-local 模塊中的query,key 和value.為了減少計算量使key=value,所以針對key 和 value 只進行一次Pyramid Pooling 操作,得到了新的特征表示,其他的過程與AFNB的過程相同,都是根據(jù)Query和Key計算出相關性矩陣,然后將相關性矩陣與Value的特征轉(zhuǎn)置相乘得到最終的特征,再將這個特征與YFY_FYF?拼接,得到作者較為滿意的圖像特征表示,最后在采用雙線性插值的方法將特征分辨率還原,從而得到了分割結(jié)果。
實驗結(jié)果
 可以看出效果還是不錯的。
總結(jié)
以上是生活随笔為你收集整理的Asymmetric Non-local Neural Networks的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 电源硬件设计----半桥变换器(Half
- 下一篇: Deep Learning的推荐学习资源
