APP下载

基于深度学习的两阶段细粒度车辆检索算法

2022-11-07江昆鹏闫洪涛张庆辉杨红卫

计算机应用与软件 2022年10期
关键词:特征描述细粒度池化

江昆鹏 闫洪涛 张庆辉 杨红卫

1(河南工业大学信息科学与工程学院 河南 郑州 450001) 2(河南工业技师学院 河南 郑州 450007)

0 引 言

随着我国社会经济的发展,越来越多的人拥有了自己的私家车,导致我国汽车保有量呈爆炸式增长,因此开发出一款车辆检索系统具有重要的现实意义。此外在道路安全监控方面,公安交通系统数据库中保存有大量车辆图像,依据车辆外观进行图像检索将有利于刑事案件的侦破。

图像检索是计算机视觉领域里一个长期研究的课题,基于内容的图像检索任务早在20世纪90年代就已经开始。2003年Sivic等[1]提出了词包(Bag of Words,BoW)模型,该模型主要利用了尺度不变特征转换(Scale-invariant feature transform,SIFT)[2]算法,从此以后,计算机领域内的专家学者共同见证了十多年来BoW模型对图像检索的重要性,并对算法进行了许多次改进。直到2012年Krizhevsky 等[3]提出了深层卷积神经网络模型AlexNet,并在ImageNet挑战赛中获得了冠军,引起了学术界的广泛关注,图像检索的研究重心开始转向深度学习。直到今天基于SIFT的图像检索技术仍在发展,但基于卷积神经网络的图像检索技术已经成为主流。基于卷积神经网络的图像检索技术大体分为三类,基于预训练的模型[4]、基于微调的模型[5]和混合模型[6]。前两者基于单网络传输,后者则基于多网络传输[7]。然而,这些方法中大部分直接使用卷积神经网络进行了特征提取,而没有评估所获得特征的有效性。

细粒度图像检索是图像检索领域的一个重要分支,不同于基于内容的图像检索任务。基于内容的图像检索主要针对图像内容的相似性进行检索,而细粒度图像检索是对主类别下的子类别进行检索(例如对宝马品牌下不同型号车辆的检索),由于子类别之间的差异往往是细微的,因而细粒度检索难度更大。实验表明目前大部分的图像检索算法在细粒度图像检索任务上效果不佳。

与解决细粒度分类任务提出的方法数量相比,解决细粒度图像检索任务的方法则要少得多。Wang等[8]提出利用深度排序去学习细粒度图像间的相似性,然而这需要对图像进行标注,不利于大规模图像检索。Wei等[9]提出一种无监督细粒度图像检索方法,通过对主要目标的定位,排除掉了无关信息的干扰,生成具有判别力的特征描述子,但该方法在车辆检索方面效果不理想。Ahmad等[10]提出了一种基于对象的图像检索方法,通过设置阈值去除了无效的特征信息,并采用了哈希方法进行了大规模图像检索。

以上方法主要是对全局特征的相似度进行比较,随着检索类别数量的增多,检索效果会变得不理想。为了解决这种问题,本文利用Faster R-CNN[11]对目标区域进行定位和类别判断,并结合这两项数据结果进行二次检索。本文方法首先对全局特征描述子进行检索,再利用局部特征描述子和类别得分对图像进行二次检索。实验结果证明该方法在主流细粒度车辆数据集中取得了较好的检索效果。

1 方 法

为实现对车辆图像的检索任务,本文提出了一种两阶段图像检索方法,该方法的整体网络框架如图1所示,首先对预训练卷积神经网络模型进行微调,在“Pool6”层设置阈值t,选择包含有效激活区域的特征。然后进行第一阶段检索,通过GeM pooling[12]将特征聚合为全局特征描述子,对全局特征描述子进行降维与白化操作,再根据欧氏距离方法进行初次检索;第二阶段采用Faster R-CNN网络模型对第一阶段排序结果中的图像进行目标区域定位和类别预测,将具有相同类别目标区域的特征描述子再次进行欧氏距离相似性度量,并结合扩展查询,得到最终的检索结果。

1.1 有效特征选择

