基于双注意力核化双线性网络的细粒度图像分类

2022-07-21 04:11朱晨鹏彭宏京刘学军
计算机工程与设计 2022年7期
关键词:核化细粒度注意力

朱晨鹏,彭宏京,刘学军

(南京工业大学 计算机科学与技术学院,江苏 南京 211816)

0 引 言

与粗粒度图像数据集相比,细粒度图像数据集具有较小的类间相似性和较大的类内差异性。只有捕捉到不同类之间局部区域的细微差异或学习到更精细的细粒度图像特征,才能实现对不同细粒度图像的有效辨别。因此为了更好描述图像特征,Lin等[1]提出的双线性卷积神经网络(bilinear CNN,B-CNN)采用外积的方式对双通道特征进行融合,从而建模不同通道间的线性相关,增强了卷积网络的对图像表达能力。然后Gao和Cui等[2-4]在此基础上围绕双线性卷积网络的压缩和特征分布展开研究,并取得了一定的进展。但这些网络都忽略了特征图中不同通道和空间位置关系对分类的不同作用,其次仅使用外积方式建模了不同通道间的线性关系,而没有考虑非线性关系。

针对上述两个问题,我们提出从通道和空间两个维度上对局部区域进行双注意力建模,其中通道注意力机制对通道加权,使网络将更多注意力放在具有判别性的特征通道上;空间注意力机制对位置加权,通过增加具有判别性区域的权重和减少噪声区域的权重,进一步增强网络的表达能力。其次将两个机制的注意力特征图矩阵相加后进行外积聚合。最后为了充分挖掘通道间所蕴含的丰富信息,提出采用sigmoid 核函数的方式对外积矩阵进行核化以建模通道间的非线性关系。与原始B-CNN及其它基于双线性网络的算法进行对比,实验结果表明,本文方法具有更高的分类准确率。

1 相关工作

本节将从细粒度特征提取和注意力机制两个方面简要回顾相关工作。研究工作[5]表明,生物特征识别的关键在于找到一个合适的特征表达空间将不同类别的对象区分开。我们通过细粒度特征提取结合双注意力机制获得了所需的细粒度特征表达空间。

1.1 细粒度特征提取

由于细粒度子类之间的区别是局部且细微的,因此用于粗粒度图像分类的网络模型往往不能很好地表征细粒度图像。Lin等[1]提出了双线性卷积网络模型,该模型采用外积的方式对双通道特征进行融合,从而建模不同通道间的线性相关,增强了卷积网络的对细粒度图像表达能力。双线性卷积网络模型是细粒度图像分类领域中“端到端”训练的首批模型之一,极大地提高了分类的准确性。之后,为了减小双线性特征的维度和内存消耗,同时加快训练和识别速度,Gao等[2]使用张量速写(tensor sketch)与随机麦克劳林(random maclaurin)两种算法降低了图像表达的维度。Cui等[3]提出了核聚合卷积网络(kernel pooling)来提取高阶信息的图像,该方法通过级联不同的阶信息来获得图像的多阶特征表示。Li等[4]对全连接层的参数矩阵进行低阶分解,把特征的一阶和二阶信息都利用起来,进而更好完成细粒度图像分类任务。但上述方法仅使用单层的卷积特征,并不能完整表示图像特征。本文方法通过双注意力机制对局部区域进行建模,可以进一步提高对判别性区域的关注度,有效地解决了这些问题。另外,为了建模特征图中不同通道之间的非线性关系,我们采用核化的双线性卷积网络进行分类。

1.2 注意力机制

由于卷积神经网络直接从单个卷积层中提取的特征并不能完整表征细粒度图像,因此一些研究试图通过注意力机制来增强网络的特征表达能力。

