基于双注意力和多区域检测的细粒度图像分类

2022-09-24 06:47:50潘新辰杨小健
电子技术应用 2022年8期
关键词:细粒度注意力局部

潘新辰,杨小健,秦 岭

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

0 引言

目前,深度学习技术已被广泛应用于图像分类领域,细粒度图像分类旨在区分同种对象的不同类别。相较于传统图像分类,细粒度图像分类的难点在于:(1)不同类别之间的高相似性,难以找到具有辨别性的区域并提取细节特征;(2)同一种类别之间由于图像视角、光照、背景和遮挡等因素的变化也存在着一定的差异性。因此,如何定位具有辨别性的局部区域,以及如何更精确地提取细粒度特征,成为目前细粒度图像分类方法的主要研究方向。

为了检测具有辨别性的局部区域,一些方法[1-2]通过人工标注的方式对细粒度图像中具有辨别性的区域进行标注,然后通过网络学习定位辨别性局部区域,从而提高网络模型的分类准确性,需要花费大量的时间、人力对图像进行标注,成本太大。还有一些方法[3-4]利用类别标签以弱监督的方式来学习具有辨别性的局部区域,这类方法虽然不能够达到使用人工标注的标签进行监督学习的效果,但额外成本几乎为零。

注意力机制作为提升网络特征提取能力的重要手段[5]主要分为通道注意力机制和空间注意力机制,通道注意力机制可以学习到不同通道间的权重关系,空间注意力机制可以学习不同像素间的依赖关系。合理利用以上两个注意力机制能够更细粒度提取图像的特征,从而能够更好地进行分类。

本文通过结合双注意力机制和多区域检测,实现了一种细粒度图像分类方法,双注意力机制能够使模型关注更加细节的图像特征,并通过多区域检测的方法,定位具有辨别性的局部区域,然后将局部区域裁剪出来进一步通过模型进行学习,从而整体提高了细粒度图像分类的准确率。

1 相关工作

1.1 区域检测方法

细粒度图像分类中的多区域检测实质是借鉴了目标检测[6]的思想。在目标检测领域,主要是以监督学习的方式通过人工标注的框进行学习,而细粒度图像分类中的多区域检测则是建立在弱/无监督学习上,通过图像类别标签/特征分布去自主学习具有辨别性的局部区域,无需额外的人工标注信息。Hu 等人[7]针对细粒度分类问题,通过弱监督学习方法获得每一张训练图像的辨别性区域,然后通过裁剪和丢弃辨别性区域来增强数据,使得网络在关注辨别性区域的同时,也关注除去辨别性区域外的其他区域。Yang 等人[8]受目标检测中区域建议网络(Region Proposal Network,RPN)的启发,利用图像的类别标签通过Navigator Network 生成一个表示所有预选框的列表,然后根据得分进行排序,将得分较高的K 个区域裁剪出来输入至特征提取网络,以提取更细粒度的特征。

1.2 注意力机制

注意力机制在使用深度学习方法来模仿人类的视觉机制中发挥了重要作用,能够使网络忽略无关的特征信息而更加关注重要的特征信息[9]。其主要应用于对图像特征层的通道和空间的关系进行注意,捕获更加详细的特征信息。Hu 等人[10]通过建模通道间的相关性,提出了SE(Squeeze-and-Excitation)模块,该方法能够使网络自适应地学习每个特征通道的重要程度,然后根据重要程度去强化有用的特征并抑制对当前任务用处不大的特征。Wang 等人[11]针对卷积是一种对局部区域进行的操作,缺少全局范围的特征依赖关系,提出了一种非局部(Non-local)操作,该方法能够建立图像上两个有一定距离的像素之间的联系,从而使网络关注大范围里的特征依赖关系。

2 本文方法

本节首先介绍本文中网络的整体结构,然后分别对区域检测部分和双注意力机制部分进行详细的说明。

2.1 整体网络结构

如图1 所示,将原始图像R0∈RC×H×W输入至特征提取网络(Feature Extractor)中,用于提取原始图像的全局特征,C、H、W 分别为通道数、高和宽。然后经过双注意力机制进一步细化全局特征,并通过第一个全连接层(FC0)计算图像的原始损失L0。其次将上述输出的全局特征层(Feature Map)输入至多区域检测模块(Multi-region Detection Module)来获得每个局部区域{R1,R2,…,RA}及对应的得分{S1,S2,…,SA},A为局部区域的数量,将区域得分排序以获得最高得分的K 个辨别性最大的局部区域{R1,R2,…,RK},并将这K 个局部区域在原始图像中裁剪出来上采样至224×224 大小的尺寸,将其再次输入至主干网络(Backbone)中用于提取局部区域的特征,并使用其对应的全连接层(FCi,i∈K)通过Cross Entropy Loss 损失函数来计算这些局部区域损失Li,同时根据全连接层FCi的输出使用log_softmax 函数来计算每个局部区域相对于类别标签的置信度Di。最后结合图像的全局特征和局部区域特征作为总体的特征表示,并将结果输入到全连接层FCconcat中,利用Cross Entropy Loss 损失函数来计算总体损失Lconcat,最终得到整个网络的分类结果。

