首页 > 其他分享 >EMA跨空间学习的高效多尺度注意模块

EMA跨空间学习的高效多尺度注意模块

时间:2023-12-26 17:22:05浏览次数:26  
标签:EMA 卷积 尺度 并行 特征 模块 维度 通道

跨空间学习的高效多尺度注意模块

摘要

在各种计算机视觉任务中,通道或空间注意机制在产生更多可识别的特征表示方面具有显著的有效性。然而,通过通道降维来建模跨通道关系可能会对提取深度视觉表征带来副作用。

本文提出了一种新型的高效多尺度注意力(EMA)模块。为了保留每个通道上的信息和减少计算开销,我们将部分通道重构为批处理维度,并将通道维度分组为多个子特征,使空间语义特征在每个特征组内均匀分布。

具体而言,除了编码全局信息以重新校准每个并行分支中的通道权重外,还通过跨维交互进一步聚合两个并行分支的输出特征,以捕获像素级成对关系。我们使用流行的基准(例如CIFAR-100、ImageNet-1k、MS COCO和VisDrone2019)对图像分类和目标检测任务进行了广泛的消融研究和实验,以评估其性能。代码可从https://github.com/YOLOonMe/EMAattention-module获得。

1、简介

随着深度卷积神经网络(cnn)的发展,越来越多的网络拓扑被用于图像分类和目标检测任务领域。当我们将cnn扩展到多个卷积层时,它表现出显著的增强学习特征表示的能力。

然而,它会导致堆栈更多的深度卷积副本,并且需要消耗大量的内存和计算资源,这是构建深度cnn的主要缺点[1],[2]。作为一种替代方法,注意机制方法由于其灵活的结构特点,不仅有利于学习更具判别性的特征表示,而且可以很容易地插入到cnn的骨干结构中。因此,注意力机制引起了计算机视觉研究领域的广泛关注。

人们普遍认为,目前提出的注意机制主要有三种类型:通道注意、空间注意和两者兼而有之。作为通道注意力的代表,挤压激励(SE)明确地模拟了跨维相互作用,以提取通道注意力[3]。卷积块注意模块(Convolutional block attention module, CBAM)[4]利用特征映射中空间维度和通道维度之间的语义相互依赖关系建立了跨通道和跨空间的信息。因此,CBAM在将跨维注意力权重整合到输入特征中显示出巨大的潜力。但是,池操作的手动设计涉及复杂的处理,会带来一些计算开销。为了克服计算成本限制的缺点,提出了一种长期有效的方法,即使用特征分组方法将不同资源上的特征分成多组。显然,它可以使每组特征在空间中均匀分布。在此基础上,空间分组增强(SGE)注意[6]将信道维度划分为多个子特征,并改进了不同语义子特征表示的空间分布,取得了优异的性能。

控制模型复杂度最有效的方法之一是使用带信道降维的卷积。与SE注意相比,坐标注意(CA)[8]将特定方向的信息沿空间维数方向嵌入到信道注意中,并选择合适的信道维数降维率,取得了相当的性能。相反,与粗粒度CV任务相比,这种现象可能是最常见的问题,可以减轻逐像素回归中维数降低的计算负担。受估计高度非线性像素语义的思想的启发,极化自注意(PSA)[9]完全折叠了沿对应通道维度的输入特征映射,并保留了高光谱分辨率。由于压缩比小,因此具有很大的性能提升潜力。虽然适当的信道降维率具有较好的性能,但在提取深度视觉表征时可能会带来副作用,本文探讨了高效信道注意(ECA)[10]中不降维的效率。

大层深度对提高cnn的表示能力起着重要的作用。然而,它不可避免地导致更多的顺序处理和更高的延迟[11],[12]。与将大深度注意力描述为线性序列不同,Triplet attention (TA)[13]提出了一种三重平行分支结构,用于捕获不同平行分支之间的跨维相互作用。通过并行子结构,Shuffle attention (SA)[14]将通道维度分组为多个子特征并并行处理,从而可以跨多个处理器高效地并行化。此外,并行网络(ParNet)[15]构建了并行子网络,提高了特征提取的效率,同时保持了小深度和低延迟。

