结合注意力与跨层双线性网络的细粒度图像分类
2022-07-20彭太乐胡晓斌朱仕宁朱晓彤
江 涛,彭太乐,胡晓斌,朱仕宁,郭 嘉,朱晓彤
(淮北师范大学计算机科学与技术学院,安徽淮北 235000)
人工智能技术的迅猛发展,使得子类别图像分类的需求越来越多,例如物种种类识别、零售场景下商品识别等. 细粒度视觉识别[1]是计算机视觉领域中的一个研究热点,近年来已取得了很大的进展,并已广泛应用于专家级图像识别、自动驾驶等诸多应用中. 与区分基本类别的图像分类(如ImageNet 分类)不同的是,细粒度图像在对象外观上具有较小的差异[2],因此只能通过一些细微或局部的差异来识别,例如根据鸟的背部颜色或喙的形状来区分鸟的品种.
对象的部件级特征通常在细粒度图像分类任务中起着重要的作用,受此启发,许多用于实现细粒度分类的算法都是基于目标块检测的[3-6]. 这些算法都遵循如下流程:首先找到前景对象及其局部区域,之后对这些区域进行特征提取,适当处理所得的特征后,最终完成分类器的训练和预测. 这些方法有两个基本限制:第一,严重依赖于人工标注信息,但是人工标注信息的获取代价十分昂贵,这在一定程度上制约了算法的实用性;第二,很难确保手动定义的部分是最佳的或者适合最终的细粒度分类任务. 因此,一些学者开始寻求使用无监督或者弱监督的算法来检测差异性信息. Xiao 等[7]最先提出了不使用标注信息的两级注意力模型,分别关注对象级别和部件级别信息,将获取到的两部分信息相结合作为模型的输出从而提高分类准确率,但是利用聚类算法得到的局部信息准确度十分有限. Wang 等[8]提出在卷积神经网络中加入非对称多流网络,可有区别地学习特征,以此提高细粒度图像分类任务的精度. Yang 等[9]提出NTS 网络,通过自监督有效地定位信息区域. Chen 等[10]提出一种新的“破坏和构造学习”,除了标准的分类主干网络,另一网络被引入“破坏”图像后“重建”图像,对图像各部分之间的语义进行关联建模,通过各部件的交互达到增强网络识别效果. Zheng 等[11]提出TASN 模型,使用三线性注意抽样网络,有效地减少了计算成本,同时还能提高一定准确率,但是该方法仅仅对图像进行了采样,并未对卷积特征进行基于注意力的采样.
细粒度图像中对分类有影响的差异性信息往往存在于较小的部件级区域中,而且背景信息对前景对象有较大干扰,特征向量中差异性信息提取的越多则分类精度则越高. 因此如何使特征向量中包含更多区分度的特征信息是提高细粒度图像分类精度关键问题之一.本文在B-CNN模型的基础之上,构建结合注意力机制的跨层双线性网络模型,使用跨层双线性网络能够有效利用中间层特征信息,减少中间层特征信息损失,通过融合注意力机制避免图片中的冗余信息影响,以此提升分类精度,并在鸟类数据集上进行分类效果验证.
1 相关研究工作
1.1 双线性网络
B-CNN 模型[12]是Lin 等人于2015 年提出的,其架构如图1 所示. 一个双线性网络模型β由一个四元组组成:β=(fa,fb,p,c),其中fa、fb代表特征提取函数,即图1中的网络A 和网络B,p为池化函数,c是分类函数. 一幅图像经过两个并列的卷积神经网络完成特征提取,然后使用外积运算对特征相乘,获得双线性向量,最后通过一个分类层进行分类. 在只有图像类别标签的情况下,该模型实现了较好的弱监督分类效果.
图1 B-CNN模型
B-CNN 类模型存在两个缺陷[13]:第一,现有的基于双线性网络的模型仅将最后一个卷积层提取到的特征图作为图像的表示,这不足以对图像的各个语义部分进行描述;第二,忽略了中间卷积激活,导致细粒度类别区别信息的丢失,从而影响细粒度类别分类的准确率.
1.2 注意力机制
计算机视觉中的注意力机制旨在让系统忽略图像中的背景等干扰信息,而将更多的关注重点放在有效信息上,它经常被使用在深度学习模型中以提升模型的分类、识别以及预测精度上. 本文算法根据细粒度图像类间差距小而类内差异大的特点,在算法模型中融入注意力机制,以获取图片中的细微特征,从而提高算法的分类准确率.
混合域注意力机制CBAM 结构[14]如图2 所示.其中通道注意力[15](Channel Attention)关注“什么是有意义的”,空间注意力[16](Spatial Attention)侧重“何处是有效信息”. 混合域注意力机制经过测试,采用串联结构,且通道注意力在前、空间注意力在后能够得到最大程度提高分类准确率的效果.
图2 CBAM结构
CBAM模块过程如下:
式中:Mc(F)表示F经过通道注意力的输出权值,Ms(F′)表示F′′经过空间注意力的输出权值,F′′表示最终的注意力模型的输出,⊗表示特征图加权乘法运算符号.
2 结合注意力与跨层双线性网络的细粒度图像分类算法
双线性网络忽略中间层特征,会导致重要的判别信息丢失. 对此,本文构建一种跨层双线性网络(cross layer bilinear pooling,CL-BCNN)用于细粒度图像分类,而不是仅使用最后一层卷积层的激活特征作为图像的表达. 为了更好地利用层间交互以捕获区分信息,本文提出一种跨层特征融合方法(如图3),将Conv_i, Conv_j … Conv_n 提取到的特征定义为Fi,Fj…Fn,融合后的特征表示为:
图3 跨层特征融合
其中⊗表示双线性运算.该方法充分考虑多层卷积层之间的特征交互,在最终分类之前,将多个卷积层提取到的特征进行级联,通过提高特征提取器的表达能力从而提高细粒度分类任务的准确率.
算法选择以ResNet-50[17]作为双线性网络模型的特征提取器,去掉ResNet-50网络的全连接层,选取最后一个残差单元进行跨层双线性池化操作,相较于其他层,该层最能捕获图像语义级信息. 将最后三个卷积层定义为Conv5_1,Conv5_2,Conv5_3,进行跨层特征融合,从而得到三组特征向量,再将其级联后送入softmax分类器得到最终的分类效果.
为了避免图片中冗余信息对测试精度的影响,引入注意力机制对图片中的细微区域进行提取,从而使网络能够更好的利用图片中的局部信息. 本文使用融入混合域注意力机制的CBAM-ResNet-50,其网络结构如图4 所示,Conv Block 表示多个卷积组合而成的卷积块,ID Block 表示Identity 块. 在第一阶段的Conv 层和后四个阶段的Conv Block 层后加入混合域注意力机制,图中表示为CA(Channel Attention)+SA(Spatial Attention),在跨层双线性网络中将骨干网络替换为加上注意力机制的ResNet-50网络.
图4 CBAM-ResNet-50
3 实验结果及分析
3.1 数据集
本文以CUB200-2011[18]为数据集,它是目前细粒度图像分类识别研究的基准数据集,包含200 种鸟类子类,共11 788 张鸟类图像数据. 其中训练数据集5 994 张图片,测试集5 794 张图片. 该数据集包含了多种部件级标注信息,本文仅采用类别标签.
3.2 实验步骤
对数据集进行预处理,将图片按比例缩放为600×600,对图片进行打乱和随机裁切,输入网络的图片尺寸为448×448,batch size 为32. 因CUB200-2011 是小型数据集,样本过少,为了避免过拟合,实验经过如下两步进行:
步骤1:加载在ImageNet 上的预训练模型初始化ResNet-50 权重参数,将训练集输入进网络. 各参数设置为:初始学习率设为1.0,学习率衰减为0.001,动量设置为0.9,权重衰减为1E-5,迭代次数为200 次. 采用SGD 优化器,每隔40 次调整迭代调整一次学习率.训练损失收敛后,保存模型参数.
步骤2:加载步骤1中保存的模型初始化整个网络,再将测试集输入进网络. 各参数设置为:初始学习率设置为0.01,学习率衰减为0.001,动量设置为0.9,权重衰减为1E-5,迭代次数为200 次. 采用SGD优化器,损失收敛后,得到最终的测试准确率.
3.3 实验结果评价标准
为了验证本文算法的有效性,以分类准确率(Accuracy,%)作为实验结果评价指标,其定义如下:
式中,R为测试集的图片数量,Ra为测试实验中分类正确的图片数量.
将分类准确率为评价指标在CUB200-2011 数据集上与典型算法进行比较. 实验中使用相同的训练集和测试集、相同的骨干网络、相同的图像分辨率,得到的结果如表1所示(Ours为本文算法).
表1 不同算法在CUB200-2011数据集上的分类精度
从表1 可知,本文提出的算法在CUB200-2011数据集上的精度达到了88.2%,相比仅使用最后一层激活作为特征的BCNN 模型提升了4.1%,与表1中其他算法相比,也有一定程度的提升. 由此可见,融入注意力模块的卷积神经网络能够最大限度地学习到图像的特征信息,使用不同层之间的层间特征交互有利于捕捉子类别之间的区别,进一步增强了特征的表示能力,有效提升细粒度图像分类精度.
3.4 消融实验
为了验证跨层特征融合以及注意力机制的有效性,对文中设计的算法模型进行消融实验,各组实验的测试精度如表2 所示. 表中第一组实验为基础双线性网络,骨干网络为VGGD+VGGM;表中第二组实验为基础双线性网络模型,骨干网路换为ResNet-50,并将第二组的网络模型定为base model;第三组实验在base model的基础加上CBAM 注意力机制;第四组实验为3.1 节提出的跨层双线性网络;第四组实验为本文最终的模型.
从表2 可以得出:(1)在基础双线性网络基础上,将骨干网络换位ResNet-50,准确率提升了0.2%,表明随着网络的加深,提取到的深层特征能够对测试精度有一定效果的提升.(2)在双线性网络的基础上,加入注意力机制,测试精度有1.2%的提升;在跨层双线性网络的基础上加入注意力机制,测试精度得到1.3%的提升,可以看出对于细粒度图像分类任务,注意力机制对于网络提取到更细节的特征有一定的作用.(3)在使用跨层双线性网络后,相较于基础的双线性网络,测试精度提升了2.6%,可以看出在加入了中间卷积层的特征激活后,可以对分类精度有较大程度的提升,证明了中间层存在能够区分细粒度任务的特征,利用好中间层特征,能够有效提升细粒度任务分类精度.
表2 消融实验验证
4 结语
为了提升鸟类数据集的分类精度,本文提出了一种结合注意力机制与跨层双线性网络的模型. 模型融合了通道注意力以及空间注意力,同时使用了跨层特征融合考虑到中间卷积层的特征,充分利用了图像中可以区分类别的细微特征.
虽然准确率得到提升,但是加入混合注意力机制,同时由于跨层特征的融合,网络训练过程中参数也随之增加,因此会导致训练时间增加. 未来的研究工作中将讨论如何降低网络模型参数,同时不影响网络性能.