基于车载视觉的行人检测与跟踪方法[图](2012/3/3010:08)随着汽车保有量的不断增加,道路交通事故和因车祸伤亡的人数居高不下。为满足人们对汽车安全性能要求的日益提高,越来越多的先进技术被应用到汽车主动安全领域。在道路交通事故中,主要的受害群体是参与交通系统中的行人和骑自行车的人等。据美国高速公路安全管理局(NHTSA)的资料显示,2008年美国由于交通事故导致69000个行人死亡或者受伤、4378个行人死亡,行人死亡人数占全年交通事故死亡总人数的11.7%。2007年我国因交通事故导致行人死亡的人数为21106人,占交通事故死亡总人数的25.9%,行人受伤人数为70838人,占交通事故受伤总人数的18.6%.与一些发达国家相比,由于我国的交通模式主要是混合交通模式,导致交通事故死亡原因和伤害模式与发达国家不同。近年来,为保障行人安全、提高汽车主动安全性能,国内外一些科研院所对行人保护技术进行了研究探讨,在不断完善汽车被动安全系统的同时,逐渐发展和应用主动安全系统,结合行人保护概念和技术的引入,完善对行人的保护。如Bajracharya等建立了双目视觉行人保护集成系统,实现道路交通场景下40m距离范围内行人的检测与跟踪。Munder等融合行人的点分布形状模型和纹理特征建立了行人识别分类器,采用基于粒子滤波的贝叶斯方法实现行人的跟踪。德国Enzweiler等分别针对统计学习中的小波特征、线性支持向量机以及神经网络的方法进行比较分析,通过设计不同尺度的分类器来检测图像中的行人。清华大学的江帆等提出一种基于模型融合的行人跟踪算法,结合离线学习和在线互学习对模型进行更新。中国科学技术大学程有龙等将行人检测的先验知识融入到跟踪模型自学习过程中,对被跟踪行人进行动态建模,从而实现在真实监控场合下跟踪具有复杂运动的行人。多传感器信息融合以及行人模型的建立要求较大的计算量和计算参数,很难满足类似车辆主动安全预警等系统实时性要求。本文采用车载单目视觉传感器,利用训练得到的行人识别级联分类器实时获取车辆前方的行人,并对其进行跟踪以记录其运动轨迹,从而为驾驶员和行人的有效预警提供技术参考。1基于Adaboost算法的行人检测1.1Adaboost算法原理Adaboost算法通过训练得到由分类能力一般的弱分类器叠加而成的强分类器,再将若干个强分类器串连成一个级联分类器来遍历图像。为快速实现行人的检测和防撞预警,鉴于Adaboost算法的特点,本文选择离散Adaboost算法训练得到识别行人的级联分类器,以快速排除图像中大部分非行人窗口,其结构如图1所示。其中,各阶段的强分类器训练过程如图2所示。图1N阶级联分类器结构示意图2离散Adaboost训练算法从其训练过程可知,该算法主要通过调整训练样本的权重,强化对错误分类样本的训练,最后通过权重组合级联所有的弱分类器形成强分类器。1.2样本的离线训练与行人的在线检测本文采用Adaboost算法训练得到识别行人的级联分类器,通过程序加载分类器实现行人的在线检测,检测流程如图3所示。样本的离线训练模块主要是为了获得识别行人的级联分类器,具体过程如下所示。(1)样本获取及预处理:行人样本通过离线手动分割的车辆前方不同距离、不同走向、不同衣着和尺寸的行人图像,统一缩放为16×32像素的尺寸;非行人样本是从不含行人的背景图像中分割得到的。为减小训练样本的类内差异,降低光照不同对训练结果的影响,采用直方图均衡化方法对样本进行预处理。本文选择的训练样本共3060幅,其中行人样本2100幅,非行人样本960幅;(2)样本特征提取:选用P.Viola等提出的类Haar特征作为行人检测的特征,该特征主要描述图像模式相邻区域的特征差异,可用积分图快速计算矩形区域的特征值;(3)训练结果:训练得到的级联分类器由20级强分类器组成,每个强分类器包含了不同个数的弱分类器,每个弱分类器由一个类Haar特征、阈值和指示不等号方向组成。随着分类器级数的增大,强分类器中所包含弱分类器即类Haar特征数量也越多。训练得到的前6级强分类器中所包含的类Haar特征及其数量见表1所示。行人在线检测模块是根据训练得到的分类器对待检图像的各子窗口进行判别,检测结果是一系列的目标矩形,显示行人在图像中的位置,本文通过缩放检测子窗口来遍历待检图像,以分割图像中大小未知的行人目标,具体检测过程如下。(1)获取大小为320×240像素的待检图像,设置最小检测窗口大小为32×64像素,从图像的左下角开始逐行向右每隔一个像素移动检测窗口,直至达到图像边缘为止;(2)利用训练模块得到的级联分类器按图1所示方法对各待检子窗口进行判决,完成该级检测窗口大小的扫描:如果该待检子窗口能通过所有级联分类器则说明其为行人窗口;如果有任何一个强分类器不能通过就可以判定其为非行人窗口;(3)按照试验确定的比例系数放大检测子窗口大小,并按上述步骤重新对待检图像进行扫描,获取较大尺寸的行人目标。2基于Kalman滤波的行人跟踪使用离散Kalman滤波预测行人在下一时刻可能出现的区域,缩短目标搜索时间,实现行人的快速跟踪定位。行人跟踪结果不但能获得行人的运动轨迹,也能为行人的运动分析提供可靠的数据来源。2.1Kalman滤波算法原理Kalman滤波由动态过程模型和反馈修正环节组成。动态过程模型实现预测功能,反馈修正环节则把增益和残差的乘积作为强制函数作用在模型上。设系统的状态方程和观测方程如下:式中:Xk是时刻k的n维状态向量;Zk是时刻k的m维观测向量;n阶方阵Фk-1为状态转移矩阵;m×n阶矩阵Hk为观测矩阵;Wk-1、Vk是2个服从正态分布的零均值高斯白噪声序列,方差阵分别为Qk、Rk。Kalman滤波过程可由预测方程:和滤波递推方程:表示,其中:为滤波器增益;为预测误差方差阵;为滤波误差方差阵。2.2行人跟踪根据Kalman滤波原理,本文对检测得到的车辆前方行人质心位置和行人外接矩形的高度与宽度进行跟踪。在每帧图像中,行人的状态可以用其质心的位置、位置变化率和外界矩形框的大小来表示。假设(xt,yt)代表行人区域质心点在第t帧图像的像素位置;(Δxt,Δyt)分别代表质心的变化;(ht,wt)是包围行人外接矩形的高度和宽度;(Δht,Δwt)是高度和宽度的变化。因此,在第t帧图像中行人的状态向量可以表示为:由于行人的运动速度较慢,相邻2帧图像之间的时间间隔较短,可假设行人在单位时间间隔内做匀速运动,状态转移矩阵可以表示如下:为了观测道路区域各个状态变量,取观测向量Zt=(xt,yt,ht,wt)T,选取系统测量矩阵为:为应用Kalman滤波跟踪车辆前方行人,必须确定状态变量和误差方差矩阵的初始值。本文在连续2帧图像成功实现行人的识别定位后开始进行基于Kalman滤波跟踪。假设检测到行人的图像是第t帧和t+1帧,初始状态向量X0可表示为:此外,还需要定义相应的协方差矩阵P0.由于Pt随着获取更多的图像反复更新,为此可以给它一个较大的初值。假设预测位置在x和y方向上离真实位置具有±10个像素误差,在x和y方向上速度离真实速度有±5个像素误差。由于行人腿部的运动,使得行人外界矩形的宽度要比高度有较大的变化,所以假设外接矩形窗口的高度与实际行人矩形窗口的高度误差有±5个像素,高度的变化率有±3个像素误差;宽度的误差为±10个像素,宽度的变化率有±5个像素误差。由此,误差协方差矩阵P0可定义为:除了X0和P0,还需要估计系统状态方程和测量方程的误差协方差矩阵Q和R。通过观察,可认为系统状态噪声如下:在x和y方向上系统定位误差的标准偏差是5个像素,由此进一步认为速度的标准偏差为每帧2个像素。而行人外界矩形窗口的高度标准偏差为3个像素,其变化率为1个像素,行人矩形窗口宽度的标准偏差为5个像素,其变化率为2个像素。因此,状态变量噪声协方差矩阵可以表示为:类似地,定义测量方程在x和y方向上的标准偏差为3个像素,高度标准偏差为2个像素,宽度的标准偏差为3个像素。因此:利用上述的状态预测和更新方程以及初始条件,可估计每一帧图像状态向量X^k(-)和相应的协方差矩阵Pk(+)。协方差矩阵Pk(+)表示预测下一帧检测行人矩形窗口位置的不确定范围,Pk(+)越大,估计值越不稳定,搜索区域也就越大,此时,自动调整搜索区域[17].3试验及分析行人检测与跟踪识别流程如下:(1)按照图3所示的在线检测模块分析CCD采集的序列图像中是否存在行人,并记录行人目标矩形的相关信息;(2)如果在序列图像中连续2帧检测到行人,则启动行人跟踪程序,并用检测结果更新Kalman滤波器,使其能预测下一帧中行人可能存在的区域;(3)对预测区域按照以下策略进行修正:以行人质心位置的估计值作为中心,将预测得出的行人矩形的高度和宽度各放大1.5倍,建立行人搜索的感兴趣区域,在新的感兴趣区域中用级联分类器进行目标检测,然后将检测到的行人质心和矩形宽度与高度作为下一步预测的初始值;(4)跟踪失效的处理:在跟踪过程中,如果检测失效,则保持前一帧的行人信息,并在后续帧中继续检测,以防止由于偶然的漏检造成跟踪失效。如检测失败超过一定的帧数(本文设定为3帧),则认为行人目标已消失,不再继续跟踪。为验证本文方法的有效性,在校内柏油道路上进行了白天正常光照条件下的试验验证,试验平台为所开发的无人驾驶试验平台DLUTIV-I,如图3所示。CCD选用美国AVT公司生产的F-033黑白数字相机,图像分辨率为320×240像素,镜头视场角为25°,焦距为12mm,采用酷睿2双核2.2GHz、2GB内存的工控机。试验结果表明,本文算法能实现10~30m范围内的行人检测,识别算法每帧约为80ms,正确检测率能达88%左右;利用Kalman跟踪预测后,由于建立了行人检测的感兴趣区域,有效减少了在图像中扫描行人的时间,算法平均耗时约为55ms/帧,实时性较好。表2统计了车辆在静止和运动两种状态下行人检测与跟踪结果,在车辆运动的情况下,由于背景和行人在图像中位置变化较大,造成误警率较高。表2行人检测与跟踪试验结果统计图4是车辆由静止到运动状态下对前方1个行人的跟踪结果行人在车辆静止时背对着车辆向前方行走,行走到一定位置之后等候车辆起动,待车辆向前行驶一段距离后,行人继续向前运动,并伴有横穿道路等动作。从图5的跟踪曲线可以看出,识别行人的外接矩形宽度变化比较显着,这符合实际情况,由于行人行走时腿部跨度造成封闭矩形宽度变化明显;由于行人相对于本车的距离变化是连续的,使得行人外接矩形的高度变化比较连续。试验表明,光照条件不同会对行人的识别与跟踪结果产生一定影响,尤其当光照较强时,行人某些部位与地面或背景融为一体,灰度差值很小,造成行人定位不精确或者识别失效,如图6所示。4结束语本文提出一种基于Adaboost算法的行人检测方法,根据行人运动速度慢的特点,提出利用Kalman滤波对行人外接矩形的中心及其宽度和高度进行预测,建立动态可变的行人搜索感兴趣区域,使每帧图像处理的平均耗时由80ms左右降至55ms,从而满足实时性要求。试验表明,本文方法能够识别车辆前方静止和运动的行人,检测率达到约88%。行人检测技术是汽车安全辅助驾驶研究领域的重要组成部分,下一步需要在行人检测的基础上,分析其运动状态以及本车对其构成的危险程度。在车辆与行人可能发生碰撞时,及时向驾驶员发出警示信息,当驾驶员没有采取有效避碰措施时,系统启动减速或紧急制动等操作,有效保障行人的安全。试验表明,本文研究工作还存在一定的不足,考虑因素还不全面,受光照条件的影响较。下一步拟采取CCD光圈自动调节装置来改善白天强光照条件或者暗光照条件的成像质量,并研究如何提取有效表征和区分行人目标的特征、增加训练样本或者改进训练方法。同时,结合红外传感器研究傍晚或夜间等条件下的行人检测。