注意力机制类似于人类的视觉系统,它主要包括两个部分:①确定需要关注的区域;②从关键区域提取特征以获得重要的信息。Zheng等[6]提出了循环注意力卷积神经网络(RA-CNN),它包含3层分类子网络,并使用注意建议子网络进行连接。训练过程中它将上一个注意建议子网络的注意力区域裁剪后放大作为下一个分类子网络的输入,最后通过融合不同尺度下网络的分类结果进行判断。MA-CNN[7]进一步扩展了 RA-CNN的思路,通过特征图的聚类来定位细粒度图片中多个具有判别性的区域,然后提取相应特征,最后级联各个判别性特征取得了优异的分类性能。SENet[8]探索了不同特征通道之间的关系,通过学习和自动检测每个特征通道的重要性,来增强有用特征并抑制无用特征以强化网络的表征能力。另外,文献[9]表明不同空间位置的特征对图像分类的贡献度也不同。Woo等[10]同时关注特征尺度,通道和空间位置3个不同维度,并在不显著增加计算量和参数量的前提下提高了网络模型的特征提取能力。受文献[10]的启发,我们提出了基于双注意力机制的细粒度分类模型。

2 方 法

细粒度图像分类的关键在于发现局部区域的细微差异。本文采用双注意力机制对局部区域进行建模,赋予具有判别性区域的更大的权重,以强化有用特征并抑制无用特征,从而实现更有效的特征表示。本节先概述整体流程,然后再分模块进行介绍。

2.1 总体框架

为了更好地描述图像特征,我们在B-CNN的基础上从通道和空间两个维度对局部区域进行双注意力建模。其次将两个维度的注意力特征图相加后进行外积聚合。最后采用sigmoid核函数的方式对外积矩阵进行核化以建模通道间非线性关系。

模型的总体框架如图1所示,双注意力核化双线性模型由3个模块组成:特征提取器、双注意力模块及核化双线性聚合模块。在第一个模块中,我们选择VGG-16充当整个图像的特征提取器。由于底层特征集中于学习更复杂的形状和语义信息,因此我们将卷积层Conv5_3的输出特征图作为初始特征表示,其中w、h和d分别表示特征图的宽、高和通道数。第二个模块中,通道和空间注意力机制分别从通道和空间两个维度上对局部区域进行建模,对具有判别性的局部区域分配相当大的权重,最后将两个机制的注意力特征图以矩阵相加的方式获得最佳特征表示。核化双线性聚合模块首先对双注意力机制的输出特征图进行通道二范数归一化,并将结果按通道展开为特征矩阵X∈Rd×N,其中N=h×w。然后对X进行外积聚合并采用sigmoid核函数的方式对外积矩阵进行核化以建模通道间的非线性关系,得到图像表达P。最后对矩阵P进行指数幂操作并取上三角部分作为图像的最终表达进行细粒度图像分类。

图1 基于双注意力机制的核化双线性卷积网络架构

2.2 特征提取器

VGG模型在计算机视觉任务中有着广泛的应用。在这里,我们使用VGG-16作为特征提取器。

对于输入图像I,我们使用W表示所有参数,*表示卷积和池化等一系列操作,则提取的图像特征F可表示为

F=W*I

(1)

2.3 双注意力机制

从VGG-16中直接获取的卷积特征不具有很强的判别力,因此本文引入注意力机制来提高网络的表征能力,在讨论注意力机制之前,我们先介绍特征图的不同维度。经过卷积和池化后的特征图具有两个维度,一个是通道维度,另一个是空间维度。通道间的关系在细粒度图像分类中被广泛研究,例如MA-CNN[7]对特征图分组以获取不同部位的关键性特征。而空间维度则表示不同像素间的关系。本文的注意力机制主要应用于通道和空间两个维度,可分为以下两个模块。

2.3.1 通道注意力模块

不同通道的特征图在图像分类中的贡献值是不同的,但很多研究认为不同通道的特征图对分类结果的影响都是相同的。例如,Wei等[11]将不同通道的特征图直接相加,其结果受到了混乱图像背景的严重干扰。

我们任取了Conv5_3中4个通道的特征图进行可视化如图2所示。由图2可以看出,不同特征通道的关注点不同,后3个通道的特征图都将关注点集中在目标主体部位上,而第108层的特征图却集中在背景噪声上。

图2 4个通道特征图的可视化结果

因此为了突出目标主体区域,同时抑制背景噪声干扰,我们使用通道注意力机制来根据不同通道的重要性学习权重,通过增加包含目标主体区域特征图的权重并减小噪声响应图的权重,以达到增强有效通道信息和抑制无效通道信息的效果。对于深层卷积神经网络,在经过多次卷积和池化后,卷积层的最后一层包含最充分的空间和语义信息。所以我们仅在最后一个卷积层输出的特征图之后使用注意力机制,其中通道注意力机制的结构如图3所示。

