【深度学习经典网络架构—10】:注意力模块之CBAM
一、简述在[【深度学习经典网络架构—8】:注意力机制之SE_Block](https://blog.csdn.net/qq_42856191/article/details/123655146?spm=1001.2014.3001.5501)中,我们介绍了CNN的通道注意力模块SE_Block,本次带来的是另一个即用即插的注意力模块CBAM。论文链接:[CBAM: Convolutional Bl
✨博客主页:米开朗琪罗~🎈
✨博主爱好:羽毛球🏸
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】
目录
😺一、简述
在【深度学习经典网络架构—8】:注意力机制之SE_Block中,我们介绍了CNN的通道注意力模块SE_Block,本次带来的是另一个即用即插的注意力模块CBAM。
论文链接:CBAM: Convolutional Block Attention Module
😺二、CBAM(Convolutional Block Attention Module)
CBAM的结构如下图所示:
由图可知,CBAM包含两个独立的子模块,分别是通道注意力模块(Channel Attention Module,CAM)和空间注意力模块(Spartial Attention Module,SAM)。
设输入特征 F ∈ R C ∗ H ∗ W F\in \mathbb{R}^{C\ast H\ast W} F∈RC∗H∗W,顺序的可以得到一维的通道注意力图 M c ∈ R C ∗ 1 ∗ 1 M_{c}\in \mathbb{R}^{C\ast 1\ast 1} Mc∈RC∗1∗1和二维的空间注意力图 M s ∈ R 1 ∗ H ∗ W M_{s}\in \mathbb{R}^{1\ast H\ast W} Ms∈R1∗H∗W。全部的注意力过程可以总结为:
F ′ = M c ( F ) ⊗ F F ′ ′ = M s ( F ′ ) ⊗ F ′ \begin{matrix}F^{'}=M_{c}(F)\otimes F \\ F^{''}=M_{s}(F^{'})\otimes F^{'} \end{matrix} F′=Mc(F)⊗FF′′=Ms(F′)⊗F′
其中 ⊗ \otimes ⊗表示按元素级相乘。
🐶2.1 CAM(Channel Attention Module)
CAM如下图所示:
流程如下:
首先通过最大池化和平均池化得到两个 1 × 1 × C 1×1×C 1×1×C的特征图,然后将其送入MLP,将MLP输出的特征进行像素级的加和后再经过sigmoid激活,得到最终的通道注意力特征。
公式如下:
🐶2.2 SAM(Spatial Attention Module)
SAM如下图所示:流程如下:
将CAM作为输入,首先沿着通道维度进行最大池化和平均池化,得到两个 H × W × 1 H×W×1 H×W×1特征图,然后对特征图通道级联,接着经过一个 7 × 7 7×7 7×7卷积层降维至单通道,最后经sigmoid激活得到SAM。
公式如下:
😺三、消融实验
作者对网络结构进行了多组消融实验,最终确认串联,通道注意在前、空间注意在后能得到更优异的效果。具体实验结果详见论文。
😺四、CBAM可视化
为了确定CBAM带来的注意强度,作者使用Grad-CAM对特征图进行激活,如下图所示:
可以看到,加入CBAM的ResNet50要比加入SE_Block的具有更强的表达能力。
😺五、总结
CBAM作为一种联合了通道与空间的注意力模块,不仅加强了网络的特征表达能力,而且足够轻量化,在许多网络中都可以即插即用。
更多推荐
所有评论(0)