APP下载

基于Xception网络的弱监督细粒度图像分类

2022-01-25丁文谦余鹏飞李海燕陆鑫伟

计算机工程与应用 2022年2期
关键词:细粒度注意力卷积

丁文谦,余鹏飞,李海燕,陆鑫伟

云南大学 信息学院,昆明 650500

近年来,图像的粗分类己经不能满足人们在某些应用中的需求,人们希望了解图像中更细致的信息,比如在识别出一幅图像中的动物是狗的同时,还能够识别出狗的具体品种。细粒度图像[1]与普通图像相比,可能存在不同种类的个体比同类个体更为相似的情况,即存在同种类间不同个体差异大、不同种类间不同个体差异小的问题,使得细粒度分类的难度更大,使用传统图像分类方法不能取得很好的分类效果,研究者们开始将深度学习技术引入到图像识别研究中[2]。

研究人员针对细粒度图像分类研究提出了许多算法,这些算法可以分为强监督和弱监督的细粒度图像分类算法。强监督细粒度图像分类算法在训练模型时,除了使用图像的类别标签外,还使用了物体标注框、部位标注点等额外标注信息[3]。例如,Wei等人[4]提出的Mask-CNN模型是首个端到端地将深度卷积特征应用到物体检测的细粒度图像识别模型,该模型利用细粒度图像的部分标注来定位目标的头部、躯干等具有识别度的部位。Lam等人[5]根据细粒度图像目标部分的注释和边界框得到图像的边界框和候选框,再利用LSTM网络将图像中的边界框和生成的候选框进行融合形成HSnet网络进行细粒度图像识别。虽然这类算法识别率较高,但需要依靠额外的标注信息,而获取标注的成本较高,并且,因为标注信息的使用,使得神经网络的运算量变大,训练时间变长,不利于此类算法的应用。近年来,仅使用类别标签,不需要额外标注信息的弱监督细粒度图像分类算法逐步成为研究细粒度图像分类的主流算法。例如,Lin等人[6]提出了B-CNN网络,该网络包括两个VGG网络,一个VGG网络用来检测图像的目标区域,另一个VGG网络对目标区域进行特征提取,最后将两个网络提取的特征进行双线性融合完成识别细粒度图像的任务。Fu等人[7]提出RA-CNN网络,利用注意力建议网络在不同尺度的图像上生成区域注意力,通过多尺度网络逐步定位到关键区域,利用分类损失进行网络优化,学习准确的区域关注和细粒度表示。黄伟锋等人[8]提出基于多视角融合的分类方法,一个分支利用特征图挖掘图像的细粒度特征,另一个分支则学习图像的全局特征。最终,将两个分支进行融合完成分类任务。Hu等人[9]提出WSDAN模型,基于仅使用图像标签信息的前提,在注意力引导下完成训练数据的增强,引入类中心损失函数和双线性注意力池化完成网络训练和优化。但是,WSDAN模型中用来判断Attention Cropping(注意力裁剪)和Attention Dropping(注意力丢弃)里有效区域的阈值所属的区间过大,会由于特征区域标记错误而导致分类错误。同时,WSDAN模型中使用普通CNN网络来产生注意力图,会受制于普通CNN网络性能的限制,产生不准确的注意力图而导致分类错误,影响分类效果。

为了解决WSDAN模型存在的问题,本文在WSDAN模型的基础上,提出了一种基于Xception网络的弱监督细粒度图像分类方法,使用Xception网络代替Inception V3作为骨干网络和特征提取网络,利用深度可分离卷积代替普通CNN生成注意力图来引导数据增强,调整Attention Cropping(注意力裁剪)和Attention Dropping(注意力丢弃)操作中使用的阈值区间,在仅使用图像标签信息的基础上完成细粒度图像分类任务。

1 相关工作

1.1 WSDAN模型

WSDAN模型[9]是典型的弱监督细粒度分类模型,仅使用图像的标签信息,通过引入注意力机制完成训练数据的增强,来提高训练和测试的正确率。

传统的数据增强在目标尺寸较小的情况下效率较低,还会引入背景噪声,利用注意力图(Attention Map),可以有效地增强数据。所谓注意力图就是图像中辨识度高的某个部位,如鸟的头部、汽车的轮胎、狗的尾巴、飞机的机翼等,在一幅图像中可能包含多个注意力图。

