訂閱
糾錯(cuò)
加入自媒體

注意力機(jī)制技術(shù)總結(jié):如何應(yīng)用在計(jì)算機(jī)視覺(jué)上

前言:

注意力機(jī)制在視覺(jué)上是非常重要的部分,這方面的綜述、總結(jié)有很多。為了本文總結(jié)的全面性,我基本都看了一遍。然而這些綜述要么面面俱到,對(duì)所有內(nèi)容都非常詳細(xì)地闡述,包括一些非常不常用的,過(guò)時(shí)的論文或結(jié)構(gòu);要么沒(méi)分清重點(diǎn),有些內(nèi)容跟論文有關(guān),但跟注意力無(wú)關(guān),這些文章也把這些內(nèi)容總結(jié)到里面。

什么是注意力?就是只寫有用的,只留下值得關(guān)注的部分。對(duì)于已經(jīng)過(guò)時(shí)的結(jié)構(gòu)或論文,不為了刻意做到“史上最全的...總結(jié)”,“全面綜述....”,而將其寫在文章中,讓讀者產(chǎn)生這篇文章很有價(jià)值的感覺(jué),但實(shí)際上看下來(lái),讀者很容易被無(wú)關(guān)緊要的內(nèi)容、過(guò)時(shí)的內(nèi)容、過(guò)于詳細(xì)的內(nèi)容所耗費(fèi)精力,而真正重要的內(nèi)容什么也沒(méi)學(xué)到。

什么是真正重要的內(nèi)容?那就是模塊的設(shè)計(jì)思想,改進(jìn)思路,具體結(jié)構(gòu),這樣設(shè)計(jì)的優(yōu)點(diǎn),解決了什么問(wèn)題。

這是這篇總結(jié)與其它綜述的不同之處。包括公眾號(hào)中以往的《池化技術(shù)總結(jié)》《數(shù)據(jù)增強(qiáng)方法總結(jié)》《特征金字塔技術(shù)總結(jié)》等一系列總結(jié),都是按照上面提到的這個(gè)原則來(lái)寫的,里面所有的內(nèi)容,都是值得去認(rèn)真看的,而不重要的內(nèi)容一般都只有幾句話就帶過(guò)了。

這篇文章介紹了一些即插即用的注意力模塊,一些根據(jù)具體任務(wù)設(shè)計(jì)的注意力結(jié)構(gòu)。此外,讀者可根據(jù)這些論文中所提出的設(shè)計(jì)思想,改進(jìn)思路等內(nèi)容,在自己方向上設(shè)計(jì)相應(yīng)的、合適且合理的結(jié)構(gòu)。

更多內(nèi)容請(qǐng)關(guān)注公眾號(hào)CV技術(shù)指南,專注于計(jì)算機(jī)視覺(jué)的技術(shù)總結(jié),最新技術(shù)跟蹤。

STN(2015)

論文原文:Spatial Transformer Networks

這是一篇過(guò)時(shí)的文章,讀者不必了解太多,但它的主要思想?yún)s值得寫一下。

注意力機(jī)制技術(shù)總結(jié)

如上圖所示,圖像中的一些目標(biāo)可能存在各種各樣的角度,姿態(tài),為了提高模型的泛化能力和魯棒性,我們希望模型能對(duì)各種姿態(tài),扭曲變形的目標(biāo),都能有較好的識(shí)別檢測(cè)能力。因此,論文提出了對(duì)輸入圖像進(jìn)行空間變換(spatial transformer),通過(guò)spatial transformer將其在空間上“擺正位置”。

注意力機(jī)制技術(shù)總結(jié)

具體做法如上圖所示,類似于SE和CBAM,在網(wǎng)絡(luò)中間加一個(gè)分支,作為空間轉(zhuǎn)換器。關(guān)于這個(gè)轉(zhuǎn)換器這里不多介紹,了解本文的主要思想即可

OPAM(2017)