从上述注意机制的启示可以看出,跨维度的相互作用有助于通道或空间注意预测。在分组结构的基础上,改进了CA的顺序处理方法,提出了一种不降维的高效多尺度关注(EMA)方法。注意,在这里,只有两个卷积核将分别放置在并行子网络中。其中一个并行子网是1x1卷积内核,其处理方式与CA中所示的相同,另一个是3x3卷积内核。为了证明我们提出的EMA的通用性,第4节中给出了详细的实验,包括在CIFAR-100、ImageNet-1k、COCO和VisDrone2019基准测试上的结果。图像分类和目标检测任务的实验结果如图1所示。我们的主要贡献如下:

  • 我们提出了一种新的跨空间学习方法,并设计了一个多尺度并行子网络来建立短期和长期依赖关系。

  • 我们考虑了一种通用方法,该方法将部分通道维度重塑为批处理维度,以避免通过通用卷积进行某种形式的降维。

  • 除了在不降低通道维数的情况下在每个并行子网中构建本地跨通道交互之外,我们还通过跨空间学习方法融合了两个并行子网的输出特征映射。

  • 与CBAM、基于归一化的注意力模块(NAM)[16]、SA、ECA和CA相比,EMA不仅效果更好,而且在所需参数方面效率更高。

image-20231115174859293

图1。对比以ResNet50[17]为骨架的不同关注方法的准确率,发现EMA具有最高的Top-1准确率,且模型复杂度较低。模型还在COCO基准上以yolov5s (v6.0)[18]标准骨干进行了评估,表明EMA是高效的。

2、相关工作

特征分组。特征分组在之前的文献中已经被广泛研究。为了缓解计算机计算预算的限制,AlexNet 表明分组卷积有利于将模型分布在更多 GPU 资源上的两组中 [19]。随着特征分组数量的增加,ResNeXt已被证明子特征的激活会在空间上受到不同模式和噪声背景的影响[20]。 Res2Net 被假设为一种分层模式,用于传输分组的子特征,使 CNN 能够在多个尺度上表示特征 [21]。 SGE着眼于特征分组结构,利用整个组空间的整体信息来加强语义区域的特征学习并压缩噪声,但未能对空间注意力和通道注意力之间的相关性进行建模。为了强调考虑通道和空间注意特征的有意义的表示能力,SA将通道维度分为多个组,并使用平均分布方法将这些组引入两个平行分支。因此,两个分支可以分别对空间和通道注意力信息之间的相关性进行建模。然而,仅考虑部分通道,以利用通道的相互关系并通过融合空间和通道信息来构建信息特征。

多流网络。考虑到一层又一层的堆叠会增加网络的深度,以学习越来越抽象的特征。作为一种细粒度的注意力机制,PSA利用并行结构对高质量逐像素回归任务的长程依赖性进行建模,并取得了显着的成果。尽管平行的子结构增强了视觉表示能力的提高,它们带来了许多额外的参数和计算,不太适合应用。相应地,三元组注意力将跨通道和空间信息与旋转操作混合到三个并行分支中,以学习越来越抽象的特征。然而,捕获的注意力权重是通过简单平均直接聚合的,这不利于提高深层特征的可区分性。

多尺度卷积。不同的内核大小可以使 CNN 在同一处理阶段收集多尺度空间信息。为了丰富特征空间,Inception [22]提出了多分支结构,其中每个分支的局部感受野不固定。因此,聚合方法使 CNN 能够聚合来自不同分支的多尺度信息。选择性核网络[23]采用自适应选择策略,实现神经元的自适应感受野大小,以有效丰富特征表示。此外,EPSANet [24]用已建立的多尺度金字塔结构取代了3x3卷积,以局部方式建模跨通道交互并独立学习多尺度空间信息。

与上述注意模块相比,我们提出的多尺度注意模块显示出更好的性能改进。与上述注意力方法不同,其中学习的注意力权重通过简单的平均方法聚合,我们通过跨空间学习方法融合并行子网络的学习注意力图。它使用矩阵点积运算,旨在捕获像素级成对关系并突出显示所有像素的全局上下文[25]、[26]。

image-20231115180251374

图2.我们提出的 EMA 的插图。这里,“g”表示划分的组,“X Avg Pool”表示1D水平全局池化,“Y Avg Pool”表示1D垂直全局池化。

3.高效的多尺度注意力

在本节中,我们首先回顾坐标注意块,其中位置信息被嵌入到通道注意图中以混合跨通道和空间信息。我们将开发和分析我们提出的 EMA 模块,其中并行子网络块有助于有效捕获跨维度交互并建立维度间依赖关系。