从全部注意力图中随机选择一个注意力图Ak,按照公式(1)归一化后进行数据增强,包括注意力裁剪(Attention Cropping)和注意力丢弃(Attention Dropping),如图1所示。

图1 注意力引导数据增强过程Fig.1 Attention guiding data enhancement process

原始图像通过弱监督注意力学习得到若干个代表目标识别部分的注意力图,随机选择一个注意力图Ak,如图1放大的注意力图中Ak覆盖的区域引导原始图像完成注意力裁剪和注意力丢弃的数据增强操作。所谓注意力裁剪就是将注意力图中重点关注的区域从原图对应区域上裁剪下来,而注意力丢弃则是将这部分区域从原图抹除,使网络不再关注这块区域。基于注意力机制的数据增强的目的是有针对性地增加训练图像的数量,提高网络的泛化能力。

利用一个边界框Bk覆盖Ck中所有值为1的区域,裁剪原始图像中Bk覆盖的区域并放大,由于这部分区域是放大的区域,存在更多细节,可以提取更多的细节特征。

将被标记为0的区域从原始图像中抹除,可以促使网络提取图像中其他具有识别度的区域,进一步增强网络的泛化性能。

1.2 Xception模型

Xception网络模型是在Inception V3网络的基础上进行改进得来的,引入了深度可分离卷积。Inception网络的思想是使跨通道相关性和空间相关性充分解耦[10],在使用中将一个卷积过程分解成一系列独立的操作,即Inception模块先处理跨通道相关性(通道卷积),再处理空间相关性(空间卷积)。

在Inception网络的理论基础上,把Inception V3中标准的Inception模块(如图2所示)简化为只使用一种规格的卷积核,并且不含平均池化的模块(如图3所示)。对图3中的Inception模块用一个大的1×1的卷积,在不重叠的通道区块上进行空间卷积(如图4所示)。通道区块的数量越多,跨通道相关性和空间相关性完全解耦的假设会更合理。基于上述发现与假设提出了“极致”Inception模块(如图5所示),先使用1×1卷积映射跨通道相关性,然后在每个1×1卷积的输出通道上有一个独立的空间卷积来映射空间相关性[3]。普通卷积把所有通道视为一个区块,Inception模块将若干个通道划分成3或4个区块,“极致”Inception把每个通道当作一个区块,是一个可分离的卷积。

图2 标准的Inception模块Fig.2 Standard Inception module

图3 简化的Inception模块Fig.3 Simplified Inception module

图4 等效的Inception模块Fig.4 Equivalent Inception module

图5 极致的Inception模块Fig.5 Extreme Inception module

Xception网络使用深度可分离卷积增加了网络宽度,同时引入类似Resnet的残差连接机制加快了网络收敛速度,不仅提升了分类的正确率,也增强了网络对细节特征的学习能力。基于上述分析,本文将Xception网络应用于细粒度图像分类任务中。

2 本文方法

本文通过对Xception模型和WSDAN模型的分析研究,提出了基于Xception模型的弱监督细粒度图像分类网络,整体结构如图6所示。

图6 整体结构Fig.6 Overall structure

在训练过程中,原始图像I先利用Xception弱监督网络产生特征图F,对特征图F进行深度可分离卷积得到注意力图A(A中包含M个不同部位的注意力图)。将特征图与注意力图按照元素相乘的方法,按照公式(4)进行特征融合,得到特征矩阵[9]。通过元素相乘的方法可以将注意力集中到局部区域,可以强化网络从局部区域中学习细微的特征,可以减少网络对无关特征的学习。特征矩阵包含更少的干扰信息和更准确的特征信息。

再按照公式(5)进行全局平均池化操作得到注意力特征fk,将M个注意力特征进行级联操作,得到注意力特征矩阵P,再将P的每一列经过分类器即可得到每一类图像的预测概率Ppre_raw。

M表示注意力图个数,N表示总类别数。

文献[10]随机裁剪像素块的方法来增强数据,这种方法会引入较多无关信息和噪声,本文则利用注意力图引导数据增强,可以获得噪声更少、更准确的数据。本文的训练过程是一个边训练边得到增强图像的过程。从A中随机选取一个注意力图Ak引导数据增强,得到注意力裁剪图像Ic和注意力丢弃图像Id,将Ic和Id反馈回网络与原始图像一起作为增强后的输入图像。增强后的输入图像再随机选取一个注意力图继续引导数据增强。在完成整个训练过程后,所有的注意力图都会被用到,网络可以学习到每个注意力图所表示的不同部位的特征。

