APP下载

基于深度学习的车辆分类模型研究

2018-03-26张少巍殷荣网

巢湖学院学报 2018年6期
关键词:精度分类车辆

张少巍 殷荣网

(1 安徽文达信息工程学院,安徽 合肥 231201)

(2 合肥学院,安徽 合肥 230601)

1 引言

随着智能交通系统(Intelligent Transportation System,ITS)在智能城市的推广,智能交通应用的核心技术迅速发展并不断更新。20世纪70年代,只有磁线圈被用来检测车辆,但现在,诸多技术如雷达、超声波、红外线和视频图像等在实践中非常流行[1]。随着越来越多的数字视频监控装备到交通道路,视觉车辆检测方法已成为计算机视觉科学家最近的研究课题[2]。

作为目标检测的一个应用领域,车辆检测在ITS、无人驾驶智能车和公共安全中发挥着重要作用[3]。经过检测后,可以进一步对它们进行更详细的分类。如果在公共安全领域,根据汽车制造、型号、颜色和车牌号码,可以启动城市中的所有摄像头,它们可以自动检测、识别和定位汽车。在这个场景中,车辆的分类是必不可少的。但事实上,车辆内部以及车辆之间的差异非常细微[4-5],因此研究课题非常具有挑战性,可以极大促进车辆检测、动作识别和自动场景描述[6-8]等的发展。

如果在交通和公共安全中应用车辆分类,就可以获得更多的关于车辆的元数据或元信息,如车辆制造商、车辆型号、车辆标识、生产年份、最大速度和加速度等。通过动态获取这些信息,可以建立一个监控整个城市道路的大型智能交通系统。此外,在不同时间段分析道路上的车辆,以发现人们外出的规律,就可以相应地安排运输规则,这将使城市管理变得更加便捷化和智能化。

2 相关工作

在本文中,研究的问题主要有三个,即如何构建大型车辆数据集;如何检测自然图像中的车辆;如何对车辆进行分类。下面将对这三个问题分别进行讨论。

2.1 数据集生成方法

随着大规模训练数据集的可用性,基于深度卷积神经网络的方法近来被广泛应用于图像分类,物体检测以及许多其他识别任务[9-15]。但在早期,由于数据集的规模较小以及CPU的计算能力有限,CNN只能应用于像数字手写数字识别这样的小问题领域。由此,大规模的训练数据集对于CNN模型是必不可少的。现在有许多公开的不同规模的数据集可以提供给研究人员使用。例如,小型图像数据集如Caltech-256是一个图像物体识别数据集,包含30608张图片,256个物体类别,每类图片最少80张,最多827张。PASCAL VOC挑战赛是视觉对象的分类识别和检测的一个基准测试,提供了检测算法和学习性能的标准图像注释数据集和标准的评估系统。PASCAL VOC图片集包括20个目录:人类、动物、交通工具等。PASCAL VOC数据集图像质量好,标注完备,非常适合用来测试算法性能。随着计算机视觉研究的进一步发展,需要更大的数据集。例如,TinyImage这样的数据集有8千万个图像,所有这些图像都是通过使用关键字从Google、百度、Bing等图像搜索引擎中获取的。其他较大的数据集如LableMe和ImageNet分别提供30万和5千万个标注和分割图片,需要大量人员进行注释。尽管有大量的图像,但对于深度学习模型还是不够的。神经网络结构通常具有数百万个参数,但现有数据集不足以学习如此多的参数而没有显著的过拟合。所以研究人员采用一些技术方法,如裁剪,调整大小,镜像反射以扩充现有的数据集。因此,要想建立一个大规模的数据集,第一步应该通过互联网搜索引擎收集海量图像,然后雇佣大量的人力对它们进行注释,最后通过技术人员采用一些诸如图像增强技术等手段来扩充数据集。

2.2 车辆检测方法

