前言:
前面分享了一篇《繼SE,CBAM后的一種新的注意力機制Coordinate Attention》,其出發點在於SE只引入了通道注意力,CBAM的空間注意力只考慮了局部區域的信息,從而提出考慮全局空間信息的注意力機制。
在本文,將介紹另一個基於同樣出發點的注意力模塊,即Pyramid Split Attention (PSA)。PSA具備即插即用、輕量、簡單高效的特點。該模塊與ResNet結合,通過PSA替代ResNet的bottleneck中的3x3卷積,組成了EPSANet。
EPSANet用於圖像識別,比SENet top-1acc高了1.93%。PSA用在Mask RCNN上,目標檢測高了2.7 box AP,實例分割高了1.7 mask AP。
論文:https://arxiv.org/pdf/2105.14447v1.pdf
代碼:https://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中的3x3卷積,再堆疊幾個這樣的模塊就構成了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。
其它文章