論文:Object-Part Attention Model for Fine-grained Image Classifification

這篇論文同樣值得一寫的是它的主要思想,其主要內(nèi)容并沒(méi)有值得去看的地方。

主要思想:對(duì)于細(xì)粒度圖像分類來(lái)說(shuō),一個(gè)大類別下存在幾百個(gè)小類別,而區(qū)分這些小類別的關(guān)鍵,在于目標(biāo)身上的特征,例如識(shí)別數(shù)百種鳥類,此時(shí)背景信息對(duì)于區(qū)分不同類型的鳥類基本沒(méi)有幫助。

為了讓模型更加關(guān)注到目標(biāo)所在的區(qū)域,對(duì)于圖像中背景的地方,通過(guò)一個(gè)圖像分類模型,生成saliency map。通過(guò)saliency map定位到目標(biāo)所在的區(qū)域,裁剪,重新進(jìn)入一個(gè)新的part-level Attention Model進(jìn)行識(shí)別分類。

注意力機(jī)制技術(shù)總結(jié)

        Residual Attention(2017)

論文:Residual Attention Network for Image Classifification

論文提出了殘差注意力網(wǎng)絡(luò),這是一種在“非常深”的結(jié)構(gòu)中采用混合注意力機(jī)制的卷積網(wǎng)絡(luò)。殘差注意力網(wǎng)絡(luò)由多個(gè)注意力模塊組成,這些模塊會(huì)產(chǎn)生注意力感知功能。如下圖所示,隨著模塊的深入,來(lái)自不同模塊的注意力感知功能會(huì)自適應(yīng)地變化。

注意力機(jī)制技術(shù)總結(jié)

注意力模塊如下圖所示:

注意力機(jī)制技術(shù)總結(jié)

注意力模塊由兩條分支組成,一個(gè)是Soft Mask Branch,一個(gè)是Trunk Branch。

Trunk Branch是正常卷積結(jié)構(gòu),Soft Mask Branch是先經(jīng)過(guò)兩次max pooling,以便迅速獲得更大的感受野,再通過(guò)雙線性插值,回到input feature map的大小,再經(jīng)過(guò)兩次1x1卷積,以及sigmoid歸一化。再與Trunk Branch進(jìn)行融合。

融合的方式若是直接相乘,由于Soft Mask Branch的范圍是(0,1],在經(jīng)過(guò)多個(gè)堆疊的注意力模塊后,feature maps由于多次乘以Soft Mask的值會(huì)變得極小,模型的性能會(huì)明顯下降。因此提出Attention Residual learning來(lái)進(jìn)行融合。

具體的融合方式如下圖所示,即增加了殘差連接。記住紅色框的內(nèi)容,后面會(huì)經(jīng)常出現(xiàn)。

注意力機(jī)制技術(shù)總結(jié)

        BAM(2018)

論文:BAM: Bottleneck Attention Module

具體結(jié)構(gòu)如下圖所示。細(xì)節(jié)內(nèi)容就不多贅述了,讀者看圖更能理解,只介紹一個(gè)大概:利用了空洞卷積來(lái)獲取更大的感受野,增加了通道注意力,方式是在feature map上全局最大池化,再降維升維,如右下角所示使用了上面那篇論文中的Attention Residual learning方式來(lái)融合。

注意力機(jī)制技術(shù)總結(jié)

        CBAM(2018)

論文:CBAM: Convolutional Block Attention Module

CBAM同樣是使用空間注意力和通道注意力,不過(guò)與BAM不同的是,通道注意力并不是像BAM那樣融合在空間注意力內(nèi)再做歸一化,而是先后分開(kāi)進(jìn)行。

注意力機(jī)制技術(shù)總結(jié)

通道注意力的生成方式:先在feature maps上進(jìn)行全局最大池化和全局平均池化得到兩個(gè)1維向量,再經(jīng)過(guò)共享的MLP層,再進(jìn)行相加,sigmoid歸一化。

