前言:
注意力機制在視覺上是非常重要的部分,這方面的綜述、總結有很多。為了本文總結的全面性,我基本都看了一遍。然而這些綜述要麼面面俱到,對所有内容都非常詳細地闡述,包括一些非常不常用的,過時的論文或結構;要麼沒厘清重點,有些内容跟論文有關,但跟注意力無關,這些文章也把這些内容總結到裡面。
什麼是注意力?就是隻寫有用的,隻留下值得關注的部分。對于已經過時的結構或論文,不為了刻意做到“史上最全的...總結”,“全面綜述....”,而将其寫在文章中,讓讀者産生這篇文章很有價值的感覺,但實際上看下來,讀者很容易被無關緊要的内容、過時的内容、過于詳細的内容所耗費精力,而真正重要的内容什麼也沒學到。
什麼是真正重要的内容?那就是子產品的設計思想,改進思路,具體結構,這樣設計的優點,解決了什麼問題。
這是這篇總結與其它綜述的不同之處。包括公衆号中以往的《池化技術總結》《資料增強方法總結》《特征金字塔技術總結》等一系列總結,都是按照上面提到的這個原則來寫的,裡面所有的内容,都是值得去認真看的,而不重要的内容一般都隻有幾句話就帶過了。
這篇文章介紹了一些即插即用的注意力子產品,一些根據具體任務設計的注意力結構。此外,讀者可根據這些論文中所提出的設計思想,改進思路等内容,在自己方向上設計相應的、合适且合理的結構。
STN(2015)
論文原文:Spatial Transformer Networks
這是一篇過時的文章,讀者不必了解太多,但它的主要思想卻值得寫一下。

