智能驾驶中车辆检测方法综述
随着汽车行业的迅猛发展,汽车从最初的代步工具逐步演化成现在必不可少的个人交通工具,人们对汽车的性能的要求也越来越高,安全、节能、环保、舒适和信息智能化是当今汽车发展的主要需求方向。与此同时,智能交通系统(Intelligent Traffic System, ITS)中的智能驾驶技术在近年得以蓬勃发展。
从20世纪70年代开始,日本、欧美等发达国家开始进行智能汽车的研究,在可行性和实用化方面都取得了突破性的进展0。中国从20世纪80年代开始进行智能汽车的研究。计算机视觉是智能驾驶中的核心技术,利用车载传感器来感知车辆周围环境,并根据感知所获得的道路、车辆位置和障碍物信息,控制车辆的转向和速度,给出车辆可通行区,从而使车辆能够安全、可靠地在道路上行驶。
车载视觉中智能驾驶的识别目标,包括车辆、行人、交通标志等,其中车辆的检测是智能驾驶环境感知的重要组成部分0,0,其水平的高低直接影响到智能驾驶车辆的行为决策,本文将对车载视觉中的车辆目标在智能驾驶中的检测方法进行综述。
1 车辆检测算法的组成
车辆检测算法是智能驾驶中的核心算法之一,是自主导航、碰撞避免等应用不可缺少的环节。在实际道路工况中,车辆检测是一个极富挑战性的任务,需解决的现实难题有:
(1)道路多样:结构化道路,如高速,非结构化道路,如城镇;
(2)车型丰富:形状、大小、颜色不尽相同,多目标车辆;
(3)环境变化:天气、光照影响,背景干扰,相机振动;
(4)自车变化:姿态、远近,遮挡因素。
实际驾驶中,车辆检测的效果一般需同时满足实时性和准确性,而这两种性能往往相互制约,在不同的道路工况中,体现的重要性不一,如在高速路况下,车辆速度较快,车辆间可看成队列,检测准确性更重要;而在城市路况下,道路环境变化较大,车辆间运动规律不明显,检测实时性突显其重要性。因此,一般来说,车辆检测分为两部分:检测和跟踪。检测部分的任务是搜索图像,检测当前图像序列中是否有车辆目标,并获得目标大小和位置信息。跟踪部分的任务是利用当前帧中检测目标的初始信息,缩小检测范围,在连续帧中跟踪目标的变化。检测需要对图像进行遍历性的搜索,还需考虑不同的尺度空间,所以时间复杂度一般都比较高。而跟踪算法可以利用时间和空间约束条件,减小搜索空间,到达实时性要求,还可以充分利用已检测车辆的特征,提高车辆连续准确识别的稳定性。
因此,根据已有的检测算法,本文将车辆检测算法分为两类:
(1)只包括检测的算法
检测算法的输入是单帧图像,核心算法分隔车辆目标和背景,输出是车辆目标的位置信息。若检测算法能达到实时性的要求且识别率较高,可以对每帧图像进行检测而不采用跟踪算法。为达到此目标,一般将检测算法分为两部分0:假设生成阶段和假设验证阶段。假设生成(Hypothesis Generation, HG)阶段的功能是生成当前图像中所有可能的车辆目标区域,即感兴趣区域(Region of Interesting, ROI),在确定的多个ROI中往往有些并不是包含有车辆目标的区域,为避免误检,这就需要进一步的验证,而假设验证(Hypothesis Verification, HV)阶段的功能正是校验假设区域是否有车辆目标的存在,有效排除非车辆目标,保留车辆目标。
(2)检测和跟踪融合的方法
在车辆检测的基础上,通过车辆跟踪方法一方面可以根据车辆运动状态,预测车辆在图像中的位置,建立跟踪区域。另一面则可以充分应用已检测车辆的特征,提高车辆连续识别的稳定性。为了到达检测算法的实现性或进一步提高检测稳定性,可以采用检测和跟踪融合的策略,先检测到目标然后再利用跟踪算法进行跟踪的方法,到达有效跟踪同一车辆目标的运动变化以及实时检测新出现的车辆目标的效果。采用这种融合方法,可以进一步缩小检测时所需的搜索空间,充分利用在前一帧图像中检测或跟踪到的车辆位置等信息,将ROI搜索空间限制在很小的范围之内,到达实时性要求。这一检测和跟踪融合的检测策略,也可为车辆的进一步行为分析做准备,达到对车辆运动进行长期的分类和预测的效果。
2 车辆检测算法的实现
车辆检测算法是从图像序列中提取出车辆目标并进行定位,即分割车辆目标与背景,属于计算机视觉中的目标识别和运动检测问题。车辆检测部分的实现分为ROI假设阶段和目标确定阶段。跟踪车辆需要对图像序列中车辆的位置进行运动学估计,并形成车辆轨迹。有时我们同时需要实现车辆运动参数的估计,如速度,加速度等,提供连续稳定的识别。
车辆检测部分实现的方法可分为图像处理方法和机器学习方法,图像处理方法包括基于雷达的方法,基于知识的方法,基于运动的方法和基于模型的方法;机器学习的方法包括基于特征和分类器对的方法以及基于特征模板的方法。
车辆追踪部分的实现可分为基于对比度分析的方法,基于匹配的方法和基于TLD的方法0,将在后续章节绍具体方法。车辆检测和跟踪方法分类示意图如图1所示。
2.1 ROI假设阶段
ROI假设阶段的算法实现原则是尽可能多的获取可能的感兴趣目标,避免漏检,一定程度上容许误检。涉及到的方法有:
(1)基于雷达的方法
车辆检测的环境感知研究中,使用过多种传感器,如超声波、红外线、激光、视频和雷达。从对目标探测能力和对天气环境的适应能力上,雷达都表现出优异的性能。
车载毫米波雷达可在得到测量距离的基础上,由多普勒效应直接读出目标的速度信息,其距离测量精度一般不如激光雷达。与激光雷达不同,毫米波雷达的输出大多经过内部集成的处理单元处理,可以直接读取目标障碍物信息。文献中,利用毫米波雷达量测集合与目标集合的对应关系,采用广义概率数据关联算法进行数据关联,最终可以稳定地得到目标,克服了基于视觉的车辆检测方法对目标距离和环境光线敏感的缺点。但雷达检测的目标不具备语义信息,无法辨识目标是否为车辆,要引入图像提供的视觉信息来进行目标的验证。
(2)基于知识(或特征)的方法
基于知识的方法通过一些车辆的共同特征来定位车辆,其中车辆底部阴影,车辆水平/垂直边缘,车辆对称性,车辆纹理等是最常用的特征。在白天较好的光照条件下,车辆底部区域的灰度明显比其他区域低。利用车辆边缘的水平特性和垂直特性等特点,可将车辆从图像背景中分隔出来。利用车辆的几何对称性,可以出对称性映射图中获取车辆的位置。通过对车辆进行纹理分析,能有效反映车辆结构,有助于图像分隔和特征抽取。单独使用某种特征一般不能得到较好的检测结果,通常做法是将多种特征结合起来,进行特征融合,从而到达较好的检测效果。
大部分之前讨论的方法不适用于夜间车辆检测,灯光是夜间车辆最明显的特征,因此现有的夜间车辆识别方法大都采用尾灯来识别前方车辆,识别流程可分为三个主要步骤:首先在不同的颜色空间内通过图像分割提取车辆尾灯,常用的颜色空间包括YCbCr,RGB和HSV,然后根据车辆尾灯相对位置,对称性和相似性等特征匹配尾灯[7],从而实现夜间车辆检测。
(3)基于运动的方法
基于运动特征常见的检测方法有帧差分法和光流法。帧差法是背景减图法中的一种,根据背景模型不同分为背景帧差分和相邻帧差分。相邻帧差分的基本原理就是将前后两帧图像对应像素点的灰度值相减,所以速度很快,但容易漏检运动速度较慢的车辆并且常常会将一辆车分成几个部分造成多检。而背景帧差分是采用图像序列中的当前帧和背景参考模型比较来检测运动物体的一种方法,同时使用于静止和运动的车辆目标,但依赖于背景更新。
由于行驶环境中前车与自车总是存在一定的相对运动关系,在连续的图像序列中同一车辆上特征点具有相同的运动规律,光流法正是利用被观测面上像素点运动产生的瞬时速度场来检测运动车辆。一般情况下,光流由摄像机运动、场景中目标运动,或两者的运动产生。光流法能够较好的处理背景运动的情况,无需障碍物的先验知识,可用来估计车辆在图像中位置和速度,但对噪声、光线变化较敏感,且计算量较大,实时性较差,不适用于静止目标,由于从旁边超越的车辆和安装摄像机的车辆之间有较大的相对运动速度, 所以光流方法较适用于检测从旁边超过的车辆。在实际应用中,需特殊的硬件设备支持。
(4)基于模型的方法
基于模型的方法建立车辆对象的三维或二维模型与待检测图像之间的匹配操作。三维模型通过立体(或双目)视觉提供,相机参数通过标记计算,利用视差图和逆透视图,定位车辆目标。利用几何外形建立车辆二维模型,如文献[10]采用了基于对称性检测ROI,然后利用建立的矩形二维模型进行匹配的方法。基于模型的方法经常和基于特征的方法相结合,首先基于特征找到车辆的大致区域位置, 然后再用模型进行匹配。
基于模型方法的缺点是对车辆模型过分依赖,由于车型的多样性和车辆姿态的变化,单一的固定模型往往不能适用于所有的车辆。而为每种车辆和姿态都建立精细的模型势必造成计算量的成倍增加,不利于实时处理,实际应用中,三维模型的建立需要专有的高效的FPGA平台。
2.2 目标确定阶段
在目标确定阶段,由于已经通过基于雷达或知识或运动或模板的方法生成了可能的车辆位置,可以采用如下的方法来进行准确可靠的车辆确认。
(1)基于特征和分类器的方法
基于特征和分类器对的方法实际上是把检测的任务转化成了模式识别,首先提取检测方法得到的可能含有车辆的图像区域的特征向量,作为模式分类器的输入,再利用已经训练好的分类器进行分类,将误检的不包含车辆的区域识别出来,进一步提高检测的正确率。
特征提取是一种变换或者编码,将数据从高维的原始特征空间通过映射,变换到低维空间的表示,好的特征应具有不变形和可区分性。其中常用特征向量有主成分分析(Principal Component Analysis, PCA)特征,小波特征,梯度方向积分图(Histogram of Oriented Gradient, HOG),Haar-like特征尺度不变特征转换(Scale-invariant feature transform, SIFT)等;用于区分车辆与非车辆目标的分类器有神经网络(Nerual Network, NN),支持向量机(Support Vector Machine, SVM)和AdaBoost方法等。
一般将单种特征与分类器相配对来验证ROI,如文献分别制作车辆正前方,左/右侧及远距离车辆的尾部图片,分别计算其PCA特征,并采用SVM方法训练最佳分类器,但远距离的识别率有待改善。在文献中,HOG-SVM使用联合乘积的内核函数来检测车辆,检测速度仍有待改善。自从Viola P[14]提出基于Haar-like特征的Adaboost方法在人脸检测中的应用以来,Adaboost方法作为一种集成算法,便广泛应用于目标检测方面。为进一步提高检测率,文献[15]中探索了Haar-like特征与HOG特征的优缺点,并将之结合作为车辆特征,利用Adaboost方法,有效降低了误识别率。但其中的分类器一般是离线训练,学习,故在制作正负样本,训练阶段需要较大的工作量,且一般手工选取特征,调节需要大量的时间,近几年在人工智能领域非常火的深度学习(Deep Learning, DL)[16]算法能自动学习特征,是一种改进的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN),深度置信网络(Deep Belief Networks, DBN),卷积网络(Convolutional Network, CN),堆栈式自动编码器(Stacked Auto-encoders)。
(2)基于特征模板的方法
相比基于特征和分类器的方法,基于特征模板的跟踪方法不常见,其通过使用车辆的预定义的特征模板库,比较假设生成区域HG与存储模板之间的相关性,设定阈值,验证HG的准确性。
2.3 目标跟踪阶段
目标跟踪阶段的算法实现原则是利用连续帧间的时间连续性以及当前帧中检测目标在下一帧中的空间相关性,达到检测的实时性和稳定性。涉及到的方法有:
(1)基于对比度分析的方法
基于对比度分析的目标跟踪算法利用目标与背景在对比度上的差异来提取,识别和跟踪目标。这类算法按照跟踪参考点的,不同可以分为边缘跟踪、形心跟踪和质心跟踪等。这类算法不适合复杂背景中的目标跟踪。
(2)基于匹配的方法
基于匹配的方法包括特征匹配、贝叶斯跟踪和均方漂移(Mean Shift, MS)。贝叶斯跟踪框架根据对运动分布描述能力的大小,依次分为卡尔曼滤波(Kalman Filter, KF)、粒子滤波(Particle Filter, PF)、隐马尔科夫模型(HMMs)和动态贝叶斯模型(DBNs),这些算法的主要区别参考文献。
(3)基于TLD的方法
TLD(Tracking-Learning-detection)是一种近几年较为流行的追踪框架[19],集检测、跟踪与在线学习于一体,实现检测器的在线学习和更新,达到对目标长期跟踪的效果。该算法与传统跟踪算法的显著特点在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、可靠。但不足之处是只适应于单目标跟踪。
3 小结
本文分析了智能驾驶中车辆检测常用方法的组成:单一的检测和融合跟踪的检测,然后从目前车辆检测中的研究难点出发,对目前检测和追踪部分的实现算法进行分类,介绍了不同算法的优缺点。
从目前的检测来看,机器学习算法是关键,研究新的特征,或自动学习特征,或多种特征融合,建立新的分类器或在线学习框架,是将来的研究方向。采用立体视觉以及多传感器融合的方法也是车辆检测的常用方法,但是由于单目视觉具有算法成熟、实时性高等优点,因此目前多数车辆检测方法都是基于单目视觉。但立体视觉以及多传感器融合的方法有着不可替代的优点,将是未来车辆检测算法的发展方向。跟踪算法作为车辆检测的补充部分,不仅可提高检测精度和稳定性,也为未来车辆驾驶行为分析提供依据。当然,在车联网技术迅速发展的今天,引入车车通信,车与基础设施通信,也是智能驾驶车辆检测具有前景的研究方向。
最新资讯
-
生产制造 | 产品加工-EDGECAM 高效自动编程
2024-12-27 17:39
-
设计仿真 | Adams_Controls变拓扑分析
2024-12-27 17:39
-
设计仿真 | Digimat用于碰撞、冲击模拟热塑
2024-12-27 17:38
-
设计仿真 | 海克斯康 MSC Nastran 助力沃尔
2024-12-27 17:37
-
CAERI风洞丨整车环境风洞风雨场探究
2024-12-27 17:16