随着计算机图像处理技术的发展,车辆检测技术发展迅速。在整车检测的情况下,取得了很好的结果,Girshick R在VOC2007中在复杂背景下的检测精度达到了49.1%[16]。He K改进了Girshick R的工作,在不降低检测精度的情况下,将速度提升了20—60倍[17]。基于He的工作,Girshick R将检测精度进一步提高到了66%,检测速度提高了10倍,处理速度可以达到每秒3幅图像[18]。再次,He K将处理速度提高到每秒5张图像[19]。尽管这些研究在车辆检测方面做了大量工作,但是他们主要针对的是对通用物体的检测问题,而不是专门用于进行车辆检测,在工程应用中,检测精度远远低于每秒3幅图像,准确度也远远不能满足要求。

2.3 车辆分类方法

目前为止,专门针对车辆检测问题进行的研究比较少。通过手动收集161个车型和136727幅图像,Yang L等构建了数据集CompCars,并展示了一些利用数据集的重要应用,即汽车模型分类,汽车模型验证和属性预测。通过CNN模型,他们能够获得76.7%的分类精度[20]。但对于深度学习网络来说,这样的图像数量还不够,而且我们注意到模型中输入的图像只包含单个车辆,而实际上图像通常具有复杂的背景并且车辆的数量也有很大的不确定性。因此,要获得这个理想的数据集既费时又费力。

通过对以往研究的分析总结,提出了一种解决以上问题的新方法。首先,我们使用网络协作注释机制来生成可以构建不断增长的数据集的大规模注释车辆图像。其次,我们使用更快的基于R-CNN的模型来检测现有数据集中的车辆,然后生成图像。最后,使用联合贝叶斯网络对车辆进行分类。

3 研究框架

自然交通图像通常包含不确定数量的车辆。如果想对这些图像进行的分类,必须首先提取所有的车辆。然后,对于这些提取的图像,使用CNN模型来计算特征,可以轻松地对车辆进行分类。整体架构如图1所示。这种车辆分类模型以复杂背景的原始图像作为输入,首先将其输入到车辆检测模型中,然后通过检测模型生成仅包含单个车辆的一系列子图像。然后将所有子图像转移到下一个分类模型中,最后获取车辆的所有元信息,如车牌、车型等。

图1 整体框架

4 实现方法

为了通过深度学习方法来实现有效的车辆分类,需要解决以下三个问题:(1)如何构建适合车辆分类的大规模数据集;(2)如何在杂乱背景的图像中获得检测车辆,然后提取它们以提供干净的输入给后续的分类模型;(3)如何识别不同的车辆关键部件,然后将所有部件连接在一起进行分类。

4.1 构建大规模数据集

有效的车辆数据集是网络模型的知识获取来源,为了收集更精确的数据集,本文采用自动数据集合和网络协作注释机制。在本文中,首先使用基于Java的开源搜索引擎Nutch从互联网自动获取车辆图像,然后将图像存储在数据库中。用户可以通过网页浏览器访问该数据库平台,该平台将为用户提供一些未注释的图像用于注释,如前挡风玻璃、后挡风玻璃、天花板、侧面、徽标、前大灯、尾灯、雾灯以及进气口等将被标记。如果图像不包含车辆,则该图像将被标注为负样本。不同地区的不同颜色,平台将为每个地区存储坐标和标签。此外,用户还可以上传图像进行注释。这样,可以得到一个连续增加的数据集。在这项工作中,还提出了一种可以自动生成大量图像的新方法,这些生成的图像不需要注释。对于车辆检测,使用指定品牌和型号的汽车的AutoCAD 3D模型,然后将模型导入到系统中,最后生成不同视图的图像。这些图像可以描述汽车的所有细节。通过改变摄像机的距离,方向角度和角度,可以获得数万张不同外观的汽车图像。这种图像不需要注释,这样就可以大大节省工作量。

4.2 车辆检测模型