2015年牛津大学的Simonyan等[13]提出了VGG-Net,该模型的网络深度为16到19层,有两种类型,即VGG-16和VGG-19。VGG-16由13个卷积层和3个全连接组成,包含512个通道,输入图像被表示为一个W×H×512的3维张量。在512个通道中随机选取一些特征图,并将特征图叠加在原始图像上,以便获得更好的可视化效果,从图2中可以发现,采样的特征图中激活区域(图中高亮部分)有的(如图2(c)和图2(d))在车辆上,有的则在背景中(如图2(a)和图2(b)),这说明了并非所有特征都是有效的,单个通道最多只包含弱语义信息,因此选择和使用有用的特征是十分必要的。

选择有效的特征有两个重要目的:首先,可以消除不相关的特征,利用有效的特征来表示对象;其次,去除不相关的特征可以降低背景在图像表示过程中的影响。Pool5层是VGG-16模型中最后一个最大池化层,通过调整Pool5输出特征图的尺寸为6×6,发现在车辆特定部位产生了不同程度的激活。为了选择有效的特征,Ahmad等[10]通过计算每幅特征图的平均激活值,利用空利用指数,设置阈值t,对小于阈值的特征图进行保留,从而消除了那些对大多数图像没有强烈反应或产生空激活的特征图,保留的特征图表现出了对目标物体的极大关注度,该方法可以在不降低VGG-16性能的情况下选择出有效的特征。

1.2 特征聚合池化方法

经过预训练模型提取的特征是一组局部特征,为了将其聚合为全局特征描述子,方便进行相似性度量,目前主流的方法是进行池化操作。常用的池化方法包括全局最大池化(Global Max Pooling)、全局平均池化(Global Average Pooling)。全局最大池化能更好地凸显个体的激活信息,而损失了整体信息,全局平均池化则刚好相反,对特征图的整体信息进行保留,而弱化了个体信息。

通过预训练模型输出一个W×H×K的3维张量R,其中K是最后一层卷积层产生特征图的数量,Rk为特征图k∈{1,2,…,K}对应W×H的激活集合。特征聚合池化采用R作为输入并以向量f作为输出,向量f的全局最大池化和全局平均池化分别表示如下:

全局最大池化:

(1)

全局平均池化:

(2)

广义平均池化(Generalized Mean Pooling,GeM pooling)[12]结合了全局最大池化和全局平均池化方法,其优点是可以通过训练进行优化,如式(3)所示。

(3)

式中:pk是可微的,其值可以手动设置也可通过训练获得,当pk趋于无穷大时效果等同于全局最大池化效果,当pk等于1时,则和全局平均池化效果相同。

在对预训练模型提取的特征进行广义平均池化后,需要对向量f进行2范数[14]归一化操作,以便使得图像之间的相似性可以通过内积来度量,GeM向量对应于被2范数归一化的f向量,构成了图像的全局特征描述子,为初次检索做准备。

1.3 全局特征描述子降维与白化

对高维数据进行操作是一件困难的事,许多可以在低维数据中进行的操作无法在高维数据上实现。在提取数据库中所有图像的全局特征描述子时,会产生大量的计算和内存消耗,这就需要对全局特征描述子进行主成分分析(Principal Component Analysis,PCA)降维和白化处理[15]。

PCA是一种常用的特征降维方法,其主要优点是降低数据的复杂性,只保留重要信息。PCA的工作原理是首先找出数据方差最大方向作为第一个主成分坐标轴,接着找出数据方差次大方向且与第一主成分方向正交的坐标轴作为第二主成分方向,以此类推找出所有主成分方向,然后通过数据集的协方差矩阵计算出主成分的特征值和特征向量,保留最大的a个特征,从而将维度降为a维特征向量。然后对a维向量进行白化处理得到最终的全局特征描述子。

PAC降维与白化操作降低了特征的冗余度和特征间的相关性,能够有效提高检索效率。

1.4 相似性度量和查询扩展

欧氏距离是指在N维空间中两个向量之间的绝对距离,其形式简单,是一种常用的向量相似性度量方法。本文以欧氏距离对GeM pooling产生的全局特征描述子进行相似性度量,两个特征向量x∈(x1,xi),y∈(y1,yn)之间距离可表示为:

