在深度卷积神经网络中,通过构建一系列的卷积层、非线性层和下采样层使得网络能够从全局感受野上提取图像特征来描述图像,但归根结底只是建模了图像的空间特征信息而没有建模通道之间的特征信息,整个特征图的各区域均被平等对待。

在一些复杂度较高的背景中,容易造成模型的性能不佳,因此可以引入注意力机制,而注意力机制的原理是通过参考人的视觉感知能力,即人在处理视觉信息初期会集中专注于当前情景下重点区域,而其他区域将相应降低,这为更高层级的视觉感知和逻辑推理以及更加复杂的计算机视觉处理任务提供更易于处理且更相关的信息。这样利用注意力机制提高模型对目标区域的关注度,降低其他区域对目标区域的干扰,进而提高模型的性能。

通过研究近几年论文中的出现的注意力机制和用法,这里介绍几种频次比较高的且在不同语义分割和目标检测领域上均提高了模型性能的注意力机制,希望对大家有帮助。

1.坐标注意力(Coordinate Attention, CA)

CA通过精确的位置信息对通道关系和长程依赖进行编码,使网络能够以较小的计算成本关注大的重要区域,主要包括坐标信息嵌入和坐标注意力生成两个步骤,其结构如图1所示。

图1 坐标注意力模块

1.1 Coordinate信息嵌入

为了获取图像宽度和高度上的注意力并对精确位置信息进行编码,先将输入特征图分别按照宽度和高度两个方向分别进行全局平局池化,分别获得在宽度和高度两个方向上的特征图。具体而言,给定对于输入的特征张量X,沿水平坐标使用尺寸为(H,1)的池化核对每个通道的特征进行编码,因此,第c通道的高度为h的输出可以表示为:

(1)

其中

表示第c通道的高度为h;

表示第c通道的高度为h的宽度坐标为j的特征图的数值;W表示特征图的宽度。同理,第c通道的宽度为w的输出可以写成:

(2)

其中

表示第c通道的输出高度为w;

表示第c通道的宽度为w的高度坐标为i的特征图的数值;H表示特征图的高度。

这两种变换分别从两个空间方向对特征进行聚合,得到一对方向感知特征图。且这两种变换允许注意力模块捕捉沿着一个空间方向的长期依赖关系,并保存沿着另一个空间方向的精确位置信息,有助于模型更好地定位感兴趣目标。

1.2 Coordinate信息生成

通过公式(1)和(2)可以很好的获得全局感受野对于精确位置信息的编码。为了利用产生的特征,通过信息嵌入中的变换后,将式(1)和(2)产生的聚合特征图进行拼接操作,然后使用1x1卷积变换函数F_{1}对其进行变换操作,得到水平方向和垂直方向编码空间信息的中间特征图f:

(3)

其中,[]是沿空间维度进行的拼接操作,\delta为非线性激活函数,

是在水平方向和垂直方向对空间信息进行编码的中间特征图,r是用来控制SE block大小的缩减率。沿着空间维度将f分解为2个独立的张量

,再利用另外两个1x1卷积变换F_{h}和F_{w}分别将f_{h}和f_{w}变换为具有相同通道数的张量到输入X,得到:

(4)

(5)

其中,\delta是Sigmoid激活函数。为了降低模型复杂性和计算开销,通常使用适当的缩减比来缩小f的通道数,然后对输出g_{h}和g_{w}进行扩展,分别作为注意力权重。最后CA模块的输出

可以写成:

(6)

2.卷积注意力模块(convolutional block attention module, CBAM)

CBAM是一个前馈卷积神经网络注意力模块,沿着通道和空间的维度顺序推断注意力图,然后将注意力图乘以输入特征图以进行自适应特征细化。其计算开销可忽略不计,且可以无缝集成到任何CNN架构中。

图2 卷积注意力模块

2.1 通道注意力