3.1.重新审视协调注意力 (CA)

如图所示。如图3(a)所示,CA块首先可以被视为与SE注意模块类似的方法,其中利用全局平均池操作来对跨通道信息进行建模。一般来说,通道方面的统计数据可以通过使用全局平均池化来生成,其中全局空间位置信息被压缩到通道描述符中。与SE略有不同的是,CA将空间位置信息嵌入到通道注意力图中以增强特征聚合。

请注意,CA 会将原始输入张量分解为两个并行的一维特征编码向量,以利用空间位置信息对跨通道依赖性进行建模。首先,其中一条并行路线直接来自沿水平维度方向的一维全局平均池,因此可以被视为沿垂直维度方向的位置信息的集合[8]。令原始输入张量 C H W X    表示中间特征图,其中 C 表示输入通道的数量,H 和 W 分别表示输入特征的空间维度。因此,用于在高度 H 处的 C 中沿水平维度方向编码全局信息的一维全局平均池可以表示为

image-20231115180630699

其中 xc 表示第 c 个通道的输入特征。通过这样的编码过程,CA捕获水平维度方向上的长程依赖性,并保留垂直尺寸方向的精确位置信息。类似地,另一条路线直接来自沿水平维度方向的一维全局平均池化,因此可以被视为沿垂直维度方向的位置信息的集合。该路线利用沿垂直维度方向的一维全局平均池化来捕获空间上的长距离相互作用,并保留沿水平维度方向的精确位置信息,加强对感兴趣的空间区域的关注。 C 中宽度 W 的池化输出可以表示为

image-20231115180808898

其中 xc 表示第 c 个通道的输入特征。接下来,输入特征可以对全局特征信息进行编码,并帮助模型分别沿两个空间方向捕获全局信息,这两个方向都没有卷积。此外,它生成两个并行的一维特征编码向量,然后将一个向量排列为另一种向量形状,然后跨卷积层连接两个并行的一维特征编码向量。这两个并行的一维特征编码向量将共享一个具有降维功能的 1x1 卷积。 1x1 内核是为了使模型能够捕获局部跨通道交互并与通道卷积共享相似性。然后,CA进一步将1x1卷积核的输出分解为两个并行的一维特征编码向量,并在每条并行路径中分别堆叠一个1x1卷积,后面跟随一个非线性Sigmoid函数。最后,学习到的两条并行路线的注意力图权重将用于聚合原始中间特征图作为最终输出。因此,CA不仅保留了精确的位置信息,还通过编码通道间和空间信息有效地利用了长距离依赖性。

不言而喻,CA 将精确的位置信息嵌入到通道中,并捕获空间上的长距离交互,取得了令人印象深刻的性能。两个一维全局平均池被设计用于沿两个空间维度方向编码全局信息,并分别沿不同维度方向捕获空间上的远程交互。然而,它忽略了整个空间位置之间相互作用的重要性。此外,1x1 核卷积的有限感受野不利地阻碍了局部跨通道交互的建模和上下文信息的利用。

3.2.多尺度注意力(EMA)模块

并行子结构有助于网络避免更多的顺序处理和大深度。鉴于上面定义的并行处理策略,我们在 EMA 模块中采用它。 EMA的整体结构如图所示。 3(b)。在本节中,我们将讨论 EMA 如何在卷积运算中不降低通道维数的情况下学习有效的通道描述,并为高级特征图产生更好的像素级注意力。具体来说,我们只从 CA 模块中挑选出 1x1 卷积的共享组件,在我们的 EMA 中将其命名为 1x1 分支。为了聚合多尺度空间结构信息,将 3x3 内核与 1x1 分支并行放置以实现快速响应,我们将其命名为 3x3 分支。考虑到特征分组和多尺度结构,有效地建立短期和长期依赖关系是对获得更好的性能有利的。

image-20231115181221566

特征分组。对于任何给定的输入特征图 image-20231226152717363,EMA 会将 X 跨通道维度方向划分为 G 个子特征,以学习不同的语义,其中组样式可以通过image-20231226152807593.在不失一般性的情况下,我们让 G<<C 并假设学习到的注意力权重描述符将用于加强每个子特征中感兴趣区域的特征表示。