空間注意力的生成方式:在通道上進(jìn)行最大池化和平均池化,得到兩個(gè)feature map,經(jīng)過(guò)7x7卷積,得到一個(gè)feature map,再BN,sigmoid歸一化。

注意力機(jī)制技術(shù)總結(jié)

注:這種空間注意力只考慮了局部的信息,在后面CVPR2021的Coordinate Attention中有所改進(jìn)。

Non-Local(2018)

論文:Non-local Neural Networks

卷積操作在每一層獲得的感受野十分有限,對(duì)于一些長(zhǎng)距離的依賴,需要堆疊很多層卷積才能獲得,為此,作者提出了Non-Local Block,這種結(jié)構(gòu)使得網(wǎng)絡(luò)可以直接獲得兩個(gè)位置之間的依賴關(guān)系,而不用考慮距離。

具體結(jié)構(gòu)圖如下所示:(由于這個(gè)模型本是用于時(shí)空模型中,因此下方的結(jié)構(gòu)圖中包含了時(shí)間維度,去掉T便可用于圖像)

注意力機(jī)制技術(shù)總結(jié)

這種方式來(lái)源于transformer,先通過(guò)3個(gè)不同的1維卷積降維,再各自reshape為HW x512,前兩者通過(guò)點(diǎn)積進(jìn)行相似性計(jì)算,再歸一化作為第三者的加權(quán)系數(shù)。最后使用1x1卷積升維和殘差連接。

這種方式的最大缺點(diǎn)在于進(jìn)行HW與HW做相似性計(jì)算,計(jì)算量是H的四次方,因此論文中提出當(dāng)H=14或7時(shí)才使用。后面在GCNet和CCnet中會(huì)有所簡(jiǎn)化并改進(jìn)。

PAN(2018)

論文:Pyramid Attention Network for Semantic Segmentation


注意力機(jī)制技術(shù)總結(jié)

該論文針對(duì)語(yǔ)義分割引入像素級(jí)注意力。主要由兩個(gè)部分組成:Feature Pyramid Attention (FPA) 和Global Attention Upsample module (GAU)。

FPA在空間金字塔池化的基礎(chǔ)上調(diào)整而來(lái),與空間金字塔池化不同的是,FPA通過(guò)不同大小的卷積來(lái)構(gòu)建金字塔,并在此基礎(chǔ)上引入了通道注意力。


注意力機(jī)制技術(shù)總結(jié)

GAU通過(guò)全局池化提供的全局信息作為指引選擇low-level特征,這是因?yàn)閔igh-level中有著豐富的語(yǔ)義信息,這可以幫助引導(dǎo)low-level的選擇,從而達(dá)到選擇更為精準(zhǔn)的分辨率信息。

注意力機(jī)制技術(shù)總結(jié)

        Squeeze-and-Excitation(2018)

論文:Squeeze-and-Excitation Networks

這個(gè)不僅使用簡(jiǎn)單,對(duì)筆者來(lái)寫這個(gè)也簡(jiǎn)單,先貼出論文中的結(jié)構(gòu)圖,再用Coordinate Attention中的一個(gè)結(jié)構(gòu)圖作為對(duì)論文中結(jié)構(gòu)圖的解釋。

注意力機(jī)制技術(shù)總結(jié)

其描述如下:

注意力機(jī)制技術(shù)總結(jié)

        CCNet(2019)

論文:CCNet: Criss-Cross Attention for Semantic Segmentation

注意力機(jī)制技術(shù)總結(jié)

論文的主要思想在于從Non-Local的每個(gè)都與其它所有位置進(jìn)行相似性計(jì)算變?yōu)橹挥?jì)算同一行和同一列的相似性。這樣極大地節(jié)省了計(jì)算量。

具體結(jié)構(gòu)圖如下:

注意力機(jī)制技術(shù)總結(jié)

