动机
- 之前有一篇论文提出了SENet,在feature map的通道上进行attention生成,然后与原来的feature map相乘。这篇文章指出,该种attention方法只关注了通道层面上哪些层会具有更强的反馈能力,但是在空间维度上并不能体现出attention的意思。
- attention不止能告诉网络模型该注意什么,同时也能增强特定区域的表征。本文的CBAM在channel和spatial两个维度上引入了attention机制。
- CBAM作为本文的亮点,将attention同时运用在channel和spatial两个维度上,CBAM与SE Module一样,可以嵌入了目前大部分主流网络中,在不显著增加计算量和参数量的前提下能提升网络模型的特征提取能力。
创新
- 提出了一个高效的attention模块----CBAM,该模块能够嵌入到目前的主流CNN网络结构中。
- 通过额外的分离实验证明了CBAM中attention的有效性。
- 在多个平台上(ImageNet-1K,MS COCO和VOC 2007)上证明了CBAM的性能提升。
方法
Convolutional Block Attention Module
- 当输入 F F F 作为input feature map时,本文提出的CBAM主要对其进行以下两个运算:
- 整体结构
- 结构细节
Channel attention module
-
这部分的工作与SENet很相似,都是首先将feature map在spatial维度上进行压缩,得到一个一维矢量以后再进行操作。与SENet不同之处在于,对输入feature map进行spatial维度压缩时,作者不单单考虑了average pooling,额外引入max pooling作为补充,通过两个pooling函数以后总共可以得到两个一维矢量。global ave