谢秀珍,罗志明,连 盛,李绍滋
(1.厦门大学信息学院,福建厦门361005;2.龙岩学院数学与信息工程学院,福建龙岩364002)
随着城市车辆迅猛增加,对目标车辆的快速查找、跟踪和定位已成为公共交通安全管理的重要内容之一.目前大部分道路交通监控系统中,对车辆的识别主要是通过识别特定角度高清摄像头拍摄的前后车牌号来完成的;但在实际环境中还存在大量摄像头分辨率低、拍摄角度非特定、车牌被遮挡等情况,导致无法直接从视频中提取车牌号来对车辆进行识别,因此也需要采用其他方法实现对车辆的识别工作.车辆重识别也叫作车辆再识别,其主要目的是构建一个跨摄像头的车辆图像检索模型,能够对某一监控摄像头下拍摄到的指定目标车辆,实现快速准确地检索与识别该车辆在其他不同监控摄像头下对应出现的图像[1].在真实的道路交通监控场景中,车辆图片不可避免受到各种因素的影响:光照明暗、拍摄角度、障碍物对目标车辆的不同部位的遮盖、摄像设备的分辨率不同等,都会导致很大的车辆外观差异性.因此与其他目标检测识别[2-3]问题相类似,要实现准确的车辆重识别,其中的一个重要环节是提取车辆特征来作为重识别的主要依据,特征的判别力强弱将直接影响重识别的结果.
在深度学习[4]方法被广泛运用之前,主要是通过手动设计提取各种具有较强判断性的视觉特征(整体或部分的颜色特征、纹理特征或关键敏感区域的特征).如:王盼盼等[5]手动提取车辆图片的HSV(hue,saturation,value)和局部二值模式(LBP)特征并进行融合,再进行奇异值分解,提取特征值;李熙莹等[6]运用部件检测算法有针对性地检测和提取区别性较强的车窗和车脸等部位的特征并将其进行融合,生成新的融合特征,然后利用图像特征之间的距离进行分类识别.
随着大规模车辆数据集的构建,例如:VeRi-776数据集[7]、VehicleID数据集[8]、Toy Car RE-ID[9]数据集和VRIC[10]数据集,各种基于深度学习的车辆重识别模型也陆续被提出.Liu等[1]提出了“PROVID”模型来进行渐进式车辆重识别,实现在特征方面由粗到细以及监控中由近及远相结合的搜索;Yan等[11]提出了一个基于多任务框架的模型,将车辆图像建模成多粒度的关系,并提出了广义的二元“相似/不相似”关系的成对排序和基于多粒度的列表排序方法,渐进地利用多粒度排序约束来缓解精确车辆搜索问题;Liu等[12]提出由4个分支构成的“RAM”模型,把整体特征和区域特征联合起来,提取更详细、更具辨别力的特征;Bai等[13]使用敏群三元组嵌入的方法,显著减轻了类间相似和类内方差对细粒度识别的影响;Zhou等[9]利用车辆角度信息,提出了两种端到端深层架构,学习车辆不同视点角度的转换;Shen等[14]结合时空信息,提出了一个两阶段框架,排除具有高相似度的不同车辆间的相互干扰,有效地规范了重识别结果;He等[15]通过训练一个额外的车辆部位检测器,可以定位具有显著判别能力的局部区域并提取相应的特征,该方法可以有效地利用车辆的局部特征;Chen等[16]将车辆沿着水平、垂直以及特征通道方向划分成多个不同的子部分,然后再将这些子部分的特征进行融合,得到相对包含更多局部信息的车辆特征.
上述方法均有一定的代表性,说明充分利用手动提取或深度提取的特征,对车辆重识别工作中所依赖的车辆表观信息或角度信息等特征进行恰当处理,均能够取得不错的性能.目前大多数方法多从整体层面提取车辆特征,缺乏对局部细节的描述;或者使用额外的检测分支来定位车辆局部区域,增加了人工标注的工作量.此外,不同颜色或者不同车型的车辆肯定具有不同ID,且颜色与车型在变化的环境因素中亦能较容易被判断和分类;但现有方法更多是将颜色、车型作为属性信息加入到额外的监督损失函数中,并没有很好地将这些属性信息融入到车辆的特征中用于提升车辆重识别的准确率.
基于此,本文提出一种融合“多尺度表观特征”与“车辆属性信息”的车辆重识别算法模型.该模型以预训练的ResNet-50[17]作为骨干网络提取车辆的基础特征向量;通过两个分支从中分别计算提取车辆颜色与车型相关的属性特征、局部与整体融合的多尺度表观特征;采用动态自适应加权的方式对这两个分支的特征进行融合,用于获得更具有判别力和鲁棒性的深度特征作为车辆的最终特征表示;并使用一个多任务目标优化函数对整个模型进行参数优化训练.
本文构建了一个如图1所示的车辆重识别网络模型.该模型首先通过一个在ImageNet数据库上构建的骨干残差网络-50(ResNet-50)计算提取车辆基础特征向量z;接下来分别从基础特征向量中计算提取车辆颜色和车型属性特征fattribute以及多尺度车辆表观特征fappearance;然后将车辆属性特征融合到车辆表观特征以辅助提取强化提升的车辆特征向量f.本文通过一个多任务的损失函数,在综合考虑车辆分类、车辆颜色分类和车型分类的基础上具体优化网络模型参数.本节后续将分别介绍整个模型的具体计算流程.
图1 融合表观和属性信息的车辆重识别网络Fig.1The vehicle re-identification network fused appearance with attribute information
目前ImageNet数据库上预训练的深度网络模型被广泛作为各种计算机视觉任务的特征提取骨干网络.预训练模型指的是已经训练好的能执行大量数据任务的深度学习框架卷积神经网络(CNN).预训练结束时,会得到结果较好的一组权重值供他人研究共享.随着深度学习网络层数的增加,CNN表达力增强,有利于提高分类准确率;但层数并不是可以无限增加的,到达瓶颈值后网络收敛缓慢,分类准确率不升反降.这种情况下,采用ResNet能解决这个问题:通过增加残差结构单元,让网络在层数增加的同时不会出现退化现象.本文综合考虑准确率和计算复杂度,采用了目前其中之一的ResNet-50[17]作为骨干特征提取器,用于提取车辆图片的基础特征向量z.实际计算过程中,为了提取局部特征,本文中删除了ResNet-50网络中的全局池化层及后续的全连接(FC)层,并把最后一个残差模块的步长设置为1,因此对于一个256×256大小的输入图片,初始特征向量的维度为z∈R16×16×2 048.
车辆的颜色与车型是从整体上描述车辆的相关属性信息,因此,在本文中从共享的全局特征向量z中计算提取出车辆的颜色车型属性.首先通过一个全局的池化层将骨干网络计算提取的初始基础特征向量z转换成一维的特征向量,然后再通过一个FC层映射成最终的属性特征向量fattribute:
fattribute=δ(W1P(z)),
(1)
其中,W1∈R512×2 048为属性特征对应FC层的参数矩阵,P是全局平均池化操作,δ是ReLU激活函数.
在车辆重识别过程中,车辆的全局表观特征是从整体上识别车辆,在特定环境下具有较强的判断力,是必不可少的重识别特征;但在环境影响下,同一个车辆的整体表观特征差异较大,由于全局特征缺乏对局部细节的细节描述,在一定程度上降低了表达力.而局部特征是对车辆某个部分的具体描述,例如车辆前部的车标、车尾的形状、两侧的外观等,对车辆的特征表达比较细腻具体,区分度明显,能补充增加整体特征的表达力;尤其是在处理相同颜色、相同车型整体属性的车辆时,局部特征更是发挥了关键的辅助“点睛”作用.基于此,本文在提取车辆表观特征时,除了提取车辆的全局表观特征外,同时分别沿着水平方向和垂直方向将车辆划分成左、中、右和上、中、下等不同的区域提取对应的局部特征,这里各区域的划分不是平均分配,而是有所重叠.每个区域的划分量占整体的1/2,其中水平方向的中部和垂直方向的中部各被使用2次(如图1所示的虚线框部分).最后将各局部特征与整体特征进行融合,得到最终的多尺度车辆表观特征.
1) 全局特征提取.全局特征从整体上表示车辆的表观信息,与属性特征提取相类似,本文同样通过一个全局的池化层将初始特征向量z转换成一维的全局特征向量fg:
fg=P(z).
(2)
2) 水平方向的局部特征提取.车辆前部的车标、车窗等局部区域能够提供较为具体的车辆信息,这些局部信息对车辆的重识别非常有帮助,但精确地提取这些信息需要大量的人工标注,工作量大.通过观察,本文中发现一些比较固定的事实可利用,如车辆的车窗通常位于整个图片的上半部分,车标和车灯位于图片的下半部分等.
因此,本文在提取水平方向局部特征时,首先沿着水平方向把z重叠的部分分成左、中、右3个局部特征,即h1=z[0:7;:;:]、h2=z[4:11;:;:]、h3=z[8:15;:;:];然后通过池化操作分别把h1、h2和h3转换成一维特征向量;最后使用求和操作把这3个局部特征融合成表示整个车辆水平方向的局部特征fh:
fh=P(h1)+P(h2)+P(h3).
(3)
3) 垂直方向的局部特征提取.在提取垂直方向的局部特征时,本文采用与提取水平方向的局部特征相类似的方法.首先沿着垂直方向把z有重叠的分成上、中、下3个局部的特征,即v1=z[:;0:7;:]、v2=z[:;4:11;:]、v3=z[:;8:15;:];接下来也采用池化与求和操作得到融合后的垂直方向的局部特征fv:
fv=P(v1)+P(v2)+P(v3).
(4)
在计算得到fg、fh和fv之后,将这3种特征进行融合,得到总的表观特征fappearance.本文中主要通过一个串联层和一个FC层计算得到车辆最终的fappearance.首先使用串联层得到一个高维的特征向量,再通过FC层将高维的特征向量进行降维,同时保持与属性特征的维度一致.具体的计算式为:
fappearance=δ(W2[fg,fh,fv]),
(5)
其中W2∈R512×6 144为表观特征对应FC层的参数矩阵.
在完成属性特征与多尺度表观特征的提取工作之后,通过注意力的加权求和将属性特征与表观特征进行融合.首先,通过一个注意力机制,利用多尺度表观特征计算属性特征的加权权重,使用该权重对属性特征进行加权;再与多尺度表观特征进行融合得到车辆最终的特征向量f:
f=fappearance+φ1(W3fappearance)fattribute.
(6)
其中:W3∈R1×512为计算属性特征注意力权重的FC层参数;φ1是Sigmoid激活函数,将权重值转换到[0,1]之间.
针对车辆的颜色与车型属性识别,本文在属性特征fattribute的后面增加两个并行FC层,用于计算将提取的属性特征分类到不同的颜色和车型的概率:
pcolor=φ2(Wcolorfattribute),
(7)
ptype=φ2(Wtypefattribute),
(8)
其中,Wcolor∈RC×512是颜色分类FC层的参数矩阵,Wtype∈RT×512是车型分类FC的参数矩阵,φ2是Softmax激活函数,C和T分别是整个数据库中车辆颜色与车型的种类.
针对车辆ID标签分类部分,本文在特征向量f后面增加一个FC层,用于计算将不同的车辆图片分类到对应的车辆ID类别的概率.在训练过程中,将同一辆车的所有不同摄像头拍摄得到的车辆图片的ID分类标签设为一致,作为一个相同的类别,该类别的概率为:
pID=φ2(WIDf),
(9)
其中,WID∈RN×512,是车辆分类FC的参数矩阵,N是训练集中所有不同车辆的ID数.
得到pcolor、ptype和pID后,使用交叉熵损失函数计算得出各自的分类损失Lcolor、Ltype和LID,计算如下:
L=-qTlog(p),
(10)
其中,q是训练数据的真实的独热(one-hot)标签,p是模型的输出概率.
最后再使用了一个多任务的优化目标函数用于优化整个网络模型的参数.该优化目标函数L由3个部分组成,分别是车辆的ID分类损失LID、颜色分类损失Lcolor和车型的分类损失Ltype:
L=λ1LID+λ2Lcolor+λ3Ltype,
(11)
其中,λ1、λ2和λ3为LID、Lcolor和Ltype相应的权重.
另外,在车辆重识别模型的训练过程中,三元组Triplet损失函数[18]也经常被用于减小相同ID车辆图片的欧式距离,同时增加不同ID车辆图片之间的欧式距离.锚点车辆图片a、相同ID的其他车辆图片p、其他ID的车辆图片n构成三元组(a,p,n),相应的Triplet损失函数为:
(12)
其中:D为两个样本间的欧式距离;m是正负样本之间的欧式距离间隔,在本文中取值为0.3;ya、yp、yn分别是车辆图片a,p,n对应的ID.
为进一步增加特征的判别力,在优化目标函数(11)的基础上,本文将Triplet损失函数引入模型的训练,得到最终的优化目标函数:
L=λ1LID+λ2Lcolor+λ3Ltype+λ4Ltriplet,
(13)
其中λ4是Ltriplet对应的权重.
为验证本文所提算法模型的有效性,在VeRi-776数据集上进行了训练与测试,并与其他几个目前性能较优的算法进行对比.
VeRi-776数据集是由北京邮电大学构建的用于车辆重识别的数据集,该数据集有城市监控场景下20个摄像头拍摄的776辆汽车的50 000多张图片,将其中576辆汽车的37 778张图片用于构建训练集,剩下的200辆汽车的11 579张和1 678张图片分别用于构建测试集和查询集.数据库中每一辆车的多张图片均由2~18个摄像头在不同角度、光照、分辨率和遮挡情况下拍摄得到,同时也标注了每一辆车的颜色与车型信息.车辆的颜色有黑、灰、白、红、绿、橙、黄、金、棕和蓝10种颜色;车型有轿车、运动型多用途车(SUV)、两厢车、多用途车(MPV)、厢式车、皮卡车、公共汽车、卡车和房车9种车型.
为评价模型的准确率,本文采用平均精度均值(mean average precision,mAP)和Rank-k作为车辆重识别效果的评价指标.
1) mAP.车辆重识别是一种图像检索任务,mAP是图像检索任务中常用的评测指标,通过综合考虑召回率和准确率来评价算法全局性能.对查询集中的某一张图片,假设在测试集中与之相关的正确图片数为k,该图片检索的平均精度(average precision,AP)pav定义如下:
(14)
其中,Ri指按照相似度从高到低排序后包含前i个正确检索结果所需的最少检索图片数.在计算得到查询集中每一张图片的AP之后,对所有查询图片的AP求平均得到mAP.
2) Rank-k.车辆重识别任务就是要在车辆图片数据集中寻找与被查询车辆最相似的车辆.对于每一张被查询图像,计算它与数据库中所有图像的相似度.Rank-k即表示根据相似度进行排序后的结果中,与被查询车辆可能属于同一ID的前k张图像.
输入到模型的图片尺寸均缩放像素为256×256,批大小为64,使用随机梯度下降法Nesterov训练参数,新添加层的初始学习率为0.1,其他预训练层的初始学习率为0.01.网络模型共训练40轮,在第20轮时把学习率乘以0.1.训练的过程中,本文也采用将图片随机翻转和随机擦除的数据增强方法.式(11)和(13)中的λ1、λ2、λ3和λ4的取值分别为1,0.5,0.5和0.5.在Triplet损失训练时,采用困难样本挖掘策略.
在进行车辆重识别检索测试时,本文采用f的相似度作为判别标准,相似度计算采用的度量距离为欧式距离.
本文提出的算法模型在提取特征时融合了属性特征与表观特征,其中多尺度表观特征融合了根据水平方向和垂直方向划分的多个局部特征和全局特征的多尺度特征,因此在第一部分实验中,主要分析网络模型中不同特征模块组合对车辆重识别准确率的影响.只包含单一全局表观特征,不包含属性特征、水平方向和垂直方向局部特征的基准模型记为Baseline;在Baseline模型的基础上增加局部特征的模型记为Baseline+Part,增加属性特征的模型记为Baseline+Attribute;增加局部特征与属性特征的模型记为Baseline+Part & Attribute.
各模型的准确率如表1所示.单独增加局部特征和属性特征时,相比于Baseline模型,mAP分别提高了0.8和1.1个百分点,Rank-1提高了1和1.2个百分点;在同时增加这两个特征时,mAP可达到72.9%,Rank-1达到95.1%.该结果表明本文构建的局部特征和属性特征对车辆重识别的准确率的提升有显著作用,且这两种特征互补.
除了对比增加不同特征模块对车辆重识别准确率的影响外,本文也计算了Baseline+Part & Attribute模型对于车辆颜色和车型分类的准确率.在VeRi-776数据集的测试集与查询集上的颜色识别准确率分别为94.7%和95.1%,车型识别准确率分别为93.3%和93.9%.另外,通过对测试集上混淆矩阵分析发现:在颜色识别过程中,易出现将白色分类为灰色,棕色分类为黑色的错误;在车型识别过程中主要存在将SUV分类为轿车,两厢车分类为轿车的错误.
表1 不同特征组合得到的mAP和Rank-k准确率Tab.1 The mAP and Rank-k accuracies of different feature combinations %
接下来,本文比较了所构建的车辆重识别算法模型与近年来性能较优的算法模型的准确率,按照取得的mAP排序,结果如表2所示.可以看出,本文提出的模型取得比其他大部分模型更高的mAP.其中,DenseNet121[19]、VAMI[20]、PROVID[1]、VGG+CTS[21]和VSTP[14]取得的mAP分别为:45.1%,50.1%,53.4%,58.3%和58.8%,远低于本文采用的ResNet-50骨干模型的准确率78.2%.其中DenseNet121[19]和VGG+CTS[21]采用的DenseNet121和VGG模型,其提取的基础特征判别力低,从而导致最终的准确率偏低;VAMI[20]首先为每张输入图像提取单视图特征,再使用单个角度的特征生成多角度的特征,最终得到全局多视图特征,但生成多角度的特征与真实的多角度特征还是存在一定的差异,因此效果一般;PROVID[1]和VSTP[14]结合时间或空间信息,虽然能从时序上对检索结果进行一定的重排序,但是所使用的基础网络判别力以及时序信息的计算会增加相应的计算复杂度.SSL[22]通过(GAN)生成大量的虚拟样本用于数据扩充,并使用半监督的方法进行训练,可以在一定程度提高识别的准确率,但使用GAN会增加模型的训练时间和计算复杂度.RAM[12]提出了4个分支构成的深度模型,也是通过把整体特征和区域特征进行联合起来,用于提取更详细、更具辨别力的特征,但该模型提取的特征维度更高,易造成对训练数据的过拟合.QD-DLF[23]设计四向深度学习网络将基本特征映射压缩为水平、垂直、对角线和反对角方向特征图,最后将这些特征归一化用于获取多维度的表观特征,但该方法并没有考虑车辆的属性等相关信息.MTCRO[24]使用多任务卷积神经网络和新型排序优化的方法,可以在一定程度上提高特征提取后的检索精度.BS[25]中使用了联合Triplet损失函数与交叉熵分类损失函数训练网络模型,可以取得比单独使用交叉熵分类损失函数更优的性能,但整体性能并未见优势.JDRN[26]提出了一种多域联合学习框架,通过利用多个数据集的车辆图片训练一个更加鲁棒的模型,该方法虽然可以提高准确率,但对数据集要求更高,需要利用多个不同的数据集来训练模型.最后,我们注意到:由于MRL+Softmax[27]在增加不同车辆之间基础上通过度量学习,使相同车辆在不同视角下的距离相对增大,使用Softmax函数训练后在Veri-776数据库上的mAP和Rank-5可以达到78.5% 和99.0%,超过了本文的78.2%和97.0%,但MRL+Softmax通过聚类估计车辆视角时会引入新的数据噪声,导致Rank-1指标上要低于本文的95.8%,其次MRL+Softmax引入了视角约束也会增加模型的训练复杂度.
另外,Re-ranking[28]被作为一种后处理的方法,被用于提高重识别排序的准确率,在本文中也将Re-ranking用于提高车辆重识别的准确率.从表2中可以看到,SSL[22]与JDRN[26]以及本文所提方法在使用Re-ranking进行后处理之后,mAP均有提高,其中,本文方法从75.0%提高到78.2%,优于SSL[22]与JDRN[26]分别使用Re-ranking后的准确率69.9%和73.1%.
最后,随机选取7个不同车辆,使用本文方法结合Triplet损失进行训练,重识别结果按照相似度从高到低进行可视化排序,如图2所示.可以看出,本文构建的方法可以准确地重识别不同角度、不同光照条件拍摄的同一车辆,同时也发现通过红色框标注出来的识别错误主要集中在相同车型或相同颜色的车辆之间的区分错误.
表2 不同车辆重识别方法的对比Tab.2 The comparison of differentRe-identification methods %
图2 本文所构建模型相似度排名前10的检索结果Fig.2The top-10 retrieval result of our method
本文尝试将车辆的颜色、车型属性信息融合到多尺度车辆表观信息来获得既具判别力又具鲁棒性的车辆特征.在改良的ResNet-50网络计算基础特征向量的基础上,用两个分支分别计算车辆属性特征和多尺度表观特征,再进行融合得到最终特征向量,通过多任务优化目标函数对网络参数进行优化.在VeRi-776测试数据集上的实验结果证明了本文方法的识别效果远远优于目前的大多数性能较优的方法.然而,本文方法也不可避免地存在不足之处:在颜色识别过程中易将白色分类为灰色,棕色分类为黑色;在车型识别过程中的错误主要有将SUV分类为轿车,将两厢车分类为轿车等.后续的研究工作中将尝试解决这些问题.