当前位置: 首页 > news >正文

SCSA:探索空间与通道注意力之间的协同效应

文章目录

  • 摘要
  • 1 引言
  • 2 相关工作
    • 2.1 多语义空间信息
    • 2.2 注意力分解
  • 3 方法
    • 3.1 共享多语义空间注意力:空间与通道分解
    • 3.2 渐进式通道自注意力
    • 3.3 协同效应
    • 3.4 注意力机制的整合
  • 4 实验
    • 4.1 实验设置
    • 4.2 图像分类
    • 4.3 目标检测
    • 4.4 分割
    • 4.5 消融研究
  • 5 可视化与分析
    • 5.1 注意力可视化
    • 5.2 有效感受野可视化
    • 5.3 计算复杂度
    • 5.4 推理吞吐量评估
    • 5.5 目标检测定性结果
    • 5.6 实例分割定性结果
    • 5.7 语义分割定性结果
  • 6 局限性
  • 7 结论

摘要

https://arxiv.org/pdf/2407.05128
通道注意力和空间注意力分别为各种下游视觉任务在提取特征依赖性和空间结构关系方面带来了显著改进。通道注意力和空间注意力的结合使用被广泛认为有利于进一步提升性能;然而,通道注意力和空间注意力之间的协同作用,尤其是在空间引导和缓解语义差异方面,尚未得到深入研究。这促使我们提出了一种新的空间与通道协同注意模块(SCSA),该模块涉及我们在多个语义层面上对空间注意力和通道注意力之间协同关系的研究。我们的SCSA由两部分组成:可共享多语义空间注意力(SMSA)和渐进通道自注意力(PCSA)。SMSA整合了多语义信息,并利用渐进压缩策略将判别性空间先验注入到PCSA的通道自注意力中,有效引导通道再校准。此外,PCSA中基于通道单头自注意力机制的稳健特征交互进一步缓解了SMSA中不同子特征之间多语义信息的差异。我们在七个基准数据集上进行了大量实验,包括在ImageNet-1K上的分类、在MSCOCO上的目标检测、在ADE20K上的分割以及四个其他复杂场景检测数据集。实验结果表明,我们提出的SCSA不仅超越了当前的即插即用型最先进注意力方法,而且在各种任务场景中展现出增强的泛化能力。代码和模型可在以下网址获取:https://github.com/HZAIZJNU/SCSA。

1 引言

注意力机制通过增强感兴趣区域的表示,有助于学习更具判别性的特征,并被广泛用于重新分配通道关系和空间依赖性。现有的即插即用型注意力方法主要可分为三类:通道注意力[23, 27, 62, 55, 31, 41]、空间注意力[22, 56, 42, 9]和混合通道-空间注意力[57, 40, 38, 14, 20, 65, 39, 61]。它们的侧重点不同:通道注意力通过自适应地为不同通道加权来增强关键对象特征的提取,而空间注意力则旨在增强关键空间信息。空间信息在像素级别表示语义特征对象。局部空间信息捕获低语义对象,如精细细节和纹理,而全局空间信息感知高语义对象,如整体形状。

在基于卷积神经网络(CNN)架构的模型中,深度卷积算子通常用于特征提取。这些算子生成的梯度可以在不同的特征通道之间流动和传播,从而促进卷积权重的更新并有效表示图像特征。然而,众多研究表明,仅依赖卷积分支进行特征提取会导致梯度流失真[54],从而导致关键信息丢失或相似特征冗余[4, 17, 66, 35]。为解决此问题,已提出了一些基于激发和抑制机制[23]的方法,这些方法将特征学习重点放在对不同任务最关键的特征上,从而增强了模型的表示能力。特别是,CBAM[57]通过串联通道和空间注意力分别聚合全局空间和通道信息,但压缩所有通道信息会导致所有空间结构之间共享信息。这削弱了空间上下文对不同特征图的适应性。为克服此问题,CPCA[24]引入了通道优先注意力机制和深度条纹卷积,独立提取每个特征的空间结构,显著提高了医学图像分割性能。此外,基于分组注意力和跨空间多尺度交互的EMA[39]模块有效融合了长短期依赖的空间信息,但忽略了组间特征交互。

在这里插入图片描述

尽管这些混合注意力机制增强了表征学习,但它们忽视了跨空间和通道维度的固有多语义信息,以及多语义特征的交互和差异缓解,这对于检测和分割等细粒度任务至关重要,从而限制了这些方法的即插即用能力。如图1所示,我们分析了图像的几个特征图,并观察到不同的空间区域由于不同通道的特征选择性而表现出固有的语义差异和相似性。

基于这一见解,我们提出了一个问题:是否可以利用不同特征通道之间固有的空间语义差异来指导重要特征的学习?此外,考虑到语义差异的存在,我们如何缓解这些多语义差异并促进多语义信息的更好融合?