图3 通道注意力机制结构

全局平均池化(global average pooling)可以充分利用每个通道的空间信息,具有很强的鲁棒性且不易过度拟合。而全局最大池化(global max pooling)可以反映全局最大响应,并在一定程度上表示通道中的关键信息。此外,Woo等[10]的研究工作表明,与仅使用一种全局池化方法相比,全局平均池化和全局最大池化的合并结果更为有效。因此我们使用GAP和GMP信息融合的方式来学习通道权重,池化后的特征向量分别表示为FGAP和FGMP。然后为了实现通道间信息的交互并减少数据量,我们将两层1×1卷积连接起来应用到FGAP和FGMP中。前一层1×1卷积核数量设置为c/r,其中c为FGAP和FGMP的通道维度。r为可变参数,表示特征维度c的缩减倍数,它的值对细粒度分类结果的影响将在实验部分3.4.1节中详细介绍。最后一层1×1卷积核的数量调整为c以保证输出特征图的通道维度与输入相同。

经过两层1×1卷积后得到F′GAP和F′GMP, 然后将它们的合并结果传递给sigmoid函数。该函数将合并结果的每个元素都映射到0~1之间来得到权重MC,它表示每个特征通道的重要性。最后将MC乘以原始特征图F对其加权得到注意力特征图F′C, 这意味着在不同特征通道上都执行权重分配,以抑制无用信息并增加有用信息的比例。公式表达为

F′C=MC⊗F=σ(F′GAP+F′GMP)⊗F

(2)

由于部分通道信息可能会在GAP和GMP传递过程中丢失,因此受到ResNet[12]残差学习的启发,我们将注意力模块的卷积特征和原始输出叠加以获得最佳表示。整个通道注意力模块框架如图4所示,通道注意力机制作为侧分支添加到原始特征通道中,这样网络只需要学习注意力模块,而无需学习整个输出。最终输出的特征图FC表示为

FC=F⊕F′C=(1+σ(F′GAP+F′GMP))⊗F

(3)

其中,σ表示sigmoid函数,⊕表示逐像素相加,⊗表示逐元素相乘。

图4 通道注意力模块框架

2.3.2 空间注意力模块

特征图中不同像素对于分类结果的贡献也不同。空间注意力模块的作用是为特征图中每个像素分配权重值,通过增加判别性区域的权重和减少噪声区域和背景区域的权重,以达到增强关键区域和抑制无用区域的效果。该机制结构如图5所示。

图5 空间注意力机制结构

与通道注意力机制相同,首先沿着通道维度采用GAP和GMP来获得FsGAP和FsGMP,维度均为h×w×1。然后将FsGAP和FsGMP逐元素相加后进行3×3的卷积,并将卷积结果传递给sigmoid函数以获得权重图MS。最后,将权重图逐元素与原始特征图F相乘,得到空间注意力特征图F′S。 公式表达为

F′S=MS⊗F=σ(f(FsGAP+FsGMP))⊗F

(4)

同样的,我们将空间注意力机制作为侧分支添加到原始特征通道中,整个模块框架如图6所示,最终输出的特征图FS表示为

FS=F⊕F′S=(1+σ(f(FsGAP+FsGMP)))⊗F

(5)

其中,σ表示sigmoid函数,f代表3×3的卷积操作,⊕表示逐像素相加,⊗表示逐元素相乘。

图6 空间注意力模块框架

通道和空间注意力从两个维度上解析图像特征,以促进网络学习更多的特征信息。而双注意力机制融合了两个不同维度的注意力特征图,框架如图7所示。

图7 双注意力机制框架

双注意力机制的输出FDA,公式表达为

FDA=FC+FS

(6)

2.4 核化双线性聚合模块

在上一模块中,双注意力机制以矩阵相加的方式对两个机制的注意力特征图进行融合得到FDA,维度为w×h×d。葛等[13]为解决B-CNN中仅能建模特征通道间非线性关系的不足,提出了一种核化的双线性卷积网络,因此为了更充分地挖掘通道间所蕴含的丰富信息,我们也采用sigmoid核函数的方式对FDA的外积矩阵进行核化以建模通道间的非线性关系,增强网络的表征能力。

