位置: IT常识 - 正文

综述:计算机视觉中的通道注意力机制(计算机视角技术)

编辑:rootadmin
综述:计算机视觉中的通道注意力机制 综述:计算机视觉中的通道注意力机制1. INTRODUCTION:2. 计算机视觉中的注意力机制2.1. 通用形式2.2 通道注意力 | channel attention | what to pay attention to2.2.1 SENet2.2.2 GSoP-Net2.2.3 SRM2.2.4 GCT2.2.5 ECANet2.2.6 FcaNet2.2.7 EncNet2.2.8 通道注意力机制模型总结3. 论文链接

推荐整理分享综述:计算机视觉中的通道注意力机制(计算机视角技术),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:计算机视觉概述,计算机视觉百度百科,计算机视频概念,计算机视觉:一种现代方法,计算机视觉百度百科,计算机视觉:一种现代方法,计算机视觉综述,计算机视觉:一种现代方法,内容如对您有帮助,希望把文章链接给更多的朋友!

这是一篇从数据域的角度,给注意力机制分为六类的综述,涵盖论文数量多。

论文题目:Attention Mechanisms in Computer Vision: A Survey

论文链接:https://arxiv.org/pdf/2111.07624.pdf

论文代码: https://github.com/MenghaoGuo/Awesome-Vision-Attentions

ABSTRACT: 人类可以自然有效地在复杂场景中发现显著区域。在这种观察的激励下,注意力机制被引入计算机视觉,目的是模仿人类视觉系统的这一方面。这种注意力机制可以看作是一个基于输入图像特征的动态权重调整过程。注意力机制在许多视觉任务中取得了巨大的成功,包括图像分类、目标检测、语义分割、视频理解、图像生成、三维视觉、多模态任务和自监督学习。在这项调查中,我们对计算机视觉中的各种注意力机制进行了全面的回顾,并根据方法对它们进行了分类,如通道注意、空间注意、时间注意和分支注意;相关代码在https://github.com/MenghaoGuo/Awesome-Vision-Attentions。我们还提出了注意力机制研究的未来方向。

图1 注意力机制根据数据域分类。其中包含了四种分类:通道注意力、空间注意力、时间注意力、分支注意力,其中有两个重叠类,即通道-空间注意力、空间、时间注意力。空集表示这种组合还不存在。

图2 通道、空间和时间注意力能够被看作是在不同的域(维度)上操作。C表示通道域,H和W表示空间域,T表示时间域。分支注意力是对这些的补充。

1. INTRODUCTION:

将注意力转移到最重要的部分被称为注意力机制;人类使用视觉系统来帮助高效地分析和理解复杂场景。这反过来又促使研究人员将注意力机制引入计算机视觉系统,以提高其性能。在视觉系统中,注意力机制可以被视为一个动态选择过程,通过根据输入的重要性自适应地加权特征来实现。注意力机制在很多视觉任务中都有好处,例如:图像分类、目标检测、语义分割、人脸识别、人物再识别、动作识别、少量显示学习、医学图像处理,图像生成、姿势估计、超分辨率、三维视觉和多模式任务。

图3 CV中的attention发展史

过去十年,注意力机制在计算机视觉中逐渐起重要作用。图3简要地总结了基于deep learning 的CV领域中attention-based模型的发展历史。成果大致可以分为四个阶段。

第一阶段:从RAM开始的开创性工作,将深度神经网络与注意力机制相结合。它反复预测重要区域。并以端到端的方式更新整个网络。之后,许多工作采用了相似的注意力策略。在这个阶段,RNN在注意力机制中是非常重要的工具。第二阶段:从STN中,引入了一个子网络来预测放射变换用于选择输入中的重要区域。明确预测待判别的输入特征是第二阶段的主要特征。DCN是这个阶段的代表性工作。第三阶段:从SENet开始,提出了通道注意力网络(channel-attention network)能自适应地预测潜在的关键特征。CBAM和ECANet是这个阶段具有代表性的工作。第四阶段:self-attention自注意力机制。自注意力机制最早是在NLP中提出并广泛使用。Non-local网络是最早在CV中使用自注意力机制,并在视频理解和目标检测中取得成功。像EMANet,CCNet,HamNet和the Stand-Alone Network遵循此范式并提高了速度,质量和泛化能力。最近,深度自注意力网络(visual transformers)出现,展现了基于attention-based模型的巨大潜力。

表1 简要总结注意力机制分类