(4)

为进一步提高检索精度,本文增加了扩展查询(Query Expansion,QE)[16]功能,QE是一种常用的图像检索方法,该方法借鉴于对文本的检索案例。在进行扩展查询之前通过计算查询图像特征描述子与数据库中图像特征描述子之间的欧氏距离,得到数据库中排名前k个图像的特征描述子,在扩展查询时对这k个特征描述子进行均值求和并重新归一化得到新的特征描述子,将新的特征描述子同数据库中的特征描述子再进行一次欧氏距离度量,得到最终的检索结果。扩展查询使得特征变得更为丰富,通过两次空间验证提高了查询精度。

1.5 重排序

区域建议网络(Region Proposal Network,RPN)是Faster R-CNN的重要组成部件,经常被用在计算机视觉领域。RPN是一种全卷积神经网络(FCN),FCN没有全连接层,对输入的不同尺寸图像经过一次全卷积操作就可以得到多个区域的特征。RPN替代了选择搜索(Selective search)形式的候选区域生成方式,采用了滑动窗口在特征图上进行滑动并产生多尺度的锚(anchor),然后通过分类层判断目标区域类别,并通过边界回归层得到目标位置。

在训练RPN过程中,给每个候选区域都分配了一个二值标签用以判别是否是目标区域,对以下两类候选区域配以正标签:(1) 与目标区域有最大交并比值(Intersection-over-Union,IoU)(即两个区域的交集和并集之比)的候选区域;(2) 与目标区域的交并比值大于0.7的候选区域。而与所有目标区域的交并比值低于0.3的候选框配负标签,其他情况的一律舍弃。RPN的损失函数由分类损失函数和边界回归损失函数组成,损失函数定义为:

(5)

待检测图像和其特征图在位置上存在一定的对应关系,把待检测图像中目标区域映射到特征图中的过程称为感兴趣区域(RoI)映射,该过程在感兴趣区域池化层(RoI pooling layer)中完成。由于全连接层需要固定尺度的特征图进行训练,而RoI Pooling能将不同尺寸的输入图像以固定维度的特征向量输出,所以RoI Pooling可以很好地将RPN产生的不同尺度锚缩放到固定尺度,然后传入到全连接层中进行目标定位和类别预测操作。

在对查询图像中目标车辆的类别进行预测前,需要对Faster R-CNN进行微调,将数据集所包含的类别作为可预测范围。重排序首先将待查询图像和初次检索图像的特征图送入RPN中产生候选框,经过非极大值抑制法去除掉无关的候选框,对每个候选框进行ROI pooling操作后送入全连接层,在全连接层中预测车辆所属类别,并获得该类别车辆的目标区域。重排序过程首先对目标区域做全局最大值池化操作,得到目标区域的特征描述子,然后将初次检索的图像类别和查询类别相同的目标区域进行二次欧氏距离计算,并结合扩展查询得到最终的排序结果,作为检索结果按顺序输出。

2 实 验

本文实验在Caffe深度学习框架上进行,操作系统使用的是Ubuntu 16.04,显卡采用8 GB内存的Nvidia GeForce RTX 2080,CPU为英特尔Core i7- 8700K六核,内存为16 GB。数据集采用CompCars Dataset[17]和Stanford Cars[18]。

实验分别在Stanford Cars和CompCars Dataset数据集上进行,Stanford Cars数据集是计算机视觉领域常用的细粒度车辆数据集,其中包含196个车型类别共计16 850幅图像,标注有汽车的品牌、型号、生产年份信息和位置边框信息。CompCars Dataset数据集包含50 000幅监控图像,都是从车辆正前方拍摄,其中有281种不同类别型号的车辆。

2.1 各车辆数据集实验结果

实验采用预训练模型VGG-16进行提取特征,将GeM pooling的pk设置为固定值3,并依据数据集的特点对Faster R-CNN模型进行了微调。本文采用mAP(Mean Average Precision)和precision@K(top K)进行性能评估。

2.2 Stanford Car数据集