图1 整体网络结构

2.2 区域检测

如图2 所示,区域检测的输入为图1 中主干网络(Backbone)的输出特征层(大小为2 048×14×14),通过使用具有横向连接自上而下的结构来检测辨别性局部区域。具体为:分别使用滤波器(Filter)为128,卷积核大小为3×3,步长为1、1、2,填充为1 的三层卷积操作自上而下获得不同尺度的特征层(128×14×14、128×7×7、128×4×4),每个卷积后紧接着ReLU 激活函数;对于每层卷积后的输出,分别使用滤波器(Filter)为6、6、9,卷积核大小为1×1,步长为1,填充为0 的3 个卷积操作对特征层进行降维,并提升网络的表达能力;最终获得3 个尺度分别为6×14×14、6×7×7、9×4×4 的特征层,对应3 个局部区域大小(48×48、96×96、192×192),这3 个特征层上的每个特征值均代表了一个候选区域的得分{S1,S2,…,SA},A 为3 个特征层中特征值的数量,为1 614。由于部分候选区域之间有着较大的重叠,为了减少网络的计算量,采用极大值抑制的方法来减少候选区域的数量,通过设置一个阈值(threshold)来剔除不同区域之间的重叠率大于该阈值且得分相对较低的候选区域。最后对候选区域的得分进行排序,选出最大的K 个局部区域{R1,R2,…,RK}并上采样至224×224大小,然后通过特征提取网络进一步学习。

图2 区域检测模块

2.3 双注意力机制

注意力机制已经成为提升卷积神经网络性能的一个重要模块,并且通道注意力机制和空间注意力机制相结合的方法能够更加显著地提升网络的性能。注意力模块如图3 所示,主要分为特征分组、通道注意力、空间注意力和特征融合四部分。

图3 双注意力机制模块

2.3.1 特征分组

对于特征提取网络的输出特征层X ∈RC×H×W,特征分组按照通道的维度C 将X 拆分为G 组{X1,X2,…,XG}∈RC/G×H×W。对于 每一组子特征层Xk,k∈G,都将通过两种注意力机制生成不同的权重系数。具体地,子特征层将被平均划分为两部分Xk1,Xk2∈RC/2G×H×W,一部分用于学习通道注意力特征,另一部分用于学习空间注意力特征。

2.3.2 通道注意力机制

本文在实现通道注意力时使用全局平均池化(Global Average Pooling,GAP)、全连接、Sigmoid 激活函数组合操作。具体为,对于输入Xk1,首先使用全局平均池化操作(Fgap)生成通道的整体信息ca∈RC/2G×1×1,可以通过如下公式计算:

然后,通过全连接操作(Ffc)学习一个新的权重系数ω1∈RC/2G×1×1和偏 置b1∈RC/2G×1×1,用来表示各个通道的重要程度,最后再经过Sigmoid 函数(σ)进行激活,并和输入特征相乘。计算公式如下:

通道注意力实现的过程使用公式可以整体描述如下:

2.3.3 空间注意力机制

不同于通道注意力机制,空间注意更关注各个像素点之间的依赖关系,因此,本文利用空间的特征信息来捕捉输入图像中不同局部区域之间的相关性。本文分别使用两个大小为1×1 的卷积Convm和Convn操作,在Convm后使用Softmax 激活函数,并将两者的结果进行相乘,最后和输入的特征层相加得到空间注意特征。其计算公式如下:

其中,xi∈Xk2,N=W×H,ωm和ωn分别为卷积Convm和Convn的权重。为了进一步减小计算的复杂度,上述公式可以将Wn移到求和的外面,改进的公式如下:

2.3.4 特征融合

所有分组的子特征层Xk经过双注意力机制后,重新聚合到一起生成注意力特征层X'。最后,类似ShuffleNet v2[12]中的通道置换(channel shuffle)方法,通过设置一个通道置换操作来确保不同分组子特征的信息能够“相互流转”。具体为对于特征层X'∈RC×W×H,按照通道数C 分为GCS组,即特征层维度为G×C/GCS×W×H,然后将G 和C/GCS轴转置得到C/GCS×G×W×H 维度的特征层,最后再将分组进行合并得到原始维度大小(C×W×H)的特征层。

2.4 损失函数

对于整个网络中的输入{R0,R1,R2,…,RK},其中,R0为原始图像,{R1,R2,…,RK}为区域检测并上采样得到的局部区域图像,分别得到局部区域的得分{S1,S2,…,SK}和置信度{D0,D1,D2,…,DK},除了上文中提到的分类损失Li、L0、Lconcat使 用Cross Entropy Loss 损失函数来计算外,还需要计算局部区域得分损失LS、置信度损失LC。局部区域得分损失LS通过如下公式计算:

置信度损失LC通过如下公式计算:

3 实验

3.1 数据集

在本文实验部分,将在3 个公开的细粒度图像数据集(CUB-200-2011、StandfordCars 和FGVC Aircraft)进行实验,以评估所提出的方法。表1 列出了这3 个数据集的类别数量、训练集和测试集的图像数量。