与上述方法不同,我们从以下三个方面探索上述问题的解决方案:维度解耦、轻量级多语义指导和语义差异缓解,并提出了一种新颖的、即插即用的空间和通道协同注意力(SCSA)。我们的SCSA由可共享的多语义空间注意力(SMSA)和顺序连接的渐进式通道自注意力(PCSA)组成。本研究首先采用多尺度、深度共享的1D卷积从四个独立的子特征中提取不同语义级别的空间信息。我们在四个子特征上利用组归一化[58]来加速模型收敛,同时避免引入批次噪声和不同子特征之间语义信息的干扰。随后,我们将SMSA调制后的特征图输入到PCSA中,结合了渐进式压缩和通道特定的单头自注意力机制。我们的渐进式压缩策略旨在最小化计算复杂度,同时保留SMSA中的空间先验,提供了一个实用的折中方案。此外,我们的PCSA利用输入感知的单头自注意力机制有效地探索通道相似性,从而缓解SMSA中不同子特征之间的语义差异,并促进信息融合。我们在四个视觉任务和七个基准数据集上进行了广泛的实验,证明了我们的SCSA中应用的多语义协同的有效性。综上所述,我们的贡献如下:

  • 我们指出了现有即插即用注意力机制的两大关键限制:1)在空间和通道维度上,利用固有的多语义空间信息指导关键特征提取的能力不足;2)对特征图中多语义信息引起的语义差异和交互处理不当。
  • 我们提出了空间和通道协同注意力(SCSA),包括SMSA和PCSA模块。SMSA利用多尺度深度共享的1D卷积捕获多语义空间信息,增强了局部和全局特征表示。PCSA采用输入感知的自注意力来细化通道特征,有效缓解语义差异,确保跨通道的稳健特征整合。
  • 我们的方法在包括ImageNet-1K(分类)、MSCOCO(目标检测)和ADE20K(分割)在内的多个基准测试中优于其他最先进的即插即用注意力机制,并在低光照和小物体基准测试等各种复杂场景中表现出强大的泛化能力。

2 相关工作

2.1 多语义空间信息

多语义空间结构融入了丰富的类别和上下文信息。有效整合全局上下文和局部空间先验,能够使模型从多个角度学习到更高质量的表征。InceptionNets[49,25,50,48]开创了多分支方法,采用并行的不同尺寸的标准卷积来捕获不同的感受野,显著提升了特征提取能力。SKNet[27]将多尺度卷积融入通道注意力中,使用SENet[23]提出的挤压-激励机制来整合具有不同感受野的空间先验。得益于全局上下文建模能力,ViT[9]采用多头自注意力(MHSA)来捕捉不同语义子特征中不同空间位置的相关性,并辅以位置嵌入来补偿空间先验,在各种下游任务中取得了显著的成功。目前,许多研究基于多语义思想开发高效模型[66,35,4,53],以减少参数和计算量,从而提高推理效率。Mamba[16]引入了一个使用扫描机制和GPU并行性的可选状态空间模型,以线性时间复杂度建模全局上下文依赖。此外,VMamba[32]提出了一个跨扫描模块,将1D序列扫描扩展到2D图像扫描,有效地从四个方向捕获多语义全局上下文信息。

2.2 注意力分解

将注意力机制融入主流主干网络或特征融合网络,能够增强对细粒度特征的理解,并提高特征表征的准确性。然而,这不可避免地会导致内存使用量和计算时间的增加。CA[20]和ELA[61]分别在高度( H H H)和宽度( W W W)维度上进行单向空间压缩,在一个方向上保留空间结构,同时在另一个方向上聚合全局空间信息,从而减轻全局压缩带来的信息损失。SA[65]和EMA[39]将特征重塑为子特征,以减少注意力计算和参数。然而,它们在受GPU带宽限制的高维B(批量大小)和C(通道数)中使用的重塑操作会导致昂贵的数据传输,严重影响推理速度。CPCA[24]在独立通道中使用条纹卷积来减少大核卷积中的参数。近期研究还在MHSA中应用维度分解,其中RMT[12]分别在 H H H W W W维度上单独应用MHSA,以最小化计算成本。

在本研究中,我们基于注意力分解的概念,提出了一个整合多语义空间信息的轻量级引导模块。此外,我们还设计了一个基于渐进式通道单头自注意力机制的多语义差异缓解模块,旨在探索空间维度和通道维度之间更优化的协同关系。

3 方法

在本节中,我们首先讨论SMSA模块,该模块探索了轻量级多语义信息引导的好处。接下来,我们介绍PCSA模块,该模块利用渐进式压缩策略和通道自注意力来缓解语义差异。多语义引导和语义差异缓解的协同作用促使我们提出了SCSA模块。总体架构如图2所示。
在这里插入图片描述

3.1 共享多语义空间注意力:空间与通道分解

神经网络架构中的分解技术显著减少了参数数量和计算开销。受Transformer[52]中1D序列结构的启发,在我们的工作中,我们沿着高度和宽度维度对给定输入 X ∈ R B × C × H × W X \in \mathbb{R}^{B \times C \times H \times W} XRB×C×H×W进行分解。我们对每个维度应用全局平均池化,从而创建两个单向1D序列结构: X H ∈ R B × C × W X_{H} \in \mathbb{R}^{B \times C \times W} XHRB×C×W X W ∈ R B × C × H X_{W} \in \mathbb{R}^{B \times C \times H} XWRB×C×H。为了学习不同的空间分布和上下文关系,我们将特征集划分为 K K K个大小相同、独立的子特征 X H i X_{H}^{i} XHi X W i X_{W}^{i} XWi,每个子特征的通道数为 C K \frac{C}{K} KC。在本文中,我们设置默认值 K = 4 K=4 K=4。分解为子特征的过程如下:

X H i = X H [ : , ( i − 1 ) × C K : i × C K , : ] X W i = X W [ : , ( i − 1 ) × C K : i × C K , : ] \begin{array}{l} X_{H}^{i}=X_{H}\left[:,(i-1) \times \frac{C}{K}: i \times \frac{C}{K},:\right] \\ X_{W}^{i}=X_{W}\left[:,(i-1) \times \frac{C}{K}: i \times \frac{C}{K},:\right] \end{array} XHi=XH[:,(i1)×KC:i×KC,:]XWi=XW[:,(i1)×KC:i×KC,:]

X i X^{i} Xi表示第 i i i个子特征,其中 i ∈ [ 1 , K ] i \in[1, K] i[1,K]。每个子特征是独立的,便于高效地提取多语义空间信息。

在这里插入图片描述