车辆检测模型可以检测复杂背景图像中的所有车辆,然后将其作为子图像提取出来。具体步骤包括:首先将对原始图像导入到VGG16网络结构的卷积网络中,然后生成原始图像的特征图,在该特征图上应用区域推荐网络 (Region Proposal Network,RPN)来获取区域提议。之后,使用ROI Pooling(Region of Interest Pooling)层,获取原始图像上的区域提案,然后将其送入到车辆SVM分类器以判断这些区域提案是否为车辆。这个模型的执行过程如图2所示。

图2 车辆检测模型的过程

4.3 车辆分类模型

车辆分类模型使用仅包含单个车辆的图像作为CNN模型的输入来获得分类特征,然后利用联合贝叶斯网络将包含的车辆进行分类,执行过程如图3所示。CNN模型和联合贝叶斯网络已经在人脸识别中被证明是有效的方法。在本文中,将车辆识别分为两部分,一部分是不同车型之间的差异,另一部分是同一车型的内部差异,例如从不同视角拍摄的车辆图像。特征x被表示为两个高斯变量的总和。

在方程(1)中,μ ~ N(0,Sμ),ε ~ N(0,Sε),第一个变量 μ 表示不同车型的差值,第二个变量 ε 表示相同车型的差值。给定差异间和差异内的高斯假设,可以使用联合贝叶斯网络来计算也遵循高斯分布的这两个特征的联合概率。

Sμ和 Sε可通过最大期望算法(Expectation Maximization Algorithm,EM算法)来计算。

通过使用上述公式,可以通过计算两幅图像的相似度来判断它们是否属于相同的车辆类别。

图3 车辆分类过程

5 实验结果

本文使用的数据集包括三部分:整车数据集、零部件数据集和非车辆数据集。整车数据集包含由50家厂商生产的共198种型号的车辆,总共183124张图像,用于训练R-CNN模型,以建立车辆检测模型。采用车辆零件数据集训练可对不同车型进行分类的分类网络,该数据集共包含52364张前照灯、尾灯、雾灯、标识和进气口图像。非车辆数据集包含从互联网上下载的632145幅图像。

5.1 车辆检测结果

车辆检测实验数据集主要由整车数据集和非车辆数据集组成。对于整车数据集,我们将其分为两部分,其中132000作为训练数据集,其中51124是正面测试数据集。非车辆数据集也分为两个子集,其中545145个被视为训练数据集,87000为测试数据集。因此,我们共有219000个训练数据集的图像和596269个测试数据集的图像。实验平台采用的是基于GTX TITAN X的GPU,采用ImageNet图像分类大赛评价标准的TOP-1的车辆检测精度为87%,TOP-5的车辆检测精度达到92%。此外,训练图像的数量对训练结果的精度也有影响,如图4所示。

图4 检测精度图

5.2 分类结果

从检测模型生成的图像中,每幅图像只包含一辆车,我们选择基本覆盖所有198款车型的230000张图像,然后将其中的190000张作为训练数据,其中40000张作为测试数据,再加上43101张车辆部件图像作为训练数据,进行了分类实验,最终得到了89%的分类准确率,分类精度如图5所示。

图5 分类精度图

6 结论

本文首先利用基于R-CNN的快速车辆检测模型对背景复杂的图像中的车辆进行检测,然后将检测结果输入车辆分类模型中,对车辆进行更详细的分类,最终得到了89%的分类准确率。R-CNN是一个针对通用对象检测的模型,为了提高检测的准确性和速度,可以考虑改善网络结构,或者将特征分类器添加到分类模型中。所有这些问题都是未来研究中需要重点关注的问题。

猜你喜欢

精度分类车辆
分类算一算
分析误差提精度
分类讨论求坐标
基于DSPIC33F微处理器的采集精度的提高
数据分析中的分类讨论
车辆
教你一招:数的分类
冬天路滑 远离车辆
GPS/GLONASS/BDS组合PPP精度分析
提高车辆响应的转向辅助控制系统