CBAM: Convolutional Block Attention Module中文翻译

摘要

我们提出了卷积块注意模块(CBAM),一个简单而有效的用于前馈卷积神经网络的注意模块。给定中间特征图,我们的模块顺序地推导出两个独立维度的注意力图,通道和空间,然后将注意力映射图乘到输入特征映射上进行自适应特征细化。因为CBAM是一个轻量级的通用模块,它可以无缝集成到任何CNN架构中,开销可以忽略不计,并且可以与基本的CNN一起进行端到端训练。我们通过在ImageNet-1K、 MS COCO检测、VOC 2007检测数据集上广泛的实验来验证我们的CBAM。实验表明,在不同的模型下,分类和构造性能得到了一致的改善,展示了CBAM的可扩展性。代码和模型将公开提供。

1 introduction

cnn基于其丰富的表征能力,极大地推动了视觉任务的完成,为了提高cnn网络的性能,最近的研究主要研究了网络的三个重要因素:深度、宽度和基数。
从LeNet架构到当前的residouble-style的网络,为了更丰富的特征,网络变得更深。VGGNet[9]显示,相同形状的块堆栈可以得到良好的结果。ResNet[5]堆叠相同的拓扑残块与跳跃连接,以建立一个非常深的架构。GoogLeNet[10]表明,宽度是提高模型性能的另一个重要因素。Zagoruyko和Komodakis[6]建议在此基础上增加网络宽度。他们已经表明,一个28层的ResNet与增加的宽度可以胜过一个非常深的ResNet与1001层在CI-F AR基准。Xception[11]和ResNeXt[7]被提出来增加网络的基数。它们的经验表明,基数性不仅保存了参数的总数,而且比其他两个因素(深度和宽度)具有更强的表示能力。
除了这些因素,我们还研究了网络架构的一个不同方面——注意力。注意力的重要性在之前的文献中已经被广泛的研究过。注意力不仅告诉我们应该关注哪里,还能提高利益的代表性。我们的目标是通过使用注意机制来增加表现能力:关注重要的特征,并抑制不必要的。在本文中,我们提出了一个新的网络模块,名为“卷积块注意模块”(CBAM)。由于卷积运算通过将跨通道信息和空间信息混合在一起来提取信息特征,我们采用我们的模块来强调这两个主要维度上的有意义的特征:通道和空间轴。为了实现这一点,我们依次应用通道和空间注意模块(如图1所示),这样每个分支就可以分别学习在通道和空间轴上需要注意的“什么”和“哪里”。 因此,我们的模块通过学习强调或抑制哪些信息,有效地帮助信息在网络中流动。
在ImageNet-1K数据集中,通过插入我们的小模块,我们从各种基线网络获得了准确性的提高,显示了CBAM的有效性。我们使用grado - cam[18]可视化训练过的模型,并观察到CBAM增强的网络比它们的基线网络更能聚焦于目标对象。考虑到这一点,我们推测性能的提高来自于对无关杂波的准确关注和降噪。最后,我们在MS COCO和VOC 2007数据集上验证了目标检测性能的提高,证明了CBAM的广泛适用性。由于我们精心设计的模块是轻量级的,在大多数情况下,参数和计算的开销可以忽略不计。
Contribution.
1提出了一种简单而有效的注意力模块(CBAM),可广泛应用于增强cnn的表示能力。
2我们验证了我们的注意模块的有效性,通过广泛的消融试验。
3通过插入我们的轻量级模块,我们验证了在多个基准测试(ImageNet-1K, MS COCO,和VOC 2007)上,各种网络的性能都得到了极大的改善。

2 Related Work