在不相交子特征上应用轻量级卷积策略。在将特征图划分为独立子特征后,我们的目标是在每个子特征内高效地捕获不同的语义空间结构。受减少特征冗余的广泛研究启发[35, 17, 4],这些研究揭示出冗余可能源于特征之间的强烈相互作用,我们也观察到特征之间存在不同的空间结构,如图1所示。基于这些见解,并旨在丰富语义信息、增强语义一致性和最小化语义差距,我们对四个子特征应用了核大小为3、5、7和9的深度一维卷积。此外,为了解决将特征分解为H和W维度并分别应用一维卷积导致的感受野受限问题,我们使用轻量级共享卷积进行对齐,通过在这两个维度上学习一致特征来隐式建模它们之间的依赖关系。关于它们的消融实验细节见表1。提取多语义空间信息的实现过程定义如下:

X ~ H i = D W C o n v 1 d k i C R → C R ( X H i ) X ~ W i = D W C o n v 1 d k i C R → C R ( X W i ) \begin{array}{l} \tilde{X}_{H}^{i}=DWConv1d_{k_{i}}^{\frac{C}{R} \rightarrow \frac{C}{R}}\left(X_{H}^{i}\right) \\ \tilde{X}_{W}^{i}=DWConv1d_{k_{i}}^{\frac{C}{R} \rightarrow \frac{C}{R}}\left(X_{W}^{i}\right) \end{array} X~Hi=DWConv1dkiRCRC(XHi)X~Wi=DWConv1dkiRCRC(XWi)

X ~ i \tilde{X}^{i} X~i表示在轻量级卷积操作后获得的第 i i i个子特征的空间结构信息。 k i k_{i} ki表示应用于第 i i i个子特征的卷积核。

在分解独立子特征并捕获不同语义的空间信息后,我们需要构建空间注意力图。具体而言,我们将不同的语义子特征进行拼接,并使用具有 K K K组的组归一化(GN)[58]进行归一化。我们选择GN而不是常见的批量归一化(BN)[26],因为我们的研究发现GN在区分子特征之间的语义差异方面表现更优。GN可以对每个子特征进行独立归一化,而不会引入批次统计噪声,有效减轻子特征之间的语义干扰并防止注意力分散。这一设计通过表1中的消融实验得到了验证。最后,使用简单的Sigmoid激活函数生成空间注意力,该函数激活并抑制特定的空间区域。输出特征的计算如下:

A t t n H = σ ( G N H K ( C o n c a t ( X ~ H 1 , X ~ H 2 , … , X ~ H K ) ) ) A t t n W = σ ( G N W K ( C o n c a t ( X ~ W 1 , X ~ W 2 , … , X ~ W K ) ) ) S M S A ( X ) = X s = A t t n H × A t t n W × X \begin{array}{c} Attn_{H}=\sigma\left(GN_{H}^{K}\left(Concat\left(\tilde{X}_{H}^{1}, \tilde{X}_{H}^{2}, \ldots, \tilde{X}_{H}^{K}\right)\right)\right) \\ Attn_{W}=\sigma\left(GN_{W}^{K}\left(Concat\left(\tilde{X}_{W}^{1}, \tilde{X}_{W}^{2}, \ldots, \tilde{X}_{W}^{K}\right)\right)\right) \\ SMSA(X)=X_{s}=Attn_{H} \times Attn_{W} \times X \end{array} AttnH=σ(GNHK(Concat(X~H1,X~H2,,X~HK)))AttnW=σ(GNWK(Concat(X~W1,X~W2,,X~WK)))SMSA(X)=Xs=AttnH×AttnW×X

σ ( ⋅ ) \sigma(\cdot) σ()表示Sigmoid归一化,而 G N H K ( ⋅ ) GN_{H}^{K}(\cdot) GNHK() G N W K ( ⋅ ) GN_{W}^{K}(\cdot) GNWK()分别表示沿H和W维度进行K组归一化的GN。

3.2 渐进式通道自注意力

计算通道注意力的常用方法是通过探索通道之间依赖关系的卷积操作[23,55]。使用卷积来建模特征之间的相似性有些不直观,并且难以有效测量不同通道之间的相似性。受ViT[9]在利用多头自注意力(MHSA)建模空间中不同标记之间相似性方面的显著优势启发,我们提出将单头自注意力(SHSA)与来自多语义空间注意力(SMSA)的调制空间先验相结合,以计算通道间相似性。此外,为了保留和利用SMSA提取的多语义空间信息,并降低SHSA的计算成本,我们采用基于平均池化的渐进压缩方法,该方法在我们的协同作用中起指导作用。与使用常见的卷积操作建模通道依赖性相比,渐进式通道自注意力(PCSA)表现出更强的输入感知能力,并有效利用SMSA提供的空间先验来加深学习。我们PCSA的实现细节如下:

X p = P o o l ( 7 , 7 ) ( H , W ) → ( H ′ , W ′ ) ( X s ) F p r o j = D W C o n v 1 d ( 1 , 1 ) C → C Q = F p r o j Q ( X p ) , K = F p r o j K ( X p ) , V = F p r o j V ( X p ) X a t t n = A t t n ( Q , K , V ) = S o f t m a x ( Q K T C ) V P C S A ( X s ) = X c = X s × σ ( P o o l ( H ′ , W ′ ) ( H ′ , W ′ ) → ( 1 , 1 ) ( X a t t n ) ) \begin{array}{c} X_{p}=Pool_{(7,7)}^{(H, W) \rightarrow\left(H^{\prime}, W^{\prime}\right)}\left(X_{s}\right) \\ F_{proj}=DWConv1d_{(1,1)}^{C \rightarrow C} \\ Q=F_{proj}^{Q}\left(X_{p}\right), K=F_{proj}^{K}\left(X_{p}\right), V=F_{proj}^{V}\left(X_{p}\right) \\ X_{attn}=Attn(Q, K, V)=Softmax\left(\frac{QK^{T}}{\sqrt{C}}\right)V \\ PCSA\left(X_{s}\right)=X_{c}=X_{s} \times \sigma\left(Pool_{\left(H^{\prime}, W^{\prime}\right)}^{\left(H^{\prime}, W^{\prime}\right) \rightarrow(1,1)}\left(X_{attn}\right)\right) \end{array} Xp=Pool(7,7)(H,W)(H,W)(Xs)Fproj=DWConv1d(1,1)CCQ=FprojQ(Xp),K=FprojK(Xp),V=FprojV(Xp)Xattn=Attn(Q,K,V)=Softmax(C QKT)VPCSA(Xs)=Xc=Xs×σ(Pool(H,W)(H,W)(1,1)(Xattn))

