论文:https://arxiv.org/pdf/1807.06521.pdf
1 CBAM
1.1 综述
CBAM,Convolutional Block Attention Module,卷积块的注意力模块。即包含了时间注意力模块,也包含了空间注意力模型。时间注意力模块用于决定各滤波器的作用大小,空间注意力模块用于决定哪些图像位置包含我们感兴趣的目标。
CBAM的输入是
F
∈
R
C
×
H
×
W
F \in R^{C \times H \times W}
F∈RC×H×W,先将输入和
M
c
∈
R
C
×
1
×
1
M_c \in R^{C \times 1 \times 1}
Mc∈RC×1×1的channel attention map进行逐通道相乘,然后再将输出和
M
s
∈
R
1
×
H
×
W
M_s \in R^{1 \times H \times W}
Ms∈R1×H×W进行逐点相乘,得到最终的输出。处理过程可以表示为:
1.2 channel attention module
channel attention module是在SENet基础的改进。SENet中sequeeze环节只使用了平均池化,本文作者则是同时使用了最大池化和平均池化。
输入
F
∈
R
C
×
H
×
W
F \in R^{C \times H \times W}
F∈RC×H×W经过最大池化后得到输出
F
m
a
x
c
∈
R
C
×
1
×
1
F_{max}^c \in R^{C \times 1 \times 1}
Fmaxc∈RC×1×1,经过平均池化后得到输出
F
a
v
g
c
∈
R
C
×
1
×
1
F_{avg}^c \in R^{C \times 1 \times 1}
Favgc∈RC×1×1,这两个输出经过同一个MLP网络(也就是Excitation操作,channel数先压缩再扩充),之所以使用同一个MLP是为了不增加模型的训练参数,两个输出相加再经过sigmoid函数得到channel attention的结果。
W
0
∈
R
C
/
r
×
C
,
W
1
∈
R
C
×
C
/
r
W_0 \in R^{C/r \times C},W_1 \in R^{C \times C/r}
W0∈RC/r×C,W1∈RC×C/r,
W
0
W_0
W0之后还进行了ReLU操作。
实验证明了作者采用的channel attention module的优越性。
1.3 Spatial Attention Module
对channel attention之后的输出 F ∈ R C × H × W F \in R^{C \times H \times W} F∈RC×H×W分别沿channel方向进行平均池化和最大池化,得到 F a v g s ∈ R 1 × H × W F_{avg}^s \in R^{1 \times H \times W} Favgs∈R1×H×W和 F m a x s ∈ R 1 × H × W F_{max}^s \in R^{1 \times H \times W} Fmaxs∈R1×H×W,将两者concatenate之后,经过一个卷积层channel数变成1,然后再经过sigmoid函数得到各个像素位置的重要程度,即spatial attention map。
实验证明了作者方案的有效性,并且卷积核为7 * 7的效果更好,作者认为更大的感受野有助于发现空间上更重要的region。
1.4 两个attention module的使用顺序
先channel attention,后Spatial attention,效果更优。
2 实验
CBAM对分类检测任务的多个模型和数据集具有广泛的有效性。