并行子网。神经元巨大的局部感受野使神经元能够收集多尺度的空间信息。因此,EMA 采用三个并行路线来提取分组特征图的注意力权重描述符。其中两条平行路线位于 1x1 分支,第三条路线位于 3x3 分支。为了捕获跨所有通道的依赖关系并减轻计算预算,我们对通道方向的跨通道信息交互进行建模。更具体地说,在 1x1 分支中采用两个 1D 全局平均池化操作分别沿两个空间方向对通道进行编码,并且在 3x3 分支中仅堆叠单个 3x3 内核以捕获多尺度特征表示。

考虑到普通卷积的卷积函数的维度中没有批系数,卷积核的数量与前向运算输入的批系数无关。例如,Pytorch 中普通 2D 卷积核的参数维度为 [oup,inp,k,k] ,不涉及批量维度,其中 oup 表示输入端的输出平面,inp 表示输入特征的输入平面 , k 表示内核大小。因此,我们将 G 组重新整形并排列到批量维度中,并重新定义形状为 C//GxHxW的输入张量。一方面,通过与CA类似的处理,我们将两个编码特征沿图像高度方向连接起来,并使其共享相同的1x1卷积,而无需在1x1分支中进行降维。将 1x1 卷积的输出分解为两个向量后,使用两个非线性 Sigmoid 函数来拟合线性卷积上的二维二项分布。为了在 1x1 分支中的两个并行路径之间实现不同的跨通道交互特征,我们通过简单的乘法聚合每个组内的两个通道注意图。另一方面,3x3 分支通过 3x3 卷积捕获局部跨通道交互,以扩大特征空间。这样,EMA不仅对通道间信息进行编码以调整不同通道的重要性,而且将精确的空间结构信息保留到通道中。

跨空间学习。受益于在通道和空间位置之间建立相互依赖关系的能力,最近在各种计算机视觉任务中得到了广泛的研究和广泛的应用[27],[28]。在PSA中,它耗尽了仅通道和仅空间分支内的表示能力,并在注意力学习中保持最高的内部分辨率来解决语义分割。受此启发,我们提供了一种不同空间维度方向的跨空间信息聚合方法,以实现更丰富的特征聚合。请注意,这里我们仍然引入了两个张量,其中一个是 1x1 分支的输出,另一个是 3x3 分支的输出。然后,我们利用2D全局平均池化对1x1分支的输出中的全局空间信息进行编码,最小分支的输出将在通道特征的联合激活机制之前转换为相应的维度形状,即image-20231226154857289 [9]。 2D全局池化操作被表述为:

image-20231226154939532

其设计用于编码全局信息和建模远程依赖关系。为了高效
计算,自然非线性函数Softmax在2D全局平均池的输出处使用2D高斯映射来拟合线性变换。通过将上述并行处理的输出与矩阵点积运算相乘,我们得出了第一个空间注意力图。为了观察这一点,它在同一处理阶段收集不同尺度的空间信息。此外,我们同样利用2D全局平均池化在3x3分支中编码全局空间信息,1x1分支将在通道特征的联合激活机制之前直接转换为相应的维度形状,即image-20231226155529169

之后,导出第二个空间注意力图,它保留了整个精确的空间位置信息。最后,每组内的输出特征图被计算为两个生成的空间注意力权重值的聚合,后跟 Sigmoid 函数。它捕获像素级成对关系并突出显示所有像素的全局上下文。 EMA 的最终输出与 X 的大小相同,这对于堆叠到现代架构中来说是高效且有效的。

如上所述,我们可以知道注意力因素仅受每组内全局和局部特征描述符之间的相似性的指导。考虑到跨空间信息聚合方法,将对远程依赖关系进行建模,并将精确的位置信息嵌入到EMA中。融合不同尺度的上下文信息使 CNN 能够对高级特征图产生更好的像素级关注。随后,卷积核的并行化似乎是一种更强大的结构,可以通过使用跨空间学习方法来处理短程和长程依赖性。与形成的有限感受野的渐进行为相反,并行利用 3x3 和 1x1 卷积可以利用中间特征之间的更多上下文信息。

image-20231226171124607

表 1:CIFAR-100 上各种注意力方法在网络参数(以百万为单位)、FLOPs、Top-1 和 Top-5 验证准确度(%)方面的比较。

image-20231226171442777

表2:不同注意力方法在COCO和VisDrone val数据集上的物体检测结果。 EMA Attention 可带来更高的性能增益,但计算开销略高。