P o o l ( k , k ) ( H , W ) → ( H ′ , W ′ ) ( ⋅ ) Pool_{(k, k)}^{(H, W) \rightarrow\left(H^{\prime}, W^{\prime}\right)}(\cdot) Pool(k,k)(H,W)(H,W)()表示核大小为 k × k k \times k k×k的池化操作,将分辨率从 ( H , W ) (H, W) (H,W)缩放到 ( H ′ , W ′ ) \left(H^{\prime}, W^{\prime}\right) (H,W) F p r o j ( ⋅ ) F_{proj}(\cdot) Fproj()表示生成查询(Q)、键(K)和值(V)的线性投影。

值得注意的是,与ViT中的MHSA不同,其中 Q , K , V ∈ R B × N × C Q, K, V \in \mathbb{R}^{B \times N \times C} Q,K,VRB×N×C N = H W N=HW N=HW,在我们的PCSA的通道注意力单头自注意力(CA-SHSA)中,自注意力是沿通道维度计算的,其中 Q , K , V ∈ R B × C × N Q, K, V \in \mathbb{R}^{B \times C \times N} Q,K,VRB×C×N。此外,为了与SMSA中分解的不同子特征充分交互,我们选择实现更简单的单头自注意力机制,而不是将多头自注意力与通道混洗相结合[66]。

3.3 协同效应

空间与通道注意力机制的协同旨在相互补充。在我们的工作中,我们提出了一种通过空间注意力引导通道注意力学习的新概念。受CBAM [57]和CPCA[24]之间联系的启发,我们采用类似的串行结构来整合我们的空间多语义注意力(SMSA)和位置敏感通道注意力(PSCA)模块,形成空间通道协同注意力(SCSA)。不同的是,首先应用空间注意力SMSA,然后是通道注意力PSCA。前者从每个特征中提取多语义空间信息,为后者提供精确的空间先验;后者通过利用整体特征图 X X X来细化局部子特征 X i X^{i} Xi的语义理解,从而减轻前者中多尺度卷积引起的语义差异。此外,与以前的方法[23,57,40,20]不同,我们没有采用通道压缩,有效防止了关键特征的丢失。最终,我们构建的SCSA如下:

SCSA ( X ) = PCSA ( SMSA ( X ) ) \text{SCSA}(X)=\text{PCSA}(\text{SMSA}(X)) SCSA(X)=PCSA(SMSA(X))

3.4 注意力机制的整合

在我们的工作中,我们将提出的SCSA整合到不同的主干网络中,以验证其在增强特征提取能力方面的有效性。如图3所示,SCSA被整合到四个主流模块中:(a)和(b)代表基于ResNet [19]及其变体系列[60]的模块;©代表基于MobileNet系列[46, 21, 37]的倒置残差结构;(d)代表重参数化方法代表RepVGG [8]的模块结构。

在这里插入图片描述

4 实验

4.1 实验设置

在本节中,我们首先介绍实验细节。接下来,我们在四个视觉任务上进行了实验,将我们提出的SCSA与其他最先进的注意力机制进行了比较。之后,在第4.5节中,我们从四个不同角度对我们精心设计的SCSA进行了全面的消融研究。

数据集。我们在四个视觉任务上验证了方法的有效性。对于图像分类,我们选择了广泛使用的ImageNet-1K [44]数据集。在目标检测中,我们使用了几个具有挑战性的检测数据集,包括MSCOCO [30]、Pascal VOC [11]、VisDrone [10]和ExDark [34]。对于语义分割和实例分割,我们选择了广泛使用的ADE20K [67]和MSCOCO [30]基准。

我们热衷于探索注意力机制是否能更有效地应用于各种复杂场景任务。虽然之前的研究[23,55,65,39,57,61]在广泛使用的基准(如ImageNet-1K [44]、MSCOCO [30])上表现出了良好的性能,但在密集、低光照和小目标场景中的有效性仍有待探索。因此,我们使用表4中的代表性基准进行了更多实验:小目标数据集VisDrone [10]、低光照数据集ExDark [34]、红外自动驾驶数据集FLIR-ADAS v2 [13]和通用数据集Pascal VOC [11]。

评估指标。我们使用Top-1和Top-5指标来衡量图像分类性能,使用平均精度(AP)来评估目标检测性能,并报告参数数量(Params)、每秒浮点运算次数(FLOPs)和吞吐量来衡量性能。对于语义分割,我们采用平均交并比(mIoU)。

实现细节。为了评估我们在ImageNet-1K [44]上提出的SCSA,我们选择了四个基于CNN和Transformer架构的主流主干网络,包括ResNet [19]、MobileNetV2 [46]、RepVGG [8]和Swin [33]。具体来说,我们遵循了原始论文[19, 46, 8, 33]中的参数配置,除了批量大小和学习率。由于所有分类模型都在单个NVIDIA RTX 4090 GPU上进行训练,我们根据线性缩放规则[15, 63]调整了批量大小和学习率。对于ResNet [19]、RepVGG [8]和Swin [33],批量大小统一设置为128,学习率分别缩放为0.05、0.05和0.000125。当使用我们的SCSA训练MobileNetV2时,我们使用ECANet [55]中的批量大小和学习率,分别设置为96和0.045。值得注意的是,为了提高训练效率,我们采用了自动混合精度(AMP)训练。

