杨清溪,张丽红
(山西大学 物理电子工程学院,山西 太原 030006)
场景识别是计算机视觉领域的基础任务之一.传统的场景识别方法主要基于手工特征来研究,在表达能力上有限,识别精度较低.近年来,人们开始利用深度学习方法进行场景识别,并取得了显著成果.基于卷积神经网络(Convolutional Neural Networks,CNN)的方法不需要手工提取图像特征,而且还可以将颜色、纹理、材料等低层潜在信息与区域、对象等高层信息相结合,从而获得更好的场景表示以提高场景识别性能.
目前,国内外场景识别的研究中,提高场景识别性能方法的主要趋势集中在加深网络的深度和宽度.但场景图像类内变化大,类间相似度高(不同场景类别有共享相似的场景表示对象),会削弱网络的泛化能力,因此,模型场景识别的性能并不会随着网络的深度和宽度线性变化.为了解决这一问题,国内外研究人员提出一些基于上下文信息和判别对象信息来提升场景识别性能的方法.Xie等人基于上下文信息,通过判别候选区域的显著性,构建了一个融合局部和全局判别特性的CNN架构,提高了场景图像的细粒度识别[1];同时,Zhao等人提出了一个判别发现网络,它可以为每一幅输入图像生成相应的判别映射,再将其输入到多尺度通道内进行特征提取[2];在判别对象信息方面,HerranzPerdiguero等人提出了在深度语义分割网络的基础上,引入支持向量机(Support Vector Machine,SVM)进行基于对象直方图的场景识别[3];Wang等人设计了从面向对象和面向场景的CNN中提取基于Patch的特征来构建场景的语义表示架构[4];Cheng等人提出的基于语义聚合描述子向量(Vectors of Semantically Aggregated Descriptors,VSAD)方法也可以在标准场景识别的基准上取得优良的性能[5].
尽管此类方法可以有效提高场景识别的准确率,但基于对象的场景识别方法往往参数量大,导致计算量过大,而且对象之间的空间相互关系也没有充分利用.因此,本文提出了基于语义信息的场景识别方法,通过语义分割利用对象实例之间的空间关系来引导网络学习.实验结果证明,本文所提出的方法在显著减少网络单元数量和参数数量的同时,能够获得更好的识别性能.
语义分割任务是为图像中的每一个像素分配一个对象标签.语义指的是对图像内容的理解;分割则指的是从像素的角度分割出图片中的不同对象,即对图像中的每个像素都进行标注.
通用的语义分割网络是一个编-解码网络.编码器通常是一个预先训练的分类网络,解码器则是将编码器学习到的语义特征(低分辨率)投影到像素空间(高分辨率)上,得到密集的分类.现行的语义分割方法主要分为3种:基于区域的语义分割、全卷积网络语义分割、弱监督语义分割.
在多模态特征融合方法的启发下,本文基于RGB分支网络,采用语义分割结果作为附加信息源来研究场景识别问题.
高效网络是为了解决如何在有限的计算资源下得到网络性能的最大值而提出的.卷积神经网络的缩放通常可以在深度、宽度和图像分辨率 3个维度上进行.现有的神经网络模型架构大多是选择其中一个维度进行缩放.高效网络则是通过引入一个简单而高效的复合系数按比例缩放网络的深度、宽度和分辨率3个维度,从而使网络具有更好的精度和效率[6].
卷积层可以定义为一个函数:Yi=Fi(Xi),其中Yi是输出张量,Fi是卷积运算,Xi是输入张量,张量形状为〈Hi,Wi,Ci〉.其中Hi和Wi为空间维度,Ci为通道维度.一个卷积神经网络N通常可以表示为多层卷积运算
N=Fk⊙…⊙F2⊙F1(X1)=⊙j=1,…,kFj(X1).
(1)
实际设计中卷积神经网络被划分为多个阶段,除了第一层执行下行采样操作外,其余每个阶段的卷积层都执行相同的操作.此时,可将卷积神经网络表示为
(2)
模型缩放在不更改基线模型中预定义Fi的情况下扩展网络的长度、宽度和分辨率.其目标是使给定资源约束的模型精度最大化,因此可以表示为以下优化问题
Memory(N)≤target_memroy,
FLOPS(N)≤target%flops,
(3)
高效网络使用一个复合系数φ来均匀缩放网络的宽度、深度和分辨率
depth:d=αφ,width:w=βφ,
resolution:r=γφ,α≥1,β≥1,γ≥1,
(4)
式中:φ表示可提供的总体计算资源;α,β,γ表示为网络宽度、深度和分辨率分配的计算资源.卷积的运算量与d,w2,r2成正比,通过约束α·β2·γ2≈2,可以使得对于任意φ值,网络整体的运算量增加2φ倍,通过小型网格搜索,确定高效网络基线模型中的w=1.10,d=1.20,r=1.15.
利用高效网络在计算资源有限时的优势,本文采用高效网络的基线模型作为RGB分支的特征提取网络.
多模态特征融合方法可以有效提高场景识别的性能.因此,本文提出融合图像的RGB特征和语义特征来提升模型性能;本文采用基于度量学习的注意力机制融合架构,即先将图像的RGB特征和语义特征转换到同一空间,再进行基于注意力机制的特征融合.
1.3.1 基于度量学习的特征转换
直接对多模态特征向量进行融合,会忽略不同模态特征之间信息的互补性和一致性.基于度量学习的特征转换方法,可以通过寻找线性变换,将图像的原始特征转换到更具有代表性和判别性的特征空间中,从而尽可能地保留一致性信息,实现不同特征向量的互补信息和判别信息的充分利用[7].
为了克服场景图像的类内多样性和类间相似性,使同一类图像之间的度量距离更小,不同类图像之间的度量距离更大;以及最小化同一图像的两个不同特征向量之间的差异,将不同特征向量映射到同一个公共空间,自适应判别度量学习的目标函数可以表示为
(5)
不同的特征向量需要不同的变换矩阵,Wv∈Rdv×m表示第v个特征向量的变换矩阵,m表示公共空间的维数;αv是自适应权重向量;β是正则化参数,以防止矩阵Wv中的元素过大;η是一个正则化参数.对上述目标函数进行优化,可以获得不同特征向量相对应的变换矩阵Wv,它可以将得到的深层特征向量转换到更有识别力的特征空间.
在判别度量学习的基础上,本文为了进一步简化模型结构,只针对语义分支提取的特征进行转换,通过卷积操作直接将其转换到RGB分支特征所处的空间中,再进行基于注意力机制的特征融合.
1.3.2 基于注意力机制的特征融合
注意力机制的本质是一系列权重系数的分配,可以使模型在学习过程中重新选择聚焦位置,通过权重系数不仅可以强调或选择图像中重要对象的信息,而且可以抑制无关的细节信息,从而产生更具判别性的特征表示.
注意力机制是由多个注意力模块堆叠而成的,每一个注意力模块可以分为掩码和主干分支两部分,输出可以表示为
Hi,c(x)=Mi,c(x)*Ti,c(x),
(6)
式中:Mi,c(x)是掩码分支输出的注意力权重;Ti,c(x)是主干分支提取的特征表示;Hi,c(x)表示二者的点积.
主干分支通过卷积操作提取特征.掩码分支主要由下-上采样的卷积神经网络结构组成,下采样产生低分辨率、强语义信息的特征图,起到收集整个图像全局信息的作用;上采样扩展下采样产生的特征图,使其尺寸与输入下采样前的特征图相同,起到对输入特征图进行推理选择的作用.掩码分支的输出可以看作是主干分支输出的控制器,过滤不重要的信息,强调重要信息.
本文基于卷积神经网络提取的特征,对特征张量的所有通道和空间位置直接使用Sigmoid函数,不添加其他任何额外约束,从而得到混合注意力模块,Sigmoid函数的表达式为
(7)
式中:xi表示一个特征通道上的所有特征向量;c表示不同的特征通道.
本文通过混合注意力模块由语义分支的输出特征控制RGB分支的输出特征,使得网络的注意力集中到具有强语义表达的图像区域上,以提升网络的总体性能.
本文提出了一种由双分支CNN和注意力机制组成的多模态深度学习场景识别架构,如图 1 所示.设计思想主要是基于图像的RGB特征和语义特征,可以起到相互补充的作用[8].整体网络架构由3部分组成:语义分支在语义分割的基础上利用通道注意模块实现图像强语义信息的提取;RGB分支利用高效网络基线模型提取图像的整体特征;基于度量学习将得到的双分支特征转换到同一特征空间下后,通过注意力机制有效融合两种特征,将融合后的特征输入线性分类器,最终实现图像场景类别的预测.
图 1 基于语义信息的场景识别模型结构
语义分支由UPerNet-50语义分割模型和通道注意模块两部分组成.给定输入图像I,直接利用预训练好的UPerNet-50模型对图像进行语义分割,得到相应的特征张量M,经过降维处理后将其送入通道注意模块提取强语义特征,最后利用卷积操作(卷积核为3×3,、步长S设为2)实现判别度量学习,将特征张量映射到7×7×320的特征空间中,便可得到最终语义分支的特征张量FM.
通道注意模块使网络进一步学习图像中与图像场景类别有关的语义信息.其具体结构如图 2 所示.
图 2 通道注意模块的结构
输入特征图F∈Rw′×h′×c′,首先通过平均池化和最大池化在空间维度上对特征图F进行压缩,得到特征向量fmax和favg;再将fmax和favg输入由ReLU激活函数连接的两层全连接层当中,得到特征向量f1和f2,将这两个向量叠加并通过Sigmoid函数进行正则化,从而生成1×1×192维的通道注意力地图mc∈R1×1×c′.
f1=WC2·φ(WC1·favg),
(8)
f2=WC2·φ(WC1·fmax,
(9)
mc(F)=σ(f1+f2),
(10)
式中:σ表示Sigmoid激活函数;φ表示ReLU激活函数;C1,C2表示全连接层;W为全连接层的权重.
再用通道注意力地图mc对F加权可以进一步学习图像的语义信息
F′=mc(F)⊙F,
(11)
式中:⊙表示哈达马(Hadamard)乘积;F′表示通道注意模块的输出,特征张量的维度为14×14×192.
本文为了简化模型结构,直接使用了高效网络模型系列当中的基线模型——EfficientNet-B0来提取图像的RGB特征,EfficientNet-B0的具体网络结构如表 1 所示.
EfficientNet-B0架构由标准卷积层和移动翻转瓶颈卷积(Mobile inverted bottleneck convolution, MBConv)组成.网络的具体结构,以及不同阶段输出的分辨率和通道数如表1所示.其中,标准卷积层起调整输入维度的作用;多阶段MBConv可以对特征图进行低维子空间编码,以降低计算复杂度;最后由卷积核为1×1,步长S为1的卷积操作输出RGB分支的特征张量.
表 1 EfficientNet-B0基线网络的具体结构
将语义分支的输出特征FM转换到与RGB分支输出特征FI相同的特征空间后,通过注意力机制融合FM和FI便可得到最终的特征张量FA.
注意力机制的具体结构如图 3 所示.
(12)
(13)
FA=FI,A⊙FM,A,
(14)
图 3 注意力机制的具体结构
表 2 注意力机制的层数和输出特征
最后将总的特征张量FA输入由平均池化、随机丢弃和全连接层组成的分类器当中,生成特征向量f∈RK,通过对数归一化指数函数,可以得到最终的场景识别预测概率y∈RK,
(15)
式中:K表示场景类别的总数;k表示当前场景的类别;fi表示特征向量的第i个元素.
本文采用分阶段训练的方法,以防止其中一个分支主导训练过程.
在第一阶段,首先单独训练网络模型的RGB分支和语义分支;在第二阶段,控制已经训练好的RGB分支和语义分支结构不变,再开始训练网络的注意力机制和线性分类器模块.
网络的损失函数采用在分类问题中常用的Softmax损失,其表达式为
(16)
式中:-log(·)表示负对数似然函数;N为批处理中训练样本的数量,在训练过程中设置为8.本文使用弗兰克-沃尔夫深度(Deep Frank-Wolfe,DFW)算法来优化网络.DFW算法是梯度下降算法的一种,神经网络通过利用误差反向传播在梯度下降的过程寻找损失函数的最优解.误差反向传播是指通过比较网络输出的分类结果和真实标签之间的不同,从而得到误差信号,并将误差信号从输出层逐层向前传播,从而得到各隐藏层误差信号,再基于这些误差,调整各隐藏层之间的连接权重和偏置,以减小网络最终的整体误差.因此,在找到损失函数全局最优解的同时,便完成了网络当中权重和偏置的更新和迭代.本文设置网络的初始学习率为0.1,动量值为0.9,权重衰减值为0.000 1.
实验在ADE20K,MIT Indoor 67,SUN397 3个数据集上进行.
ADE20K场景解析数据集:ADE20K场景解析数据集包含22 210幅以场景为中心、并对对象进行了详细标注的图像.将数据集中20 210张图像用于训练,2 000张图像用于验证.该数据集共有K=1 055个场景类,因此可以用于场景识别模型的训练,但这个数据集有一个缺点在于数据的组成不够均衡.ADE20K数据集还具有150个语义类别标签,因此被用来预训练模型中的UPerNet-50 语义分割网络.
MIT Indoor 67数据集:MIT Indoor 67数据集包含15 620幅室内场景图像,共有K=67场景类.对于每个场景类,我们将80张图像用于训练,20张图像用于验证.
SUN397数据集:SUN397数据集包含 39 700幅场景图像,分为K=397个场景类,涵盖了室内和室外的各种环境.数据集本身提供了一个评估协议,将整个数据集划分为训练集和验证集.按照协议,将每个场景类的50张图像用于训练,另外50张图像用于验证.
场景识别性能的好坏通常是通过Top@k精度指标来评价的,k∈[1,K].本文选择Top@{k=1,2,5}精度指标.Top@1精度度量了得分最高的预测结果与验证图像真实标签相一致的百分比;Top@2精度度量了得分最高的2个预测结果中的任何一个结果与验证图像真实标签相一致的百分比;Top@5精度则度量了得分最高的5个预测结果中的任何一个结果与验证图像真实标签相一致的百分比.
Top@k精度的度量偏向于验证集中包含图像数量多的场景类,即包含的图像数量少的场景类几乎不影响Top@k精度的度量.为了评估数据组成不均衡的验证集(如ADE20K),使用平均类精度(MCA)来进行性能度量
(17)
式中:Topi@1是场景类i的Top@1精度;K表示场景类别的总数.对于一个完全平衡的数据集,MCA等于该场景类的Top@1精度.
在ADE20K数据集上进行了关于语义分支的消融研究,结果如表 3 所示.
表 3 中对比了单独使用RGB分支或语义分支时所提出架构的性能.实验结果表明,单独使用任意一个分支的性能都没有融合两个分支的性能好.表明图像的RGB特征和语义特征在场景识别任务中具有很强的互补性.
表 3 在ADE20K数据集上场景识别结果
在MIT Indoor 67数据集上,将本文模型与近年来国内外先进模型做了对比,场景识别的Top@1精度结果对比如表 4 所示.
表 4 本文模型与其他模型在MIT Indoor 67数据集 上的Top@1比较表
由表 4 可知与其他国内外先进模型相比,本文所设计的模型结构不仅使用的参数数量更少,而且在MIT Indoor67数据集上可以获得更高的识别精度.
本文设计的网络在MIT Indoor 67数据集上训练时的损失函数曲线如图 4 所示,损失函数随迭代次数的增加不断下降,最终降到0.508左右,网络收敛.
图 4 本文模型在MIT Indoor 67数据集上的训练损失
在SUN397数据集上,同样将本文模型与近年来国内外先进模型做了对比,场景识别的 Top@1 精度结果对比如表5所示.
表 5 本文模型与其他模型在SUN397数据集 上的Top@1比较表
由表5可知,与其他国内外先进模型相比,本文所设计的模型在SUN397数据集同样可以获得更高的识别精度,说明了本文模型结构的鲁棒性较好.
为了更形象化地看到语义信息在场景识别任务中的先验学习作用,以及注意力机制引导网络模型关注图像中强判别性的区域,本文进一步给出了类激活映射,如图5所示.
图 5 不同数据集图像的类激活映射
图5中的第1行分别从3个数据集中各取了 1张图片,(a)来自ADE20K,(b)来自MIT Indoor67,(c)来自SUN397;第2行则表示3个图片分别对应的 类激活映射,(d)对应为(a)的 类激活映射,(e)对应为(b)的 类激活映射,(f)对应为(c)的 类激活映射;其中,颜色从蓝到红表示网络为该图像块分配的权值越来越大,其中红色部分表示网络重点关注的区域;同时,在激活图的左上角也给出了图像的真实标签和得分最高的前3个预测结果.
本文提出了一种由双分支CNN和注意力机制组成的多模态深度学习场景识别模型.首先由语义分支网络有效提取图像的语义信息,同时RGB分支利用高效网络提取图像的全局特征,通过注意力机制有效融合两种特征,从而完成场景识别任务.在ADE20K,MIT Indoor 67,SUN397 3个数据集上的实验结果表明,本文提出多模态特征融合的方法,不仅可以有效提升模型场景识别的性能,同时减少了参数量,加快计算速度.本文由于仅仅用ADE20K数据集训练了语义分割网络,故模型优势在MIT Indoor 67和SUN397数据集上没有完全体现出来,因此改进语义分割网络可以进一步提升模型的场景识别能力.