张盼盼,李其申,杨词慧
(1. 南昌航空大学信息工程学院,南昌330063; 2. 江西省图像处理与模式识别重点实验室(南昌航空大学),南昌330063)
(*通信作者电子邮箱li_qishen@163.com)
图像分类是计算机视觉领域的一个重要研究方向,其主要任务是通过计算机对图像中的目标进行自动识别,并将其归属到对应的类别集合中[1-3]。传统的图像分类算法主要包含图像预处理、图像特征提取和分类器分类三个步骤,其中,特征提取是图像分类中最核心的步骤,该步骤所提取的特征优劣直接影响到图像分类的性能。传统的图像分类算法提取的特征具有较大的冗余性,并且不具备较好的泛化性,为此研究者们提出了很多优秀的神经网络模型[4-8]。
目前,卷积神经网络因其结构在图像处理方面有着独特的优势,因此被广泛应用于图像分类任务。然而,由于图像经过多层卷积和池化操作,丢失了大量的重要信息,导致卷积神经网络及其改进模型所提取的特征对目标的表征能力不足。针对此类问题,研究者们提出一系列特征增强模块,以提高网络中间特征的健壮性。然而大多数特征增强模块不仅增加了原始神经网络模型的计算量,同时对精度的提升效果也不尽人意。
本文提出了一种基于轻量级分组注意力模块(Lightweight Group-wise Attention Module,LGAM)对现有的神经网络模型进行增强的算法。该模块结合输入特征图的通道和空间信息对输入特征图进行重构,以提高现有神经网络模型的特征表征能力。通过在Cifar10和Cifar100数据集以及部分ImageNet2012数据集上将LGAM 增强后的网络模型和增强前的进行对比实验,证实了本文模块的通用性和有效性,同时还将本文模块与其他特征增强模块进行对比,证实了本文模块是一种更加轻量级的模块。
近年来,随着深度学习的广泛使用,图像分类研究获得了快速发展,但图像分类任务中现有的神经网络模型仍然存在对分类对象特征表征能力不足等问题。注意力机制通过凸显特征图中具有较多有效信息的特征表示,同时抑制无用信息的干扰,有效提高神经网络模型的分类性能,该机制已成功应用于很多计算机视觉任务[9-12]。文献[13]提出采用残差注意力网络,通过引入沙漏形式的注意力模块实现跨空间和通道维度的全局重点;但整个操作在3D 特征图上进行,没有对特征图通道和空间维度进行解耦,因此计算量较大。文献[14]提出的SE(Squeeze-and-Excitation)模块是一种有效的轻量级门控机制,通过学习通道重要性的方式自适应校准特征图。然而SE 模块只关注了特征图通道方面的影响而忽略了空间维度的重要性。除了采用通道注意力机制之外,文献[15]提出了SGE(Spatial Group-wise Enhance)模块,该模块通过为每个语义组中的每个空间位置生成一个注意因子来调整每个子特征的重要性,其实质是一个空间注意力模块。文献[16-17]提出的CBAM(Convolutional Block Attention Module)和BAM(Bottleneck Attention Module)以类似的方式同时引入了通道注意力和空间注意力两种机制。文献[18]提出采用GC(Global Context)模块改善非局部网络计算量较大的缺点,同时与SE 模块相结合设计了一个全局上下文模块。文献[19]提出一种动态内核选择机制,主要思想是通过注意力机制实现神经元动态调整感受野。
针对特征图耦合度较高、计算量较大等问题,本文将特征图通道和空间维度进行解耦,分别生成对应的注意力权重,即结合通道注意力机制和空间注意力机制,提高神经网络模型的图像分类性能。
目前卷积神经网络仍存在大量的冗余,因此研究者们设计了一种轻量级的网络结构,即使用分组卷积以避免冗余对计算和存储资源造成巨大的浪费。分组卷积将特征图沿通道方向分成并行的多组结构,以此减少计算量。
传统卷积结构如图1 所示,该结构计算量公式为DK×DK×M×N×DI×DI。DK×DK表示卷积核的尺寸,M表示输入特征图的通道数,N表示输出特征图的通道数,DI×DI表示输出特征图的尺寸。分组卷积结构如图2 所示,该结构计算量公式为DK×DK×M×N×DI×DI/G(组数用G表示)。从该公式中可看出分组卷积的计算量减少为传统卷积计算量的1/G。
图1 传统卷积Fig. 1 Traditional convolution
图2 分组卷积(G=2)Fig. 2 Group convolution(G=2)
分组卷积首次应用于文献[4],由于当时计算条件有限,研究者将卷积操作分成两组,采用双GPU 并行运算的方式以提高计算效率。文献[20]提出基数的概念,即分组卷积的组数,通过大量实验验证,研究者们发现分组卷积不仅可以减少计算量,还可以一定程度上提高网络的识别精度。文献[21]中引入了深度可分离卷积,该卷积将普通卷积分解为深度卷积和逐点卷积两部分来减少计算量,其中深度可分离卷积属于分组卷积的特例。文献[22-23]提出了交错分组卷积以解决分组卷积带来的信息不流通的问题,并开发了许多紧凑模型。
由此,本文将分组卷积与注意力机制相结合提出一种轻量级分组注意力模块(LGAM),借鉴分组卷积的思想降低模块的计算量。与其他注意力模块相比,本文模块具有更少的参数以及更易解释的性质。
现有的神经网络模型中大部分的计算是卷积操作,而卷积得到的特征图直接影响着网络模型的特征表征能力。特征图由通道和空间信息两个部分组成,本文探索了一种由通道注意力机制和空间注意力机制融合的注意力模块,从两个角度对输入特征图进行重构,提高现有神经网络模型的特征表征能力。
本文所提出的模块LGAM 如图3 所示。LGAM 主要由两部分组成:通道注意力和空间注意力。首先,将特征图沿通道方向分解成多组,并生成相应的通道注意力权重;然后,将多个分组进行串联产生新的特征图,并在其基础上生成相应的空间注意力权重,两者进行加权得到重构的特征图;最后,将重构特征图和输入特征图两者融合。
图3中,A表示输入特征图,xk表示各分组,yk表示各分组产生的结果,CA(Channel Attention)表示通道注意力操作,SA(Spatial Attention)表示空间注意力操作。⊕表示逐元素相加,⊗表示逐元素相乘。
图3 轻量级分组注意力模块Fig. 3 Lightweight Group-wise Attention Module(LGAM)
假设给定一个输入特征图A∈RH×W×C,将特征图沿通道维 度 分 成G组,用xk∈RH×W×C′表 示 各 个 分 组,k∈{1,2,…,G},每个xk包含C′ =C/G个通道。然后将分组后的 特 征 图 转 换 成 向 量 形 式xk=U=[u1,u2,…,uC′],ui∈RH×W。由于每个通道都包含特定的功能响应,因此本文利用通道间的相互关系,通过全局平均池化(Global Average Pooling,GAP)聚合每个通道中的特征映射生成对应的权重信息,权重的每个元素都由特征图的空间维度H×W进行压缩得到,即对每个通道中的全局信息进行软编码。全局平均池化计算如式(1)所示:
其中:schan∈R1×1×C′表示聚合通道得到的权重;H×W表示特征图空间维度的信息。
为了自适应生成通道间的注意力权重,提高计算效率,使用具有一个隐藏层的多层感知机(MultiLayer Perceptron,MLP),隐含层单元数为C′/r,r为缩放比例。在多层感知机后加入批归一化(Batch Normalization,BN)层调整输出比例。使用Sigmoid函数将得到的权重归一化。公式如下:
其中:δ表示ReLU 函数,σ表示Sigmoid函数,Mchan表示每个分组对应生成的通道注意力权重。
最后将每组的输出采用残差结构以避免层数较深导致的深层特征值消失和性能下降等问题。因此每组通道注意力加权公式为:
其中:xk′∈RH×W×C′表示每个分组经过注意力机制处理的输出结果。⊕表示逐元素相加,⊗表示逐元素相乘。通道注意力具体操作如图4所示。
LGAM 的第一个步骤是将输入特征图分组,该方式类似分组卷积的思想,分组卷积计算量较少,但不同分组的通道间缺少信息流通。因此本文采用图3 所示的阶梯型结构,改善分组间信息不流通的问题。阶梯型结构计算如式(4)所示:
其中:Fchan(·)表示对xk进行一次求通道注意力权重的操作。
最后将各个分组得到的输出yk串联成新的特征图A′∈RH×W×C。
图4 通道注意力Fig. 4 Channel attention
由于噪声的影响,卷积神经网络模型通常难以获得良好分布的特征响应,但特征图空间和通道信息之间有着诸多联系,因此本文利用通道信息对空间信息进行增强处理,目的是强调和抑制不同空间位置的特征。
本文提出的空间注意力模块通过对空间信息间的相互关系进行建模,生成相应的空间注意力权重,整个流程可以看作特征选取的操作。空间信息与通道信息互补,为了得到有效的空间注意力图,将输入特征图的通道信息进行压缩,生成有效的特征描述符,利用特征通道的信息来突出空间信息的方法已被证明是有效的[24]。
通过2.1 节通道注意力计算后得到的新特征图为A′∈RH×W×C,将该特征图转换成向量V=[v1,v2,…,vs],vi∈RC,s=H×W,对通道信息进行压缩的计算公式为:其中:cspat表示第s个位置生成的空间信息权重,vs表示第s个位置的视觉特征。
为了防止样本数据的偏差太大,影响网络的泛化性,因此对空间信息的权重进行归一化处理。如式(6)所示:
其中:δ表示ReLU函数,σ表示Sigmoid函数。
最后将重构后的特征图与输入特征图两者进行融合,公式如下:
其中:A″∈RH×W×C表示LGAM 最后的输出,A′表示分组通道注意力的输出结果,Mspat表示生成的空间注意力权重,⊕表示逐元素相加,⊗表示逐元素相乘。
本文在两种公共基准的数据集上对LGAM 进行实验测评,分别为Cifar数据集和部分ImageNet 2012数据集。
对比实验均在Linux16.04 操作系统,CPU(32 核,2.1 GHz),GPU TITAN Xp(显存12 GB)下进行。深度学习框架采用Pytorch。
本节采用公共基准的Cifar10数据集和Cifar100数据集来评估算法的有效性,这两个数据集各包含60 000张彩色图片,大小均为32×32,其中50 000 张用于训练,10 000 张用于测试。数据增强采用常规方法:即裁剪和随机水平翻转。
为了保证实验的可比性,设定实验选择相同的超参数初始化方法:优化方法采用随机梯度下降(Stochastic Gradient Descent,SGD);动量设定为0.9;训练批次设定为128;测试批次设定为100;权重衰减设定为0.000 5;学习率初始化为0.1,并采用自适应降低学习率算法;迭代次数设定为160 次。最终的结果取5次测试的平均值。
对于ResNet 模型,为使其更适合Cifar 数据集,本文在结构方面作一些细微调整:原有的ResNet 网络模型设计用于ImageNet 数据集,第一层采用7×7 的卷积核,但Cifar 数据集中的图片大小均为32×32,因此将第一层卷积核大小调整为3×3,同时去掉最大池化层。3.1 节实验中涉及到的ResNet框架均以调整后的框架为基准。
3.1.1 模块泛化性验证分析
该部分将提出的LGAM置于多个先进的神经网络模型中用于验证本文模块的泛化性。网络模型选取ResNet18,ResNet34,Wide-ResNet(WRN16-10)和ResNeXt29(32*4d)。数据集采用Cifar100数据集。实验结果如表1所示,表中显示信息分别为网络模型、模型参数量以及模型分类的Top-1错误率。
表1 模块泛化性验证Tab. 1 Module generalization verification
从表1 中的最后一列数据可以看出,本文提出的LGAM模块与任意神经网络模型集成得到的Top-1 错误率相较于原神经网络模型都降低了1%左右。LGAM 从特征图通道和空间两个方向应用注意力机制,只增加了较少的参数有效地提升网络模型的分类性能,上述分析充分证明本文模块的泛化性。
3.1.2 本文算法与其他注意力模块对比
对LGAM 模块与其他的注意力模块做对比实验。将各种注意力模块分别嵌入到ResNet18 网络框架的每个残差块中用于实验,对比的注意力模块分别是SE[14]、SGE[15]、CBAM[16]、BAM[17]。数据集采用Cifar10和Cifar100数据集。具体网络框架见表2,表2 中AM(Attention Module)表示注意力模块。实验结果见表3,表3 中显示信息分别为网络模型、模型的参数量以及模型分类的Top-1错误率。
LGAM与其他注意力模块的对比结果如表3所示:参数方面,在Cifar100 数据集上,本文提出的LGAM 模块与RseNet18模型结合后的模型参数量为11.25×106,而原始ResNet18模型参数量为11.22×106,仅增加了0.03×106,而SE、CBAM、BAM三种模块分别增加了0.09×106、0.09×106、0.07×106,因此得出结论:LGAM 占用的网络开销较小,是一种轻量级的模块。LGAM 将输入特征图通道和空间进行解耦,同时采用分组卷积的思想降低模块的开销,提升网络的性能。虽然在模块的计算量方面略高于SGE 模块,但LGAM 模块的分类准确率高于SGE模块。分类性能方面,SE模块是通道注意力机制,SGE模块是空间注意力机制,而本文采用两种注意力机制相结合的方式,从结果上看出,LGAM 的两种注意力机制结合方式的分类效果优于SE 和SGE 的单注意力机制算法。上述分析证实,本文将LGAM模块与ResNet18框架相结合,得到了最低的分类错误率,充分证明本文算法的有效性。
表2 注意力模块+ResNet18网络框架Tab. 2 Network framework of attention module+ResNet18
表3 不同注意力模块结果对比(Cifar)Tab. 3 Comparison of different attention module results on Cifar
本节采用ImageNet2012 数据集,该数据集共包含128 万张训练图像,5万张验证图像,共1 000个类别。由于计算时间原因这里随机抽取20 类用于测试本文的模型。数据增强采用常规方法,即随机裁剪和随机水平翻转,同时采用平均通道减法用于标准化图像用于训练和测试。
为保证实验的可比性,本部分实验选择相同的超参数初始化方法:优化方法采用随机梯度下降(Stochastic Gradient Descent,SGD);动量设定为0.9;训练批次设定为64;测试批次设定为100;权重衰减设定为0.000 1;初始化学习率为0.1并且每30 次迭代次数降低10 倍;迭代次数设定为90 次。最终的结果取5次测试的平均值。
3.2.1 本文算法与其他注意力模块对比
该部分将提出的LGAM 模块与其他的注意力模块做对比实验。对比的注意力模块分别是SE、SGE、CBAM、BAM。实验结果见表4,表中显示信息分别为网络模型、模型的参数量以及模型分类的Top-1错误率。
从表4 中的数据可以看出,本文提出的LGAM 模块与RseNet18 模型结合后的模型参数量为11.22×106,而原始ResNet18 模型参数量为11.19×106,仅增加了0.03×106,并且都低于SE、CBAM、BAM。因此可以得出LGAM 占用的网络开销较小,是一种轻量级的模块。同时在分类性能方面,LGAM与ResNet18相结合得到了最优的分类效果,与在Cifar 数据集上实验得到的结论一致,再一次证实本文算法的有效性。
表4 不同注意力模块结果对比(ImageNet2012)Tab. 4 Comparison of different attention module results on ImageNet2012
3.2.2 不同网络模型结果可视化
本文为方便定性分析注意力模块给网络模型带来的作用,使用Grad-CAM[25]来可视化ImageNet 2012 验证集的图片。Grad-CAM 是一种新型可视化方法,主要利用目标类的梯度,传播到最终卷积层来生成粗略定位图,可视化的结果可以清楚地观察出网络如何选择预测类的重要区域,借此来判断注意力模块带来的影响。
本文比较了ResNet18 与SE、SGE、CBAM、BAM、LGAM 分别相结合的可视化效果,并从ImageNet 2012 数据集中随机挑选了6个种类的图片分别进行可视化。如图5所示,从第二列开始直到最后一列,每张图片上的数据表示相应的输入图像在各个网络框架的预测分数。最后一列中LGAM 模块集成的网络可视化的注意力掩膜比其他注意力模块更好地凸显目标对象区域。由此可以判断LGAM 模块可以帮助神经网络模型更好地学习目标对象的特征信息,提高目标正确类别的分数。
图5 Grad-CAM可视化结果Fig. 5 Grad-CAM visualization result
本文针对现有神经网络模型提取的特征表征能力不足导致识别精度不高的问题,提出了一种基于注意力机制的图像分类算法。通过设计一种轻量级的注意力模块LGAM 与任意现有的神经网络模型相结合,该模块将输入特征图的通道信息和空间信息同时用于加权特征图可以有效提高模型的特征表征能力,并且利用分组的思想设计模块可以有效地降低模块的开销。最后在Cifar10 和Cifar100 数据集以及部分ImageNet 2012数据集上通过实验证实了LGAM可以提高现有神经网络模型的识别精度。在后续的研究中,可以通过深度可分离卷积代替普通卷积,进一步减少网络模型和注意力模块的开销。另外,还可以采用将底层特征和高层特征相结合的方式进一步提高网络的识别精度。