将Ic和Id送入训练网络后可以得到注意力裁剪预测概率Ppre_crop和注意力丢弃预测概率Ppre_drop。最后,将三个预测概率分别按照公式(7)~(9)得到相应的Loss,yi表示真实值(标签值),N代表训练图像的总数量。按照公式(10)对三个Loss进行加权操作,得到的值通过反向传播继续优化网络的参数。由于在训练时更加突出数据增强的作用,因而α,β>η。

在识别过程中,原始图像I先经过Xception弱监督网络得到特征图,对特征图进行深度可分离卷积得到注意力图A′(A′中包含多个不同部位的注意力图)。将特征图与注意力图按照元素相乘的方法得到特征矩阵,再经过全局平局池化和分类器得到粗分类概率Praw。接下来,对A′进行加法操作得到注意力图的总和,利用引导数据增强完成注意力裁剪操作,将得到的注意力裁剪图像反馈回网络与原始图像一起作为识别网络的输入图像。将送入识别网络后可以得到细分类概率Pref。粗分类概率Praw和细分类概率Pref共同决定最终的分类概率。

2.1 特征提取

本文方法应用Xception网络作为骨干网络和特征提取网络。Xception网络是深度可分离卷积和残差连接组成的线性堆叠。与Inception V3网络相比,Xception网络在不增加网络复杂度的前提下提高了模型的效率和性能。同时,Xception网络中加入的残差连接机制也加快了网络的收敛速度,可以更快地收敛。

Xception网络的最大特点就是引入了深度可分离卷积,与图5不同的是,本文方法所用深度可分离卷积中空间卷积的卷积核是1×1而不是文献[11]中的3×3,结构如图7所示,原因是:小卷积核在运算时需要的参数更少,且可以产生更多的特征。先用1×1的卷积核进行通道卷积,然后把每个输出通道作为一个区块利用1×1的卷积核进行空间卷积,最后将空间卷积的结果进行拼接。通道卷积和空间卷积独立进行可以有效地减少参数量并加快收敛速度。

图7 Xception网络深度可分离卷积Fig.7 Depth separable convolution of Xception network

同时,在实验中发现1×1卷积核得到的注意力图更聚焦于头部(特征部位),明显好于3×3卷积核得到的注意力图,如图8所示。

图8 不同卷积核得到的注意力图Fig.8 Attention maps obtained by different convolution kernels

图8中,左图均是1×1卷积核得到的注意力图,右图是3×3卷积核得到的注意力图。从图中可以清晰地看出,左图比右图将注意力更准确地聚焦于鸟的头部区域,而右图则相对发散,和分类无关的背景区域较多。

根据所用数据集的特点,本文提出了1×1卷积核代替3×3卷积核,并取得了不错的效果。但是,不是说卷积核越小越好,对于特别稀疏的数据使用比较小的卷积核可能无法表示其特征,选取适当尺寸的卷积核也是研究的一个重点。

2.2 数据增强

本文方法引入Xception模型的深度可分离卷积代替普通CNN从特征图中提取注意力图。在1.1节介绍的基于注意力的数据增强策略,核心和重点都在于注意力图准确性上,当注意力图越准确,数据增强的效果越好,最终识别的准确率就会越高。

在图6(a)所示的训练过程中,首先由原始图像通过本文方法产生特征图,对特征图进行深度可分离卷积得到注意力图A,其中A包含的注意力图个数可以自定义,假定为M个,从M个注意力图中随机选出一个注意力图AF按照公式(1)的方法进行归一化得到。与原方法不同的是,在进行注意力裁剪和丢弃操作时,为引入了阈值区间[θcmin,θcmax],0<θcmin<θcmax<1和[θdmin,θdmax],0<θdmin<θdmax<1,如公式(11)和公式(12)。引入阈值区间的原因是:不同类别的动物形态差异较大,需要对注意力裁剪和丢弃操作中用到的阈值进行调整,目的是避免与较大的阈值比较后产生的误判而带来的分类标记误差。

表示注意力裁剪操作中注意力图的标记区域,有效内容标记为1,无效内容标记为0。裁剪时利用一个边界框BF覆盖中所有值为1的区域,裁剪原始图像中BF覆盖的区域并放大,即可得到注意力裁剪图像Ic。

