人类可以在复杂的场景中自然有效地找到显著区域。在这种观察的激励下,注意机制被引入到计算机视觉中,目的是模仿人类视觉系统的这一方面。这种注意机制可以看作是一个基于输入图像特征的动态权值调整过程。注意机制在许多视觉任务中取得了巨大的成功,包括图像分类、目标检测、语义分割、视频理解、图像生成、3D视觉、多模态任务和自监督学习。
本文综述了计算机视觉中的各种注意机制,并对其进行了分类,如通道注意、空间注意、时间注意和分支注意;相关的存储库 MenghaoGuo/Awesome-Vision-Attentions: Summary of related papers on visual attention. Related code will be released based on Jittor gradually. (github.com) 专门用于收集相关的工作。最后提出了今后注意机制研究的方向。
清华大学计图团队和南开大学程明明教授团队、卡迪夫大学Ralph R. Martin教授合作,如今注意力机制已经成功的运用在了许多的视觉任务当中,包括图像分类、目标检测、语义分割、视频理解、图像生成、3D视觉、多模态任务、自监督学习等。在这篇综述中,对计算机视觉中许多不同的注意力机制进行了总结,像通道注意力、空间注意力、时间注意力和分支注意力及他们的组合。
论文地址:[2111.07624] Attention Mechanisms in Computer Vision: A Survey (arxiv.org);Attention mechanisms in computer vision: A survey | SpringerLink
将注意力转移到图像中最重要的区域而忽略无关部分的方法称为注意力机制;人类的视觉系统利用其中的一个[A model of saliency-based visual attention for rapid scene analysis],[Eye movements in natural behavior],[The dynamic representation of scenes],[Control of goal-directed and stimulus-driven attention in the brain]来辅助高效、有效地分析和理解复杂场景。
这反过来又激发了研究人员将注意力机制引入计算机视觉系统以提高其性能。在视觉系统中,注意机制可以看作是一个动态选择过程,它是根据输入的重要性自适应地对特征进行加权来实现的。注意机制在许多视觉任务中都发挥了作用,例如图像分类[SENet]、[CBAM]、目标检测[Deformable convolutional networks]、[Detr]、语义分割人脸识别、人物再识别、动作识别、少样本学习、医学图像处理、图像生成、姿态估计、超分辨率、3D视觉和多模态任务。
在过去的十年中,注意机制在计算机视觉中发挥着越来越重要的作用;下图简要总结了深度学习时代计算机视觉中基于注意力的模型的发展历史。
进展可以大致分为四个阶段。第一阶段从RAM开始,这是将深度神经网络与注意机制相结合的开创性工作。它通过策略梯度循环预测重要区域,并以端到端的方式更新整个网络。后来,各种作品也采用了类似的视觉关注策略。在这一阶段,循环神经网络(RNNs)是注意机制的必要工具。
在第二阶段开始时,Jaderberg等提出了STN,该STN引入了一个子网络来预测用于选择输入中重要区域的仿射变换。明确预discriminatory输入特征是第二阶段的主要特征;DCNs为代表作品。
第三阶段始于SENet,他提出了一种新的通道注意力网络,该网络可以隐式自适应地预测潜在的关键特征。CBAM和ECANet是这一阶段的代表作品。
最后一个阶段是自我关注时代。自注意最早于[Transformer]提出,并迅速在自然语言处理领域取得了巨大进展。Wang等率先将自注意引入计算机视觉,提出了一种新的非局部网络,在视频理解和目标检测方面取得了巨大成功。紧随其后的是EMANet、CCNet、HamNet和Stand-Alone网络等一系列工作,提高了速度、结果质量和泛化能力。
近年来,各种纯深度自注意网络(视觉变形)相继出现,显示出基于注意的模型的巨大潜力。很明显,基于注意力的模型有可能取代卷积神经网络,成为计算机视觉中更强大、更通用的架构。
本文的目的是对当前计算机视觉中的注意方法进行总结和分类。本文的方法如下图所示,
并在下图中进一步解释:它是基于数据域的。一些方法考虑重要数据何时发生,或其他方法考虑重要数据在何处发生等问题,并相应地尝试在数据中找到关键时间或关键位置。
本文将现有的注意方法分为六类,其中包括四个基本类别:通道注意(注意什么)、空间注意(注意哪里)、时间注意(注意什么时候)和分支通道(注意什么),以及两个混合组合类别:通道与空间注意和空间与时间注意。这些思想与相关工作在下表中进一步简要总结。
本文的主要贡献有:
系统回顾了视觉注意方法,包括注意机制的统一描述、视觉注意机制的发展以及目前的研究现状。
根据他们的数据域对注意力方法进行分类,将视觉注意力方法独立于他们的特定应用联系起来。并对未来视觉注意研究的建议。
本文的关键符号。说明了其他次要符号的使用情况。
当本文在日常生活中看到一个场景时,本文会把注意力集中在有区别的区域,并快速处理这些区域。上述过程可表述为:
A t t e n t i o n ( x ) = f ( g ( x ) , x ) , ( 1 ) Attention(x)=f(g(x),x),(1) Attention(x)=f(g(x),x),(1)
这里g(x)可以表示产生注意,这对应于注意到鉴别区域的过程。F (g(x), x)表示根据注意g(x)处理输入x,这与处理关键区域和获取信息是一致的。
根据上述定义,本文发现几乎所有现有的注意机制都可以写入上述公式。这里我们以自我注意和(squeeze-and-excitation, SE)注意为例。自注意,g(x)和f(g(x), x)可以写成、
Q , K , V = L i n e a r ( x ) , ( 2 ) g ( x ) = S o f t m a x ( Q K ) , ( 3 ) f ( g ( x ) , x ) = g ( x ) V , ( 4 ) Q,K,V=Linear(x),(2)\\ g(x)=Softmax(QK),(3)\\ f(g(x),x)=g(x)V,(4) Q,K,V=Linear(x),(2)g(x)=Softmax(QK),(3)f(g(x),x)=g(x)V,(4)
对于SE, g(x)和f(g(x), x)可以写成
在深度神经网络中,不同特征映射中的不同通道通常代表不同的对象。通道关注自适应地重新校准每个通道的权重,可以看作是一个对象选择过程,从而确定要关注什么。Hu等首先提出了信道注意的概念,并为此提出了SENet。如下图所示,本文将很快讨论,三种工作流继续以不同的方式改善频道注意力。
在本节中,首先总结了具有代表性的通道注意力工作。然后分别讨论了各种渠道关注方法及其发展历程。
SENet开创了频道注意力。SENet的核心是一个压缩和激励(SE)块,用于收集全局信息,捕获通道相关关系并提高表示能力。
SE模块分为两个部分,挤压模块和激励模块。挤压模块通过全局平均池化收集全局空间信息。激励模块通过使用全连接层和非线性层(ReLU和sigmoid)捕获通道之间的关系并输出注意力向量。然后,通过在注意向量中乘以相应的元素来缩放输入特征的每个通道。综上,以X为输入,Y为输出的挤压激励块Fse(参数为θ)可表示为:
s = F s e ( X , θ ) = δ ( W 2 δ ( W 1 G A P ( X ) ) ) , ( 8 ) Y = s X , ( 9 ) s=F_{se}(X,\theta)=\delta(W_2\delta(W_1GAP(X))),(8)\\ Y=sX,(9) s=Fse(X,θ)=δ(W2δ(W1GAP(X))),(8)Y=sX,(9)
SE块在抑制噪声的同时起到强调重要信道的作用。由于SE块对计算资源的要求较低,因此可以在每个残差单元之后添加SE块。然而,SE块也有缺点。在squeeze模块中,全局平均池太简单,无法捕获复杂的全局信息。在激励模块中,全连接层增加了模型的复杂性。如上图所示,后来的研究试图改善挤压模块的输出(如gsp - net),通过改进激励模块(如ECANet)来降低模型的复杂性,或者同时改进挤压模块和激励模块(如SRM)。
SE块仅通过使用全局平均池(即一阶统计数据)来捕获全局信息,这限制了它的建模能力,特别是捕获高阶统计数据的能力。为了解决这个问题,Gao等人提出在收集全局信息的同时,通过使用全局二阶池(GSoP)块来建模高阶统计数据,从而改进挤压模块。
像SE模块一样,GSoP模块也有一个挤压模块和一个激励模块。在挤压模块中,GSoP块首先使用1x1卷积将通道数从c减少到 c ′ ( c ′ < c ) c'(c' < c) c′(c′<c),然后计算不同通道的 c ′ × c ′ c' × c' c′×c′ 协方差矩阵以获得它们的相关性。接下来,对协方差矩阵执行逐行归一化。归一化协方差矩阵中的每个(i, j)明确地将通道 i 与通道 j 联系起来。
在激励模块中,GSoP块执行逐行卷积以保持结构信息并输出向量。然后应用全连通层和sigmoid函数得到c维注意力向量。最后,它将输入特征乘以注意力向量,就像在SE块中一样。一个GSoP块可表述为:
s = F g s o p ( X , θ ) = δ ( W R C ( C o v ( C o n v ( X ) ) ) ) , ( 10 ) Y = s X , ( 11 ) s=F_{gsop}(X,\theta)=\delta(WRC(Cov(Conv(X)))),(10)\\ Y=sX,(11) s=Fgsop(X,θ)=δ(WRC(Cov(Conv(X)))),(10)Y=sX,(11)
这里,Conv(·)减少了通道的数量,Cov(·)计算协方差矩阵,RC(·)表示逐行卷积。
通过使用二阶池,GSoP块提高了在SE块上收集全局信息的能力。然而,这是以额外的计算为代价的。因此,通常在几个残差块之后添加单个GSoP块。
在风格迁移成功的激励下,Lee等人提出了轻量级的基于风格的再校准模块(SRM)。SRM结合了风格转移和注意机制。它的主要贡献是风格池,它利用输入特征的均值和标准差来提高其捕获全局信息的能力。它还采用轻量级的通道全连接(CFC)层来代替原始的全连接层,以减少计算需求。
给定一个输入特征映射 X ∈ R C × H × W X∈\R^{C×H×W} X∈RC×H×W , SRM首先使用结合了全局平均池化和全局标准差池化的风格池化(SP(·))来收集全局信息。然后使用通道完全连接(CFC(·))层(即每个通道完全连接),批归一化BN和sigmoid函数σ来提供注意力向量。最后,与SE块一样,输入特征乘以注意力向量。总体而言,SRM可以写成:
s = F s r m ( X , θ ) = δ ( B N ( C F C ( S P ( X ) ) ) ) , ( 12 ) Y = s X , ( 13 ) s=F_{srm}(X,\theta)=\delta(BN(CFC(SP(X)))),(12)\\ Y=sX,(13) s=Fsrm(X,θ)=δ(BN(CFC(SP(X)))),(12)Y=sX,(13)
SRM块改进了挤压和激励模块,但可以像SE块一样添加到每个残差单元之后。
由于 excitation 模块中全连接层的计算量和参数数量,在每个卷积层之后使用SE块是不切实际的。此外,使用完全连接的层来建模通道关系是一个隐含的过程。为了克服上述问题,Yang等人提出了门控通道变换(GCT),在显式建模通道相关关系的同时有效地收集信息。
与以前的方法不同,GCT首先通过计算每个通道的 l 2 l_2 l2 范数来收集全局信息。接下来,应用一个可学习向量α来缩放特征。然后采用一种竞争机制,通过信道归一化实现信道间的交互。与其他常见的归一化方法一样,使用可学习的尺度参数γ和偏置β来重新缩放归一化。然而,与以往的方法不同,GCT采用tanh激活来控制注意力向量。最后,它不仅增加了注意力向量的输入,还增加了恒等连接。GCT可以写成:
s = F G C T ( X , θ ) = t a n h ( γ C N ( α N o r m ( X ) ) + β ) , ( 14 ) Y = s X + X , ( 15 ) s=F_{GCT}(X,\theta)=tanh(\gamma CN(\alpha Norm(X))+\beta),(14)\\ Y=sX+X,(15) s=FGCT(X,θ)=tanh(γCN(αNorm(X))+β),(14)Y=sX+X,(15)
其中α, β, γ为可训练参数。Norm(·)表示各通道l2范数。CN是信道归一化。GCT块比SE块具有更少的参数,并且由于它是轻量级的,可以在CNN的每个卷积层之后添加。
为了避免较高的模型复杂性,SENet减少了通道的数量。然而,这种策略不能直接建立权重向量和输入之间的对应关系,从而降低了结果的质量。为了克服这一缺点,Wang等人提出了高效通道注意(ECA)块,该块使用一维卷积来确定通道之间的相互作用,而不是降维。
ECA模块具有与SE模块相似的配方,包括用于聚合全局空间信息的挤压模块和用于跨通道交互建模的有效激励模块。ECA块只考虑每个通道与其k近邻之间的直接交互,而不是间接对应,以控制模型的复杂性。总的来说,the formulation of an ECA block is:
s = F e c a ( X , θ ) = δ ( C o n v 1 D ( G A P ( X ) ) ) , ( 16 ) Y = s X , ( 17 ) s=F_{eca}(X,\theta)=\delta(Conv1D(GAP(X))),(16)\\ Y=sX,(17) s=Feca(X,θ)=δ(Conv1D(GAP(X))),(16)Y=sX,(17)
其中,Conv1D(·) 表示形状为k的核在通道域中的一维卷积,用于模拟局部跨通道相互作用。参数k决定交互的覆盖范围,在ECA中,内核大小k是通过通道维数C自适应确定的,而不是通过手动调优,使用交叉验证:
k = Ψ ( C ) = ∣ l o g 2 ( C ) γ + b γ ∣ o d d , ( 18 ) k=\varPsi(C)=|\frac{log_2(C)}{\gamma}+\frac{b}{\gamma}|_{odd},(18) k=Ψ(C)=∣γlog2(C)+γb∣odd,(18)
其中γ和b是超参数。|x|odd表示x最接近的奇函数。
与SENet相比,ECANet具有改进的激励模块,并提供了一个高效的有效块,可以很容易地集成到各种cnn中。
仅在squeeze模块中使用全局平均池限制了表示能力。为了获得更强大的表示能力,Qin等从压缩的角度对捕获的全局信息进行了重新思考,并在频域上分析了全局平均池化。他们证明了全局平均池化是离散余弦变换(DCT)的一种特殊情况,并利用这一观察结果提出了一种新的多光谱通道关注。
给定一个输入特征映射 X ∈ R C × H × W X∈\R^{C×H×W} X∈RC×H×W ,多光谱通道关注首先将X分成多个部分 x i ∈ R C ′ × H × W x^i∈\R^{C'×H×W} xi∈RC′×H×W 。然后对每个部分xi应用二维DCT。请注意,二维DCT可以使用预处理结果来减少计算。处理完每个部分后,所有的结果被连接成一个向量。最后,使用完全连接的层,ReLU激活和s形来获得SE块中的注意力向量。这可以表示为:
s = F f c a ( X , θ ) = = δ ( W 2 δ ( W 1 [ ( D C T ( G r o u p ( X ) ) ) ] ) ) , ( 19 ) Y = s X , ( 20 ) s=F_{fca}(X,\theta)==\delta(W_2\delta(W_1[(DCT(Group(X)))])),(19)\\ Y=sX,(20) s=Ffca(X,θ)==δ(W2δ(W1[(DCT(Group(X)))])),(19)Y=sX,(20)
其中Group(·)表示将输入分成多组,DCT(·)表示二维离散余弦变换。这项基于信息压缩和离散余弦变换的工作在分类任务上取得了很好的效果。
受SENet的启发,Zhang等提出了包含语义编码损失(SE-loss)的上下文编码模块(CEM),对场景上下文与对象类别概率之间的关系进行建模,从而利用全局场景上下文信息进行语义分割。给定一个输入特征映射 X ∈ R C × H × W X∈\R^{C×H×W} X∈RC×H×W , CEM首先学习K个聚类中心 D = { d 1 , … , d K } D = \{d_1,…, d_K\} D={d1,…,dK} 和一组平滑因子 S = { s 1 , … , s K } S = \{s_1,…, s_K\} S={s1,…,sK} 在训练阶段。接下来,它使用软分配权重将输入中的局部描述符与相应的聚类中心之间的差异相加,以获得排列不变描述符。然后,为了提高计算效率,它对K个簇中心的描述符应用聚合而不是串联。在形式上,CEM可以写成:
e k = ∑ i = 1 N e − s k ∥ X − i − d k ∥ 2 ( X i − d k ) ∑ j = 1 K e − s j ∥ X i − d j ∥ 2 , ( 21 ) e = ∑ k = 1 K Φ ( e k ) , ( 22 ) s = δ ( W e ) , ( 23 ) Y = s X , ( 24 ) e_k=\frac{\sum^N_{i=1}e^{-s_k\|X-i-d_k\|^2}(X_i-d_k)}{\sum^K_{j=1}e^{-s_j\|X_i-d_j\|^2}},(21)\\ e=\sum^K_{k=1}\Phi(e_k),(22)\\ s=\delta(W_e),(23)\\ Y=sX,(24) ek=∑j=1Ke−sj∥Xi−dj∥2∑i=1Ne−sk∥X−i−dk∥2(Xi−dk),(21)e=k=1∑KΦ(ek),(22)s=δ(We),(23)Y=sX,(24)
其中 d k ∈ R C , s k ∈ R d_k∈\R^C, s_k∈\R dk∈RC,sk∈R 为可学习参数。 Φ \Phi Φ 表示ReLU激活的批归一化。除了通道方向的缩放向量,紧凑的上下文描述符e也被应用于计算SE-loss来正则化训练,从而改善了小对象的分割。
CEM不仅增强了类相关的特征映射,而且还通过结合SE-loss迫使网络平等地考虑大对象和小对象。由于其轻量级架构,CEM可以应用于各种主干网,而计算开销很低。
继GSoP-Net之后,Fang等人声称以前的注意力模型只使用一阶信息,而忽略了高阶统计信息。因此,他们提出了一种新的双线性注意块(bi-attention)来捕捉每个通道内的局部两两特征相互作用,同时保留空间信息。
双注意采用注意中的注意(AiA)机制来捕获二阶统计信息:外部点方向的通道注意向量是从内部通道注意的输出中计算出来的。正式给定输入特征映射X,双注意首先使用双线性池来捕获二阶信息。
x ˉ = B i ( Φ ( X ) ) = V e c ( U T r i ( Φ ( X ) Φ ( X ) T ) ) , ( 25 ) \bar{x}=Bi(\Phi(X))=Vec(UTri(\Phi(X)\Phi(X)^T)),(25) xˉ=Bi(Φ(X))=Vec(UTri(Φ(X)Φ(X)T)),(25)
其中 Φ \Phi Φ 表示用于降维的嵌入函数, Φ ( X ) \Phi(X) Φ(X) 是 Φ ( X ) \Phi(X) Φ(X) 在通道域上的转置,Utri(·)提取矩阵的上三角元素,vec(·)是矢量化。双注意将内通道注意机制应用于特征映射 x ˉ ∈ R c ′ ( c ′ + 1 ) 2 ∗ H ∗ W \bar{x}\in\R^{\frac{c'(c'+1)}{2}*H*W} xˉ∈R2c′(c′+1)∗H∗W:
x ^ = w ( G A P ( x ˉ ) ) Φ ( x ˉ ) , ( 26 ) \hat{x}=w(GAP(\bar{x}))\Phi(\bar{x}),(26) x^=w(GAP(xˉ))Φ(xˉ),(26)
这里ω和φ是嵌入函数。最后利用输出的特征映射 x ^ \hat{x} x^ 计算外部逐点注意机制的空间通道注意权值:
s = δ ( x ^ ) , ( 27 ) Y = s X , ( 28 ) s=\delta(\hat{x}),(27)\\ Y=sX,(28) s=δ(x^),(27)Y=sX,(28)
双注意块在保留空间信息的同时,利用双线性池化对每个通道上的局部两两特征交互进行建模。与其他基于注意力的模型相比,该模型更加关注高阶统计信息。双注意力可以被纳入任何CNN主干,以提高其代表性,同时抑制噪声。
空间注意可以看作是一种适应性的空间区域选择机制:注意到哪里。如下图所示,RAM、STN、GENet和Non-Local是不同类型空间注意方法的代表。RAM表示基于rnn的方法。STN表示那些使用子网明确预测相关区域的网络。GENet表示那些使用子网隐式地预测软掩码以选择重要区域的子网。Non-Local代表与自我关注相关的方法。在本节中,首先总结具有代表性的空间注意机制。
按类别和日期排序的代表性空间注意机制。应用领域包括:Cls =分类,FGCls =细粒度分类,Det =检测,SSeg =语义分割,ISeg =实例分割,ST =风格转移,Action =动作识别,ICap =图像字幕,其中g(x)和f(g(x), x)为Eq. 1描述的注意过程。范围是指注意范围图。S或H表示软注意或硬注意。(A)根据预测选择区域。(B)基于元素的产品,©通过注意力图聚合信息。(1)将网络集中在判别区域,(2)避免对大输入图像的过度计算,(3)提供更多的变换不变性,(4)捕获远程依赖关系,(5)对输入特征映射进行降噪(6)自适应聚合邻域信息,(7)减少归纳偏差。
卷积神经网络具有巨大的计算成本,特别是对于大输入。为了将有限的计算资源集中在重要的区域上,Mnih等提出了循环注意模型(recurrent attention model, RAM),该模型采用rnn和强化学习(reinforcement learning, RL),使网络学习注意的位置。RAM率先使用rnn进行视觉注意,随后出现了许多其他基于rnn的方法[Draw: A recurrent neural network for image generation],[Show, attend and tell: Neural image caption generation with visual attention],[Multiple object recognition with visual attention]。
如下图所示,RAM有三个关键元素:(A) a glimpse sensor,(B)a glimpse network和© RNN模型。glimpse sensor取坐标 l t − 1 l_{t−1} lt−1 和图像 X t X_t Xt。它输出以 l t − 1 l_{t−1} lt−1 为中心的多个分辨率补丁 ρ ( X t , l t − 1 ) ρ(X_t, l_{t−1}) ρ(Xt,lt−1) 。glimpse network f g ( θ ( g ) ) f_g(θ(g)) fg(θ(g))包括一个glimpse sensor,并为输入坐标 l t − 1 l_{t−1} lt−1 和图像 X t X_t Xt 输出特征表示 g t g_t gt。RNN模型考虑 g t g_t gt 和内部状态 h t − 1 h_{t−1} ht−1 ,输出下一个中心坐标 l t l_t lt 和动作 a t a_t at,例如图像分类任务中的softmax结果。由于整个过程不可微,它在更新过程中应用了强化学习策略。
这提供了一种简单而有效的方法将网络集中在关键区域,从而减少了网络的计算次数,特别是对于大输入,同时提高了图像分类结果。
受人类如何按顺序进行视觉识别的启发,Ba等人提出了一种深度循环网络,类似于RAM,能够处理输入图像的多分辨率剪切,称为 Glimpse,用于多目标识别任务。提出的网络使用Glimpse作为输入来更新其隐藏状态,然后在每一步预测一个新对象以及下一个Glimpse的位置。Glimpse通常比整个图像小得多,这使得网络的计算效率很高。
提出的深度循环视觉注意模型由context network, glimpse network, recurrent network, emission network, and classification network组成。首先,上下文网络将下采样的整个图像作为输入,为循环网络提供初始状态以及第一次glimpse的位置。然后,在当前时间步长t处,给定当前瞥见xt及其位置元组lt,glimpse网络的目标是提取有用信息,表示为
g t = f i m a g e ( X ) ⋅ f l o c ( l t ) , ( 29 ) g_t=f_{image}(X)·f_{loc}(l_t),(29) gt=fimage(X)⋅floc(lt),(29)
其中 f i m a g e ( X ) f_{image}(X) fimage(X) 和 f l o c ( l t ) f_{loc}(l_t) floc(lt)是输出向量具有相同维数的非线性函数,· 表示元素积,用于融合来自两个分支的信息。然后,由两个堆叠的循环层组成的循环网络将从每个单独的瞥见收集到的信息聚合在一起。循环层的输出是:
r t ( 1 ) = f r e c ( 1 ) ( g t , r t − 1 ( 1 ) ) , ( 30 ) r t ( 2 ) = f r e c ( 2 ) ( r t ( 1 ) , r t − 1 ( 2 ) ) , ( 31 ) r_t^{(1)}=f_{rec}^{(1)}(g_t,r_{t-1}^{(1)}),(30)\\ r_t^{(2)}=f_{rec}^{(2)}(r_t^{(1)},r_{t-1}^{(2)}),(31) rt(1)=frec(1)(gt,rt−1(1)),(30)rt(2)=frec(2)(rt(1),rt−1(2)),(31)
给定循环网络的当前隐藏状态 r t ( 2 ) r^{(2)} _t rt(2), emission network预测the next glimpse的位置。正式地,它可以写成
l t + 1 = f e m i s ( r t ( 2 ) ) , ( 32 ) l_{t+1}=f_{emis(r_t^{(2)})},(32)\\ lt+1=femis(rt(2)),(32)
最后,分类网络根据循环网络的隐藏状态 r t ( 1 ) r^{(1)}_ t rt(1) ,输出对类标号 y 的预测
y = f c l s ( r t ( 1 ) ) , ( 33 ) y=f_{cls}(r_t^{(1)}),(33) y=fcls(rt(1)),(33)
与在整个图像上运行的CNN相比,该模型的计算成本要低得多,并且由于每一步只处理一个片段,因此可以自然地处理不同大小的图像。此外,通过循环注意机制提高了鲁棒性,也缓解了过拟合问题。该管道可以并入任何最先进的CNN骨干或RNN单元。
为了可视化图像标题生成模型应该关注的位置和内容,Xu等人引入了一个基于注意的模型以及两种不同的注意机制,硬注意和软注意。给定一组特征向量 a = { a 1 , … , a L } , a i ∈ R D a = \{a_1,…, a_L\}, a_i∈\R^D a={a1,…,aL},ai∈RD 从输入图像中提取,该模型旨在通过每个时间步生成一个单词来生成标题。因此,他们采用长短期记忆(LSTM)网络作为解码器;注意机制用于生成上下文向量 z t z_t zt,该向量以特征集a和之前的隐藏状态 h t − 1 h_{t−1} ht−1 为条件,其中t表示时间步长。形式上,特征向量 a i a_i ai 在第t个时间步长的权值 α t , i α_{t,i} αt,i 定义为
e t , i = f a t t ( a i , g t − 1 ) , ( 34 ) α t , i = e x p ( e t , i ∑ k = 1 L e x p ( e t , k ) , ( 35 ) e_{t,i}=f_{att}(a_i,g_{t-1}),(34)\\ \alpha_{t,i}=\frac{exp(e_{t,i}}{\sum_{k=1}^Lexp(e_{t,k})},(35) et,i=fatt(ai,gt−1),(34)αt,i=∑k=1Lexp(et,k)exp(et,i,(35)
其中 f a t t f_{att} fatt 是由一个多层感知器实现的,该感知器以之前的隐藏状态 h t − 1 h_{t−1} ht−1 为条件。正权重 α t , i α_{t,i} αt,i 可以被解释为位置i是正确的焦点位置的概率(硬注意),或者作为位置 i i i 对下一个单词的相对重要性(软注意)。为了获得上下文向量 z t z_t zt,硬注意机制分配了一个multinoulli分布,参数化为 α t , i {α_t,i} αt,i,并将 z t z_t zt 视为随机变量:
p ( s t , i = 1 ∣ α , h t − 1 ) = α t , i , ( 36 z t = ∑ i = 1 L s t , i α i , ( 37 ) p(s_{t,i}=1|\alpha,h_{t-1})=\alpha_{t,i},(36\\ z_t=\sum_{i=1}^Ls_{t,i}\alpha_i,(37) p(st,i=1∣α,ht−1)=αt,i,(36zt=i=1∑Lst,iαi,(37)
另一方面,软注意机制直接使用上下文向量zt的期望,
z t = ∑ i = 1 L α t , i α i , ( 38 ) z_t=\sum_{i=1}^L\alpha_{t,i}\alpha_i,(38) zt=i=1∑Lαt,iαi,(38)
注意机制的使用通过允许用户理解模型关注的内容和位置,提高了图像标题生成过程的可解释性。它还有助于提高网络的表示能力。
以往的MR分割方法通常对特定的感兴趣区域(ROI)进行操作,这需要过度浪费计算资源和模型参数。为了解决这一问题,Oktay等人提出了一种简单而有效的机制,即注意门(attention gate, AG),它专注于目标区域,同时抑制无关区域的特征激活。给定输入特征图X和粗尺度采集的门限信号 G ∈ R C ′ × H × W G∈\R^{C'×H×W} G∈RC′×H×W ,门限信号中包含上下文信息,注意门采用加性注意获得门限系数。首先将输入X和门控信号线性映射到 R F × H × W \R^{F ×H×W} RF×H×W 维度空间,然后将输出在通道域中进行压缩,得到一个空间注意力权重图 S ∈ R 1 × H × W S∈\R^{1×H×W} S∈R1×H×W。
注意门将模型的注意力引导到重要区域,同时抑制不相关区域的特征激活。由于其轻量化设计,在不显著增加计算成本或模型参数数量的情况下,大大增强了模型的表示能力。它具有通用性和模块化,使其易于在各种CNN模型中使用。
平移等方差的特性使cnn适合处理图像数据。然而,cnn缺乏其他的变换不变性,如旋转不变性、缩放不变性和翘曲不变性。为了实现这些属性,同时使cnn关注重要区域,Jaderberg等提出了空间transformer网络(STN),该网络使用明确的过程来学习平移、缩放、旋转和其他更普遍的扭曲的不变性,使网络关注最相关的区域。STN是第一个明确预测重要区域并提供具有变换不变性的深度神经网络的注意机制。随后的各种作品[Deformable convolutional networks]、[Deformable convnets v2: More deformable, better results]取得了更大的成功。
以二维图像为例,二维仿射变换可表示为:
自注意在自然语言处理(NLP)领域被提出并取得了巨大成功。最近,它也显示出成为计算机视觉的主导工具的潜力。通常,自我注意被用作一种空间注意机制来获取全局信息。本文现在总结了自注意机制及其在计算机视觉中的常见变体。
由于卷积运算的局域化,cnn具有固有的窄接受域,这限制了cnn在全局上理解场景的能力。为了增加感受野,Wang等人将自我注意引入计算机视觉。以二维图像为例,给定特征映射 F ∈ R C × H × W F∈\R^{C×H×W} F∈RC×H×W,自关注首先通过线性投影和重塑运算计算查询、键和值 Q , K , V ∈ R C ′ × N , N = H × W Q, K, V∈\R^{C'×N}, N = H×W Q,K,V∈RC′×N,N=H×W。那么自我关注可以表述为:
A = ( a ) i , j = s o f t m a x ( Q K T ) , ( 46 ) Y = A V , ( 47 ) A=(a)_{i,j}=softmax(QK^T),(46)\\ Y=AV,(47) A=(a)i,j=softmax(QKT),(46)Y=AV,(47)
式中, A ∈ R N × N A∈\R^{N×N} A∈RN×N为注意矩阵, α i , j α_{i,j} αi,j 为第i个元素与第j个元素之间的关系。整个过程如下图(左)所示。自我注意是建模全局信息的强大工具,在许多视觉任务中都很有用。
视觉transformer。左:体系结构。视觉transformer首先将图像分割成不同的小块,并将它们投影到特征空间中,在特征空间中,transformer编码器对它们进行处理以产生最终结果。右图:带有多头注意力核心的基本视觉transformer块。
然而,自注意机制存在一些缺点,特别是其二次复杂度,限制了其适用性。已经引入了几种变体来缓解这些问题。解纠缠非局部方法[Disentangled non-local neural networks]提高了自注意的准确性和有效性,但大多数变体都侧重于降低其计算复杂度。
CCNet将自注意操作视为一个图卷积,用几个稀疏连接图代替自注意处理的密集连接图。为此,该算法提出了一种循环考虑行注意和列注意的交叉注意方法,以获取全局信息。CCNet将自注意的复杂性从 0 ( n 2 ) 0 (n^2) 0(n2) 降低到 O ( N √ N ) O(N√N) O(N√N)。
EMANet从期望最大化(EM)的角度来看待自我注意。提出了EM关注,采用EM算法得到一组紧凑的基,而不是使用所有的点作为重建基。这将复杂度从 O ( n 2 ) O(n^2) O(n2) 降低到 O ( N K ) O(N K) O(NK),其中K是紧化基的数量。
人工神经网络建议使用所有位置特征作为键和向量是冗余的,并采用空间金字塔池来获得几个具有代表性的键和值特征来代替,以减少计算量。
GCNet分析了自注意所使用的注意图,发现自注意所获得的全局上下文对于同一图像的不同查询位置是相似的。因此,该方法首先提出预测所有quert点共享的单个注意图,然后根据该注意图从输入特征的加权和中获得全局信息。这类似于平均池,但它是收集全局信息的更一般的过程。
A2Net受SENet的启发,将注意力分为特征收集过程和特征分配过程,使用两种不同的注意力。第一种方法通过二阶注意力池聚合全局信息,第二种方法通过软选择注意力分配全局描述符。
GloRe从图学习的角度来理解自我注意。它首先将N个输入特征收集到 M ≪ N M \ll N M≪N 个节点,然后学习节点间全局交互的邻接矩阵。最后,节点将全局信息分发给输入特征。在LatentGNN、MLP-Mixer和ResMLP中也可以找到类似的想法。
ocnet提出了对象-上下文表示的概念,它是同一类别中所有对象区域表示的加权聚合,例如所有汽车区域表示的加权平均值。它用这种对象上下文表示代替了键和向量,从而成功地提高了速度和效率。
解纠缠非局部方法的动机是[Non-local neural networks],[Gcnet]。Yin等深入分析了自我注意的机制,提出了将自我注意解耦为两两项和一元项的核心思想。两项侧重于关系建模,一元项侧重于显著边界。这种分解防止了两个术语之间不必要的交互,极大地改善了语义分割、目标检测和动作识别。
HamNet将捕获全局关系作为低秩补全问题建模,并设计了一系列使用矩阵分解捕获全局上下文的白盒方法。这不仅降低了复杂性,而且增加了自我关注的可解释性。
EANet提出,自我注意应该只考虑单个样本的相关性,而忽略不同样本之间的潜在关系。为了探索不同样本之间的相关性,减少计算量,它利用了一种可学习的、轻量级的、共享的键和值向量的外部关注。研究进一步表明,使用softmax对注意图进行归一化并不是最优的,双重归一化是一种更好的选择。
自关注除了作为cnn的一种补充方法外,还可以用来代替卷积运算来聚合邻域信息。卷积运算可以表示为输入特征X与卷积核W之间的点积:
Y i , j c = ∑ a , b ∈ { 1 , . . . , k − 1 } W a , b , c X a ^ , b ^ , ( 48 ) a ^ = i + a − [ k / 2 ] , b ^ = j + b − [ k / 2 ] , ( 49 ) Y^c_{i,j}=\sum_{a,b\in\{1,...,k-1\}}W_{a,b,c}X_{\hat{a},\hat{b}},(48)\\ \hat{a}=i+a-[k/2],\hat{b}=j+b-[k/2],(49) Yi,jc=a,b∈{1,...,k−1}∑Wa,b,cXa^,b^,(48)a^=i+a−[k/2],b^=j+b−[k/2],(49)
K表示内核大小,c表示通道。上述公式可以看作是通过卷积核使用加权和对邻域信息进行聚合的过程。聚合邻域信息的过程可以更一般地定义为:
Y i , j = ∑ a , b ∈ { 0 , . . , k − 1 } R e l ( i , j , a ^ , b ^ ) f ( X a ^ , b ^ ) Y_{i,j}=\sum_{a,b\in\{0,..,k-1\}}Rel(i,j,\hat{a},\hat{b})f(X_{\hat{a},\hat{b}}) Yi,j=a,b∈{0,..,k−1}∑Rel(i,j,a^,b^)f(Xa^,b^)
其中 R e l ( i , j , a ^ , b ^ ) Rel(i,j,\hat{a},\hat{b}) Rel(i,j,a^,b^) 为位置 ( i , j ) (i,j) (i,j) 与位置 ( a ^ , b ^ ) (\hat a, \hat b) (a^,b^) 之间的关系。根据这个定义,局部自我关注是一个特例。例如,SASA将其写为:
Y i , j = ∑ a , b ∈ N k ( i , j ) s o f t m a x a b ( q i j T k a b + q i j r a − i , b − j ) v a b , ( 51 ) Y_{i,j}=\sum_{a,b\in \N_k(i,j)}softmax_{ab}(q^T_{ij}k_{ab}+q_{ij}r_{a-i,b-j})v_{ab},(51) Yi,j=a,b∈Nk(i,j)∑softmaxab(qijTkab+qijra−i,b−j)vab,(51)
其中q, k和v是输入特征x的线性投影, r a − i , b − j r_{a - i,b - j} ra−i,b−j 是(i, j)和(a, b)的相对位置嵌入。
本文现在考虑几个使用局部自注意作为基本神经网络块的具体工作:
SASA认为使用自注意来收集全局信息计算量太大,可以采用局部自注意来代替CNN中的所有空间卷积。作者表明,这样做提高了速度,参数的数量和结果的质量。他们还探讨了位置嵌入的行为,并表明相对位置嵌入是合适的。他们的工作还研究了如何将局部自关注与卷积结合起来。
LR-Net与SASA同时出现。研究了如何利用局部自注意对局部关系进行建模。综合研究了位置嵌入、核大小、结构可组合性和对抗性攻击的影响。
SAN探索了两种利用注意力进行局部特征聚合的模式,即成对模式和补丁模式。提出了一种内容和频道自适应的注意力矢量,并从理论和实践两方面对其有效性进行了评价。除了在图像域提供显著改进外,它还被证明在3D点云处理中很有用。
transformer在自然语言处理方面取得了巨大的成功。在iGPT和DETR证明了基于transformer的模型在计算机视觉中的巨大潜力。受此启发,Dosovitskiy等提出了视觉transformer(vision transformer, ViT),这是第一个用于图像处理的纯transformer架构。它能够获得与现代卷积神经网络相当的结果。
如上文图所示,ViT的主要部分是多头注意(MHA)模块。MHA以序列作为输入。它首先将一个类标记与输入特征 F ∈ R N × C F∈\R^{N×C} F∈RN×C 连接起来,其中N是像素数。然后通过线性投影得到 Q , K ∈ R N × C ′ Q, K∈\R^{N×C'} Q,K∈RN×C′ 和 V ∈ R N × C V∈\R^{N×C} V∈RN×C 。接下来,将Q、K、V在信道域中划分为H个磁头,分别对其进行自关注。MHA方法如下图所示。ViT堆叠了许多具有完全连接层、层归一化和GELU激活函数的MHA层。
ViT表明,纯基于注意力的网络可以比卷积神经网络获得更好的结果,特别是对于JFT-300和ImageNet-21K等大型数据集。继ViT之后,又出现了PCT、IPT、T2T-ViT、DeepViT、SETR、PVT、CaiT、TNT、Swintransformer、Query2Label、MoCoV3、BEiT、SegFormer、FuseFormer[、MAE等基于transformer的架构,在图像分类、目标检测、语义分割、点云处理、动作识别、自监督学习等多种视觉任务上都取得了优异的成绩。
由于其他近期调查[Transformers in computational visual media: A survey]、[A survey on visual transformer]、[Transformers in vision: A survey ]、[Can attention enable mlps to catch up with cnns?]全面回顾了视觉任务中transformer方法的使用。
受SENet的启发,Hu等人设计了GENet,通过在空间域中提供重新校准功能来捕获远程空间上下文信息。GENet结合了零件收集和激励操作。在第一步中,它将输入特征聚集在大的邻域上,并对不同空间位置之间的关系进行建模。在第二步中,首先使用插值方法生成与输入特征图大小相同的注意图。然后通过乘以注意图中相应的元素来缩放输入特征图中的每个位置。这个过程可以描述为:
g = f g a t h e r ( X ) , ( 52 ) s = f e x c i t e ( g ) = θ ( I n t e r p ( g ) ) , ( 53 ) Y = s X , ( 54 ) g=f_{gather}(X),(52)\\ s=f_{excite}(g)=\theta(Interp(g)),(53)\\ Y=sX,(54) g=fgather(X),(52)s=fexcite(g)=θ(Interp(g)),(53)Y=sX,(54)
这里, f g a t h e r f_{gather} fgather 可以采用捕获空间相关性的任何形式,例如全局平均池化或深度卷积序列;Interp(·)表示插值.采集激发模块是轻量级的,可以像SE块一样插入到每个残差单元中。它强调重要的特征,同时抑制噪声。
受卷积神经网络成功捕获远程依赖关系的启发,Zhao等人提出了新的PSANet框架来聚合全局信息。将信息聚合建模为信息流,提出了一种双向信息传播机制,使信息在全局范围内流动。PSANet将信息聚合表述为:
z i = ∑ j ∈ Ω ( i ) F ( x i , x j , ∆ i j ) x j , ( 55 ) z_i=\sum_{j\in Ω(i)}F(x_i,x_j,∆_{ij})x_j,(55) zi=j∈Ω(i)∑F(xi,xj,∆ij)xj,(55)
式中, ∆ i j ∆_{ij} ∆ij 表示i与j的位置关系。 F ( x i , x j , ∆ i j ) F (x_i, x_j,∆_{ij}) F(xi,xj,∆ij) 是一个考虑 x i , x j , ∆ i j x_i, x_j,∆_{ij} xi,xj,∆ij 的函数,控制从j到i的信息流。 Ω i Ω_i Ωi 表示位置i的聚集邻域;如果希望获取全局信息, Ω i Ω_i Ωi 应该包括所有空间位置。
由于计算函数 F ( x i , x j , ∆ i j ) F (x_i, x_j,∆_{ij}) F(xi,xj,∆ij) 的复杂性,将其分解为近似:
F ( x i , x j , ∆ i j ) ≈ F ∆ i j ( x i ) + F ∆ i j ( x j ) , ( 56 ) F(x_i,x_j,∆_{ij})≈F_{∆_{ij}}(x_i) + F_{∆_{ij}}(x_j),(56) F(xi,xj,∆ij)≈F∆ij(xi)+F∆ij(xj),(56)
式55可化简为:
z i = ∑ j ∈ Ω ( i ) F ∆ i j ( x i ) x j + ∑ j ∈ Ω ( i ) F ∆ i j ( x j ) x j z_i=\sum_{j\in Ω_(i)}F_{∆_{ij}}(x_i)x_j+\sum_{j\in Ω_(i)}F_{∆_{ij}}(x_j)x_j zi=j∈Ω(i)∑F∆ij(xi)xj+j∈Ω(i)∑F∆ij(xj)xj
第一项可以看作是在位置i收集信息,第二项可以看作是在位置j分配信息。函数 F ∆ i j ( x i ) F_{∆ij} (x_i) F∆ij(xi) 和 F ∆ i j ( x j ) F_{∆ij} (x_j) F∆ij(xj) 可以看作是自适应注意权值。
上述过程在强调相关特征的同时聚合全局信息。它可以添加到卷积神经网络的末端,作为一个有效的补充,大大提高语义分割。
时间注意可以看作是一种动态的时间选择机制,它决定了什么时候需要注意,因此通常用于视频处理。以前的作品经常强调如何捕捉短期和长期的跨帧特征依赖关系。在这里,首先总结具有代表性的时间注意机制,并具体说明下表中所描述的过程g(x)和f(g(x), x)。
RNN和时间池或权重学习已广泛用于视频表示学习,以捕获帧之间的交互,但这些方法在效率或时间关系建模方面存在局限性。为了克服这些问题,Li等人提出了一种全局局部时间表征(GLTR)来利用视频序列中的多尺度时间线索。GLTR由用于局部时间上下文学习的扩展时间金字塔(DTP)和用于捕获全局时间交互的时间自注意模块组成。DTP采用扩张率逐渐增加的扩张卷积来覆盖不同的时间范围,然后将不同的输出串接起来,聚合多尺度信息。给定输入帧特征 F = { f 1 , … , f T } , D T P F = \{f1,…,f_T\} ,DTP F={f1,…,fT},DTP可以写成:
其中 D C o n v ( r ) ( ⋅ ) DConv^{(r)}(·) DConv(r)(⋅) 为展开卷积,展开率为 r。自注意机制采用卷积层,然后进行批归一化和ReLU激活,根据输入特征映射 F ′ = { f 1 ′ , . . . , f T ′ } F'= \{f'_1,...,f'_T\} F′={f1′,...,fT′} 生成查询 Q ∈ R d × T Q∈\R^{d×T} Q∈Rd×T,键 K ∈ R d × T K∈\R^{d×T} K∈Rd×T,值 V ∈ R d × T V∈\R^{d×T} V∈Rd×T。可以写成
F o u t = g ( V S o f t m a x ( Q K T ) ) + F ′ , ( 60 ) F_{out}=g(VSoftmax(QK^T))+F',(60) Fout=g(VSoftmax(QKT))+F′,(60)
其中g表示由卷积实现的线性映射。
来自相邻帧的短期上下文信息有助于区分视觉上相似的区域,而长期上下文信息有助于克服遮挡和噪声。GLTR结合了两个模块的优点,增强了表示能力并抑制了噪声。它可以被纳入任何最先进的CNN骨干学习全局描述符为整个视频。然而,自注意机制具有二次的时间复杂度,限制了其应用。
为了高效灵活地捕捉复杂的时间关系,Liu等提出了一种时间自适应模块(TAM)。它采用自适应核代替自关注来捕获全局上下文信息,时间复杂度低于GLTR。TAM有两个分支机构,一个局部分支机构和一个全局分支机构。给定输入特征图 X ∈ R C × T × H × W X∈\R^{C×T ×H×W} X∈RC×T×H×W,首先对特征图应用全局空间平均池化GAP,以保证TAM具有较低的计算成本。然后,TAM的局部分支在时域上使用多个具有ReLU非线性的1D卷积来生成位置敏感的重要性图,以增强帧相关特征。局部分支可以写成
s = δ ( C o n v 1 D ( δ ( C o n v 1 D ( G A P ( X ) ) ) ) ) , ( 61 ) X 1 = s X , ( 62 ) s=\delta(Conv1D(\delta(Conv1D(GAP(X))))),(61)\\ X^1=sX,(62) s=δ(Conv1D(δ(Conv1D(GAP(X))))),(61)X1=sX,(62)
与局部分支不同,全局分支是位置不变的,并侧重于基于每个通道中的全局时间信息生成一个基于通道的自适应内核。对于第c个通道,内核可以写成:
Θ c = s o f t m a x ( F C 2 ( δ ( F C 1 ( G A P ( X ) c ) ) ) ) , ( 63 ) \Theta_c=softmax(FC_2(\delta(FC_1(GAP(X)_c)))),(63) Θc=softmax(FC2(δ(FC1(GAP(X)c)))),(63)
式中 Θ c ∈ R K Θ_c∈\R^K Θc∈RK, K为自适应核大小。最后,TAM将自适应内核 Θ 与 $X^1_{out} $ 进行卷积:
Y = Θ ⊗ X 1 , ( 64 ) Y=\Theta \otimes X^1,(64) Y=Θ⊗X1,(64)
在局部分支和全局分支的帮助下,TAM可以捕获视频中复杂的时间结构,以较低的计算成本增强每帧特征。由于其灵活性和轻量化设计,TAM可以添加到任何现有的二维cnn中。
分支注意可以看作是一种动态的分支选择机制:要注意哪个分支,与多分支结构一起使用。本文首先总结了具有代表性的分支注意机制,并指定了下表中所描述的过程g(x)和f(g(x), x),然后详细讨论了各种机制。
受长短期记忆网络的启发,Srivastava等人提出了采用自适应门通机制的Highway networks,使信息能够跨层流动,以解决训练非常深的网络的问题。假设一个普通神经网络由L层组成, H l ( X ) H_l(X) Hl(X) 表示第L层的非线性变换,则Highway networks可以表示为
Y l = H l ( X l ) T l ( X l ) + X l ( 1 − T l ( X l ) ) , ( 65 ) T l ( X ) = δ ( W l T X + b l ) , ( 66 ) Y_l=H_l(X_l)T_l(X_l)+X_l(1-T_l(X_l)),(65)\\ T_l(X)=\delta(W_l^TX+b_l),(66) Yl=Hl(Xl)Tl(Xl)+Xl(1−Tl(Xl)),(65)Tl(X)=δ(WlTX+bl),(66)
式中 T l ( X ) T_l(X) Tl(X) 表示调节第 l l l 层信息流的变换栅极。 X l X_l Xl 和 Y l Y_l Yl 是第l层的输入和输出。
门控机制和跳接结构使得用简单的梯度下降法直接训练非常深的Highway networks成为可能。与固定的跳过连接不同,门控机制适应输入,这有助于跨层路由信息。Highway networks可以并入任何CNN。
神经科学界的研究表明,视觉皮层神经元根据输入刺激适应性地调整其接受野(RFs)的大小。这启发了Li等人提出了一种称为选择性核(SK)卷积的自动选择操作。SK卷积使用三个操作来实现:分裂、融合和选择。在分割过程中,对特征映射应用不同核大小的变换,得到不同大小的RFs。然后通过元素求和将所有分支的信息融合在一起以计算门向量。这用于控制来自多个分支的信息流。最后,在门向量的引导下,对所有分支的特征图进行聚合,得到输出的特征图。这可以表示为:
SK卷积使网络能够根据输入自适应调整神经元的RF大小,以很小的计算成本显著改善了结果。SK卷积中的门机制用于融合来自多个分支的信息。由于其轻量级设计,SK卷积可以通过替换所有大的内核卷积来应用于任何CNN主干。ResNeSt也采用了这种关注机制,以更通用的方式改进CNN骨干网,在ResNet和ResNeXt上取得了优异的成绩。
cnn的一个基本假设是所有卷积核都是相同的。鉴于此,增强网络表示能力的典型方法是增加其深度或宽度,这将引入显著的额外计算成本。为了更有效地增加卷积神经网络的容量,Yang等提出了一种新的多分支算子CondConv。一个普通的卷积可以写成
Y = W ∗ X , ( 72 ) Y=W*X,(72) Y=W∗X,(72)
其中*表示卷积。所有样本的可学习参数W是相同的。CondConv自适应地组合了多个卷积核,可以写成:
Y = ( α 1 W 1 + . . . + α n W n ) ∗ X , ( 73 ) Y=(\alpha_1W_1+...+\alpha_nW_n)*X,(73) Y=(α1W1+...+αnWn)∗X,(73)
这里,α是一个可学习的权重向量,由
α = δ ( W r ( G A P ( X ) ) ) , ( 74 ) \alpha=\delta(W_r(GAP(X))),(74) α=δ(Wr(GAP(X))),(74)
这个过程相当于多个专家的集合,如下图所示:
CondConv充分利用了多分支结构的优点,采用了计算成本小的分支关注方法。提出了一种有效提高网络性能的新方法。
轻量级cnn极低的计算成本限制了网络的深度和宽度,进一步降低了它们的表示能力。为了解决上述问题,Chen等人提出了动态卷积(dynamic convolution),这是一种新颖的算子设计,与CondConv并行,它在增加计算成本的同时提高了表征能力,并且不会改变网络的宽度或深度。
动态卷积使用K个相同大小和输入/输出维度的并行卷积核,而不是每层一个核。与SE块一样,它采用挤压激励机制来生成不同卷积核的注意权值。然后通过加权求和动态聚合这些核,并应用于输入特征映射X:
与对特征映射进行卷积处理相比,压缩激励和加权求和的计算成本非常低。因此,动态卷积提供了一种有效的操作来提高表征能力,并且可以很容易地用作任何卷积的替代品。
通道&空间注意结合了渠道注意和空间注意的优点。它自适应地选择重要的对象和区域。残差注意网络开创了通道和空间注意领域,强调了空间和通道维度上信息特征的重要性。它采用由多个卷积组成的自底向上结构,生成三维(高度、宽度、通道)注意图。然而,它具有较高的计算成本和有限的接受域。
为了利用全局空间信息的后期作品通过引入全局平均池化以及解耦通道注意和空间通道注意来提高计算效率,从而增强特征的识别。其他研究应用自注意机制来探索通道和空间注意的两两交互作用。然而,进一步的研究采用空间通道注意机制来扩大感受野。
如Eq. 1所描述的代表性通道和空间注意机制以及具体过程g(x)和f(g(x), x)见下表。
受ResNet成功的启发,Wang等将注意机制与残差连接相结合,提出了非常深卷积残差注意网络(very deep convolutional residual attention network, RAN)。
在残差注意网络中堆叠的每个注意模块可以分为掩码分支和主干分支。主干分支处理特征,并且可以由任何最先进的结构实现,包括预激活残差单元和初始块。mask分支采用自底向上、自顶向下的结构学习相同大小的mask,对trunk分支的输出特征进行软加权。在两个1 × 1的卷积层之后,sigmoid层将输出归一化为[0,1]。总的来说,残差注意机制可以写成:
s = δ ( C o n v 2 1 ∗ 1 ( h u p ( h d o w n ( X ) ) ) ) , ( 78 ) X o u t = s f ( X ) + f ( X ) , ( 79 ) s=\delta(Conv_2^{1*1}(h_{up}(h_{down}(X)))),(78)\\ X_{out}=sf(X)+f(X),(79) s=δ(Conv21∗1(hup(hdown(X)))),(78)Xout=sf(X)+f(X),(79)
其中 h u p h_{up} hup 为自底向上结构,在残差单元之后多次使用max-pooling来增加接受域; h d o w n h_{down} hdown 为自顶向下结构,使用线性插值来保持输出大小与输入特征图相同。两部分之间还存在跳跃式连接,在公式中省略。f 表示主干分支,它可以是任何最先进的结构。
在每个注意力模块中,一个自底向上的前馈结构对空间依赖性和跨通道依赖性进行建模,从而导致一致的性能改进。残差注意可以以端到端训练的方式整合到任何深度网络结构中。然而,提出的自底向上的自顶向下的结构无法利用全局空间信息。此外,直接预测三维注意图的计算成本较高。
为了增强信息通道和重要区域,Woo等提出了卷积块注意模块(convolutional block attention module, CBAM),将通道注意和空间注意串联起来。该算法将通道注意图和空间注意图解耦以提高计算效率,并通过引入全局池化来利用空间全局信息。
CBAM有两个顺序子模块,信道和空间。给定一个输入特征图 X ∈ R C × H × W X∈\R^{C×H×W} X∈RC×H×W,它依次推断出一个1D通道关注向量 s c ∈ R C s_c∈\R^C sc∈RC 和一个2D空间关注图 s s ∈ R H × W s_s∈\R^{H×W} ss∈RH×W。通道关注子模块的表述类似于SE块,不同之处在于它采用了多种池化操作来聚合全局信息。具体来说,它有两个使用max-pool和avg-pool操作的并行分支:
其中Conv(·)表示卷积操作,而 G A P c GAP^c GAPc 和 G M P c GMP^c GMPc 是通道域中的全局池化操作。[]表示通道间的连接。整个注意力过程可以概括为
X ′ = M c ( X ) , ( 88 ) Y = M s ( X ′ ) , ( 89 ) X'=M_c(X),(88)\\ Y=M_s(X'),(89) X′=Mc(X),(88)Y=Ms(X′),(89)
CBAM将通道注意和空间注意依次结合起来,可以利用特征的空间关系和跨通道关系来告诉网络关注什么和关注哪里。更具体地说,它强调有用的通道和增强信息的局部区域。由于其轻量级设计,CBAM可以无缝集成到任何CNN架构中,而额外成本可以忽略不计。然而,通道和空间注意机制仍有改进的空间。例如,CBAM采用卷积来产生空间注意图,因此空间子模块可能会受到有限的接受域的影响。
与CBAM同时,Park等提出了瓶颈注意模块(BAM),旨在有效提高网络的表征能力。利用扩展卷积来扩大空间注意子模块的接受域,并根据ResNet的建议构建瓶颈结构以节省计算成本。
对于给定的输入特征图X, BAM推断出两个并行流中的通道注意力 s c ∈ R C s_c∈\R^C sc∈RC 和空间注意力 s s ∈ R H × W s_s∈\R^{H×W} ss∈RH×W ,然后将两个分支输出的大小调整为 R C × H × W \R^{C×H×W} RC×H×W 后将两个注意力图求和。通道注意分支像SE块一样,对特征映射应用全局平均池化来聚合全局信息,然后使用信道降维的MLP。为了有效地利用上下文信息,空间注意分支结合了瓶颈结构和扩张卷积。总的来说,BAM可以写成
BAM可以在空间和通道两个维度上强调或抑制特征,并提高表征能力。对通道和空间注意分支进行降维处理,使其能够与任何卷积神经网络集成,并且计算成本很小。然而,尽管扩张卷积有效地扩大了接受野,但它仍然无法捕获远程上下文信息以及编码跨域关系。
为了聚合全局空间信息,SE块对特征映射应用全局池化。然而,它忽略了在密集预测任务中很重要的逐像素空间信息。因此,Roy等提出了空间和通道SE块(scSE)。与BAM一样,使用空间SE块作为SE块的补充,提供空间注意力权重,以关注重要区域。
给定输入特征映射X,对特征映射分别应用空间SE和通道SE两个并行模块对空间信息和通道信息进行编码。通道SE模块为普通SE块,空间SE模块采用1 × 1卷积进行空间压缩。两个模块的输出是融合的。整个过程可以写成
提出的scSE块结合通道和空间注意来增强特征以及捕获逐像素的空间信息。分割任务因此受益匪浅。在f - cnn中集成一个scSE块,可以在很小的额外成本下实现语义分割的一致性改进。
在CBAM和BAM中,通道注意和空间注意是独立计算的,忽略了这两个领域之间的关系。在空间注意的激励下,Misra等提出了三重注意,这是一种轻量级但有效的注意机制,用于捕获跨域交互。
给定一个输入特征映射X,三重关注使用三个分支,每个分支的作用是捕获H, W和c中任意两个域之间的跨域交互。在每个分支中,首先对输入应用沿不同轴的旋转操作,然后一个Zpool层负责聚合第零维的信息。最后,一个核大小为k × k的标准卷积层对后两个域之间的关系进行建模。这个过程可以写成
其中, P m 1 Pm_1 Pm1 和 P m 2 Pm_2 Pm2 分别表示绕H轴和W轴逆时针旋转90°,而 P m i − 1 Pm_i^{−1} Pmi−1 表示逆时针旋转。Z-Pool沿着第零维度连接最大池和平均池。
Y = Z − P o o l ( X ) = [ G M P ( X ) ; G A P ( X ) ] , ( 105 ) Y=Z-Pool(X)=[GMP(X);GAP(X)],(105) Y=Z−Pool(X)=[GMP(X);GAP(X)],(105)
与CBAM和BAM不同,三重注意强调捕获跨域交互的重要性,而不是独立计算空间注意和通道注意。这有助于捕获丰富的判别特征表示。由于其结构简单而高效,可以很容易地在经典骨干网中添加三重关注。
Yang等人在提出SimAM时也强调了学习跨通道和空间域的注意权重的重要性。SimAM是一种简单的无参数注意模块,能够直接估计3D权重,而不是扩展1D或2D权重。SimAM的设计基于著名的神经科学理论,从而避免了对网络结构进行手动微调的需要。
在空间抑制现象的激励下,他们提出应该强调表现出抑制作用的神经元,并将每个神经元的能量函数定义为:
e t ( w t , b t , y , x i ) = ( y t − t ^ ) 2 + 1 M − 1 ∑ i = 1 M − 1 ( y o − x i ^ ) e_t(w_t,b_t,y,x_i)=(y_t-\hat{t})^2+\frac{1}{M-1}\sum_{i=1}^{M-1}(y_o-\hat{x_i}) et(wt,bt,y,xi)=(yt−t^)2+M−11i=1∑M−1(yo−xi^)
其中 t ^ = w t t + b t , \hat t = w_tt + b_t, t^=wtt+bt, x ^ i = w t x i + b t \hat x_i= w_tx_i + b_t x^i=wtxi+bt, t和 x i x_i xi 单位和所有其他单位的目标是在同一个频道; i ∈ 1 , . . . , N i∈1,...,N i∈1,...,N 和N = H×W。上述方程存在最优闭型解:
e t ∗ = 4 ( δ 2 + λ ) ( t − μ ^ ) 2 + 2 δ ^ 2 + 2 λ e^*_t=\frac{4(\delta^2+\lambda)}{(t-\hat\mu)^2+2\hat\delta^2+2\lambda} et∗=(t−μ^)2+2δ^2+2λ4(δ2+λ)
式中,为输入特征的均值, σ 2 σ^2 σ2 为输入特征的方差。sigmoid函数用于控制注意力向量的输出范围;应用元素乘积得到最终输出:
Y = s i g m o i d ( 1 E ) X , ( 108 ) Y=sigmoid(\frac 1E)X,(108) Y=sigmoid(E1)X,(108)
该工作简化了注意力设计过程,并基于数学和神经科学理论成功地提出了一种新的三维无权重参数的注意力模块。
SE块在跨通道关系建模之前使用全局池来聚合全局空间信息,但忽略了位置信息的重要性。BAM和CBAM采用卷积来捕获局部关系,但无法对长期依赖关系进行建模。为了解决这些问题,Hou等提出了一种新的关注机制——坐标关注,该机制将位置信息嵌入到通道关注中,使网络能够以较小的计算成本关注较大的重要区域。
坐标注意机制有两个连续的步骤:坐标信息嵌入和坐标注意生成。首先,池化核的两个空间范围对每个通道进行水平和垂直编码。在第二步中,对两个池化层的连接输出应用共享的1 × 1卷积变换函数。然后,坐标注意将得到的张量分成两个单独的张量,以产生具有相同数量通道的注意向量,用于输入X沿的水平和垂直坐标。可以写成
利用坐标关注,该网络可以准确地获取目标物体的位置。这种方法比BAM和CBAM有更大的接受域。与SE块一样,它也对跨通道关系进行建模,有效地增强了学习特征的表达能力。由于其轻量级的设计和灵活性,它可以很容易地用于移动网络的经典构建模块。
在场景分割领域,编码器-解码器结构不能利用对象之间的全局关系,而基于rnn的结构严重依赖于长期记忆的输出。为了解决上述问题,Fu等提出了一种新的自然场景图像分割框架——双注意网络(dual attention network, DANet)。与CBAM和BAM不同,它采用自注意机制,而不是简单地叠加卷积来计算空间注意图,使网络能够直接捕获全局信息。
DANet并行使用位置注意模块和通道注意模块来捕获空间和通道域中的特征依赖关系。给定输入的特征图X,首先在位置注意模块中应用卷积层来获得新的特征图。然后,位置关注模块使用所有位置特征的加权和来选择性地聚合每个位置的特征,其中权重由对应位置对之间的特征相似性决定。通道注意模块除了通过降维来模拟跨通道关系外,具有类似的形式。最后将两个分支的输出进行融合,得到最终的特征表示。为简单起见,将特征映射X重塑为C × (H × W),因此整个过程可以写成
位置注意模块使DANet能够捕获远程上下文信息,并从全局角度自适应地整合任何尺度的相似特征,而通道注意模块负责增强有用的通道以及抑制噪声。将空间关系和通道关系考虑在内,明确地改善了场景分割的特征表示。然而,它的计算成本很高,特别是对于大的输入特征映射。
在关系感知全局注意(RGA)中,与强调捕获远程上下文的坐标注意和DANet不同,Zhang等人强调两两关系提供的全局结构信息的重要性,并使用它来生成注意图。RGA有两种形式,空间RGA (RGA- s)和通道RGA (RGA- c)。RGA-S首先将输入特征映射X重塑为C ×(H×W),并使用计算成对关系矩阵 R ∈ R ( H × W ) × ( H × W ) R∈\R^{(H×W)×(H×W)} R∈R(H×W)×(H×W)。
Q = δ ( W Q X ) , ( 120 ) K = δ ( W K X ) , ( 121 ) R = Q T K , ( 122 ) Q=\delta(W^QX),(120)\\ K=\delta(W^KX),(121)\\ R=Q^TK,(122) Q=δ(WQX),(120)K=δ(WKX),(121)R=QTK,(122)
位置i处的关系向量 r 1 r_1 r1通过叠加所有位置的成对关系来定义:
r i = [ R ( i , : ) ; R ( : , i ) ] , ( 123 ) r_i=[R(i,:);R(:,i)],(123) ri=[R(i,:);R(:,i)],(123)
空间关系感知特征yi可表示为
Y i = [ g a v g c ( δ ( W ϕ x i ) ) ; δ ( W Φ r i ) ] , ( 124 ) Y_i=[g^c_{avg}(\delta(W^{\phi}x_i));\delta(W^{\Phi}r_i)],(124) Yi=[gavgc(δ(Wϕxi));δ(WΦri)],(124)
其中 g a v g c g^c_{avg} gavgc表示通道域中的全局平均池化。最后,第i个位置的空间注意得分由式给出
α i = δ ( W 2 δ ( W 1 y i ) ) , ( 125 ) \alpha_i=\delta(W_2\delta(W_1y_i)),(125) αi=δ(W2δ(W1yi)),(125)
RGA-C与RGA-S具有相同的形式,只是将输入特征映射作为H × W维特征的集合。
RGA利用全局关系生成每个特征节点的关注分数,提供了有价值的结构信息,显著增强了表征能力。RGA-S和RGA-C具有足够的灵活性,可用于任何CNN网络;Zhang等人建议依次使用它们,以更好地捕捉空间和跨通道关系。
受群体卷积成功的启发,Liu等提出了自校准卷积作为在每个空间位置扩大感受野的一种手段。自校准卷积与标准卷积一起使用。它首先在通道域中将输入特征X划分为 X 1 X_1 X1 和 X 2 X_2 X2。自校准卷积首先使用平均池化来减小输入大小,扩大接受野:
T 1 = A v g P o o l r ( X 1 ) , ( 126 ) T_1=AvgPool_r(X_1),(126) T1=AvgPoolr(X1),(126)
其中r是过滤器的大小和步幅。然后使用卷积对通道关系进行建模,使用双线性插值算子 U p U_p Up 对特征映射进行上采样:
X 1 ′ = U p ( C o n v 2 ( T 1 ) ) , ( 127 ) X'_1=U_p(Conv_2(T_1)),(127) X1′=Up(Conv2(T1)),(127)
接下来,元素乘法完成自校准过程:
Y 1 ′ = C o n v 3 ( X 1 ) δ ( X 1 + X 1 ′ ) , ( 128 ) Y'_1=Conv_3(X_1)\delta(X_1+X_1'),(128) Y1′=Conv3(X1)δ(X1+X1′),(128)
最后,输出特征图表示为:
Y 1 = C o n v 4 ( Y 1 ′ ) , ( 129 ) Y 2 = C o n v 1 ( X 2 ) , ( 130 ) Y = [ Y 1 ; Y 2 ] , ( 131 ) Y_1=Conv_4(Y'_1),(129)\\ Y_2=Conv_1(X_2),(130)\\ Y=[Y_1;Y_2],(131) Y1=Conv4(Y1′),(129)Y2=Conv1(X2),(130)Y=[Y1;Y2],(131)
这种自校准卷积可以扩大网络的接受域,提高网络的适应性。它在图像分类和某些下游任务如实例分割、目标检测、关键点检测等方面都取得了优异的效果。
空间池通常在一个小区域上运行,这限制了它捕获远程依赖关系和关注远区域的能力。为了克服这个问题,Hou等人提出了条带池化,这是一种能够在水平或垂直空间域中编码远程上下文的新型池化方法。带钢池有水平和垂直带钢池两个分支。水平条形池化部分首先在水平方向上池化输入特征 F ∈ R C × H × W F∈\R^{C×H×W} F∈RC×H×W:
然后在y中应用核大小为3的1D卷积来捕获不同行和通道之间的关系。这样重复W次,使输出yv与输入形状一致:
y h = E x p a n d ( C o n v 1 D ( y 1 ) ) , ( 133 ) y_h=Expand(Conv1D(y^1)),(133) yh=Expand(Conv1D(y1)),(133)
垂直条池的执行方式与此类似。最后,使用元素求和将两个分支的输出融合,生成注意图:
s = δ ( C o n v 1 ∗ 1 ( y v + y h ) ) , ( 134 ) Y = s X , ( 135 ) s=\delta(Conv^{1*1}(y_v+y_h)),(134)\\ Y=sX,(135) s=δ(Conv1∗1(yv+yh)),(134)Y=sX,(135)
条带池化模块是在混合池化模块的基础上发展起来的。两者都考虑空间和通道关系来克服卷积神经网络的局部性。SPNet在几个复杂的语义分割基准测试中实现了最先进的结果。
由于CNN的特征具有天然的空间、通道和多层性,Chen等提出了一种新的基于空间和通道的基于注意的卷积神经网络(SCACNN)。它是为图像字幕任务而设计的,并使用编码器-解码器框架,其中CNN首先将输入图像编码为矢量,然后LSTM将矢量解码为单词序列。给定输入特征映射X和前一个时间步长LSTM隐藏状态 h t − 1 ∈ R d h_{t−1}∈\R^d ht−1∈Rd,空间注意机制在LSTM隐藏状态 h t − 1 h_{t−1} ht−1 的引导下,更多地关注语义有用区域。空间注意模型为:
其中⊕表示一个矩阵和一个向量的加法。类似地,channel-wise attention首先聚合全局信息,然后计算一个channel-wise attention weight vector,隐藏状态ht−1:
总的来说,可以用两种方式之一编写SCA机制。如果渠道型注意力比空间型注意力更重要,就有
Y = f ( X , Φ s ( h t − 1 , X Φ c ( h t − 1 , X ) ) , Φ c ( h t − 1 , X ) , ( 140 ) Y=f(X,\Phi_s(h_{t-1},X\Phi_c(h_{t-1},X)),\Phi_c(h_{t-1},X),(140) Y=f(X,Φs(ht−1,XΦc(ht−1,X)),Φc(ht−1,X),(140)
如果空间注意力优先:
Y = f ( X , Φ s ( h t − 1 , X ) , Φ c ( h t − 1 , X Φ c ( h t − 1 , X ) ) ) , ( 140 ) Y=f(X,\Phi_s(h_{t-1},X),\Phi_c(h_{t-1},X\Phi_c(h_{t-1},X))),(140) Y=f(X,Φs(ht−1,X),Φc(ht−1,XΦc(ht−1,X))),(140)
式中,f(·)表示以特征图X和注意图为输入,输出调制后的特征图Y的调制函数。
不同于以往的注意机制,即平等地考虑每个图像区域,并使用全局空间信息来告诉网络关注的位置,SCA-Net利用语义向量来生成空间注意图以及通道关注权重向量。作为一个强大的注意力模型,SCA-CNN还提供了一个更好的理解模型在句子生成过程中应该关注的位置和内容。
大多数注意机制只使用来自类标签的弱监督信号来学习集中在哪里,这启发了Linsley等人来研究明确的人类监督如何影响注意模型的性能和可解释性。作为概念证明,Linsley等人提出了全局和局部注意模块(GALA),该模块对SE块进行扩展,采用空间注意机制。
给定输入特征图X, GALA使用一个结合了全局和局部注意力的注意力掩码来告诉网络在哪里和关注什么。在SE块中,全局注意力通过全局平均池化聚合全局信息,然后使用多层感知器产生一个通道级的注意力权重向量。在局部注意力中,对输入进行两次连续的1 × 1卷积,生成位置权重图。局部路径和全局路径的输出通过加法和乘法进行组合。正式地,GALA可以表示为:
在人类提供的特征重要性图的监督下,GALA显著提高了表征能力,并且可以与任何CNN主干相结合。
时空注意结合了空间注意和时间注意的优点,可以自适应地选择重要区域和关键帧。一些研究分别计算时间注意和空间注意,而另一些研究则生成联合的时空注意图。进一步的工作集中于捕捉成对关系。下表总结了Eq. 1所描述的具有代表性的时空注意注意力和具体过程g(x)和f(g(x), x)。
在人体动作识别中,每种类型的动作通常只依赖于几个特定的运动关节。此外,随着时间的推移,可能会执行多个操作。受这些观察结果的启发,Song等提出了一种基于LSTM的联合时空注意网络,以自适应地寻找判别特征和关键帧。它的主要注意相关组件是空间注意子网络,用于选择重要区域和时间注意子网络,用于选择关键帧。空间注意子网可表示为:
式中,Xt为时刻t的输入特征, U s 、 W h s 、 b s i 、 b s o U_s、W_{hs}、b_{si}、b_{so} Us、Whs、bsi、bso 为可学习参数, h t − 1 s h^s_{t−1} ht−1s 为步骤 t−1的隐藏状态。注意,隐藏状态h的使用意味着注意过程考虑了时间关系。时间注意子网络类似于空间分支,并使用以下方法生成其注意图:
β t = δ ( W x p X t + W h p h t − 1 p + b p ) , ( 151 ) \beta_t=\delta(W_{xp}X_t+W_{hp}h^p_{t-1}+b_p),(151) βt=δ(WxpXt+Whpht−1p+bp),(151)
为了便于优化,它采用了ReLU函数而不是规范化函数。它还使用正则化目标函数来提高收敛性。
总的来说,本文提出了一种联合时空注意方法,将重点放在重要的关节和关键帧上,在动作识别任务上取得了很好的效果。
为了捕捉视频帧中的时空背景,Du等人引入了时空注意力,以全局方式自适应地识别关键特征。RSTAN的时空注意机制包括空间注意模块和时间注意模块。给定输入特征映射 X ∈ R D × T × H × W X∈\R^{D×T ×H×W} X∈RD×T×H×W 和RNN模型的先前隐藏状态 h t − 1 h_{t - 1} ht−1,时空注意旨在生成用于动作识别的时空特征表示。首先,将给定的特征映射X重塑为 R D × T X ( H × W ) \R^{D×T X(H×W)} RD×TX(H×W) ,并将X(n, k)定义为第n帧的第k个位置的特征向量。在时刻t,空间注意机制的目标是为每一帧产生一个全局特征 l n l_n ln,可以写成
其中引入 γ α γ_α γα 来控制位置分数图的清晰度。在获得逐帧特征 { l 1 , . . . , l T } \{l_1,...,l_T\} {l1,...,lT} ,RSTAN使用一种时间注意机制来估计每个帧特征的重要性
以往基于注意力的视频人物再识别方法仅对每一帧图像分配一个注意力权重,未能捕捉到图像的时空关系。为了解决这个问题,Fu等人提出了一种新的时空注意力(STA)方法,该方法在不需要任何额外参数的情况下为不同帧中的每个空间区域分配注意力分数。
给定输入视频 { X n ∣ X n ∈ R C × H × W } n = 1 N \{X_n|X_n∈\R^{C×H×W}\}^N_{n=1} {Xn∣Xn∈RC×H×W}n=1N 的特征映射,STA首先在信道域的平方和上使用l2范数生成分帧关注映射:
然后将特征图和注意图横向划分为K个局部区域,每个局部区域代表人的一个部分。区域k的空间注意力得分由
s ( n , k ) = ∑ ( i , j ) ∈ R e g i o n K ∥ s n , k ∥ 1 , ( 159 ) s(n,k)=\sum_{(i,j)\in Region_K}\|s_{n,k}\|_1,(159) s(n,k)=(i,j)∈RegionK∑∥sn,k∥1,(159)
为了捕捉不同帧中区域之间的关系,STA将 l 1 l_1 l1 归一化应用于时间域中的注意力得分,使用
S ( n , k ) = s n , k ∑ n = 1 N ∥ s n , k ∥ 1 , ( 160 ) S(n,k)=\frac{s_{n,k}}{\sum_{n=1}^N\|s_{n,k}\|}_1,(160) S(n,k)=∑n=1N∥sn,k∥sn,k1,(160)
最后,STA将输入特征图 X i X_i Xi 分成 K regions { X n , 1 , . . . , X n , K } \{X_{n,1},...,X_{n,K}\} {Xn,1,...,Xn,K},并计算出输出
STA不是逐帧计算空间注意图,而是同时考虑空间和时间注意信息,充分利用两个维度上的判别部分。这减少了遮挡的影响。由于它的非参数设计,STA可以处理可变长度的输入视频序列;它可以与任何二维CNN骨干网相结合。
为了对帧内的空间关系和帧间的时间关系进行建模,Yang等人提出了一种新的时空图卷积网络(STGCN)来学习视频的判别描述符。首先利用两两相似度构造补丁图,然后利用图卷积进行信息聚合。
STGCN包括两个并行GCN分支,即时间图模块和结构图模块。给定视频的特征映射,STGCN首先将每帧水平划分为P个patch,并应用平均池化来生成patch-wise feature x 1 , … , x N x_1,…, x_N x1,…,xN,其中补丁总数为 N = T P N = TP N=TP。对于时态模块,它将每个patch作为一个图节点,为视频构建一个patch图,其中通过对成对关系矩阵E进行归一化得到邻接矩阵 A ^ \hat A A^,定义为
其中 D ( i , i ) = ∑ j = 1 N ( A + i ) ( i , j ) D(i, i) = \sum^N_{j=1}(A + i) (i, j) D(i,i)=∑j=1N(A+i)(i,j) 。给定邻接矩阵 A ^ \hat A A^,第m个图卷积可以使用
X m = A ^ X m − 1 W m + X m − 1 , ( 167 ) X^m=\hat A X^{m-1}W^m+X^{m-1},(167) Xm=A^Xm−1Wm+Xm−1,(167)
其中, X ∈ R N × c X∈\R^{N×c} X∈RN×c 表示所有patch的隐藏特征, W m ∈ R c × c W^m∈\R^{c×c} Wm∈Rc×c 表示第m层的可学习权矩阵。对于空间模块,STGCN采用了类似邻接矩阵和图卷积的方法,除了对一帧内不同区域的空间关系进行建模。
STGCN将时空维度扁平化为一个序列,利用GCN来捕捉不同帧间斑块的时空关系。采用两两注意法获得加权邻接矩阵。通过利用斑块之间的时空关系,STGCN克服了遮挡问题,同时增强了信息特征。它可以与任何CNN主干一起使用来处理视频。