表1 数据集

3.2 实验细节

在本文实验中,统一将所有输入图像上采样至448×448 大小,多区域检测中超参数K 的值设置为4,threshold 设置为0.25。使用在Image-Net 数据集上预训练的ResNet-50[13]模型作为特征提取网络,动量(Momentum)SGD 作为优化算法,Batch Normalization 作为正则化方法,初始学习率为0.001,并且每60 个epoch 后乘以0.1,权重衰减因子设为1×10-4,使用PyTorch 框架来实现本方法。

3.3 结果分析

表2 显示了本文方法和其他细粒度图像分类方法在3 种数据集(CUB-200-2011、StanfordCars 和FGVC Aircraft)上的实验结果,在使用ResNet-50 作为特征提取网络时,本文提出的方法在3 种数据集上的识别准确率分别为88.3%、94.5%和92.3%,优于其他方法。

表2 实验结果对比

此外,本文的方法比文献[8]提出的方法分别高出0.8%(CUB-200-2011)、0.6%(StanfordCars)以及0.9%(FGVC Aircraft)。这也表明了本文在文献[15]的基础上加入双注意力机制的改进是有效的。

由于本文中多区域检测模块对整体网络性能的提升较大,因此,本文在数据集CUB-200-2011 进行了实验来探究不同数量的局部区域(超参数K 的取值)对实验结果的影响,结果如表3 所示。

表3 超参数K

ResNet-50 是目前较为强大的基准网络,在数据集CUB-200-2011 上的细粒度分类任务中,其本身达到了83.8%的精度,而本文提出的方法在仅使用双注意力机制的情况下相比高出0.8%。值得注意的是,只使用完整图像(K=0)作为区域检测模块的输出时,精度达到了85.3%,高于ResNet-50+Attentions 0.7%的准确率。这一现象表明,区域检测模块后连接的网络通过进一步学习图像的特征信息并与原始网络的输出特征相融合,能够更好地学习整体特征的表示。同样可以看到,在K=4时,获得的分类准确率达到了最高88.3%,而选择6 个局部区域时,准确率反而下降了0.7%,这说明过多的局部区域会对网络提取的特征产生干扰,从而影响最终的分类结果。从K=0 变化到K=2 时,准确率获得了大幅度提升(2.8%),这也验证了区域检测模块的有效性。而从K=2 到K=4 的过程中,准确率仅有0.2%的提升,这说明了两个局部区域的数量几乎已能够精准地提取细粒度的特征,再增加局部区域的数量仅能获得微乎其微的提升,却会一定程度上增加网络的参数量。

然后通过固定K=4,以0.05 为间隔差,在0.1~0.5之间取多个threshold 的值在数据集CUB-200-2011 上进行模型训练,验证超参数threshold 对实验结果的影响。

如图4 所示,超参数threshold 在取0.25 时实验结果达到最优;threshold 在0.1~0.25 这段变化中准确率呈增长趋势,这是因为过小的threshold 会导致所选局部区域覆盖较为分散;而随着threshold 的继续增长,就会导致所选局部区域有较大的重叠。

图4 超参数threshold 的影响

3.4 注意力机制

本文在不使用注意力机制(no_att)以及分别使用通道注意力机制(only c_att)、空间注意力机制(only s_att)、双注意力机制(two_att)4 种情况下在数据集CUB-200-2011上做了实验对比,其中超参数K 的值固定为4,其他网络设置相同。实验结果如图5 所示,从结果可以看出,两种注意力机制的单独应用均能够提升网络的分类准确率,并且两种注意力机制结合应用能够达到更好的效果。

图5 双注意力机制的影响

4 结论

本文提出了一种结合双注意力机制和多区域检测的细粒度图像分类方法。该方法首先通过含有双注意力机制的主干网络提取全局特征信息,然后通过区域检测模块识别出辨别性较高的局部区域,并将局部区域送到主干网络进一步学习局部特征信息,最后将局部特征信息和全局特征信息相融合,对细粒度图像进行分类。双注意力机制的应用能够使网络更好地学习通道间和空间像素间的依赖关系,使网络关注更多的细节特征。多区域检测模块的应用则能够使网络更加关注具有辨别性的局部区域。本文将两者相结合,最终在3 个公开的细粒度图像数据集上达到了较高的准确率,同时优于其他方法。但本文的方法整体网络结构较为复杂,对计算性能有较高的要求,这也是未来工作进一步改进的方向。

猜你喜欢
细粒度注意力局部
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
红外技术(2022年11期)2022-11-25 03:20:40
让注意力“飞”回来
局部分解 巧妙求值
非局部AB-NLS方程的双线性Bäcklund和Darboux变换与非线性波
细粒度的流计算执行效率优化方法
高技术通讯(2021年1期)2021-03-29 02:29:24
基于双线性卷积网络的细粒度图像定位
“扬眼”APP:让注意力“变现”
传媒评论(2017年3期)2017-06-13 09:18:10
支持细粒度权限控制且可搜索的PHR云服务系统
A Beautiful Way Of Looking At Things
局部遮光器