CBAM和CA注意力机制

前言

EfficientNet的复现中我们已经提到了SE注意力机制,现在简要介绍18年的CBAM和21年的CA注意力机制

论文:

  1. (ECCV'18)CBAM: Convolutional Block Attention Module
  2. (CVPR'21)Coordinate Attention for Efficient Mobile Network Design

CBAM注意力机制

Convolutional Block Attention Module (CBAM) 表示卷积注意力机制模块,是一种结合了空间(Spatial)和通道(Channel)的注意力机制模块。相比于SE注意力机制只关注通道(Channel)的注意力机制可以取得更好的效果
CBAM.png
实现方式:
通道和空间注意力机制.png

  • 通道注意力

    1. 在空间维度上对张量分别进行全局平均池化和全局最大池化,相当于将一个“长方形”的“宽”和“高”压扁为1,得到两条线段,分别将他们切为n份,其中每一份的这个数字即为该通道空间维度对应池化的结果
    2. 对平均池化和最大池化的结果,交由共享的全连接层进行处理,进行结合
    3. 对处理后的两个结果相加,过Sigmoid激活函数转为概率,这样就获得了输入特征层每一个通道的注意力分布
    4. 权值对原输入特征层的每个通道特征图整体叠加,获得通道加权后的特征图,实现 “重要通道强化、次要通道弱化”
  • 空间注意力

    1. 对每个特征的通道分别进行平均池化和最大池化,相当于将一个“长方形”的“长”压扁为1,得到两个方形,其中在单位宽度\times单位长度上的一个小方形特征图即为该单位长宽下通道维度对应的池化结果
    2. 两个结果进行通道维度上的拼接
    3. 经过一个输出通道数为1的卷积重新调整通道数为1,将两个结果融合在一起
    4. 过Sigmoid激活函数转为概率,这样就获得了输入特征层每一个单位长宽的注意力分布
    5. 权值对原输入特征层每个通道特征图的单位长宽叠加,获得单位长宽特征加权后的特征图,实现 “重要区域强化、次要区域弱化”

优点:

  • 效果:结合了卷积和注意力机制,可以从空间和通道两个方面上对图像进行关注

缺点:

  • 计算量:需要更多的计算资源,计算复杂度更高

CA注意力机制

CA的作者认为现有的注意力机制(如CBAM、SE)在求取通道注意力的时候,通道的处理一般是采用全局最大池化/平均池化,这样会损失掉物体的空间信息。作者期望在引入通道注意力机制的同时引入空间注意力机制,所以CA注意力机制主要考虑如何将位置信息直接嵌入到通道注意力中

实现方式:
首先是SE和CBAM的实现
SE和CBAM.png
而CA考虑:
CA注意力机制.png

  1. 分别使用尺寸为(H,1)和(1,W)的池化核沿着水平坐标方向和竖直坐标方向对每个通道进行全局平均池化操作,得到一对方向感知的特征图,分别为(C,H,1)和(C,1,W)
  2. 将上述得到的两个方向感知的特征图在空间维度上展平,得到一个形状为(C,1,H+W)的特征图
  3. 使用一个共享的1×1卷积对拼接后的特征图进行变换,在提取空间上特征的同时压缩通道,生成一个中间特征图,形状为(C/r,1,H+W)
  4. 还原展平操作,得到形状分别为(C/r,H,1)和(C/r,1,W)的特征图
  5. 利用两个1×1卷积分别对两个特征图进行卷积,还原通道数为C
  6. 两个特征图分别过Sigmoid激活函数转换为概率
  7. 与原特征图进行通道、长、宽上的相乘叠加
游客

全部评论 (0)

暂无评论,快来抢沙发吧~