其中Criss-Cross Attention Module如下左圖所示,對(duì)于兩次loop的示意圖如下右圖所示,經(jīng)過(guò)兩次loop,可獲取到任意兩個(gè)位置的依賴關(guān)系

注意力機(jī)制技術(shù)總結(jié)

        GCNet(2019)

論文:GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond

如題所示,GCNet是在將Non-Local簡(jiǎn)化后與Squeeze-Excitation結(jié)合。

如下圖所示:作者發(fā)現(xiàn)在query的不同點(diǎn)(圖中的紅點(diǎn)),計(jì)算出來(lái)的attention map是一樣的。

注意力機(jī)制技術(shù)總結(jié)

這就說(shuō)明只需要計(jì)算一個(gè)點(diǎn)就可以了,其它位置的計(jì)算都是多余的,這樣做的好處就是計(jì)算量極大減少。

注意力機(jī)制技術(shù)總結(jié)

GCNet的整體框架如圖a所示,簡(jiǎn)化版的Non-Local如圖b所示,GCNet具體結(jié)構(gòu)如圖d所示。

GCNet將SE中的全局平均池化用簡(jiǎn)化版的Non-Local來(lái)代替,而SE下方的結(jié)構(gòu)用了Bottleneck來(lái)進(jìn)行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)圖如下:

注意力機(jī)制技術(shù)總結(jié)

Position Attention Module和Channel Attention Module的結(jié)構(gòu)圖如下所示:這兩個(gè)模塊沒(méi)什么細(xì)節(jié)的地方值得講的,看個(gè)圖就足以理解。

注意力機(jī)制技術(shù)總結(jié)

        Coordinate Attention(2021)

論文:Coordinate Attention for Effificient Mobile Network Design

這篇論文基于SE和CBAM改進(jìn)而來(lái),作者認(rèn)為SE沒(méi)有考慮空間信息,CBAM通過(guò)對(duì)每個(gè)位置的通道上進(jìn)行池化,由于經(jīng)過(guò)幾層卷積和降采樣后的feature maps的每個(gè)位置只包含原圖的一個(gè)局部區(qū)域,因此這種做法只考慮了局部區(qū)域信息。為此,作者提出了一種新的attention機(jī)制--Coordinate Attention。

Coordinate Attention利用兩個(gè)1D全局池化操作將沿垂直和水平方向的input features分別聚合為兩個(gè)單獨(dú)的direction-aware feature maps。 然后將具有嵌入的特定方向信息的這兩個(gè)特征圖分別編碼為兩個(gè)attention map,每個(gè)attention map都沿一個(gè)空間方向捕獲輸入特征圖的遠(yuǎn)距離依存關(guān)系。 位置信息因此可以被保存在所生成的attention map中。 然后通過(guò)乘法將兩個(gè)attention map都應(yīng)用于input feature maps,以強(qiáng)調(diào)注意區(qū)域的表示。

注意力機(jī)制技術(shù)總結(jié)

具體結(jié)構(gòu)如圖c所示,簡(jiǎn)單說(shuō)來(lái),Coordinate Attention是通過(guò)在水平方向和垂直方向上進(jìn)行平均池化,再進(jìn)行transform對(duì)空間信息編碼,最后把空間信息通過(guò)在通道上加權(quán)的方式融合。

總結(jié):本文介紹了一些注意力模塊,雖然文字描述的比較少,但給出的結(jié)構(gòu)圖足以理解其主要操作。除了以上的內(nèi)容,此外還包括強(qiáng)注意力,但不是特別常見(jiàn),本文未對(duì)其進(jìn)行總結(jié)。

最近把公眾號(hào)所有的技術(shù)總結(jié)打包成了一個(gè)pdf,在公眾號(hào)中回復(fù)關(guān)鍵字“技術(shù)總結(jié)”可獲取。

更多內(nèi)容請(qǐng)關(guān)注公眾號(hào)CV技術(shù)指南,專注于計(jì)算機(jī)視覺(jué)的技術(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

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)