表示注意力丢弃操作中注意力图的标记区域,注意力丢弃处理的区域和注意力裁剪相反,有效内容是阈值以外的值,标记为1,而无效内容标记为0。丢弃时,将被0标记的区域从原始图像中抹除,即可得到注意力丢弃图像Id。

2.3 评判标准

识别过程如图6(b)所示,原始图像先通过本文方法得到特征图,对特征图进行深度可分离卷积得到注意力图A′,将特征图与注意力图A′按照元素相乘的方法得到特征矩阵,再经过全局平局池化和分类器得到粗分类概率Praw。另一方面,由于A′中包含多个注意力图且不同注意力图代表图像的不同部位,因此可以对注意力图进行加法操作,利用公式(13)的方法对注意力图A′进行求和得到注意力图总和代表整张图的注意力图。由于A′中的注意力图仍会包含一些无关区域,导致求和以后的也会存在干扰区域,因此就有必要利用注意力图对原始图像进行注意力引导数据增强中的注意力裁剪操作,得到更精确的注意力裁剪图像,再用本文方法对进行识别,得到识别的细分类概率Pref。

由于粗分类概率是原始图像直接经过特征提取网络得到的,相对细分类概率具有更高的不确定性,权重相对较小,而细分类概率是对原始图像进行数据增强后预测的概率,相对粗分类来说具有更高的可靠性,因此在公式中赋予一个相对较大的权重。最终预测概率由公式(14)给出,其中w1

3 实验及结果

本文所有实验均在一台GPU服务器(Ubuntu16.04.6 LTS系统,Intel Core i9-7900处理器,64 GB内存,两块GeForce GTX 1080Ti显卡)上完成。该实验使用了基于Python语言的Pytorch深度学习框架和Pycharm开发工具。

3.1 数据集与实验设置

本文使用4个常用的细粒度图像数据集CUB-200-2011[12]、Stanford Dogs[13]、Stanford Cars[14]、FGVC-Aircraft[15]和额外的NABirds[16]数据集,数据集信息如表1所示。

表1 细粒度图像数据集信息Table 1 Fine-grained image data set information

实验中,由于所用数据集中的图片尺寸不同,为了方便实验,统一调整为448×448,使用Xception网络作为骨干网络和特征提取网络,仅使用图像标签信息,使用随机梯度下降训练模型,初始学习率为0.001。其中,在第3章中的权重α=0.35,β=0.35,η=0.3,1.1节中提到的注意力裁剪和丢弃的阈值θc和θd都是0.5,2.2节中的θcmin=θdmin=0.35,θcmax=θcmax=0.65,2.3节中的权重w1=0.4,w2=0.6。

3.2 实验对比与结果

为验证本文方法的分类性能,将本文方法与目前主流的细粒度图像分类算法作比较,比较结果如表2所示。由于本文涉及到的参考文献资料仅采用准确率作为评价指标,为保证实验结果对比的有效性,本文也采用由公式(15)定义的准确率作为评价指标,pi表示第i类物种分类正确的图像数目,numi表示第i类物种图像的总数目,N表示图像的类别的总数。

表2 不同细粒度图像分类算法准确率对比Table 2 Comparison of accuracy of different fine-grained image classification algorithms %

从表2中可以看出,本文方法在常用的细粒度图像分类数据集上均有较好的分类效果。在FGVC-Aircraft数据集上,本文方法的正确率略低于WSDAN方法,但和其他方法相比有较大的提高,与B-CNN相比提高了8.94个百分点。在Stanford Cars数据集上,本文方法与WSDAN方法基本持平,稍微提高了0.1个百分点的准确率,与B-CNN相比提高了3.17个百分点,和InceptionV3相比提高了3.67个百分点。在CUB-200-2011数据集上,本文方法比WSDAN方法提高了1个百分点,比B-CNN提高了5.18个百分点,比InceptionV3提高了5.58个百分点。在Stanford Dogs数据集上,本文方法比WSDAN方法提高了1.52个百分点,比InceptionV3提高了2.28个百分点。

