注意力機制技術(shù)總結(jié):如何應(yīng)用在計算機視覺上
前言:
注意力機制在視覺上是非常重要的部分,這方面的綜述、總結(jié)有很多。為了本文總結(jié)的全面性,我基本都看了一遍。然而這些綜述要么面面俱到,對所有內(nèi)容都非常詳細地闡述,包括一些非常不常用的,過時的論文或結(jié)構(gòu);要么沒分清重點,有些內(nèi)容跟論文有關(guān),但跟注意力無關(guān),這些文章也把這些內(nèi)容總結(jié)到里面。
什么是注意力?就是只寫有用的,只留下值得關(guān)注的部分。對于已經(jīng)過時的結(jié)構(gòu)或論文,不為了刻意做到“史上最全的...總結(jié)”,“全面綜述....”,而將其寫在文章中,讓讀者產(chǎn)生這篇文章很有價值的感覺,但實際上看下來,讀者很容易被無關(guān)緊要的內(nèi)容、過時的內(nèi)容、過于詳細的內(nèi)容所耗費精力,而真正重要的內(nèi)容什么也沒學(xué)到。
什么是真正重要的內(nèi)容?那就是模塊的設(shè)計思想,改進思路,具體結(jié)構(gòu),這樣設(shè)計的優(yōu)點,解決了什么問題。
這是這篇總結(jié)與其它綜述的不同之處。包括公眾號中以往的《池化技術(shù)總結(jié)》《數(shù)據(jù)增強方法總結(jié)》《特征金字塔技術(shù)總結(jié)》等一系列總結(jié),都是按照上面提到的這個原則來寫的,里面所有的內(nèi)容,都是值得去認真看的,而不重要的內(nèi)容一般都只有幾句話就帶過了。
這篇文章介紹了一些即插即用的注意力模塊,一些根據(jù)具體任務(wù)設(shè)計的注意力結(jié)構(gòu)。此外,讀者可根據(jù)這些論文中所提出的設(shè)計思想,改進思路等內(nèi)容,在自己方向上設(shè)計相應(yīng)的、合適且合理的結(jié)構(gòu)。
更多內(nèi)容請關(guān)注公眾號CV技術(shù)指南,專注于計算機視覺的技術(shù)總結(jié),最新技術(shù)跟蹤。
STN(2015)
論文原文:Spatial Transformer Networks
這是一篇過時的文章,讀者不必了解太多,但它的主要思想?yún)s值得寫一下。
如上圖所示,圖像中的一些目標可能存在各種各樣的角度,姿態(tài),為了提高模型的泛化能力和魯棒性,我們希望模型能對各種姿態(tài),扭曲變形的目標,都能有較好的識別檢測能力。因此,論文提出了對輸入圖像進行空間變換(spatial transformer),通過spatial transformer將其在空間上“擺正位置”。
具體做法如上圖所示,類似于SE和CBAM,在網(wǎng)絡(luò)中間加一個分支,作為空間轉(zhuǎn)換器。關(guān)于這個轉(zhuǎn)換器這里不多介紹,了解本文的主要思想即可
OPAM(2017)
論文:Object-Part Attention Model for Fine-grained Image Classifification
這篇論文同樣值得一寫的是它的主要思想,其主要內(nèi)容并沒有值得去看的地方。
主要思想:對于細粒度圖像分類來說,一個大類別下存在幾百個小類別,而區(qū)分這些小類別的關(guān)鍵,在于目標身上的特征,例如識別數(shù)百種鳥類,此時背景信息對于區(qū)分不同類型的鳥類基本沒有幫助。
為了讓模型更加關(guān)注到目標所在的區(qū)域,對于圖像中背景的地方,通過一個圖像分類模型,生成saliency map。通過saliency map定位到目標所在的區(qū)域,裁剪,重新進入一個新的part-level Attention Model進行識別分類。
Residual Attention(2017)
論文:Residual Attention Network for Image Classifification
論文提出了殘差注意力網(wǎng)絡(luò),這是一種在“非常深”的結(jié)構(gòu)中采用混合注意力機制的卷積網(wǎng)絡(luò)。殘差注意力網(wǎng)絡(luò)由多個注意力模塊組成,這些模塊會產(chǎn)生注意力感知功能。如下圖所示,隨著模塊的深入,來自不同模塊的注意力感知功能會自適應(yīng)地變化。
注意力模塊如下圖所示:
注意力模塊由兩條分支組成,一個是Soft Mask Branch,一個是Trunk Branch。
Trunk Branch是正常卷積結(jié)構(gòu),Soft Mask Branch是先經(jīng)過兩次max pooling,以便迅速獲得更大的感受野,再通過雙線性插值,回到input feature map的大小,再經(jīng)過兩次1x1卷積,以及sigmoid歸一化。再與Trunk Branch進行融合。
融合的方式若是直接相乘,由于Soft Mask Branch的范圍是(0,1],在經(jīng)過多個堆疊的注意力模塊后,feature maps由于多次乘以Soft Mask的值會變得極小,模型的性能會明顯下降。因此提出Attention Residual learning來進行融合。
具體的融合方式如下圖所示,即增加了殘差連接。記住紅色框的內(nèi)容,后面會經(jīng)常出現(xiàn)。
BAM(2018)
論文:BAM: Bottleneck Attention Module
具體結(jié)構(gòu)如下圖所示。細節(jié)內(nèi)容就不多贅述了,讀者看圖更能理解,只介紹一個大概:利用了空洞卷積來獲取更大的感受野,增加了通道注意力,方式是在feature map上全局最大池化,再降維升維,如右下角所示使用了上面那篇論文中的Attention Residual learning方式來融合。
CBAM(2018)
論文:CBAM: Convolutional Block Attention Module
CBAM同樣是使用空間注意力和通道注意力,不過與BAM不同的是,通道注意力并不是像BAM那樣融合在空間注意力內(nèi)再做歸一化,而是先后分開進行。
通道注意力的生成方式:先在feature maps上進行全局最大池化和全局平均池化得到兩個1維向量,再經(jīng)過共享的MLP層,再進行相加,sigmoid歸一化。
空間注意力的生成方式:在通道上進行最大池化和平均池化,得到兩個feature map,經(jīng)過7x7卷積,得到一個feature map,再BN,sigmoid歸一化。
注:這種空間注意力只考慮了局部的信息,在后面CVPR2021的Coordinate Attention中有所改進。
Non-Local(2018)
論文:Non-local Neural Networks
卷積操作在每一層獲得的感受野十分有限,對于一些長距離的依賴,需要堆疊很多層卷積才能獲得,為此,作者提出了Non-Local Block,這種結(jié)構(gòu)使得網(wǎng)絡(luò)可以直接獲得兩個位置之間的依賴關(guān)系,而不用考慮距離。
具體結(jié)構(gòu)圖如下所示:(由于這個模型本是用于時空模型中,因此下方的結(jié)構(gòu)圖中包含了時間維度,去掉T便可用于圖像)
這種方式來源于transformer,先通過3個不同的1維卷積降維,再各自reshape為HW x512,前兩者通過點積進行相似性計算,再歸一化作為第三者的加權(quán)系數(shù)。最后使用1x1卷積升維和殘差連接。
這種方式的最大缺點在于進行HW與HW做相似性計算,計算量是H的四次方,因此論文中提出當H=14或7時才使用。后面在GCNet和CCnet中會有所簡化并改進。
PAN(2018)
論文:Pyramid Attention Network for Semantic Segmentation
該論文針對語義分割引入像素級注意力。主要由兩個部分組成:Feature Pyramid Attention (FPA) 和Global Attention Upsample module (GAU)。
FPA在空間金字塔池化的基礎(chǔ)上調(diào)整而來,與空間金字塔池化不同的是,FPA通過不同大小的卷積來構(gòu)建金字塔,并在此基礎(chǔ)上引入了通道注意力。
GAU通過全局池化提供的全局信息作為指引選擇low-level特征,這是因為high-level中有著豐富的語義信息,這可以幫助引導(dǎo)low-level的選擇,從而達到選擇更為精準的分辨率信息。
Squeeze-and-Excitation(2018)
論文:Squeeze-and-Excitation Networks
這個不僅使用簡單,對筆者來寫這個也簡單,先貼出論文中的結(jié)構(gòu)圖,再用Coordinate Attention中的一個結(jié)構(gòu)圖作為對論文中結(jié)構(gòu)圖的解釋。
其描述如下:
CCNet(2019)
論文:CCNet: Criss-Cross Attention for Semantic Segmentation
論文的主要思想在于從Non-Local的每個都與其它所有位置進行相似性計算變?yōu)橹挥嬎阃恍泻屯涣械南嗨菩。這樣極大地節(jié)省了計算量。
具體結(jié)構(gòu)圖如下:
其中Criss-Cross Attention Module如下左圖所示,對于兩次loop的示意圖如下右圖所示,經(jīng)過兩次loop,可獲取到任意兩個位置的依賴關(guān)系
GCNet(2019)
論文:GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
如題所示,GCNet是在將Non-Local簡化后與Squeeze-Excitation結(jié)合。
如下圖所示:作者發(fā)現(xiàn)在query的不同點(圖中的紅點),計算出來的attention map是一樣的。
這就說明只需要計算一個點就可以了,其它位置的計算都是多余的,這樣做的好處就是計算量極大減少。
GCNet的整體框架如圖a所示,簡化版的Non-Local如圖b所示,GCNet具體結(jié)構(gòu)如圖d所示。
GCNet將SE中的全局平均池化用簡化版的Non-Local來代替,而SE下方的結(jié)構(gòu)用了Bottleneck來進行transform。這里使用Bottleneck是為了減少參數(shù)量,其中r取16。
DANet(2019)
論文:Dual Attention Network for Scene Segmentation
論文提出了雙注意力網(wǎng)絡(luò),由位置注意力模塊(Position Attention Module)和通道注意力模塊(Channel Attention Module)組成。
整體的結(jié)構(gòu)圖如下:
Position Attention Module和Channel Attention Module的結(jié)構(gòu)圖如下所示:這兩個模塊沒什么細節(jié)的地方值得講的,看個圖就足以理解。
Coordinate Attention(2021)
論文:Coordinate Attention for Effificient Mobile Network Design
這篇論文基于SE和CBAM改進而來,作者認為SE沒有考慮空間信息,CBAM通過對每個位置的通道上進行池化,由于經(jīng)過幾層卷積和降采樣后的feature maps的每個位置只包含原圖的一個局部區(qū)域,因此這種做法只考慮了局部區(qū)域信息。為此,作者提出了一種新的attention機制--Coordinate Attention。
Coordinate Attention利用兩個1D全局池化操作將沿垂直和水平方向的input features分別聚合為兩個單獨的direction-aware feature maps。 然后將具有嵌入的特定方向信息的這兩個特征圖分別編碼為兩個attention map,每個attention map都沿一個空間方向捕獲輸入特征圖的遠距離依存關(guān)系。 位置信息因此可以被保存在所生成的attention map中。 然后通過乘法將兩個attention map都應(yīng)用于input feature maps,以強調(diào)注意區(qū)域的表示。
具體結(jié)構(gòu)如圖c所示,簡單說來,Coordinate Attention是通過在水平方向和垂直方向上進行平均池化,再進行transform對空間信息編碼,最后把空間信息通過在通道上加權(quán)的方式融合。
總結(jié):本文介紹了一些注意力模塊,雖然文字描述的比較少,但給出的結(jié)構(gòu)圖足以理解其主要操作。除了以上的內(nèi)容,此外還包括強注意力,但不是特別常見,本文未對其進行總結(jié)。
最近把公眾號所有的技術(shù)總結(jié)打包成了一個pdf,在公眾號中回復(fù)關(guān)鍵字“技術(shù)總結(jié)”可獲取。
更多內(nèi)容請關(guān)注公眾號CV技術(shù)指南,專注于計算機視覺的技術(shù)總結(jié),最新技術(shù)跟蹤。
參考論文
1. Spatial Transformer Networks
2. Object-Part Attention Model for Fine-grained Image Classifification
3. Residual Attention Network for Image Classifification
4. BAM: Bottleneck Attention Module
5. CBAM: Convolutional Block Attention Module
6. Non-local Neural Networks
7. Pyramid Attention Network for Semantic Segmentation
8. Squeeze-and-Excitation Networks
9. CCNet: Criss-Cross Attention for Semantic Segmentation
10. GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
11. Dual Attention Network for Scene Segmentation
12. Coordinate Attention for Effificient Mobile Network Design
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月28日立即報名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍皮書》
-
精彩回顧立即查看>> 【限時免費下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
推薦專題
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市