Network engineering. 网络工程已经成为最重要的视觉研究之一,因为精心设计的网络保证了在各种应用中显著的性能改善。自大规模CNN的成功实现以来,人们提出了广泛的架构。一种直观而简单的扩展方法是增加神经网络的深度。Szegedy等人[10]引入了一个使用多分支架构的深启网络,其中每个分支都是精心定制的。当梯度传播的困难导致单纯的深度增加达到饱和时,ResNet[5]提出了一种简单的身份跳连接来缓解深度网络的优化问题。基于ResNet架构,开发了WideResNet[6]、incepo -ResNet[8]、ResNeXt[7]等多种模型。WideResNet[6]提出了一种带有大量卷积滤波器和降低深度的剩余网络。金字塔网[20]是对宽网的严格推广,其中网络的宽度逐渐增加。ResNeXt[7]建议使用分组卷积,并表明增加基数可以提高分类精度。最近,Huang等人[21]提出了一种新的架构——DenseNet。它迭代地将输入特征与输出特征连接起来,使每个卷积块都能从之前的所有块接收到原始信息。虽然大多数最近的网络工程方法主要针对三个因素:深度[19,9,10,5],宽度[10,22,6,8]和cardi- nality[7, 11],但我们关注的是另一个方面,“注意力”,人类视觉系统的一个有趣的方面。
Attention mechanism. 众所周知,注意力在人类感知中起着重要的作用。人类视觉系统的一个重要特性是,人们不会试图一次处理整个场景。相反,人类利用一系列的局部瞥见,选择性地关注突出部分,以便更好地捕捉视觉结构。
最近,有几次尝试[27,28]将注意力处理纳入到大规模分类任务中,以提高cnn网络的性能。Wang等人[27]提出了Residual Attention Network,该网络使用了编码器-解码器风格的注意模块。通过改进特征映射,该网络不仅表现良好,而且对噪声输入具有较强的鲁棒性。我们将学习通道注意力和空间注意力的过程分别分解,而不是直接生成三维注意力图。独立的三维特征图注意力生成过程具有较少的计算和参数开销,因此可以作为预先存在的CNN架构基础的即插即用模块。
与我们的工作更加接近,Hu等人[28]引入了一个紧凑的模块来开发渠道间的关系。在他们的SE-Net模块中,他们使用全局平均集合特征来计算信道上的注意力。然而,为了推断出良好的通道注意力,我们表明这些都是次优特征,我们建议使用最大汇集特征。它们还会忽略空间注意力,而空间注意力在决定关注“哪里”时起着重要作用。在我们的CBAM中,我们基于一种有效的架构同时利用了空间注意力和渠道注意力,并通过经验验证了利用两者都优于只使用渠道注意力。此外,我们的经验表明,我们的模块是有效的检测任务(MS-COCO和VOC)。特别是,我们仅仅通过将我们的模块放在VOC2007测试集中现有的一次性检测器[30]的顶部,就实现了最先进的性能。
CBAM: Convolutional Block Attention Module中文翻译_第1张图片图1 CBAM的概述,该模块有两个顺序子模块:通道和空间。在深度网络的每个卷积块上,通过CBAM模块自适应地细化中间特征图。

3 Convolutional Block Attention Module

给定中间特征在这里插入图片描述
作为输入,CBAM依次推导出一维通道注意图 在这里插入图片描述
和一个2D空间注意图在这里插入图片描述
如图1所示。整体的注意过程可以总结为:
在这里插入图片描述

⊗表示element-wise乘法(两个map同一个位置的值直接相乘),在乘法中,注意力值被相应地广播(复制),通道注意力值沿空间维度播出,反之亦然。 在这里插入图片描述
是最后的输出。图2描述了每个注意图的计算过程。下面介绍每个注意模块的细节。
CBAM: Convolutional Block Attention Module中文翻译_第2张图片

图2 各注意子模块图。如所示,通道子模块利用共享网络的最大池输出和平均池输出; 空间子模块利用类似的两个输出,沿着通道轴汇集并将它们转发到卷积层。
通道注意力模块 我们利用特征的通道间关系生成通道注意图。因为特征图的每个通道都被认为是一个特征检测器,通道的注意力集中在“什么”是有意义的输入图像。为了有效计算信道注意力,我们压缩了输入特征图的空间维度。对于空间信息的聚合,一般采用平均池法。周[32]建议使用它来有效地学习目标对象的程度,Hu等[28]在他们的注意模块中使用它来计算空间统计。除了之前的研究,我们认为,max-pooling汇集了另一个关于独特物体特征的重要线索,从而推断出更精细的注意力渠道。因此,我们同时使用了平均池和最大池。我们的经验证明,利用这两个特征大大提高了网络的表示能力,而不是单独使用它们,展示了我们设计选择的有效性。我们将在下面详细描述操作
我们首先通过使用AP和MP操作聚合特征图的空间信息,生成两种不同的空间上下文描述符:在这里插入图片描述
。 ,分别表示AP(average pooling)和MP(max pooling)后的特征图。然后,这两个描述符被转发到一个共享网络,以产生我们的通道注意力图在这里插入图片描述
。共享网络由一个隐含层的多层感知器(MLP)组成。为了减少参数开销,隐藏的激活大小设置为在这里插入图片描述
将共享网络应用到每个描述符后,我们使用按元素进行求和的方法合并输出的特征向量。简而言之,通道注意计算为;
在这里插入图片描述