我们使用Faster R-CNN [43]、Mask R-CNN [18]、Cascade R-CNN [3]和RetinaNet [29]在MSCOCO [30]上评估了我们的SCSA。这些检测器使用MMDetection [5]工具箱实现,并采用默认设置。所有模型都使用SGD优化器进行训练,动量设置为0.9,权重衰减设置为 1 e − 4 1 \text{e}-4 1e4,每个GPU的批量大小为2,总共训练12个周期。Faster R-CNN、Mask R-CNN和Cascade R-CNN的学习率从0.0025开始,而RetinaNet的学习率从0.00125开始。所有模型的学习率在第8个和第11个周期时减少10倍。我们使用单个NVIDIA H800 GPU在MSCOCO [30]上对模型进行了12个周期的微调,并在验证集上报告了比较结果。在上述配置的基础上,我们进一步评估了所提出的SCSA方法在Pascal VOC [11]以及VisDrone [10]、ExDark [34]和FLIR-ADAS V2 [13]等复杂场景中的检测性能和泛化能力。

我们还使用UperNet [59]在ADE20K [67]上验证了我们的方法在语义分割方面的有效性。遵循常见做法[6,64],我们使用MMSegmentation [7]工具箱,将批量大小设置为16,并进行80k次训练迭代。所有模型都使用SGD优化器进行训练,初始学习率设置为0.01,动量设置为0.9,权重衰减设置为 5 e − 4 5 \text{e}-4 5e4。我们还使用单个NVIDIA H800 GPU进行训练和推理。

所有模型都使用默认的随机种子0进行训练。
在这里插入图片描述

4.2 图像分类

我们将所提出的空间通道自注意力(SCSA)机制与其他最先进的注意力机制进行了比较,包括SENet[23]、CBAM[57]、ECANet[55]、FcaNet(FCA)[41]、CA[20]、SANet[65]、EMA[39]、CPCA[24]和ELA[61]。如表2所示,我们的SCSA在不同规模的网络中实现了最高的Top-1准确率,同时参数数量和计算复杂度可忽略不计。在混合架构中,我们的方法基于ResNet的吞吐量仅次于CA和ELA,但在适中的模型宽度下,它在准确性、速度和模型复杂度之间提供了更好的平衡。将SCSA方法融入MobileNetV2架构显著提高了模型准确性。尽管SCSA在参数数量上更轻量( 3.63 M 3.63 \mathrm{M} 3.63M vs. 4.07 M 4.07 \mathrm{M} 4.07M,- 0.44 M 0.44 \mathrm{M} 0.44M),但其多分支结构在倒置残差块内遇到了通道维度急剧增加的问题,从而导致吞吐量降低。值得注意的是,将所提出的SCSA方法融入RepVGG[8]和基于空间自注意力的Swin[33]等先进模型,仍然分别实现了 1.21 % 1.21 \% 1.21% 0.70 % 0.70 \% 0.70%的显著准确性提升,有效证明了我们的注意力机制在不同模型架构中的适应性。

4.3 目标检测

MSCOCO上的结果。我们在MSCOCO上评估了各种注意力机制,以验证我们的方法在密集检测场景中的有效性。我们使用ResNet50和ResNet-101作为主干网络,FPN[28]作为特征融合网络。如表3所示,我们的方法在各种检测器、模型大小和对象尺度上均优于其他最先进的注意力方法。对于Faster R-CNN[43],与原始ResNet-50和ResNet101相比,我们的SCSA在AP方面分别提高了 1.7 % 1.7 \% 1.7% 1.3 % 1.3 \% 1.3%。与其他即插即用的注意力模块(包括CBAM[57]、FCA[41]、ECA[55]和CA[20])相比,SCSA表现出更优的性能,在Cascade R-CNN[3]检测器上实现了 0.4 % 0.4 \% 0.4% 1.0 % 1.0 \% 1.0%的增益。此外,它在不同尺度的目标检测中始终表现出色,证实了其对多尺度特征的强大适应性。
在这里插入图片描述

红外、低光照和小目标检测的结果。如表4所示,令人欣慰的是,与其他同类方法相比,所提出的SCSA在这些基准测试[34, 10,11,13]中的表现更佳,进一步证明了我们的策略在保持通道维度和多语义信息协同概念方面的鲁棒性。值得注意的是,我们的结果表明,在长尾数据集(如FLIR-ADASv2[13])上应用注意力机制仍存在一些局限性,这导致了极小的性能提升甚至下降。这可能是由于注意力机制的压缩和激励策略不适合处理不平衡分布的数据,导致关注高频类别而忽视低频类别的学习。
在这里插入图片描述

4.4 分割

我们还在ADE20K[67]上的语义分割和MSCOCO[30]上的实例分割中测试了其性能。我们基于UperNet[59]网络进行了广泛的比较实验。如表5和表6所示,我们的SCSA显著优于其他注意力方法。具体而言,在ResNet-50和ResNet101上,SCSA在mIoU方面分别提高了 0.94 % 0.94 \% 0.94% 1.02 % 1.02 \% 1.02%,而其他方法仅实现了 0.1 % 0.1 \% 0.1% 0.2 % 0.2 \% 0.2%的提升,甚至有些方法的性能还低于基线模型。同时,在实例分割任务中,SCSA在AP方面实现了 0.3 % 0.3 \% 0.3% 0.7 % 0.7 \% 0.7%的提升,超越了其他同类方法。这些结果表明,我们的方法基于多语义空间信息,在像素级任务中表现出色。
在这里插入图片描述

4.5 消融研究

如表1所示,我们将SCSA应用于ResNet-50,在ImageNet-1K数据集[44]上构建了SCSA-50作为基线,以从四个方面进行消融研究。

