【CV中的Attention机制】模块梳理合集

本文详细梳理了卷积神经网络中各种注意力机制,包括SENet、SKNet、CBAM、Non-Local Network等,分析了它们的原理、优缺点以及应用场景。通过对这些模块的探讨,揭示了注意力机制在提升模型性能中的关键作用。
摘要由CSDN通过智能技术生成

0. 总述

注意力主要分为三种类型:空间注意力、通道注意力、Self-Attention。论文阅读注重以下几点:

  • motivation
  • method
  • result

可能的思路:

  • 搜索attention block,固定插入到人工设计的网络中。
  • 同时搜索attention block和网络结构。

1. SENet(CVPR18)

链接:https://arxiv.org/abs/1709.01507

Squeeze and Excitation Network是在CV领域中应用Attention机制的鼻祖,且拿到了ImageNet17分类比赛冠军。

核心思想:自学习channel之间相关性,筛选针对通道的注意力。

SENet示意图

看一下SE-ResNet Module具体实现:

SE-ResNet Module

详细解释

  • Sequeeze: 使用global average pooling, 得到具有全局感受野的1x1特征图。
  • Excitation: 使用全连接神经网络,做非线性变换。
  • 特征重标定:将Excitation得到的重要性权重赋给原来的输入特征得到新的特征。

人工调整:

需要人工参与的部分有:

  • reduction 参数的选取

  • squeeze方式:global average pooling 还是max pooling

  • excitation方式:ReLU、Tanh、Sigmoid等激活

  • stage: 将SE模块添加到网络不同的深度

2. SKNet(CVPR19)

链接:https://arxiv.org/pdf/1903.06586.pdf

Selective Kernel Network想法是提出一个动态选择机制让CNN每个神经元可以自适应的调整其感受野大小。初步引入了空间注意力机制。

SKNet示意图

上下两个分支和SENet一致,分支之间区别在于选择的kernel大小不同。SKNet方法非常类似于merge-and-run mapping(https://arxiv.org/pdf/1611.07718.pdf)的思想,该文中还提到了三个基础模块:

merge and run mapping

(a)类似ResNet的结构,添加残差链接。

(b)类似Inception结构,加了一个分支卷积。

(c)merge-and-run mapping结构,两个分支将残差结果处理(可以是add、multi、或者就是SKNet中这种带有Attention的方法),然后再合并到原先分支。

人工调整:

需要人工参与的部分有:

  • kernel size的选取
  • SK分支个数
  • 组卷积分组个数
  • SKNet中卷积的channel参数
  • 激活方法,这里默认用的是softmax
  • Reduction参数设置
  • 卷积中的dilation参数设置

3. CBAM(ECCV18)&BAM(BMVC18)&scSE(MICCAI18)

CBAM链接:https://arxiv.org/pdf/1807.06521.pdf

BAM链接:https://arxiv.org/pdf/1807.06514.pdf

scSE链接:http://arxiv.org/pdf/1803.02579v2.pdf

Convolutional Block Attention Module和BottleNeck Attention Module两篇文章都是一个团队在同一个时期发表的文章,CBAM被ECCV18接收,BAM被BMVC18接收。

核心思想:通道注意力机制和空间注意力机制的串联(CBAM)或者并联(BAM)。

CBAM(串联)

通道注意力机制:与SENet不同,这里使用了MaxPool和AvgPool来增加更多的信息。

channel attention

空间注意力机制:

spatial attention

CBAM将两者顺序串联,这个顺序也是通过实验决定得到的。

CBAM串联通道注意力和空间注意力机制

ResNet中这样调用CBAM模块,如下图所示:

ResNet结合CBAM示意图

然后简单看一下并联版本的BAM,通道注意力和SENet一致。

BAM

和BAM类似,scSE也是相似的思路,应用在U-Net中,能够让分割边缘变得更加精细。

scSE示意图

人工调整:

需要人工调整的地方有:

  • 空间注意力和通道注意力位置/串联或者并联
  • 空间注意力
    • kernel size
    • 激活函数
    • concate or add
    • dilation rate
  • 通道注意力
    • reduction
    • avgpool maxpool or softpool
    • 融合方式的选择add multi

4. Non-Local Network(CVPR19)

链接:https://arxiv.org/abs/1711.07971

Non-Local是CVPR2018上的一篇文章,提出了自注意力模型。灵感来自于Non Local means非局部均值去噪滤波,所以称为Non-Local Network。

Non-local的通用公式表示:

y i = 1 C ( x ) ∑ ∀ j f ( x i , x j ) g ( x j ) y_i=\frac{1}{C(x)}\sum_{\forall j}f(x_i,x_j)g(x_j) yi=C(x)1jf(x

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*pprp*

如果有帮助可以打赏一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值