其中,σ是指sigmoid函数,在这里插入图片描述
请注意,MLP权重W0和W1对于两个输入都是共享的,ReLU激活函数后面跟着W0。
空间注意力模块 利用特征间的空间关系生成空间注意图,与通道注意力不同,空间注意力关注的是“哪里”是一个有信息的部分,这是对通道注意力的补充。为了计算空间注意力,我们首先在通道轴上应用平均池化和最大池化操作,并将它们连接起来生成一个有效的特征描述符。沿通道轴应用池化操作可以有效地突出显示信息区域。在连接的特征描述符上,应用卷积层生成空间注意图 在这里插入图片描述
编码在哪里强调或抑制。我们将在下面详细描述操作。
我们通过使用两个池操作来聚合一个feature map的通道信息,生成两个2D图在这里插入图片描述
, 每个都表示通道中AP的特性和MP的特性。然后通过标准的卷积层将它们连接和卷积,生成我们的二维空间注意力图。简而言之,空间注意的计算方法为:
在这里插入图片描述

其中,σ是指sigmoid函数,在这里插入图片描述
表示一个滤波器大小为7×7的卷积运算。
注意力模块的安排 给定一个输入图像,两个注意力模块,通道和空间,计算互补,分别聚焦“what”和“where”。 考虑到这一点,两个模块可以以并行或顺序的方式放置。我们发现顺序排列比并行排列的结果更好。对于序列过程的排列,实验结果表明通道一阶比空间一阶略好。我们将在4.1讨论网络的实验结果。

4 实验

我们在标准基准上评估CBAM: ImageNet-1K用于图像分类;MS COCO和VOC 2007用于目标检测。为了更好地进行比较,我们在PyTorch框架中复制了所有评估过的网络并报告我们在整个实验中重现的结果。
为了彻底评估我们最后一个模块的效果,我们首先进行了广泛的烧蚀实验。然后,我们验证了CBAM在没有花哨功能的情况下优于所有基线,演示了CBAM跨不同架构和不同任务的通用适用性。人们可以将CBAM无缝地集成到任何CNN架构中,并共同培训组合的CBAM-enhanced网络,图3为CBAM与ResNet ResBlock的一个结合的示意图。
CBAM: Convolutional Block Attention Module中文翻译_第3张图片

图3 CBAM与ResNet[5]中的ResBlock集成。该图显示了我们的模块在ResBlock中集成时的确切位置。我们应用CBAM上的卷积输出在每个块上。
4.1 Ablation studies
在本节中,我们以经验证明我们的设计选择的有效性。在本次消融研究中,我们使用ImageNet-1K数据集,采用ResNet-50[5]作为基础架构。ImageNet-1K分类数据集[1]由120万张用于训练的图像和50,000张用于验证的图像组成,其中包含1,000个对象类。我们采用与[5,36]相同的数据增强方案进行训练,在测试时采用单作物评价,其大小为224×224。学习速率从0.1开始,每30个epoch下降一次。我们为90个时代训练网络。下面[5,36,37],我们报告了验证集上的分类错误。
我们的模块设计过程分为三个部分。首先寻找计算通道注意力的有效方法,然后是计算空间注意力。最后,我们考虑了如何结合信道注意模块和空间注意模块。我们在下面解释每个实验的细节。
Channel attention. 我们通过实验验证了使用AP和MP特征能够更好地进行注意力推断。我们比较了3种不同的渠道关注:平均池化,最大池化,以及两个池化的联合使用。注意,带有平均池的通道注意模块与SE[28]模块相同。同样,在使用两个池时,由于两个聚合的信道特征位于同一语义嵌入空间,我们使用共享MLP用于注意推断来保存参数。在本实验中,我们只使用信道注意模块,并将减少比定为16。
各种池化方法的实验结果如表1所示。我们观察到最大汇集的特征和平均汇集的特征一样有意义,比较了从基线提高的准确性。然而,在SE[28]的工作中,他们只利用了平均汇集的特性,而忽略了MP的重要性。我们认为编码最显著部分程度的最大汇聚特征可以补偿编码全局统计量的平均汇聚特征。因此,我们建议同时使用这两个特性,并对这些特性应用共享网络。然后,共享网络的输出通过按元素进行求和进行合并。我们的经验表明,我们的通道注意方法是一个有效的方法,以推动性能进一步远离SE[28]没有额外的可学习参数。作为一个简短的结论,在接下来的实验中,我们在我们的通道注意力模块中使用了平均和最大混合特征,减少比为16。
CBAM: Convolutional Block Attention Module中文翻译_第4张图片