Attention cateoryDescriptionTranslationChannel attention(what to pay attention to)Generate attention mask across the channel domain and use it to select important channels在通道域中生成注意力掩码,并使用它选择重要通道Spatial attention(where to pay attention to)Generate attention mask across spatial domains and use it to select important spatial regions or predict the most relevant spatial position directly生成跨空间域的注意力掩码,并使用它来选择重要的空间区域或直接预测最相关的空间位置Temporal attention(when to pay attention to)Generate attention mask in time and use it to select key frames及时生成注意力掩码,并使用它选择关键帧Branch attention(which to pay attention to)Generate attention mask across the different branches and use it to select important branches在不同的分支上生成注意力掩码,并使用它来选择重要的分支Channel & spatial attentionPredict channel and spatial attention masks separately or generate a joint 3-D channel, height, width attention mask directly and use it to select important features分别预测通道和空间注意力掩码,或直接生成一个联合的三维通道、高度、宽度注意力掩码,并使用它选择重要特征Spatial & temporal attentionCompute temporal and spatial attention masks separately, or produce a joint spatiotemporal attention mask, to focus on informative regions分别计算时间和空间注意力掩码,或生成联合时空注意力掩码,以关注信息区域

图4 视觉注意力的发展

2. 计算机视觉中的注意力机制

表2 本文中的符号含义。在使用的地方解释了其他次要符号

SymbolDescriptionTranslationXinput feature map, X∈RC×H×W{X\in{R^{C\times{H}\times{W}}}}X∈RC×H×W输入特征图,维度Youtput feature map输出特征图Wlearnable kernel weight待学习权重FCfully-connected layer全连接层Convconvolution卷积层GAPglobal average pooling全局平均池化GMPglobal max pooling全局最大池化[ ]concatenation拼接(串联)δReLU activationReLU激活函数σsigmoid activationsigmoid激活函数tanhtanh activationtanh激活函数Softmaxsoftmax activationsoftmax激活函数BNbatch normalization批标准化Expandexpan input by repetition重复输入2.1. 通用形式

当我们在日常生活中看到一个场景时,我们会把注意力集中在识别区域,并快速处理这些区域。上述过程可表述为:

Attention=f(g(x),x){Attention = f(g(x),x)}Attention=f(g(x),x)

g(x){g(x)}g(x)可以表示为产生注意力,这对应于注意待识别区域的过程;f(g(x),x){f(g(x),x)}f(g(x),x)表示基于attention g(x){g(x)}g(x)处理输入xxx,这与处理关键区域、获取信息是一致的。

根据上述定义,我们发现几乎所有现存的注意力机制都能够被写成上述形式。这里我们列举了self-attention的Non-Local和spatial attention的SENet。

Non-Local可以写成:

SENet可以写成:

因此,我们会通过上述形式介绍各种注意力机制方式。

2.2 通道注意力 | channel attention | what to pay attention to

2.2.1 SENet综述:计算机视觉中的通道注意力机制(计算机视角技术)

squeeze模块:全局平均池化(GAP),压缩通道[H,W][H,W][H,W]->[1,1][1,1][1,1]excitation模块:后接全连接层(W1W_1W1​)->ReLU层(δ)->全连接层(W2W_2W2​)->Sigmoid(σ)将得到的结果和原特征图相乘,为每一个通道给不同的权重2.2.2 GSoP-Net

创新点:改进了squeeze模块。global average pooling(GAP) -> global second-order pooling(GSoP)

动机:SENet仅仅采用了全局平均池化方法,GSoP-Net认为这是不够的,这限制了注意力机制的建模能力,因此提出了global second-order pooling(GSoP) block在收集全局信息的同时对高阶统计数据建模.

和SEBlock一样,GSoPBlock同样有 squeeze和excitation两部分结构。

squeeze模块:1×1{1\times1}1×1卷积(Conv)将通道维度从[C,H,W][C,H,W][C,H,W]->[C′,H,W][C^{'},H,W][C′,H,W],(C′<C)(C^{'}<C)(C′<C)协方差矩阵(Cov)C′×C′{C^{'}\times{C^{'}}}C′×C′,计算各通道间的相关性接下来,对协方差矩阵执行逐行归一化。归一化协方差矩阵中的每个(i,j){(i,j)}(i,j)表示信道i与信道j相关联excitation模块 1.行卷积(RC)以保持结构信息并输出向量 2. 利用全连接层(W)和sigmoid函数(σ)得到C维注意力向量(通道权重)将得到的结果和原特征图相乘,为每一个通道给不同的权重

通过使用全局二阶池化(GSoP),GSoPBlock提高了通过SEBlock收集全局信息的能力。然而,这是以额外计算为代价的。因此,通常在几个剩余块之后添加单个GSoPBlock。

2.2.3 SRM

