CA:用於移動端的高效坐標註意力機制 | CVPR 2021
論文提出新穎的輕量級通道注意力機制coordinate attention,能夠同時考慮通道間關係以及長距離的位置資訊。通過實驗發現,coordinate attention可有效地提升模型的準確率,而且僅帶來少量的計算消耗,十分不錯
來源:曉飛的演算法工程筆記 公眾號
論文: Coordinate Attention for Efficient Mobile Network Design
Introduction
目前,輕量級網路的注意力機制大都採用SE模組,僅考慮了通道間的資訊,忽略了位置資訊。儘管後來的BAM和CBAM嘗試在降低通道數後通過卷積來提取位置注意力資訊,但卷積只能提取局部關係,缺乏長距離關係提取的能力。為此,論文提出了新的高效注意力機制coordinate attention,能夠將橫向和縱向的位置資訊編碼到channel attention中,使得移動網路能夠關注大範圍的位置資訊又不會帶來過多的計算量。
coordinate attention的優勢主要有以下幾點:
- 不僅獲取了通道間資訊,還考慮了方向相關的位置資訊,有助於模型更好地定位和識別目標。
- 足夠靈活和輕量,能夠簡單地插入移動網路的核心結構中。
- 可以作為預訓練模型用於多種任務中,如檢測和分割,均有不錯的性能提升。
Coordinate Attention
Coordinate Attention可看作增強移動網路特徵表達能力的計算單元,接受中間特徵X=[x_1,x_2,\cdots,x_C]\in\mathbb{R}^{C\times H\times W}作為輸入,輸出與X大小相同的增強特徵Y=[y_1,y_2,\cdots,y_C]。
Coordinate Attention Blocks
Coordinate Attention基於coordinate information embedding和coordinate attention generation兩個步驟來編碼通道關係和長距離關係。
-
Coordinate Information Embedding
channel attention常用全局池化編碼全局空間資訊,將全局資訊壓縮成一個標量,難以保留重要的空間資訊。為此,論文將全局池化改造成兩個1維向量的編碼操作。對於輸入X,使用池化核(H,1)和(1,W)來編碼水平方向和垂直方向特徵,即第c維特徵的輸出為:
上面的公式從不同的方向集成特徵,輸出一對方向可知的特徵圖。對比全局池化的壓縮方式,這樣能夠允許attention block捕捉單方向上的長距離關係同時保留另一個方向上的空間資訊,幫助網路更準確地定位目標。
-
Coordinate Attention Generation
為了更好地利用上述的coordinate infomation,論文提出了配套的coordinate attention generation操作,主要基於以下三點準則進行設計:
- 足夠簡單和輕量。
- 能完全利用提取的位置資訊。
- 能同樣高效地處理通道間的關係。
首先將公式4和公式5的輸出concatenate起來,使用$1\times 1$卷積、BN和非線性激活進行特徵轉化:
f\in\mathbb{R}^{C/r\times(H+W)}為包含橫向和縱向空間資訊的中間特徵,r為縮減因子。這裡兩個方向的特徵沒有做激烈的融合,concatenate的主要目的我覺得是進行統一的BN操作。隨後將f分為兩個獨立的特徵f^h\in\mathbb{R}^{C/r\times H}和f^w\in\mathbb{R}^{C/r\times W},使用另外兩個$1\times 1卷積和sigmoid函數進行特徵轉化,使其維度與輸入X$一致:
將輸出g^h和g^w合併成權重矩陣,用於計算coordinate attention block輸出:
coordinate attention block與se block的最大區別是,coordinate attention block的每個權重都包含了通道間資訊、橫向空間資訊和縱向空間資訊,能夠幫助網路更準確地定位目標資訊,增強識別能力。
Implementation
將coordinate attention block應用於MobileNetV2和MobileNeXt上,block結構如圖3所示。
Experiment
基於MobileNetV2進行模組設置的對比實驗。
不同注意力結構在不同主幹網路上的性能對比。
對目標檢測網路的性能對比。
對語義分割任務的性能對比。
Conclusion
論文提出新穎的輕量級通道注意力機制coordinate attention,能夠同時考慮通道間關係以及長距離的位置資訊。通過實驗發現,coordinate attention可有效地提升模型的準確率,而且僅帶來少量的計算消耗,十分不錯。
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】