宏观设计。我们分别验证了SMSA和PCSA模块,与ResNet-50相比,两者在准确性方面均显示出显著提升。在SMSA中,受多语义信息指导,Top-1准确率显著提高了 1.05 % 1.05\% 1.05%,而PCSA通过减轻多语义差异并促进通道交互,将准确率提高了 0.82 % 0.82\% 0.82%。如果PCSA中没有进行渐进式压缩,准确率会下降 0.18 % 0.18\% 0.18%,这主要是因为在进行直接的全局空间压缩后,PCSA无法利用SMSA提供的判别性空间先验来进行计算。

顺序。我们的研究主要旨在探索跨空间和通道维度的固有多语义空间信息是否能有效指导通道特征的学习。为了进一步证明这种“指导”的好处,我们交换了PCSA和SMSA的顺序。有趣的是,Top-1准确率下降了 0.29 % 0.29\% 0.29%,这进一步验证了我们之前的假设,即空间注意力可以指导通道特征的学习,从而证实了使用多语义信息进行指导的有效性。

尽管归一化有助于减少数据噪声并加速模型收敛[45],但SMSA中归一化的位置可能会产生不同的效果。基于MHSA[52, 9]的主干网络通常在注意力计算之前使用层归一化(LN)[1],而一些即插即用的注意力模块要么省略归一化层[55,24],要么提前应用它们[65,39]。为了探索归一化在SMSA中的必要性和最佳位置,我们通过在注意力之前添加归一化和移除归一化来进行实验。表1中的结果表明,归一化对于注意力机制至关重要,尽管其具体位置影响较小。预归一化有助于处理输入特征之间的变化并提高训练稳定性,但可能会导致特征细节丢失,降低注意力对细粒度信息的敏感性。相反,在注意力计算后应用归一化可以减轻噪声,但也可能削弱模型对重要特征的关注。最终,基于准确性结果,我们选择在SMSA的注意力计算后放置归一化。

微观设计。在上述实验分析确认归一化层在注意力计算中的重要性后,我们考虑组归一化是否更适合从所提议的SCSA中的多个子特征中提取多语义信息。为了研究这一点,我们进行了消融研究,比较了深度神经网络(DNNs)中流行的归一化方法,如BN[26]和LN[1]。结果表明,当GN依次被BN和LN替换时,准确性和推理速度均下降,Top-1准确率分别降至 77.19 % 77.19\% 77.19% 77.20 % 77.20\% 77.20%。这些下降归因于GN在保留子特征间语义模式独立性方面的卓越能力,从而最小化了语义干扰。相反,BN对批量大小的敏感性在处理多语义信息时可能会引入统计噪声[2]。LN通过沿通道维度进行归一化并捕获所有特征的信息,可能会破坏SMSA的多尺度卷积从单个子特征中提取的独特语义模式。这些消融研究表明,GN在涉及多个语义的卷积层中可能是更合适的选择。此外,使用非共享卷积导致的准确性下降和参数增加进一步验证了使用共享卷积在H和W维度上一致学习和建模特征依赖性的有效性。

此外,当用多头和通道混洗操作[66]替换PCSA中的单个注意力头时,性能从 77.49 % 77.49\% 77.49%下降到 77.35 % 77.35\% 77.35%。这种现象主要归因于单个头部促进的强通道间交互,这有效缓解了SMSA中产生的语义差异。为了验证沿高度和宽度维度分解的1D序列上的共享卷积学习,我们将其与非共享卷积学习进行了比较。结果表明,准确性下降了 0.17 % 0.17\% 0.17%,吞吐量降低,并且由于更多的卷积运算,参数和浮点运算数(FLOPs)增加。这证实了跨维度的共享学习能够捕获互补特征,从而增强模型的表达能力。

分支。SMSA中语义特征捕获的丰富性取决于每个分支中使用的分支数量和卷积核大小。每个分支都设计为学习不同的子特征。减少分支数量会削弱模块提取固有多语义特征的能力。为了评估捕获不同语义特征对模型性能的影响,我们使用了不同数量的分支和卷积核大小进行了实验。如表1的“分支”部分所示,双分支结构的准确性超过了单分支结构,而四分支结构又进一步优于双分支结构。这一结果支持了我们在捕获子特征间不同语义模式方面,多分支、多尺度结构的有效性,从而增强了模型的表征能力。随着分支数量的增加,模型的内存访问开销也随之增加,导致推理速度下降。

5 可视化与分析

5.1 注意力可视化

我们通过确保对关键区域给予适当关注来评估我们的方法在缓解语义差异和提高一致性方面的有效性。如图4所示,与其他最先进的注意力机制相比,我们的SCSA(语义通道和空间注意力)明显关注多个关键区域,在显著减少关键信息丢失的同时提供了丰富的特征信息。我们还可视化了SCSA的组成部分,包括SMSA(语义多尺度注意力)和PCSA(位置交叉语义注意力)模块。在没有PCSA模块来处理语义差异的情况下,激活强度的分布仍然不够平衡。如果没有SMSA模块来引导多语义空间,对重要区域的关注可能会受到限制。
在这里插入图片描述

5.2 有效感受野可视化

如图5所示,利用多语义建模的空间结构,我们的SCSA实现了更广泛的感知区域。更大的有效感受野(ERF)有助于网络利用丰富的上下文信息进行集体决策,这是性能提升的重要因素之一。为了验证我们的方法性能受益于更大的ERF,我们从ImageNet-1K验证集[44]中随机抽取了300张不同类别的图像,测量原始图像中每个像素对模型第三阶段和第四阶段输出特征图中心点的贡献,并通过加权和归一化的梯度值量化ERF的范围。可视化结果表明,随着网络层的加深,我们的SCSA的ERF变得越来越明显,这证实了我们的假设和方法的有效性。
在这里插入图片描述