创新点:改进了squeeze模块和excitation模块。提出了style-based recalibration module (SRM)。它利用输入特征的均值(mean)和标准差(std)来提高捕获全局信息的能力。它还采用了一个轻量级的通道全连接层(CFC)代替原有的全连接层(FC),以减少计算需求。

动机:以风格迁移的成功为动机,即提升精度的同时,减少计算量,提出了新的squeeze模块和轻量级全连接层。

squeeze模块:使用style pooling(SP),它结合了全局平均池化和全局标准差池化。(为什么输出为C×d{C\times{d}}C×d:当只用全局平均池化就是C×1{C\times{1}}C×1;当用了全局平均池化和全局标准差池化就是C×2{C\times{2}}C×2;当用了全局平均池化和全局标准差池化和全局最大池化就是C×3{C\times{3}}C×3)excitation模块:与通道等宽的全连接层CFC(Channel-wise fully-connected layer) ,含义:通道维度由[C,d]{[C,d]}[C,d]变为[C,1]{[C,1]}[C,1],即对于每一个通道,都有一个全连接层输入为d,输出为1(原文:This operation can be viewed as a channel-independent, fully connected layer with d input nodes and a single output)利用BN层和sigmoid函数(σ)得到C维注意力向量将得到的结果和原特征图相乘,为每一个通道给不同的权重2.2.4 GCT

动机:由于excitation模块中全连接层的计算需求和参数数量,在每个卷积层之后使用SE块是不切实际的。提出了gated channel transformation (GCT)。减少计算量,在backbone中可以加入更多层注意力机制。

l2-normalization(Norm),对输入特征图Norm,通道数从C,H,W{C,H,W}C,H,W->[C,1,1][C,1,1][C,1,1],乘以可训练权重α\alphaα,输出结果作为第二部分的输入用sins_{in}sin​表示channel normalization(CN),对应图中中间部分,具体操作为

sout=CNorm(sin)sin;sin,sout=[C,1,1]{s_{out}=\cfrac{{\sqrt{C}}}{Norm(s_{in})}}s_{in}; s_{in},s_{out}=[C,1,1]sout​=Norm(sin​)C​​sin​;sin​,sout​=[C,1,1]

乘以可训练权重γ\gammaγ和偏置β\betaβ,输出结果用s′s^{'}s′表示s=1+tanh(s′)s=1+tanh(s^{'})s=1+tanh(s′)

GCT block的参数比SE block少,而且由于它很轻量,可以添加到CNN的每个卷积层之后。

2.2.5 ECANet

创新点:论文动机出发点说了一大堆,具体表现就是,用一维卷积替换了SENet中的全连接层

全局平均池化(GAP)一维卷积(Conv1D)后接激活函数Sigmoid(σ)将得到的结果和原特征图相乘,为每一个通道给不同的权重

注:文中对卷积核大小有自适应算法,即根据通道的长度,调整卷积核k的大小。原论文给出超参数γ=2{\gamma=2}γ=2,b=1{b=1}b=1。∣∣odd{||_{odd}}∣∣odd​表示k只能取奇整数

2.2.6 FcaNet

动机:在squeeze模块中仅使用全局平均池化(GAP)限制了表达能力。为了获得更强大的表示能力,他们重新思考了从压缩角度捕获的全局信息,并分析了频域中的GAP。他们证明了全局平均池是离散余弦变换(DCT)的一个特例,并利用这一观察结果提出了一种新的多光谱注意通道(multi-spectral channel attention)。

将输入特征图x∈RC×H×W{x\in{R^{C\times{H}\times{W}}}}x∈RC×H×W分解(Group)为许多部分xi∈RCi×H×W{x^{i}\in{R^{C^{i}\times{H}\times{W}}}}xi∈RCi×H×W,每一段长度相等对每一段xi{x^i}xi应用2D 离散余弦变换(DCT, discrete cosine transform)。2D DCT可以使用预处理结果来减少计算在处理完每个部分后,所有结果都被连接到一个向量中后接全连接层(W1W_1W1​)->ReLU层(δ)->全连接层(W2W_2W2​)->Sigmoid(σ)将得到的结果和原特征图相乘,为每一个通道给不同的权重

注:2D DCT 看不懂。。。。。。

2.2.7 EncNet

动机:受SENet的启发,提出了上下文编码模块(CEM, context encoding module),该模块结合了语义编码损失(SE-loss, semantic encoding loss),以建模场景上下文和对象类别概率之间的关系,从而利用全局场景上下文信息进行语义分割。