表1 不同通道注意方法的比较。我们观察到,使用我们
提出的方法优于最近提出的挤压和激励的方法
Spatial attention 在给定信道特征细化的情况下,探索了一种计算空间注意的有效方法。设计理念与渠道注意分支对称。为了生成一个二维空间注意力地图,我们首先计算一个二维描述符,该描述符编码所有空间位置上每个像素的信道信息。然后我们对二维描述符应用一个卷积层,得到原始的注意图。最后的注意力图用sigmoid函数归一化。
我们比较了生成2D描述符的两种方法: 通道池在通道轴上使用平均和最大池以及标准的1×1卷积,将通道尺寸减小为1。另外,我们在下面的卷积层研究核大小的影响: 内核大小为3和7。在实验中,我们将空间注意模块放置在之前设计的通道注意模块之后,因为最终的目的是将两个模块一起使用。
实验结果见表2。我们可以观察到,通道池产生了更好的准确性,表明显式建模的池导致更好的注意力推断,而不是可学习的加权通道池 (实现为1×1卷积)。在对不同卷积核大小的比较中,我们发现采用更大的核大小在两种情况下都能产生更好的精度。这意味着需要一个开阔的视野(即大的感受野)来决定重要的空间区域。考虑到这一点,我们采用通道池化方法和核大小较大的卷积层来计算空间注意力。在一个简短的结论中,我们使用了通道轴上卷积核大小为7的平均和最大汇集特征作为我们的空间注意模块。
CBAM: Convolutional Block Attention Module中文翻译_第5张图片

表2 不同空间注意方法的比较。使用所提议的通道池(即沿通道轴的
平均和最大池)和大内核大小7来进行后续卷积操作的性能最好。
Arrangement of the channel and spatial attention. 在本实验中,我们比较了三种不同的通道和空间注意子模块的排列方式:顺序通道-空间、顺序空间-通道,以及两种注意子模块的平行使用。由于每个模块的功能不同,其顺序可能会影响整体性能。例如,从空间的角度来看,通道注意力是全局应用的,而空间注意力是局部工作的。此外,我们很自然地会认为,我们可以结合两种注意力输出来构建一个3D注意力地图。在这种情况下,两个注意模块可以并行应用,然后将两个注意模块的输出相加,用sigmoid函数进行归一化。
表3总结了不同注意安排方法的实验结果,从结果中,我们可以发现,按顺序生成一个注意力图比并行生成一个更好的注意力图。此外,通道一阶的性能略优于空间一阶。请注意,所有的安排方法都优于单独使用通道注意力,这表明利用两个注意力是至关重要的,而最佳的安排策略进一步推动性能。
CBAM: Convolutional Block Attention Module中文翻译_第6张图片

表3 通道注意和空间注意相结合的方法。同时使用两种注意力是至关重要的,而最佳组合策略(即顺序、渠道优先)进一步提高了准确性。
Final module design 在整个消融研究中,我们设计了通道注意模块,空间注意模块,以及两个模块的排列。最后的模块如图1和图2所示:通道注意模块和空间注意模块都选择了平均和最大pooling; 在空间注意模块中,我们采用核大小为7的卷积; 我们按顺序排列通道和空间子模块。也就是我们最后的模块。ResNet50+ CBAM)的top-1 error为22.66%,远低于SE[28]如表4所示。

接下来作者描写了在imagenet,COCO,VOC 上的实验结果,以及和Grad-CAM结合的结果。就不翻译了。

5 Conclusion

我们提出了 CBAM,一种改进CNN网络表示能力的新方法。我们将基于注意力的特征细化应用于通道和空间两个不同的模块,在保持较小的开销的情况下实现了可观的性能提升。对于通道注意力,我们建议将最大集中特征与平均集中特征一起使用,这样可以产生比SE更好的注意力。利用空间注意力进一步提升性能。我们的最后一个模块(CBAM)学习什么和在哪里有效地强调或抑制和细化中间特性。为了验证其有效性,我们使用各种最先进的模型进行了广泛的实验,并确认CBAM在三个不同的基准数据集ImageNet-1K, MS COCO, and VOC 2007.上优于所有基线。此外,我们可以看到模块如何准确地推断给定的输入图像。有趣的是,我们观察到我们的模块引导网络正确地聚焦于目标对象。我们希望CBAM已成为各种网络体系结构的重要组成部分。

附:第一次使用Markdown编辑,有的地方直接贴了图片,可能会影响到您的阅读。结合原文看会更好。

你可能感兴趣的:(算法,计算机视觉,神经网络)