如图8所示,核化双线性聚合模块首先对双注意力机制的输出特征图FDA进行通道二范数归一化,并将结果按通道展开为特征矩阵X∈Rd×N,其中N=h×w,d为特征通道数。然后对矩阵X进行外积聚合XXT∈Rd×d,并采用sigmoid核函数的方式对外积矩阵进行核化以建模通道间的非线性关系,得到图像表达P。最后对矩阵P进行指数幂操作,幂指数设为α,并取结果的上三角部分作为图像的最终表达进行细粒度图像分类。

图8 核化双线性聚合模块流程

本文采用sigmoid核函数对外积矩阵A=XXT进行核化,sigmoid核函数公式K表示为

K(xi,xj)=tanh(θ·〈xi,xj〉+γ)

(7)

其中,θ为幅度调节参数,θ>0,γ为位移参数,γ<0,核化后的矩阵P表示为

P=K(XXT)=tanh(θ·XXT+γ·1d×d)= tanh(θ·A+γ·1d×d)=[tanh(θ·〈xi,xj〉+γ)]d×d

(8)

其中,1d×d表示元素均为1的d维方阵。交叉熵损失函数l针对矩阵A的反向传播公式如下所示,其中“∘”表示哈达马积

(9)

3 实验与分析

3.1 实验平台

仿真的实验环境为:Win10操作系统,i7-8700K处理器和GTX 1080Ti 显卡。实验采用Python编程语言在Tensorflow上设计与实现,并采用NVIDIA推出的通用并行计算架构CUDA(computer unified architecture)加速模型的训练。

3.2 数据集

实验部分在CUB-200-2011、FGVC-Aircraft及Stanford Cars这3个细粒度图像数据集上对本文方法进行评估。所有数据集的训练集与测试集的划分见表1,其中CUB-200-2011鸟类数据集被公认为最具挑战性的细粒度分类数据集,因为每个类平均仅有30张图片供模型训练,并且具有较大的类内差异。注意本文实验中均未采用边界框等人工标注信息。

表1 3个细粒度数据集的统计数据

3.3 实验参数设置

本文选用VGG-16网络模型作为整个图像的特征提取器,并将Conv5_3卷积层的输出作为初始特征表示。在模型训练前,先使用ImageNet上的分类模型初始化网络参数,并采用与改进的B-CNN相同的图像预处理方式:对于CUB-200-2011和StanfordCars数据集,在保持长宽比的前提下将短边缩放至448后,从中间裁剪出448×448的区域作为模型的输入。对于FGVC-aircraft数据集,则将图像短边缩放至512后,从中间裁剪出448×448的区域作为模型的输入。预处理完成后,采用随机水平翻转的方式进行数据增强,最终Conv5_3卷积层的输出特征图大小为28×28×512。

训练过程中采用带动量的随机梯度下降法作为优化算法,动量设置为0.9,批次大小设置为20,矩阵幂正规化层中参数α设置为0.5。训练共分为两个阶段,第一阶段为微调训练,即对模型最后两层即softmax分类器进行训练,学习率和权重衰减分别设置为1.0和10-8。第二阶段对整个模型进行训练,学习率和权重衰减分别设置为0.001和10-5。

3.4 实验结果评估

实验分别针对本文提出的通道注意力模块、空间注意力模块及双注意力机制进行评估,同时还探讨了通道注意力模块中不同缩减倍数r对分类结果的影响。最后对核化双线性聚合模块进行消融实验以验证其有效性。

3.4.1 通道注意力模块评估

通道注意力模块中r表示特征维度的缩减倍数,它是一个可变参数,因此我们首先对其进行了参数评估。我们在VGG模型的Conv5_3卷积层后直接添加了通道注意力模块,并将r值分别设置为2、4、8和16,最后在CUB鸟类数据集上进行了实验。损失函数使用交叉熵损失函数,结果见表2。

表2 不同r值的CAKB模型在CUB-200-2011上的准确率

从表2可以看出,当r值为2时,嵌入通道注意力模块的核化双线性网络(channel attention kernelized B-CNN,CAKB)在CUB鸟类数据集上的分类准确率达到了86.9%的最佳性能。因此,我们将通道注意力模块中的r值设置为2。然后在3个细粒度数据集上进行了对比实验,结果见表3。

表3 CAKB与其它基于双线性网络方法的比较结果/%