给定一个输入特征映射,CEM首先在训练阶段学习K个聚类中心D,D={d1,...,dK}{D=\{d_1,...,d_K\}}D={d1​,...,dK​}和一组平滑因子S,S={s1,...,sK}{S=\{s_1,...,s_K\}}S={s1​,...,sK​}。接下来,它使用软分配权重对输入中的局部描述子和相应的聚类中心之间的差异进行求和,以获得置换不变描述子。然后,为了提高计算效率,它将聚合应用于K个簇中心的描述符,而不是级联。形式上,CEM可以写成如上公式。

2.2.8 通道注意力机制模型总结

3. 论文链接论文缩写论文名称 | 链接权重范围论文投稿SE BlockSqueeze-and-Excitation Networks(0,1)CVPR2018GSoP BlockGlobal Second-order Pooling Convolutional Networks(0,1)CVPR2019SRM BlockSRM : A Style-based Recalibration Module for Convolutional Neural Networks(0,1)ICCV2019GCT BlockGated Channel Transformation for Visual Recognition(0,1)CVPR2020ECA BlockECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks(0,1)CVPR2020Fca BlockFcaNet: Frequency Channel Attention Networks(0,1)ICCV2021Enc BlockContext Encoding for Semantic Segmentation(-1,1)CVPR2018
本文链接地址:https://www.jiuchutong.com/zhishi/298607.html 转载请保留说明!

上一篇:HTML+CSS+JS+Jquery+练手项目+...合集(前端学习必备,持续更新中...)

下一篇:JavaScript注册监听事件与清除监听事件(js怎么注册)

  • 小规模修理修配的税率是多少
  • 金税盘年费能全额抵扣吗
  • 咨询服务费的印花税率
  • 固定资产管理中存在的问题及对策论文
  • 超市费用能否税前扣减?
  • 人力资源公司为个人代缴社保
  • 资本公积可以退还给投资者吗
  • 税控盘的抵扣怎么填
  • 融资租赁直租会查征信吗
  • 社保打入其他公司代扣分录怎么做?
  • 开启网络共享后怎么使用
  • win7为什么那么好用
  • 公司财务账目不符怎么办
  • 大沙丘国家公园在哪里
  • PHP:oci_new_descriptor()的用法_Oracle函数
  • 购入需要安装的设备的会计分录
  • kb4586853更新
  • 一次性工伤医疗补偿金怎么算
  • PHP:token_get_all()的用法_Tokenizer函数
  • avgserv9.exe是什么进程 avgserv9进程的详细介绍
  • agsservice是什么进程
  • CodeIgniter扩展核心类实例详解
  • 向投资者分配现金股利 为什么会导致所有者权益减少?
  • 克扣拆迁款
  • 公司借款利息可以用对公户转账吗
  • uniapp动态修改pages.json
  • 企业新产品销售收入数据
  • 房地产开发企业分为几个等级
  • 关于B站bilibili名字的由来
  • auto.js 逆向
  • python大作业小游戏
  • shell中put命令
  • dpkg命令详解
  • 仓库发货打包以及建议年终总结
  • 帝国cms使用手册
  • 研发费用算期间费用吗
  • 公司电脑配件也要交税吗
  • 个体户税率征收
  • 企业没有研发费用怎么做账
  • phpcms怎么用
  • sql server应用
  • 主营业务成本可以设明细科目吗
  • 经营成本包括五项内容
  • 代开发票相关问答有什么?
  • 记账凭证应具备的基本内容包括
  • 无形资产多摊销怎么处理
  • 小规模纳税人的认定标准是什么
  • 进项税额转出有什么好处
  • 绿植租赁怎么开票
  • 纯外贸企业进项税怎么抵扣
  • 交易性金融资产公允价值变动怎么算
  • 应收账款提坏账分录
  • 个人所得税财产转让所得税率
  • 投资性房地产公允价值模式转为成本模式
  • 小规模纳税人免税政策2023年
  • 累计扣税标准2021标准
  • 商贸公司会计成本核算方法
  • 公司购买电视属于什么费用
  • 微信开发中工具
  • 64位Win10系统安装Mysql5.7.11的方法(案例详解)
  • MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别
  • 分页存储过程的实现
  • 微信昵称带符号图案
  • win8打开桌面
  • centos中如何查看ip地址
  • win8打开ie
  • 如何关闭win8.1自动更新
  • js动态表格可修改表格数据
  • h5 nodejs
  • Android 获取网络时间
  • 关于jquery的用途
  • javascript查看数据类型
  • python3.8.3怎么用
  • js下拉框怎么设置
  • 随申办如何缴纳社保
  • 为何新能源汽车在东北推广不佳
  • 遵从和尊重
  • 福建电子税务局登录入口
  • 日本各界
  • 金三申报系统里面怎么申报社保?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设