根据Stanford Car数据集的特点,调整了Faster R-CNN中的输出层,设置预测类别为197个(包括背景类别),从每个类别下抽出5幅用于测试,不参与训练过程。首先将查询图像通过GeM分支进行初次检索,将检索结果进行保存供重排序使用,图3所示为初次检索结果中的前8幅图像,图中左上角为查询图像,后面为查询结果,按照相似度由大到小的顺序从左到右从上到下依次排列,其中1、3、7、8位置为正确结果。然后,在初次查询结果的基础上进行重排序检索,作为最终的检索结果输出,重排序结果如图4所示,1、2、3、4、5、7、8位置为正确结果,从实验结果中可以看出重排序对检索精度的提高效果明显。

为了证明方法的先进性,本文将算法与主流图像检索算法在Stanford Cars数据集上进行检索精度对比,Top1和Top5的mAP比较结果如表1所示。R-MAC[4]算法利用卷积神经网络提取图像的局部特征,然后利用不同尺度的滑动窗口进行Global Max Pooling操作将特征聚合为全局特征描述子,在多区域模式下,利用积分图像和近似极大值算子可加快该过程。SPoC[19]算法利用sum pooling提取全局特征描述子,使用经向基函数计算特征平面,但忽略了每个通道的权值,导致去噪效果不好。CroW算法[20]对CNN最后一个卷积层提取的特征添加了权重,并且对每个卷积通道也进行加权处理,达到了较好的效果。SCDA算法[9]主要针对细粒度图像检索任务,使用极大连通图定位图像中的物体,以去除背景噪声,算法将全局最大池化和全局平均池化进行了串联,在细粒度检索上取得了不错的效果。HLBP算法[21]利用多个卷积层特征的自相关和互相关性,有效融合了多层特征信息,提高了图像检索性能。CGD算法[22]组合了多个全局描述子,在端到端的方式进行训练时,可以操作不同类型的特征属性,获得了比单个全局描述子更好的效果。

表1 Stanford Cars数据集检索mAP结果

图5显示了在Stanford Cars数据集上precision@K(top K)的检索精度比较,其中K分别取5、10、15、20、25,可以看出本文算法相比以往大部分算法在细粒度图像检索任务上的先进性。

2.3 CompCars Dataset数据集

CompCars Dataset下包含有50 000幅车辆监控图像,全部在车辆正面拍摄,根据数据集中包含的车辆类别数量,将Faster R-CNN的预测类别设置为282个(包含背景类别),从每个类别下抽出5幅图像用于查询测试,不参与训练过程。如图6所示为查询结果,每行第一个为查询图像,后面为此按相似度排序最高的前四张图像,第一行4和第二行3、4为查询错误图像。

由于光照度影响,数据集中在夜间拍摄的车辆图像没有被检索出来,这些图像往往存在车辆轮廓无法辨认的情况,影响了数据集整体的检索效果。

3 结 语

本文提出了一种两阶段细粒度车辆图像检索算法,首先对预训练卷积模型进行微调,对提取的特征进行筛选,排除无关的背景信息,然后在第一阶段中利用generalized mean pooling对局部特征进行聚合,获得图像的全局特征描述子,对全局描述子进行PCA降维与白化处理,并使用欧氏距离法进行初次检索;第二阶段利用Faster R-CNN的类别预测和定位功能,将查询图像与初次检索图像类别相同的目标区域特征描述子之间再次进行欧氏距离计算,最后结合扩展查询得到检索结果。实验结果表明,本文方法相比以往的主流检索方法在细粒度车辆图像检索准确率上优势明显。本文主要针对小规模、固定数量的数据集进行检索。针对交通系统的实时性、数据量大的特点,利用大数据技术进行存储与检索是今后的研究方向。

猜你喜欢

特征描述细粒度池化
船舶尾流图像的数字化处理和特征描述技术
基于高斯函数的池化算法
卷积神经网络中的自适应加权池化
基于卷积神经网络和池化算法的表情识别研究
用于手写汉字识别的文本分割方法
在线评论情感分析研究综述
面向视觉导航的图像特征评价方法研究
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计
初中化学高效课堂中评价行为特征的研究