CVPR2021|一個高效的金字塔切分注意力模塊PSA
- 2021 年 6 月 23 日
- 筆記
前言:
前面分享了一篇《繼SE,CBAM後的一種新的注意力機制Coordinate Attention》,其出發點在於SE只引入了通道注意力,CBAM的空間注意力只考慮了局部區域的信息,從而提出考慮全局空間信息的注意力機制。
在本文,將介紹另一個基於同樣出發點的注意力模塊,即Pyramid Split Attention (PSA)。PSA具備即插即用、輕量、簡單高效的特點。該模塊與ResNet結合,通過PSA替代ResNet的bottleneck中的3×3卷積,組成了EPSANet。
EPSANet用於圖像識別,比SENet top-1acc高了1.93%。PSA用在Mask RCNN上,目標檢測高了2.7 box AP,實例分割高了1.7 mask AP。
論文://arxiv.org/pdf/2105.14447v1.pdf
代碼://github.com/murufeng/EPSANet
本文出發點
1. SE僅僅考慮了通道注意力,忽略了空間注意力。
2. BAM和CBAM考慮了通道注意力和空間注意力,但仍存在兩個最重要的缺點:(1)沒有捕獲不同尺度的空間信息來豐富特徵空間。(2)空間注意力僅僅考慮了局部區域的信息,而無法建立遠距離的依賴。
3. 後續出現的PyConv,Res2Net和HS-ResNet都用於解決CBAM的這兩個缺點,但計算量太大。
基於以上三點分析,本文提出了Pyramid Split Attention。
PSA
主要操作:將input tensor從通道上分成S組。每一組進行不同卷積核大小的卷積,以獲取不同尺度的感受野,提取不同尺度的信息。再通過SE模塊,提取每組的通道的加權值,最後對S組的加權值進行softmax歸一化並加權。
具體將input tensor分成S組,並對每組進行不同卷積的SPC模塊如下圖所示。
SPC先將input tensor分成S組,每組的卷積核大小依次增大,如k=3,5,7,9。考慮到當卷積核比較大時,計算量也大,因此,對每一組再進行分組卷積,具體分組數量G = exp(2,(k-1)/2),即2的(k-1)/2次冪。當K = 3,5,7,9時,G=1,2,3,4。
在經過不同大小的卷積後,在通道上拼接。
經過SPC模塊後,PSA再將SPC模塊的輸出通過SE Weight Module獲得通道注意力值,這樣做的目的是獲得不同尺度特徵圖的注意力權值。
通過這樣的做法,PSA融合了不同尺度的上下文信息,併產生了更好的像素級注意力。
最後將每組通道注意力權值拼接,進行softmax歸一化,對SPC模塊的輸出進行加權。
完整的PSA模塊如下圖所示。
這裡補充一下pyramid split attention中的pyramid。在《特徵金字塔技術總結》中介紹了特徵金字塔的兩種構建方式,其中一種就是通過不同大小卷積核的卷積來構建特徵金字塔。因此,這裡PSA中的Pyramid是由SPC模塊中的每組不同大小卷積核的卷積所構建。
EPSANet
如上圖所示,將PSA替代ResNet的bottleneck中的3×3卷積,再堆疊幾個這樣的模塊就構成了EPSANet,這裡的E,指的是efficient。
網絡設計如下圖所示。
Conclusion
EPSANet用於圖像識別,比SENet top-1acc高了1.93%。PSA用在Mask RCNN上,目標檢測高了2.7 box AP,實例分割高了1.7 mask AP。
以ResNet-50和ResNet-101為backbone,加入各種注意力模塊的圖像識別效果對比
在公眾號中回復關鍵字 「技術總結」 可獲取以下文章的匯總pdf。
其它文章