通道注意力结构如图2所示,首先通过平均池化和最大池化操作来聚合特征图的空间信息,生成两个不同的空间上下文描述符:

,它们分别表示平均池特征和最大池特征。然后将这两个特征描述符送到共享网络(由具有一个隐藏层的多层感知器组成)来生成通道注意力图 ,随后再将共享网络应用于每个描述符之后,进行逐元素求和合并输出特征向量。通道注意力计算如下:

(7)

其中\sigma表示Sigmoid函数,

分别为两个输入共享MLP的权重。

图2 通道注意力

2.2 空间注意力模块

空间注意力模块如图3所示。之前沿着通道方向应用平均池化和最大池化操作来聚合特征图信息,得到两个2D图:

,然后通过标准卷积层将它们连接起来并卷积,生成我们的2D空间注意力图,空间注意力计算如下

(8)

其中\sigma表示Sigmoid函数,f^{7x7}表示卷积核大小为7×7的卷积运算。

图3 空间注意力

3.挤压和激励注意力(Squeeze-and-Excitation attention, SE)

SE结构通过显式地建模信道之间的相互依赖性,自适应地重新校准信道特征响应,在略微增加计算成本的情况下显著提高了现有最先进的CNN的性能。其结构主要分为挤压和激励两部分,如图4所示。

图4 挤压和激励注意力结构

3.1 挤压:全局信息嵌入

为了缓解变换输出U的每个单元不能利用该区域之外上下文信息的问题,通过使用全局平均池来生成通道统计信息来实现将全局空间信息压缩到信道描述符中。通过U的空间维度H×W收缩U来生成统计量z∈RC,从而z的第c个元素计算为:

(9)

注:这里作者使用最简单的全局平均池化,可以试试更复杂的方法进行改进,以提高更多的性能。

3.2 激励:自适应调整

为了利用在挤压操作中聚集的信息,但为了完全捕获通道相关性就必须满足两个标准:①必须灵活,即能够学习通道之间的非线性相互作用;②必须学习非互斥关系,因为希望确保允许增强多个通道。这里选择满足这些标准S形激活门控机制:

(10)

其中,\delta表示ReLU激活函数,

,

。为了限制模型的复杂性,在非线性周围形成两个全连接(FC)层的瓶颈,即具有缩减比率r的维度缩减层,经ReLU后维度增加层到变换输出U的通道维度。通过用激活s重新缩放U来获得块的最终输出:

(11)

其中

是标量s_{c}和特征映射

之间的通道乘法操作。

参考文献

[1] Hou Q, Zhou D, Feng J. Coordinate attention for efficient mobile network design[C]. Proceedings of the IEEE/CVF conference on computer vision and pattern recognition.2021:13713-13722

[2] Woo S, Park J, Lee JY, et al. CBAM Convolutional block attention module. Proceedings of the 15th European Conference on Computer Vision.2018,3-19.

[3] Jie H, Li S, Gang S, et al. Squeeze-and-Excitation Networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017.