标签:EMA,卷积,尺度,并行,特征,模块,维度,通道
From: https://www.cnblogs.com/dxmstudy/p/17928857.html

相关文章

  • 查看onnx模型结构-使用Netron模块
    查看onnx模型结构-使用Netron模块1安装$pipinstallnetron2可选-查看安装的路径$pipshownetron3查看onnx结构importnetron#�??�?ONNX模�??�??件�??路�?onnx_model_path=r'yolo5/yolov5n-seg_toXiaoLiu/model/yolov5n-seg.onnx'#�?�"�netron�?��?��?�??ONNX模�??net......
  • MySql的information_schema.processlist库学习之"如何检测出大数据sql查询"
    1.如何通过MySql检测出大数据sql查询一般数据库都会存在:information_schema数据库 检测出大数据sql查询[time时间越长说明,数据量越大,要根据公司的限度来衡量,我的思路是500以上都要查看是否是大数据的范畴]2.案例--检测出大数据sql查询[time时间越长说明,数据量越大,要根据......
  • DC电源模块如何简化电路设计
    BOSHIDADC电源模块如何简化电路设计DC电源模块是一种集成了直流电源电路的模块,可以提供稳定的直流电源输出。使用DC电源模块可以简化电路设计,具体步骤如下:1.选择合适的DC电源模块:根据电路所需的电压和电流要求,选择合适的DC电源模块。通常,DC电源模块有不同的输出电压和电流等级可......
  • DC电源模块的安装和使用步骤是什么?
    BOSHIDADC电源模块的安装和使用步骤是什么?安装和使用DC电源模块的步骤如下:1.确定模块的电源需求:查阅模块的规格和说明书,确定所需的输入电压范围和输出电流能力。2.配置电源线:根据电源模块的输入要求,选择合适的电源线。确保电源线具备足够的额定电流和正确的接线方式。3.连接电......
  • 关于DC电源模块有哪些常见的输入和输出参数?
    关于DC电源模块有哪些常见的输入和输出参数?BOSHIDADC电源模块是一种用于将交流电转换为直流电的设备,广泛应用于电子设备、通信设备、工业控制、仪器仪表等各个领域。在选择和使用DC电源模块时,了解其常见的输入和输出参数是很重要的。输入参数是指DC电源模块的工作电压范围和电流需......
  • Json Schema简介和Json Schema的.net实现库 LateApexEarlySpeed.Json.Schema
    什么是JsonSchema?JsonSchema是一种声明式语言,它可以用来标识Json的结构,数据类型和数据的具体限制,它提供了描述期望Json结构的标准化方法。利用JsonSchema,你可以定义Json结构的各种规则,以便确定Json数据在各个子系统中交互传输时保持兼容和一致的格式。一般来说,系统可以自......
  • 基于python的cat1模块的AT指令串口通信解析
    一前记使用cat1模块做产品的过程中,遇到了不少问题。其中很重要的一个就是怎么测试单个模块的好坏。这里笔者专门写了一个工具,来测试cat1模块的是否好用,这里做一个分享吧。 二源码解析这个是一个完全可以工作的程序,只需要改成你的模块的即可;#-*-coding:utf-......
  • Spring 框架模块深度解析:核心容器、数据访问、Web 层与其他关键模块
    Spring可能成为您的所有企业应用程序的一站式商店。但是,Spring是模块化的,允许您挑选适用于您的模块,而无需引入其他模块。下面的部分提供了SpringFramework中所有可用模块的详细信息。SpringFramework提供了大约20个模块,可以根据应用程序要求使用。核心容器核心容器由C......
  • Python——第五章:csv模块
    未来我们会使用爬虫获取到一些json文件,例如去英雄联盟官方爬取英雄的数据库查看代码{"hero":[{"heroId":"1","name":"\u9ed1\u6697\u4e4b\u5973","alias":"Annie","title":"\u5b89\u59ae","roles"......
  • BOSHIDA DC电源模块有哪些注意事项和使用技巧?
    BOSHIDADC电源模块有哪些注意事项和使用技巧?DC电源模块的注意事项和使用技巧包括以下几点: 1.选择适当的电源模块:根据需要选择合适的电源模块,考虑电压、电流和功率等参数。确保模块能够满足所需的电力要求。2.输入电压范围:注意检查模块的输入电压范围,以确保输入电压在其工......