本文方法在4个常用的细粒度图像分类数据集上都取得较好的效果,说明本文方法可以很好地完成细粒度图像分类任务。同时,为了测试本文方法的泛化性能,本文选取了一个更大规模的NABirds数据集进行测试,这是一个新的数据集,包含48 562张北美鸟类的图像,其中包括23 929张训练图像、24 633张测试图像,有555个类别,也包含部分注释和边框。

在NABirds数据集上的测试结果,如表3所示。

表3 不同算法在NABirds数据集准确率Table 3 Accuracy of different algorithms in NABirds dataset

从表3中可以看出,本文方法在NABirds数据集上的表现良好,比WSDAN方法提高了0.8个百分点,比Cross-X方法提高了2个百分点,比API-Net方法提高了0.3个百分点,比PAIRS方法提高了0.5个百分点,体现出本文方法有较好的泛化能力。

为了进一步比较本文方法和WSDAN方法的泛化能力,参考文献[22]的方法给出了识别误差增长曲线图,如图9所示。从图9中可以看出,在NABirds数据集上,随着标签错误率的增加,虽然两种方法的识别误差都在增加,但本文方法的泛化误差要优于WSDAN方法。

图9 本文方法和WSDAN方法识别误差对比Fig.9 Comparison of generalization errors between proposed method and WSDAN method

从表4中可以看出,本文方法采用的网络模型比WSDAN方法所用模型具有更少的参数量,但计算量有所增加。从表5中可以看出,本文方法比WSDAN方法在数据集的训练时间上增长了6.43%~15.83%。虽然训练的计算量和训练时间增加了,但是换来的是识别准确率的提升,在测试数据集上的准确率提高了0.09~1.52个百分点。

表4 本文方法与WSDAN方法计算量对比Table 4 Calculation amount comparison between method in this paper and the WSDAN method

表5 本文方法与WSDAN方法训练时间与准确率对比Table 5 Comparison of training time and accuracy between methods in this paper and the WSDAN method

3.3 错误分类结果分析

尽管本文方法在常用的细粒度图像分类数据集上取得了较好的分类效果,但也存在着错误分类的情况。本文以CUB数据集为例,列出错误分类数前5的鸟的种类,如图10所示。

图10 错分类数最多的5种鸟类Fig.10 Five misclassified birds

经过对图10列出的5种鸟类原始图片的分析,总结出以下三种错误分类原因:

(1)毛色与环境相似

图11(a)和(c)中目标主体的毛色与环境背景极其相似,且图11(a)与(b)、(c)与(d)的体态和毛色也极为接近,因此会将北美夜鹰和贝氏沙鹀分类错误。在实验中发现,18张北美夜鹰测试图片会有5张被错分类成卡罗莱纳夜鹰;30张贝氏沙鹀测试图片有3张被错分类成栗肩雀鹀。

图11 毛色与环境相似的例子Fig.11 Example of feathers’color similar to surroundings

(2)外形相似

图12(a)与(b)、(c)与(d)都是属于外形和体态极为相似的类型,同时,由于图片质量的影响也会导致美洲乌鸦和小坝鹟分类错误。在实验中发现,30张美洲乌鸦测试图片会有5张被错分类成鱼鸦,30张小坝鹟测试图片会有4张被错分类成黄腹纹鹟。

图12 外形相似的例子Fig.12 Example of similar appearance

(3)运动姿态相似

图13展示的是长尾贼鸥和中贼鸥,两种鸟类的外形比较相似,在飞行过程中二者飞行姿态的相似性导致提取的特征也相似,结果就是会把长尾贼鸥错分类成中贼鸥。在实验中发现,30张长尾贼鸥测试图片会有3张被错分类成中贼鸥。

图13 运动姿态相似的例子Fig.13 Example of similar movement

4 结束语

本文提出了基于Xception网络的细粒度图像分类方法,在5个公开的细粒度图像分类数据集上进行实验。实验结果表明,本文方法在测试的数据集上均取得了较高的准确率,具有很好的泛化能力,可以很好地用来完成细粒度图像分类任务。接下来的工作,将针对3.3节提出的3种错误分类原因继续改进本文方法。这三种导致错误分类的原因,说明本文网络的特征提取能力还不是特别强,下一步会继续改进网络,提升网络的特征提取能力。同时,考虑为本方法引入卷积特征融合的目标检测算法[26],提高网络的目标检测能力。

猜你喜欢

细粒度注意力卷积
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于SVM多分类的超分辨图像细粒度分类方法
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计