5.3 计算复杂度

给定输入 X ∈ R B × C × H × W X \in \mathbb{R}^{B \times C \times H \times W} XRB×C×H×W,池化大小为 P × P P \times P P×P,深度卷积核大小为 K × K K \times K K×K,我们依次考虑维度解耦、深度共享的1D卷积、归一化、渐进压缩和通道自注意力对SCSA模块的影响。为了简化观察,我们忽略系数。SCSA的计算复杂度为:
Ω ( S C S A ) = O ( H C + W C ) + O ( K H C + K W C ) + O ( H W C ) + O ( P 2 H ′ W ′ C + H ′ W ′ C ) + O ( H ′ W ′ C + H ′ W ′ C 2 ) \begin{aligned} \Omega(SCSA)= & \mathcal{O}(HC+WC)+\mathcal{O}(KHC+KWC) \\ & +\mathcal{O}(HWC)+\mathcal{O}\left(P^{2}H^{\prime}W^{\prime}C+H^{\prime}W^{\prime}C\right) \\ & +\mathcal{O}\left(H^{\prime}W^{\prime}C+H^{\prime}W^{\prime}C^{2}\right) \end{aligned} Ω(SCSA)=O(HC+WC)+O(KHC+KWC)+O(HWC)+O(P2HWC+HWC)+O(HWC+HWC2)
其中, H ′ H^{\prime} H W ′ W^{\prime} W 分别表示渐进压缩操作产生的中间特征图的高度和宽度。

我们观察到,当模型宽度(即通道数 C C C)适中时, Ω ( S C S A ) \Omega(SCSA) Ω(SCSA) 与输入序列的长度呈线性关系。这表明当模型宽度适中时,我们的SCSA可以以线性复杂度进行推理。

5.4 推理吞吐量评估

如表1和表2所示,我们在消融实验中评估了SCSA各个组件的吞吐量,并比较了使用不同注意力机制的各种基准模型的吞吐量。我们使用GeForce RTX 4090 GPU在224×224的分辨率下进行了实验,批量大小为32,以模拟实际应用并最大化GPU利用率。为了最小化变异性,我们对每种注意力机制重复了100次实验,并报告了平均推理时间。具体而言,如表2所示,尽管SCSA略慢于纯通道注意力,但它优于大多数混合注意力机制,包括CBAM、SANet、EMA和CPCA,并实现了最高的准确性。

5.5 目标检测定性结果

如图6所示,我们的方法在具有挑战性的场景中表现出优越的性能,包括遮挡、密集环境、小物体群集和低光照条件。

在这里插入图片描述

5.6 实例分割定性结果

如图7所示,我们的方法对遮挡和重叠的对象进行了更全面和准确的分割,获得了更高的置信度分数。这些结果突出了我们的方法在利用多语义信息以更好地感知相关对象的上下文空间方面的优势。

5.7 语义分割定性结果

从图8可以看出,我们的方法显著改善了重叠和语义相邻对象的分割,有效区分了如坐在椅子上的观众和浴缸附近的厕所等场景。

在这里插入图片描述

6 局限性

我们证明了所提出的即插即用协同注意力方法——空间通道协同注意力(SCSA)在图像分类、目标检测以及实例和语义分割方面表现出色。尽管我们致力于探索不同维度之间的协同作用,并已通过实证验证了利用多语义空间信息来指导通道重新校准并增强特征交互以缓解语义差异的有效性,但在现实世界的部署中,推理延迟仍然是一个重大挑战。我们的方法在适当的模型宽度下实现了模型参数、准确性和推理速度的最佳平衡。然而,在更大的宽度下,推理速度的主要瓶颈在于构建多语义空间结构时使用了深度卷积和分支,这些操作具有较低的浮点运算数(FLOPS),频繁访问内存,且计算密度较低[4,51,36]。我们认为,应根据具体任务和场景优化这些即插即用注意力模块的定位和数量,以确保达到峰值性能。未来,我们将研究更轻量、更快的即插即用注意力机制,探索不同维度之间的协同关系。

7 结论

在本研究中,我们分析了大多数即插即用注意力方法在利用特征和空间及通道维度中固有的多语义信息方面存在的局限性,以及语义差异带来的挑战。为解决这些问题,我们提出了一种新颖的即插即用空间通道协同注意力(SCSA)机制,该机制融合了维度解耦、轻量级多语义指导和语义差异缓解。SCSA利用多语义空间注意力来指导不同通道特征的学习,随后在通道维度上应用单头自注意力来缓解语义差异并促进语义交互。大量实验表明,SCSA在广泛使用的基准测试中始终优于最先进的注意力机制,表现出增强的性能和稳健的泛化能力。我们希望我们的工作能够鼓励进一步探索不同领域中多个维度之间的协同特性。

相关文章:

SCSA:探索空间与通道注意力之间的协同效应

文章目录 摘要1 引言2 相关工作2.1 多语义空间信息2.2 注意力分解 3 方法3.1 共享多语义空间注意力:空间与通道分解3.2 渐进式通道自注意力3.3 协同效应3.4 注意力机制的整合 4 实验4.1 实验设置4.2 图像分类4.3 目标检测4.4 分割4.5 消融研究 5 可视化与分析5.1 注…...

深度学习助力股市预测:LSTM、RNN和CNN模型实战解析

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:众所周知,传统的股票预测模型有着各种各样的局限性。但在我的最新研究中,探索了一些方法来高效预测股市走势,即CNN、RNN和LSTM这些深度学习…...

组件库TDesign的表格<t-table>的使用,行列合并以及嵌入插槽实现图标展示,附踩坑

碎碎念:有点难用,不丝滑(以下介绍的难点不是真的难,只是有点点点难用) 背景:需要实现表格的行列合并以及图标的嵌入,想到使用组件库组件来方便开发 链接:TDesign Web Vue Next 难点…...

