基于细粒度识别的即插性多粒度特征融合算法
2024-03-21郑秋梅彭天祺王风华
郑秋梅,彭天祺,黄 定,王风华+,林 超
(1.中国石油大学(华东) 计算机科学与技术学院,山东 青岛 266580;2.湖南有色金属职业技术学院 组织人事处,湖南 株洲 412006;3.中国石油大学(华东) 信息化建设处,山东 青岛 266580)
0 引 言
传统的图像分类识别方法以提取图像中的特征符[1]表示作为分类依据,但这些特征符只能反映图像的某一项特点,导致分类精度有限。为寻找更具表征力的图像特征,卷积神经网络[2]取代手工特征并表现出强大的性能。早期的细粒度图像分类算法[3,4]借助额外的标注信息进行训练,但使分类训练过程复杂化,无法满足实时要求。于是注意力机制被应用于卷积网络,以构架端到端的算法模型,并能进一步加强网络中产生特征的表征能力。在此基础上,研究人员还提出了数据增强[5]、混合损失函数[6,7]、多尺度特征融合[8]等多种算法丰富图像特征值。
通常单一网络的同尺度特征包含的信息缺乏多样性。所以本文在多尺度特征融合的基础上,提出一种多粒度多尺度的特征融合方法。该模型利用简单的利用粒度图像生成模块向网络提供细化信息,由此为基础逐渐训练网络学习,并引入轻量化注意力模块CBAM[9](convolutional block attention module)优化特征,避免给模型带来参数负担的同时采集不同粒度的尺度特征进行融合,提高最终向量的表征力。实验结果表明,本文提出的多粒度特征融合能够更好指导网络。
1 相关理论
本文在特征处理上,为了凸显图像重点区域,引入了注意力机制;为了综合不同特征的优缺点,引入了特征融合方法。本节对相关理论基础进行简单介绍。
1.1 注意力机制
注意力机制启发于大脑在处理视觉信息时,只焦距于最感兴趣的少量区域,其它信息会自动屏蔽。注意力机制也希望对图像信息进行重要性标注,使网络更感兴趣的部分权重更大,弱化其它信息。综合目前图像识别领域常用的注意力机制模块,可大致分为通道注意力机制,空间注意力机制,混合注意力机制。
最具代表的通道注意力机制是SE-Net[10],其通过一种特别的激活函数,对特征图中的各个通道进行筛选,学习各个通道的重要权重。Zheng等以残差网络ResNet为基础网络,提出应用通道注意力模块指导网络关注显著区域的模型TASN[11],其充分计算特征通道间的关系,集成至单一特征图中。空间注意力[12]通过对特征图进行简单的空间变换,学习了图像像素之间的空间关系,并将空间关系表示为注意力掩码,反馈给特征图进行指导。组合通道和空间注意力形成了混合注意力机制,例如MA-CNN[13],其以骨干网产生的特征图的所有通道中的空间峰值响应,通过全连接层聚合最终的注意图。其它还有SA-Net[14]并行学习两种注意力后进行融合,CBAM则是串行结构,其合理分配计算资源,极大减少了参数量,且通用于各个卷积网络,受到研究人员的青睐。所以本文选用CBAM进一步扩展不同粒度特征。
1.2 特征融合
特征融合是一种集合不同特征以丰富最终特征的方式,它可以将不同尺度的特征,不同语义特征,整体与局部特征的优势相互结合,得到更具表征更具区分度的特征向量。根据融合中基本特征的来源,卷积神经网络特征融合方法大致可以分为单网络特征融合以及多网络特征融合。多网络特征融合并行运行不同的网络结构,提取相对性质一致的对应特征,通过相加、连接、双线性差值等方式融合。经典的B-CNN[15]算法同时并行两个不同的网络以求获得不同性质的特征,并发现利用外积融合特征能获得优秀的效果。单网络融合,则是在单一网络中,利用不同大小的并行卷积核,格外添加的注意力模块,提取各阶段多尺度特征等方法,尽量挖掘网络中存在的各种信息。其代表算法特征金字塔网络FPN[16],自下而上的融合原网络自上而下的不同尺度特征,并且减小了计算成本。类似的还有Inception[17]结构,增强了模型对不同尺度学习的适应性。
为了保证融合基础特征的质量,目前细粒度图像分类方法致力于抑制噪声信息和近似信息,或精进不同的模块算法得以取得较好的成果。这要求对图像进行细致精确的定位与裁剪,但本文只进行简单的注意力焦距,利用图像重组产生的空间随机性,提取不同粒度的特征,在FPN的基础上充分融合各粒度带来的细化特征,提升识别准确率。
2 本文方法
本文的整体训练框架如图1所示,主要包括粒度图像集成模块、原始图像复核模块、多尺度多粒度特征融合模块3个分支。粒度图像集成模块输入不同的粒度图像,让模型学习不同的粒度信息,而原始图像复核模块为了阻止网络信息遗忘问题,在粒度图像训练结束后用正确的空间信息引导已习得的粒度信息,同时,缩减粒度图像集成模块参与训练的轮数,消减影响,为多尺度多粒度特征融合提供优质的基础特征。粒度图像训练和原始图像训练共同组成了多粒度图像训练过程,并通过交叉窗口提取训练过程中学习的各个粒度信息,然后产生相应的注意力特征图结合原始图像特征进行融合,以得到表征力更强的特征。
图1 网络结构
ResNet是当前极为流行的网络之一,被广泛运用于分类、分割、检测等视觉图像领域;其结构简单有效,方便扩展,与各种模块都能很好的融合,且能提取到信息稳定的多种尺度特征,所以本文选择ResNet50作为本文的骨干网以及特征提取器。
2.1 粒度图像生成模块
此前Wei等[18]研究发现,在自然语言任务中随机打乱词句顺序进行数据增强能提升模型性能。所以人们尝试将其应用到图像领域,Chen Z等[19]首先尝试了交换同一标签图片的部分区域进行了数据增广。而Chen Y等[20]则利用图像分割的方式,强制分离整体特征。通常认为在网络关注最具区分度的主体区域的时候,往往会损失小区域的非典型有效信息。由于主体区域在训练中被集合为单一向量,其中的细化粒度特征在一定程度上将被放弃。
粒度图像生成模块也是一种类似的数据增强方式,其并不关心消除背景噪声,也不保留图像中鸟类目标的完整性以求总括性的目标特征。不同的是,本文修改文献[20]中只在区域范围内随机打乱的分割重组方式,变为在全图范围内变换,并强制所有相邻子块分离,使其最大程度上获取图像的细节信息。如图2所示,不同的粒度图像的关注到的特征区域随分割子块缩小不断细化。
图2 不同粒度下的特征及其综合
具体在经过预处理后,输入图像的大小被调整为X∈C×H×W,将其分割为同等大小的n×n块,每一个小块的像素尺寸即为Xn∈C×H/n×W/n。如图2所示,当n值越大,分割的子块像素越小,包含的目标区域越小,其获得的特征粒度越细,所以后文统一使用n值代表图像粒度,并且本文认为原始图像是粒度为0的一种粒度图像。为了便于子块的重新组合,对每一个子块由式(1)计算编号索引,按行遍历组成整体序列L。i,j分别代表着子块行索引和列索引位置在第i行第j列组成子块原始集合k
R(Lk)=i×n+j(0≤i,j (1) 在粒度图像的训练分支中,需要对原始子块序列进行随机打乱,生成新的序列M,设序列L中的n2个元素抽取概率相同,每次以概率P从中提取一个元素作为新序列M的下一个元素 (2) X′=X·M(M=Q(L)) (3) 新的序列M由粒度生成模块Q而得,为新图像提供全图空间重组依据,如式(3)所示,其中X代表原始图像,X′代表粒度图像。此后,为了保证重组图像粒度信息的纯净度,对序列进行二次扫描,要求序列进行满足式(4) R(Mk+1)-R(Mk)≠1 R(Mk+n)-R(Mk)≠n (4) 若不符合式(4)上半关系式,则交换Mk+1与Mk+n+1,若不符合式(4)下半关系式,则交换Mk+n与Mk+n+1。由于先在全局范围内进行了随机空间变换,在保证纯净度的同时仍然保留了随机性,为多粒度图像训练打下良好的基础。 本文由粒度图像集成模块和原始图像复核模块通过组成多粒度图像训练进程,并设计了一种以粒度图像为基准输入的即插即用模块,如图1右上方所示,该模块可以随意插入到任意骨干网中,且不会带来额外的参数量。粒度图像集成模块由Resnet50的S3、S4层特征,CBAM注意力结构,Downsample结构(如式(5)),以及一个单层FPN向上整合结构组成 Y=Linear(Max(conv(CBAM(F)))) (5) 低层特征往往包含更加泛化的信息,如纹理、颜色、边缘等,可以拆分成不同粒度的信息,所以本文选取较低层的两个阶段的特征,集中保存粒度信息。注意力模块CBAM用户优化特征信息,突出粒度图像中更具表征的区域。而Downsample结构下采样特征后,可以便于计算粒度图像集成模块的损失,在训练过程中,本文还仿照FPN方式对模块不同阶段的尺度特征进行一次放大整合,将尺度信息进行一次融合,使联合损失同时优化尺度和粒度网络信息,最终这个混合损失表示为Loss1=λL1+λL2(λ=0.5),λ的取值经过实验验证确定。如文献[16]所述,对特征不同尺度的采样,本质上也属于图像不同粒度的信息。对不同层的信息进行下采样并进行预测,可以同时在同一网络中兼容多种粒度信息,而图中各层注意力结构CBAM与下采样Downsample结构的参数起到了保存和精简不同粒度图像信息的作用。 如图1右下方所示,本文在进行一次粒度图像训练后再训练一次原始图像,由此防止粒度图像过度影响网络概括性图像特征信息,以保证模型稳定。其比粒度图像训练时,多经过一层基础卷积层,进一步压缩图像尺寸,相比低层特征在语义信息上同时压缩了细粒度信息。同时,为了使粒度图像分支训练最终提取的预测分类特征尽量与原始图像分支预测特征粒度相区分,使各个粒度信息在网络中共存而不混淆,本文将原始的图像信息集中保存在最后一层并进行特征预测。 为了尽可能的使网络学习更多不同粒度的信息,本文尝试了多种输入方式调整粒度图像模块,最终确定每种粒度参与30次循环迭代,按从粗到细的顺序逐渐改变粒度模块输入的图像粒度,整体模块不参与完整训练。这种方式能够在一定程度上递进稳定的学习,同时原始图像输入模块分支紧跟其后进行训练,也提高模型稳定性。 在目前主流的细粒度图像分类训练网络中,人们设计了大量方式丰富最终分类特征的表征信息。在前人研究成果的基础上,如图1左下角所示,本文在多尺度特征融合的基础上,通过注意力机制发现不同粒度图像特征中的关注区域,设计了一个特征融合模块指导训练,使最终的特征向量尽量包含更多样化的信息。 由于粒度图像训练模块中,粒度图像生成模块拥有极大的随机性,不利于图像粒度的一致性。所以在特征融合训练分支中,利用交叉窗口O代替Q进行重组。交叉窗口实际上是粒度图像生成模块众多可能组合中的一种特殊情况,其在尽量保留部分子块原本位置的基础上分散所有相邻的子块,并保持子块位置相对接近,为特征网络关注细化区域的特征提供良好的基础条件。 如图3所示,当将图片被分割为2×2个的子块时,称粒度等于2,此时交叉窗口较为特殊,其交换副对角线的子块位置;当粒度n大于等于4时,其变换实质是对应交换了第1、第3的行和列;当粒度等于8时,交换第1、第5以及第3、第7位置的行列,往后类推。交叉窗口可以充分分离各个相邻子块。固定的生成序列也便于空间位置的重新还原。 图3 交叉窗口部分粒度示意 在网络训练过程中,为了结合多种不同粒度的特征,在特征融合分支输入由交叉窗口生成的不同粒度图像特征,从而提取到n粒度图像窗口输入下网络中S3、S4层产生的不同尺度特征值Fn,1,Fn,2,以及原始图像训练分支中对应层的特征值X1,X2。通过CBAM注意力模块,可以得到相应注意力特征AFn,1,AFn,2,AX1,AX2,以这些不同尺度的特征向量为基础进行融合。各个特征的生成关系如下式 AFn,m=CBAM(Fn,m)×Fn,m AXm=CBAM(Xm)×Xm(n=0,2,4,8;m=1,2,3) (6) 上述特征组成了特征融合模块的基础融合特征,由于交叉窗口对图像内容进行了重新排列,所以特征的空间关注位置产生了错乱,在进行融合特征之前,为了与原始特征的空间信息保持一致,再次使用交叉窗口重新还原空间位置,对齐不同粒度的特征信息,以求两者结合形成新的注意力特征不存在内部空间混乱,如式(7)所示。特征融合模块的具体结构如图4所示。 图4 特征融合模块结构 如图4所示,由不同粒度的交叉窗口会生成不同粒度的特征信息,与粒度图像集成模块的训练进程相对应,本文从粒度为2,4,8的交叉窗口输入下的模型中,提取第三第四层的粒度特征,作为之后融合特征模型细粒信息的主要来源。如图4上方表示的是原始图像特征的提取过程,其输入为原始图像,提取后三层全部特征,本文认为前两层原始图像特征包含一定粒度信息,可以与交叉窗口的粒度图像特征兼容。最终获得9个基础特征,S3,S4层包括4个特征,S5层只包含原始图像输入下的特征,按层相互结合获得信息更丰富的同尺度特征。 如图将所有粒度的特征矩阵累加后经过CBAM模块,生成新的注意力特征,与原始图像注意力特征做内积,每一层特征处理使用的CBAM模块参数共享。由此可以利用不同的粒度的关注区域指导网络进行融合特征训练,强化原始图像中的细微特征值,完成粒度信息融合。最后将单维特征相互连接,完成不同尺度特征的融合。该特征由两倍的交叉熵函数计算得到的损失作为特征融合模块的参数训练依据,以跟上训练主体的参数更新速度。而测试阶段则是将不同粒度特征的送入了由1×1卷积和最大池化层等下采样工具组成的Downsample结构中,获得相应的单维特征相加起来送入线性层,其中,卷积层达到了对特征进行降维的目的,池化层缩减了特征的尺寸,最终的输出向量进行分类预测后达到的精度作为最终结果 AFn,m′=AFn,m·O(L) (7) (8) Cm=Max(conv(Am)) (9) Yi=Linear(concat(C1,C2,C3…)) (10) (11) 本节针对上一节提出的技术路线,使用Pytorch作为基础的深度学习框架,并搭建了相应的模型,在几个标准细粒度图像数据集上评估了模型的性能。 本次实验主要使用了3个常用的标准数据集,分别是CUB-200-2011鸟类数据集、FGVC Aircraft飞机数据集以及Stanford Cars车类数据集。各个数据集的详细信息见表1。 表1 本文实验数据集信息 实验中使用pycharm开发工具,以ResNet50网络模型作为各种为骨干网络,使用预训练模型对网络进行初始化。统一输入图像尺寸使用中心裁剪为448×448的尺寸并进行随机水平翻转,使用只使用图像本身以及图像标签。训练过程中使用1张Tesla P100型号GPU,初始学习率设为0.001,使用动量参数为0.9的SGD优化器进行训练,并利用余弦梯度下降法更新学习率,批次大小设为8,总共迭代150轮。 本文方法在3个数据集上,与目前主流细粒度图像分类方法进行比较,从表2中可以看出,本文方法在各数据集图像识别准确率上,与同样使用ResNet50作为骨干网络的先进方法达到了同一水准。并且优于部分以VGG-16作为骨干网络的优秀模型。 表2 不同方法在不同数据集上的对比/% 如表2所示,本文结果对比基础网络有显著提升,可见本文结构有效结合了显著性多粒度多尺度的各种特征,最终获得了信息丰富的表征特征。并且本文只使用了单一Resnet50以及3个轻量化注意力模块,在基础网络的基础上无需训练额外的模型参数就可以端对端的实现同样水准的分类精度。对比实验结果,在各个数据集上相较于最新算法精确度都略有上升,对比基础网络提升更为显著,验证方案有效性。 为了验证粒度图像训练以及特征融合模块的有效性,本节在CUB-200-2011鸟类数据集上进行消融实验。本文在粒度图像训练过程的细粒设置上,考虑了从粗粒度到细粒度以及从细粒度到粗粒度的两种训练方式,并分别进行了实验,实验结果见表3。本文主要使用2,4,8,16这4个粒度值进行实验,因为更大的粒度设置,将不利于网络从中获得较为完整的特征区域。粗粒度到细粒度的训练方式具体实施是通过逐渐增大粒度图像生成模块中的n值实现的,而细粒度到粗粒度则是将粒度值由大到小排列,训练过程中,在第6次循环加入粒度图像训练分支,每一种粒度训练30个轮次。特征融合分支中不加入粒度信息。本消融实验中共训练120轮。 表3 不同粒度设置方法的对比 首先,我们尝试在粗粒度的基础上逐渐增加一种粒度信息,由此可见,每加入一种粒度值,其精度都有一定提升,但是加入粒度过大的粒度图像,例如粒度16的图像信息参与训练会使训练准确度下降;其次,调换粗粒度和细粒度的参与顺序,会降低准确度,且删去粗粒度信息的影响比删去细粒度信息对特征的影响更大。所以最终确定[2,4,8]的组合顺序更适合作为本文模型的粒度图像训练模块的输入方式。并且,基于这个组合,本文相应再调整了每种粒度参与训练的轮次,确认30轮次的参与数量是最佳方案。在确定粒度设置方式后,如表4所示,本文进一步探究了粒度图像训练分支、注意力机制,以及特征融合分支对整体模型的贡献。 表4 不同模块设置下的对比 由表4实验结果可知,粒度图像训练和注意力机制可以直接提升初始网络的训练精度,其分别向网络输入了粒度性信息和显著性信息,其中粒度图像训练过程对结果提升显著,相较于基础网络提升了3.18%,验证粒度信息对模型的增益巨大。特征融合分支建立在粒度图像训练的基础上,对网络中的粒度信息进行处理能将精度提高1%左右,结合注意力机制带来的显著性指导再次提升0.41%,最终整体实现识别率表现优秀。 针对目前图像分类网络通常只产生单一输入图像粒度特征的现状,本文提出了一种学习逐渐细化粒度信息的分类网络,获得各粒度图像的显著性不同尺度特征通过各种方式在网络中进行融合,在不需要额外模型参数训练的情况下提高其识别准确度,并与目前先进方法达到了同样的竞争力。为鸟类图像分类特征融合提供了一种基础特征,因此在未来的研究工作中,将进一步寻找更加高效的特征融合方式,以适应不同数据集特征。2.2 多粒度图像训练
2.3 多尺度多粒度图像特征融合
3 实验结果与对比分析
3.1 实验数据集
3.2 实验与结果分析
3.3 消融实验
4 结束语