论文中常用的注意力模块合集(上)相关推荐

  1. 【托福口语】口语素材常用俚语234句合集

    托福口语素材 下这些都是我自己总结和使用过的资料,觉得对你有用的话不妨点个关注~ 托福听力速记符号单词表 - プロノCodeSteel - CSDN博客 TOEFL 活用简单词 - プロノCodeSt ...

  2. 苹果使用过程中的小技巧(合集)

    苹果使用过程中的小技巧(合集) 苹果机通电开机后,底层会进行一系列自检,若能通过,就回听到那有名的"咚...", 然后由openfirm引导OS启动. 如果自检遇到问题,则会发出1 ...

  3. 聊一聊计算机视觉中常用的注意力机制 附Pytorch代码实现

    聊一聊计算机视觉中常用的注意力机制以及Pytorch代码实现 注意力机制(Attention)是深度学习中常用的tricks,可以在模型原有的基础上直接插入,进一步增强你模型的性能.注意力机制起初是作 ...

  4. 【理论+实践】史上最全-论文中常用的图像分割评价指标-附完整代码

    图像分割的评价指标非常多,论文中常用的包括像素准确率(Pixel Accuracy, PA).交并比(Intersection-Over-Union,IOU).Dice系数(Dice Coeffcie ...

  5. 最全面具magisk模块合集-如何下载你想要的magisk模块

    magisk官方取消了面具在线模块了,导致大家根本不知道怎么去找面具模块,百度对于模块的收集也是残次不齐,并且还夹杂着部分格机模式,想要搞机太难了.ROM基地网站整理了目前当前大部分模块,可帮助广大网 ...

  6. UI设计中AI黑科技插件合集

    俗话说:欲善其事必先利其器. 作为设计师怎么能缺少神器般的AI黑科技插件?随着插画风分析图.轴测图.效果图等的流行,adobe Illustrator在设计类软件里的分量也越来越重.逆天的PS插件很多 ...

  7. CVPR2020论文阅读——超强通道注意力模块ECANet!

    Abstract 最近,通道注意机制已被证明在改善深度卷积神经网络(CNN)的性能方面具有巨大潜力.然而,大多数现有方法致力于开发更复杂的注意模块以实现更好的性能,这不可避免地会增加模型的复杂性. 为 ...

  8. B端后台Dashboard页面 数据可视化页面 常用图表组件库合集 sketch格式

    数据是企业的上帝之眼,数据可视化就发挥了很大的作用.很多从事B端产品设计的小伙伴在日常工作中遇到数据可视化的场景比较多,除了大屏可视化场景外,还有后台Dashboard页和一些前台统计页. 后台的设计 ...

  9. 原生JS中DOM节点相关API合集

    原生JS中DOM节点相关API合集 节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Te ...

最新文章

  1. 设计模式(五)责任链模式
  2. mysql 去重_点赞功能,用 MySQL 还是 Redis ?
  3. cent os 下使用hashmap + string
  4. idea创建包怎么让包分层_干货 | 通勤包怎么选?我推荐这6只
  5. mysql之库操作_创建用户_修改用户权限_修改用户密码
  6. 无法在计算机上创建文件夹iscsi,ISCSI连接后磁盘无法读写问题求解决
  7. MyCat分布式数据库集群架构工作笔记0018---高可用_单表存储千万级_海量存储_水平分表划分原则
  8. Vue.js05:vue内联样式
  9. linux dd后无法启动盘,dd后新盘系统无法启动,解决(上)
  10. 【语音识别】基于matlab高斯混合模型(GMM)说话人识别【含Matlab源码 574期】
  11. leetcode121、122、123
  12. AIDE手机编程初级教程(零基础向) 引入篇
  13. python把英语句子成分字母_英语基础(一)句子成分和结构
  14. 高企认定人员及研发费要求?
  15. 网吧服务器软件维护合同范本,网吧电脑维护合同范本
  16. 如何去高效的学习?怎样克服?
  17. 深度学习——BRNN和DRNN
  18. 产品经理常用词汇汇总
  19. java垃圾回收代码
  20. compare用法java,Java经典用法总结

热门文章

  1. 国考省考行测:求基期量,去年的量,增长率r小于6%化除为乘,否则直接相除
  2. Gurobi9.0.3安装
  3. Android 判断Fragment对用户是否可见
  4. Electron常见问题 49 - module was compiled against a different Node.js version usingNODE_MODULE_VERSION
  5. python乘号怎么输入_python的乘号
  6. by which, in which, from which...
  7. windows win10+1050ti maxQ 安装cuda1.0和tensorflow-gpu==2.0.0
  8. jdk自带压测工具_jmeter压测工具
  9. 苹果xsmax是什么接口_液态硅胶手机壳,媲美苹果官方同款,拿手里太舒服了~
  10. 刀库计算机错误,三菱M70刀库定位错误报警怎么解除?谢谢大神指点!