jwt在express中token的加密解密实现方法

在我们前面学习了 JWT认证机制在Node.js中的详细阐述 之后,今天来详细学习一下token是如何生成的,secret密钥的加密解密过程是怎么样的。 安装依赖 express:用于创建服务器jsonwebtoken:用于生成和验证JWTbody-parser&#xff1…...

结构体、共用体的字节对齐

结构体 结构体嵌套时:先算一下嵌套的结构体大小 嵌套进来的结构体大小为16字节,仍然进行,8字节对齐 typedef struct {char name[20];//20字节//000开始 20字节 019 struct{int day; //000开始 4字节 003char swx; //004开始 1…...

【YOLOv3】源码(train.py)

概述 主要模块分析 参数解析与初始化 功能:解析命令行参数,设置训练配置项目经理制定详细的施工计划和资源分配日志记录与监控 功能:初始化日志记录器,配置监控系统项目经理使用监控和记录工具,实时跟踪施工进度和质量…...

帧缓存的分配

帧缓存实际上就是一块内存。在 Android 系统中分配与回收帧缓存,使用的是一个叫 ION 的内核模块,App 使用 ioctl 系统调用后,会在内核内存中分配一块符合要求的内存,用户态会拿到一个 fd(有的地方也称之为 handle&…...

基于顺序表实现队列循环队列的处理

文章目录 1.假溢出的现象2.循环队列3.顺序表实现队列架构4.顺序表模拟实现队列5.设计循环队列(校招难度) 1.假溢出的现象 下面的这个就是我们的假溢出的这个现象的基本的来源: 我们的这个队列里面是有9个位置的,我们知道这个队列…...

磁珠选型规范

根据不同的应用场景,磁珠可以分为普通型磁珠,大电流型磁珠和尖峰型磁珠。 (1)普通型磁珠:主要用于电流比较小(小于600mA).无特殊要求的场景,普通型磁珠的直流电阻一般不超过1Ω&…...

linux 点对点语音通话及直播推流实践一: linux USB声卡或耳机 基本配置

inux USB声卡或耳机 基本配置 工具安装查看设备录放音操作录音放音声音配置获取控制信息音量配置本文介绍 linux下alsa声音原件 工具使用方法,包括设备查询、声卡基本配置、录音放音等。 保证 alsa套件可正常操作和配置声卡,是实现SIP语音通话、音视频 采集及推拉流功能的基础…...

3DMAX镂空星花球建模插件FloralStarBall使用方法

3DMAX镂空星花球建模插件FloralStarBall使用教程 就是那个3DMAX镂空星花球建模,再也不用手动做了,使用3DMAX镂空星花球建模FloralStarBall插件可以一键生成! 3DMAX镂空星花球建模插件FloralStarBall,经典星形球体的美丽变体。星形…...

window 安装 nodejs

方式一:使用 fnm 可能会出现 cmd 找不到 nodejs 和 npm 的情况,并且包也可能不知道哪一个 参考链接 Node.js — Download Node.js 使用 powershell 操作,要不然可能有些执行不了 # 安裝 fnm (快速 Node 管理器) winget install Schniz.fnm# …...

Autoware Universe 安装记录

前提: ubuntu20.04,英伟达显卡。 ROS2-Galactic安装 wget http://fishros.com/install -O fishros && . fishros 选择galactic(ROS2)版本,桌面版 ROS2-dev-tools安装 sudo apt install python3-testresources sudo apt update …...

每天40分玩转Django:Django部署概述

一、Django部署概述 在开发阶段,我们通常使用Django内置的轻量级开发服务器runserver。但在生产环境中,为了应对大量并发请求,需要使用高性能的WSGI服务器,如Gunicorn、uWSGI等。同时还要配置Nginx等Web服务器作为反向代理,实现负载均衡、静态文件处理等。下面是Django部署的整…...

使用VS Code开发ThinkPHP项目

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《ThinkPHP 8高效构建Web应用 夏磊 编程与应用开发丛书 清华大学出版社》【摘要 书评 试读】- 京东图书 ThinkPHP 8开发环境安装-CSDN博客 安装ThinkPHP项目的IDE 常用的集成开发环境(IDE)包括P…...

基于深度可分离卷积的MNIST手势识别

基于深度可分离膨胀卷积的MNIST手写体识别 Github链接 项目背景: MNIST手写体数据集是深度学习领域中一个经典的入门数据集,包含了从0到9的手写数字图像,用于评估不同模型在图像分类任务上的性能。在本项目中,我们通过设计一种基…...

Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人

安装 1.拉取项目 项目地址: chatgpt-on-wechat 2.安装依赖 pip3 install -r requirements.txt pip3 install -r requirements-optional.txt3、获取API信息 当前免费的有百度的文心一言,讯飞的个人认证提供500万token的额度。 控制台-讯飞开放平台 添加链接描述…...

Word批量更改题注

文章目录 批量更改批量去除空格 在写文章的时候,往往对图片题注有着统一的编码要求,例如以【图 1- xx】。一般会点击【引用】->【插入题注】来插入题注,并且在引用的时候,点击【引用】->【交叉引用】,并且在交叉…...

Springboot配置嵌入式服务器

一.如何定制和修改Servlet容器的相关配置 修改和server有关的配置(ServerProperties); server.port8081 server.context‐path/tx server.tomcat.uri‐encodingUTF‐8 在yml配置文件的写法: server:port: 8081servlet:context-pa…...

正交三角函数全面阐述

目录 1. 正交性定义 2. 正交三角函数 常见的正交三角函数 3. 正交三角函数的特性 4. 正交三角函数在傅里叶分析中的应用 5. 正交三角函数的应用领域 6. 总结 正交三角函数是指在特定条件下,三角函数之间的内积为零。更具体地说,在数学分析、信号处…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...