实验结果表明,与原始B-CNN方法相比,CAKB框架在CUB、FGVC及Stanford Cars上的分类准确率分别提高了2.4%、4.3%和2.8%。与其它基于双线性网络的方法,如CBP及KP模型相比,它也具有一定的优越性。因此,引入通道注意力机制对通道加权,使网络将更多注意力放在具有判别性的特征通道上,这对细粒度分类产生了积极的影响。此外,还验证了不同特征通道对分类的作用是不同的。

3.4.2 空间注意力模块评估

同样地,我们在VGG模型的Conv5_3卷积层后直接添加了空间注意力模块,并将嵌入空间注意力模块的核化双线性网络命名为SAKB(spatial attention kernelized B-CNN)。SAKB的实验评估结果见表4。

表4 SAKB与其它基于双线性网络方法的比较结果/%

从表4可以看出,与原始的双线性卷积网络模型相比,增加空间注意力及核化机制的SAKB框架在3个实验数据集上的分类准确率分别提高了2.3%、4.1%和2.5%。而与仅包含核化机制的双线性卷积网络相比,准确率也有所提升。这表明在空间维度上增加注意力机制的合理性与有效性,也验证了图像不同部分对分类的作用也不同。

3.4.3 双注意力机制

嵌入双注意力机制的核化双线性卷积网络(dual attention kernelized B-CNN,DAKB)架构如图1所示,它的评估结果见表5。同时为了与CAKB、SAKB框架及其它基于双线性网络方法进行更直观的比较,我们绘制了折线如图9所示。

表5 DAKB与其它基于双线性网络方法的比较结果/%

图9 各框架与其它基于双线性网络方法的对比折线

从表5和图9可以看出,与B-CNN方法相比,基于双注意力机制的核化双线性网络(DAKB)在3个实验数据集上的分类准确率分别提高了2.7%、4.4%和2.9%。不仅高于原始的双线性网络和其它基于该网络的算法,还优于嵌入单个注意力机制的CAKB和SAKB框架。这都归因于双注意力机制融合了通道和空间两个不同维度的注意力特征图,从而促进了卷积网络学习到更多的特征信息。

3.4.4 消融实验

由于CAKB、SAKB和DAKB框架中都添加了核化双线性聚合模块,因此为了验证该模块的有效性,我们对其进行了消融实验,直接采用原始双线性卷积网络中的外积聚合模块进行细粒度图像分类。3种框架消融前后在CUB-200-2011鸟类数据集上的准确率见表6。

表6 CUB-200-2011上对核化双线性聚合模块的消融结果

从表6可以看出,通道注意力模块、空间注意力模块和双注意力机制添加核化双线性聚合模块后再进行细粒度分类,CAKB、SAKB以及DAKB在CUB-200-2011鸟类数据集上的分类准确率分别提高了1.5%、1.7%和1.6%。这验证了核化双线性聚合模块的有效性。双注意力机制以矩阵相加的方式对两个机制的注意力特征图进行融合后,它采用sigmoid核函数的方式对外积矩阵进行核化,进一步建模了通道间的非线性关系,从而得到了更加充分的图像表达。

4 结束语

为了更好地描述细粒度图像特征,本文从通道和空间两个维度对局部区域进行双注意力建模,其次将两个维度的注意力特征图相加后进行外积聚合。最后采用sigmoid核函数的方式对外积矩阵进行核化以建模通道间的非线性关系,进一步增强网络的表征能力。实验在CUB-200-2011、FGVC-Aircraft及Stanford Cars这3个细粒度数据集上进行了测试,结果表明本文方法在3个细粒度图像数据库上均优于同类方法,同时验证了特征图中每个通道和空间位置在分类中的不同作用以及核化双线性聚合模块的有效性。在未来的工作中,可以将本文方法应用于更多的计算机视觉任务中,例如场景分割、目标检测等。同时考虑将ResNet及GoogleNet等模型作为特征提取器来进一步提升分类准确率。

猜你喜欢
核化细粒度注意力
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
手持式核化探测仪器发展现状与应用展望
让注意力“飞”回来
冰晶异质核化对雷暴云电过程影响的数值模拟
基于SVM多分类的超分辨图像细粒度分类方法
如何培养一年级学生的注意力
2019高考综合模拟题(七)
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计
A Beautiful Way Of Looking At Things