如上圖所示,圖像中的一些目标可能存在各種各樣的角度,姿态,為了提高模型的泛化能力和魯棒性,我們希望模型能對各種姿态,扭曲變形的目标,都能有較好的識别檢測能力。是以,論文提出了對輸入圖像進行空間變換(spatial transformer),通過spatial transformer将其在空間上“擺正位置”。
具體做法如上圖所示,類似于SE和CBAM,在網絡中間加一個分支,作為空間轉換器。關于這個轉換器這裡不多介紹,了解本文的主要思想即可。
OPAM(2017)
論文:Object-Part Attention Model for Fine-grained Image Classifification
這篇論文同樣值得一寫的是它的主要思想,其主要内容并沒有值得去看的地方。
主要思想:對于細粒度圖像分類來說,一個大類别下存在幾百個小類别,而區分這些小類别的關鍵,在于目标身上的特征,例如識别數百種鳥類,此時背景資訊對于區分不同類型的鳥類基本沒有幫助。
為了讓模型更加關注到目标所在的區域,對于圖像中背景的地方,通過一個圖像分類模型,生成saliency map。通過saliency map定位到目标所在的區域,裁剪,重新進入一個新的part-level Attention Model進行識别分類。
Residual Attention(2017)
論文:Residual Attention Network for Image Classifification
論文提出了殘差注意力網絡,這是一種在“非常深”的結構中采用混合注意力機制的卷積網絡。殘差注意力網絡由多個注意力子產品組成,這些子產品會産生注意力感覺功能。如下圖所示,随着子產品的深入,來自不同子產品的注意力感覺功能會自适應地變化。
注意力子產品如下圖所示:
注意力子產品由兩條分支組成,一個是Soft Mask Branch,一個是Trunk Branch。
Trunk Branch是正常卷積結構,Soft Mask Branch是先經過兩次max pooling,以便迅速獲得更大的感受野,再通過雙線性插值,回到input feature map的大小,再經過兩次1x1卷積,以及sigmoid歸一化。再與Trunk Branch進行融合。
融合的方式若是直接相乘,由于Soft Mask Branch的範圍是(0,1],在經過多個堆疊的注意力子產品後,feature maps由于多次乘以Soft Mask的值會變得極小,模型的性能會明顯下降。是以提出Attention Residual learning來進行融合。
具體的融合方式如下圖所示,即增加了殘差連接配接。記住紅色框的内容,後面會經常出現。
BAM(2018)
論文:BAM: Bottleneck Attention Module
具體結構如下圖所示。細節内容就不多贅述了,讀者看圖更能了解,隻介紹一個大概:利用了空洞卷積來擷取更大的感受野,增加了通道注意力,方式是在feature map上全局最大池化,再降維升維,如右下角所示使用了上面那篇論文中的Attention Residual learning方式來融合。
CBAM(2018)
論文:CBAM: Convolutional Block Attention Module
CBAM同樣是使用空間注意力和通道注意力,不過與BAM不同的是,通道注意力并不是像BAM那樣融合在空間注意力内再做歸一化,而是先後分開進行。
通道注意力的生成方式:先在feature maps上進行全局最大池化和全局平均池化得到兩個1維向量,再經過共享的MLP層,再進行相加,sigmoid歸一化。
空間注意力的生成方式:在通道上進行最大池化和平均池化,得到兩個feature map,經過7x7卷積,得到一個feature map,再BN,sigmoid歸一化。
注:這種空間注意力隻考慮了局部的資訊,在後面CVPR2021的Coordinate Attention中有所改進。
Non-Local(2018)
論文:Non-local Neural Networks
卷積操作在每一層獲得的感受野十分有限,對于一些長距離的依賴,需要堆疊很多層卷積才能獲得,為此,作者提出了Non-Local Block,這種結構使得網絡可以直接獲得兩個位置之間的依賴關系,而不用考慮距離。
具體結構圖如下所示:(由于這個模型本是用于時空模型中,是以下方的結構圖中包含了時間次元,去掉T便可用于圖像)
這種方式來源于transformer,先通過3個不同的1維卷積降維,再各自reshape為HW x512,前兩者通過點積進行相似性計算,再歸一化作為第三者的權重系數。最後使用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在空間金字塔池化的基礎上調整而來,與空間金字塔池化不同的是,FPA通過不同大小的卷積來建構金字塔,并在此基礎上引入了通道注意力。
GAU通過全局池化提供的全局資訊作為指引選擇low-level特征,這是因為high-level中有着豐富的語義資訊,這可以幫助引導low-level的選擇,進而達到選擇更為精準的分辨率資訊。
Squeeze-and-Excitation(2018)
論文:Squeeze-and-Excitation Networks
這個不僅使用簡單,對筆者來寫這個也簡單,先貼出論文中的結構圖,再用Coordinate Attention中的一個結構圖作為對論文中結構圖的解釋。
其描述如下:
CCNet(2019)
論文:CCNet: Criss-Cross Attention for Semantic Segmentation
論文的主要思想在于從Non-Local的每個都與其它所有位置進行相似性計算變為隻計算同一行和同一列的相似性。這樣極大地節省了計算量。
具體結構圖如下:
其中Criss-Cross Attention Module如下左圖所示,對于兩次loop的示意圖如下右圖所示,經過兩次loop,可擷取到任意兩個位置的依賴關系
GCNet(2019)
論文:GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
如題所示,GCNet是在将Non-Local簡化後與Squeeze-Excitation結合。
如下圖所示:作者發現在query的不同點(圖中的紅點),計算出來的attention map是一樣的。
這就說明隻需要計算一個點就可以了,其它位置的計算都是多餘的,這樣做的好處就是計算量極大減少。
GCNet的整體架構如圖a所示,簡化版的Non-Local如圖b所示,GCNet具體結構如圖d所示。
GCNet将SE中的全局平均池化用簡化版的Non-Local來代替,而SE下方的結構用了Bottleneck來進行transform。這裡使用Bottleneck是為了減少參數量,其中r取16。
DANet(2019)
論文:Dual Attention Network for Scene Segmentation
論文提出了雙注意力網絡,由位置注意力子產品(Position Attention Module)和通道注意力子產品(Channel Attention Module)組成。
整體的結構圖如下:
Position Attention Module和Channel Attention Module的結構圖如下所示:這兩個子產品沒什麼細節的地方值得講的,看個圖就足以了解。
Coordinate Attention(2021)
論文:Coordinate Attention for Effificient Mobile Network Design
這篇論文基于SE和CBAM改進而來,作者認為SE沒有考慮空間資訊,CBAM通過對每個位置的通道上進行池化,由于經過幾層卷積和降采樣後的feature maps的每個位置隻包含原圖的一個局部區域,是以這種做法隻考慮了局部區域資訊。為此,作者提出了一種新的attention機制--Coordinate Attention。
Coordinate Attention利用兩個1D全局池化操作将沿垂直和水準方向的input features分别聚合為兩個單獨的direction-aware feature maps。 然後将具有嵌入的特定方向資訊的這兩個特征圖分别編碼為兩個attention map,每個attention map都沿一個空間方向捕獲輸入特征圖的遠距離依存關系。 位置資訊是以可以被儲存在所生成的attention map中。 然後通過乘法将兩個attention map都應用于input feature maps,以強調注意區域的表示。
具體結構如圖c所示,簡單說來,Coordinate Attention是通過在水準方向和垂直方向上進行平均池化,再進行transform對空間資訊編碼,最後把空間資訊通過在通道上權重的方式融合。
總結:本文介紹了一些注意力子產品,雖然文字描述的比較少,但給出的結構圖足以了解其主要操作。除了以上的内容,此外還包括強注意力,但不是特别常見,本文未對其進行總結。
在公衆号CV技術指南中回複 “注意力機制” 可擷取相關16篇論文。
參考論文
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
歡迎關注公衆号 CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
在公衆号中回複關鍵字 “入門指南“可擷取計算機視覺入門所有必備資料。
其它文章
ML2021 | PatrickStar:通過基于塊的記憶體管理實作預訓練模型的并行訓練
ICCV2021 | PnP-DETR:用Transformer進行高效的視覺分析
ICCV2021 | 醫學影像等小資料集的非自然圖像領域能否用transformer?
ICCV2021 | Vision Transformer中相對位置編碼的反思與改進
ICCV2021 | TransFER:使用Transformer學習關系感覺的面部表情表征
2021-視訊監控中的多目标跟蹤綜述
統一視角了解目标檢測算法:最新進展分析與總結
全面了解目标檢測中的anchor | 姿态估計綜述
目标檢測中回歸損失函數總結 | 小目标檢測常用方法總結
視覺Transformer綜述 | 2021年小目标檢測最新研究綜述
Siamese network綜述 | 小目标檢測的一些問題,思路和方案
視訊了解綜述:動作識别、時序動作定位、視訊Embedding
從CVPR 2021的論文看計算機視覺的現狀
ICCV2021 | MicroNet:以極低的 FLOPs 改進圖像識别
ICCV2021 | 重新思考視覺transformers的空間次元
CVPR2021 | TransCenter: transformer用于多目标跟蹤算法
CVPR2021 | 開放世界的目标檢測
CVPR2021 | TimeSformer-視訊了解的時空注意模型
CVPR2021 | 一個高效的金字塔切分注意力子產品PSA
CVPR2021 | 特征金字塔的新方式YOLOF
經典論文系列 | 重新思考在ImageNet上的預訓練
經典論文系列 | Group Normalization & BN的缺陷
經典論文系列 | 目标檢測--CornerNet & anchor boxes的缺陷
經典論文系列 | 縮小Anchor-based和Anchor-free檢測之間差距的方法:自适應訓練樣本選擇
CV方向的高效閱讀英文文獻方法總結
資料增強方法總結
CNN結構演變總結(一)經典模型
CNN結構演變總結(二)輕量化模型
CNN結構演變總結(三)設計原則
CNN可視化技術總結(一)-特征圖可視化
CNN可視化技術總結(二)--卷積核可視化
CNN可視化技術總結(三)--類可視化
CNN可視化技術總結(四)--可視化工具與項目
池化技術總結
NMS總結