于善义, 曹 凯, 张仁永
(山东理工大学 交通与车辆工程学院, 山东 淄博 255091)
在越来越拥挤的道路上驾车.驾驶员在转弯、换道过程中要不断环顾四周交通状况,视线发生转移,分散了对前方道路的注意力;由于存在后视镜盲区和通过后视镜观察侧后方车辆的距离和速度容易产生误判等原因,发生与前方或侧方的机动车、非机动车以及行人刮蹭或碰撞的交通事故日渐频繁.为了让驾驶员专注前方道路交通动态,集中精力驾驶车辆,有必要在车辆转向或换道时,为驾驶员提供侧/后方机动车、非机动车以及行人动态等道路交通状况的平视信息,为此,设计开发车辆侧/后方监控抬头显示系统对于减轻驾驶员在拥挤道路中的驾驶负担,提高车辆行驶安全具有现实意义.
目前,一些高档车上增加了平视信息显示配置,个别车(如宝马)还提供平视导航信息等[1-2].有关车辆侧/后方道路状况监控系统在不断出现,具有代表性的系统是马自达“ATENZA”配备的后方车辆监视系统(RVM)、日产的侧向碰撞预防系统(SCP)、德国联邦教育和研究部的HLCA系统、Mobileye的LCA/BSD 系统、沃尔沃的ELA 系统和Twente大学的VisionSense 系统等[3].这些系统共同特点是使用雷达作为主要手段对侧/后方道路状况进行实时监测,在车辆转向和变道时,系统会通过语音或后视镜上方的指示灯来提醒驾驶员注意.语音提示虽然不会产生驾驶员的视线转移,但由于对道路状况描述过于简单,使驾驶员无法感受到周围环境的危险程度;指示灯提醒存在语音提示同样的问题,驾驶员必须移动视线才能得知提醒信息.
为了提高驾驶员对车辆侧后方道路交通状况识别能力,同时减轻驾驶员在拥挤道路中的驾驶负担,本文提出了侧后方车辆实时监测与平视信息显示相结合抬头显示系统.该系统利用车辆位置、底部阴影和边缘特征识别侧后方目标车辆,得到目标车辆的外接矩和质心,将其作为跟踪时的初始化搜索框;然后采用HSI色彩空间下改进的camshift算法对车辆进行跟踪,得到目标车辆的位置信息;再由激光测距传感器测得两车之间的相对距离信息.车辆检测过程采用先识别后跟踪的方法,缩小了跟踪过程中对目标车辆的搜索范围,能够有效的提高实时性及准确性.此外,采用激光传感器测距方法[4],减少了视觉测距的复杂程度,增加了测距的准确性.
该系统是由控制硬件和软件组成,其中系统硬件包括视频处理模块,视频采集模块、视频输出模块、存储模块、电源模块、测距测角模块、云台、语音提示模块、抬头显示模块和控制模块.视频处理模块采用了专门用于数据处理的TMS320DM642芯片作为视频处理器;视频采集模块由SAA7113及CCD摄像机组成,主要进行视频采集;视频输出模块包括SAA7121H和液晶显示器,用于视频输出;存储模块包括SDRAM和FLASH,其中SDRAM存储视频数据,FLASH存储系统配置数据及程序;测距测角模块使用激光测距仪和角度传感器测量本车与目标车辆的相对距离及云台转过的角度;云台采用高精度伺服电机,控制摄像机及激光测距仪的转动,实现对目标车辆的实时跟踪;语音提示模块由语音处理芯片及喇叭组成,用于发布提示信息;抬头显示模块由高亮LED和数码管组成,将提示信息投射到前挡风玻璃上进行显示;控制模块使用增强型51系列单片机,实现对各功能模块的驱动及控制.
图1 系统功能流程图
系统功能流程图如图1所示.本系统工作时,系统上电,DM642首先对EMIF、EDMA、SAA7113、SAA7121H等芯片进行初始化设置,同时51单片机对云台、测距测角模块、抬头显示模块进行初始化.SAA7113将CCD摄像头采集得到的模拟视频数据转换为数字视频数据,并传送到DM642的VP0口,然后通过EDMA传输到SDRAM中的采集缓存区,为防止数据冲突,建立临时缓存区,CPU对临时缓存区中的视频数据进行处理,处理完成后再将视频数据送往显示缓存区,然后SAA7121H将数字视频数据转换为模拟视频数据输出.与此同时,DM642将处理后得到的目标车辆位置信息通过串口传送至51单片机.51单片机控制云台转动,使激光测距仪指向目标车辆进行实时跟踪测距,并测得云台转过的角度,将得到的数据传回51单片机,判断本车能否进行安全转弯或变道,最后将提示信息传送给语音提示模块和抬头显示模块输出.
车辆识别主要是依据车辆底部区域的亮度值明显低于车辆其它区域以及车辆具有明显的边缘等特征[5],为此,系统采用车辆的位置特征、底部的阴影特征和边缘特征相结合的方式对目标车辆进行检测.
2.1.1 道路区域和车道线的提取
道路区域和车道线的提取过程中,利用了车道线相对于路面具有更高的亮度和明显的边界的特性.在图像处理前,为降低计算复杂度和噪声的影响,首先将彩色图像转换为灰度图像,再进行高斯平滑和中值滤波去除噪声.图2为图像预处理的效果.
(a)灰度图
(b) 中值滤波后图像图2 图像预处理效果图
预处理后的图像利用Sobel边缘提取算子提取边缘.由于Sobel算子是计算求解梯度获得图像边缘,因此,很难获得连续的图像边缘.目前,大多通过寻找邻近断点,依据梯度相似性进行连接,或者增加边缘点等方法.这些方法要么人工处理过多,要么对噪声十分敏感.为此本文提出Sobel算子与网格分类组合的检测方法:首先Sobel算子检测图像边缘;然后在获得的Sobel图中,依照3个像素大小设定网格,并按照内部均匀、含有边缘和含有纹理对网格进行分类,保留含有边缘的网格,去除内部均匀和含有纹理的网格内的边缘像素,以便去除噪声.
从以上得到的图像的底部向上扫描,如果没有扫描到边缘点,则获得道路区域,否则,为非道路区域,这样就获得了道路区域(如图3(a)).为了确定车辆两旁车道内的目标车辆,在道路区域内使用Hough变换提取车道线,然后使用最小二乘法拟合计算出车道线的轨迹方程,从而确定目标车道(如图3(b)).
(a)道路区域
(b) 车道线识别示意图图3 道路区域和车道线识别示意图
在拟合计算出车道线相交的小区域内搜索目标车辆,就可以减小搜索范围,提高检测效率.
2.1.2 车底阴影区域的分割
基于视觉的车辆检测方法有很多,如基于光流场方法,基于模型方法,基于立体视觉方法等等[6].这些方法要么对噪声、光线变化较敏感, 实时性差,要么计算量大、成本高, 对车辆自身运动较为敏感.尽管光强及周边环境会对车辆特征产生较大干扰, 但车辆下方的阴影区域在整个图像中较暗,是一种较为鲁棒的特征.
本系统通过对车底阴影区域的检测来确定目标车辆.对于车底阴影的分割,首先要选择合适的阴影阀值.这个阀值不是一个固定值,需要根据光照及路面条件来确定.对上述获得道路区域的像素灰度值进行随机采样,利用样本灰度直方图计算出阴影阀值.依据计算出的阴影阀值对车底阴影进行分割.
由于路面的灰度值符合高斯分布[7],因此在正常光照条件下,阴影阀值可以由道路灰度值的均值μ和方差σ2来确定.首先在道路区域随机采样n个像素点的灰度值,通过式(1)~(2)
(1)
(2)
计算样本的均值和方差.一般情况下,车底阴影区域的灰度值会小于路面灰度值的均值,所以不能直接将路面灰度均值作为阴影阀值,以防止过多阴影分割,不利于车底阴影区域的提取.
经过试验统计,车底阴影的灰度方差大于路面灰度方差,因此,阴影阀值可以设置在道路灰度减小到零的位置,由式(3)计算得出
X=μn-kσ
(3)
其中实验表明当k取值为3时,分割车底阴影区域为最佳.
当路面较暗或者光照条件较差时,需要估计一个较大的阴影阀值.由于迭代法能够减小噪声的干扰[8],因此这里采用迭代法确定阴影阀值.即首先确定一个初始阀值,然后按照如下步骤不断改进这个阀值,直到改进后的阀值满足设定的标准为止.
(1)在目标车道区域内找到灰度最小值gmin和最大值gmax.
(2)设迭代初始阀值为g=(gmin+gmax)/2.
(3)依据阀值g将目标车道区域按灰度划分为R1和R2.
(4)分别计算两组区域的灰度平均值μ1和μ2.
(5)计算μ1和μ2的均值,将该均值确定为阀值g的值.
(6)不断重复步骤(3)~(5),一直到μ1与μ2的差满足给定的值为止.
图4是利用上诉步骤对图像进行处理后得到的阴影区域.
图4 阴影区域
为了检测后方目标车辆,在确定的目标车道内及在拟合计算出车道线相交的小区域以下,搜索满足阴影阀值的阴影区域,从而确定目标车道内有车辆存在;如果无法找到满足条件的阴影区域,则认为目标车道内无车.确定目标车辆底阴影区域后,再搜索阴影区域中宽度最大的行,作为定位目标车辆可能区域(感兴趣区域ROI)的底边,以底边行的左右端点所在的列作为ROI的左右两边.
根据车辆的高度和宽度的比例,可以确定ROI上边缘的搜索范围[Emin,Emax],一般来说,小型车高宽比例为0.7,大型车为1.4[9].由如(4)和(5)搜索范围
Emin=Y-0.7W
(4)
Emax=Y-1.4W
(5)
其中:Y为ROI下底边所在的行;W为ROI的宽度.
可以利用车辆边缘轮廓特征,对图像采用Sobel边缘提取算子提取水平边缘,在ROI内做水平投影,然后在[Emin,Emax]范围内,自上而下进行搜索,找出满足宽度阀值的行,将此行作为ROI的上边缘,若不存在满足条件的边缘则认为后方目标车道无车.
为了跟踪后方目标车辆位置,只检测车底阴影得到ROI左右边缘并不准确.为此,在ROI内对图像采用Sobel算子提取竖直边缘,并做垂直投影.然后分别从左边缘和右边缘向ROI中心扫描,找到满足阀值的最大值对应的列,以此列作为ROI一个新的边缘,再以中心为对称轴找到与此列对称的列作为另一边缘[10].通过以上步骤,在光照良好的情况下,能够准确的检测出目标车辆存在的区域,并将此区域作为跟踪过程的初始化搜索框,如图5所示.
图5 目标车辆存在区域
车辆与道路以及周边环境对比,由于车辆的颜色特征对光照变化等干扰因素具有相对的稳定性[11],因此本文使用颜色特征作为跟踪模版.
Camshift算法是在meanshift基础上改进而来,是一种以颜色直方图为目标模版的跟踪算法.相比meanshift算法,Camshift算法能够实时调节搜索窗口的大小,在目标尺度发生变化时不至于丢失,而且实时性更好[12].为此,将上述车辆识别算法得到的ROI作为Camshift算法的初始化搜索框,解决了Camshift算法起始运行时需要人工选取目标区域的问题,实现自动跟踪目的.
为减少光照对目标跟踪的影响,这里Camshift算法的实现是将RGB色彩空间图像转化到HSI色彩空间图像后,利用色调H(Hue)进行反向投影,然后通过迭代来得到质心[13].在HSI色彩空间中,亮度I与图像的彩色信息相互独立,由色调H可以很好的区分各种颜色.H、 S、 I的计算式如下:
(6)
由公式(6)可知,在RGB色彩空间转换到HSI色彩空间的计算过程中,色调H的计算需要进行反余弦计算,这将耗费大量图像处理时间,影响对目标跟踪的实时性.因此本文采用Bajon近似算法,由式(7)代替式(6)中色调H的计算,
(7)
H=2π×H′
Camshift算法中,设xi(i=1,2,…,n)为目标图像像素的坐标,同时设b(xi)为xi位置处的像素值,目标直方图可以表示为
(8)
在实际道路交通环境中,由于目标车辆周围很可能有噪声干扰,因此可以采用加权直方图的方法,对目标车辆检测区域内不同位置的像素值赋予不同的权重.距离对目标车辆检测区域中心越近,相应的权重则越大.计算式为
(9)
在某些情况下用于跟踪的矩形搜索框中会包含部分背景,通过上述方法计算得到的直方图并不能很好的对目标进行定位.为解决以上可能出现的问题,本文对候选区域直方图pu采用公式(9)计算,对目标模版区域直方图qu采用式(10)背景加权直方图计算:
(10)
根据背景中样本点离目标中心距离来决定样本点的权重,距离目标中心越近,权重越大,否则越小.同时对目标相邻背景区域的像素值赋予较小的权重,以此降低背景对目标像素的影响.另外,本文采用如下式
(11)
Bhattacharyya系数来表示目标候选区域与目标模板区域的相似度[14].其中,m是颜色量化等级,ρ(p,q)的取值范围为[0,1],ρ(p,q)越大则p和q越相近,其对应的中心坐标则可能为目标中心的当前位置.于是,通过以上算法可以得到侧后方目标车辆的位置信息,并用于系统对目标车辆的跟踪.
转向换道过程中,侧后方车道上的其它目标车辆是影响本车换道安全的重要因素之一,因此,实时、准确地测量出本车与侧后方车道上目标车辆之间的最小安全距离的尤为重要[15].设本车为M,侧后方车道上的目标车辆为N,本车换道时间为t,为避免两车之间可能发生的碰撞,设定必须满足以下条件:
S0>SN-SM+L+λD
(12)
其中:S0为M与N初始车头纵向间距;SN为N在t时段内行驶的纵向距离;SM为M在t时段内行驶的纵向距离;L为M车长;D为换道之后两车的最小安全间距;λ(λ∈[1,1.50])是最小安全间距系数.
由于最小安全间距D与车辆行驶速度相关,依据文献[16]给出的安全间距以及驾驶员对后向距离的感知特点,为确保换道安全,根据不同速度对最小安全间距D乘以系数λ,其取值如表1.
表1 市区不同速度下的换道安全间距
在测距过程中,设测距测角模块连续两次测量M与N之间的距离分别为L1和L2,测得的角度分别为θ1和θ2,则纵向距离分别为:S1=L1cosθ1和S2=L2cosθ2;两次测量的时间间隔为Δt,则M与N的速度差为vN-vM= (S1-S2) /Δt.
当vN-vM≤0时,M可以进行匀速换道,此时λ取值等于1,由式(12)可知
S0>SN-SM+(L+λD)=
(vN-vM)t+(L+λD)
(13)
为保证安全换道,M和N最小纵向安全距离为L+D,D取值参照表1.
当vN-vM>0时,为换道安全,λ取值大于等于1,参考表1进行加速换道.并且,M车在完成加速换道后,其速度应该与目标车道上的N车速度相等[14].此时M加速时间为t=(vN-vM)/a,a为M换道时的加速度.由式(12)可知
(14)
为了保证车辆换道时的平稳性及舒适性,换道时加速度取值范围通常为0~2m/s2,则当加速度a=2时[17],得到M与N最小纵向安全距离为
(15)
所以,当S0≥Smin时,M可以进行加速换道;当S0 (16) 本文将摄像头及激光测距仪安装在汽车的后视镜上,在实际道路场景下进行实验,得到的跟踪结果如图6所示,图6(a)为正常光照条件下的跟踪效果,图6(b)为弱光照条件下的显示效果,相对应的抬头显示效果如图7所示. (a) 正常光照条件 (b) 弱光照条件图6 目标车辆跟踪结果 采用人工计数的方式分别统计正常光照条件和弱光照条件下的侧后方车道上的总目标车辆数、系统正确识别的车辆数、错误识别的车辆数、遗漏车辆数及正确测距的次数,统计结果见表2. 表2 实验数据统计结果 (a) 正常光照条件 (b) 弱光照条件图7 平视系统显示效果 由数据可知,本系统在正常光照条件下的识别正确率为96.2%,测距正确率为98.6%;弱光照条件下的识别正确率为94.6%,测距正确率为98.3%;系统在车辆识别的图像处理过程中,正常光照条件下的耗时约为210ms,弱光照条件下的耗时约为350ms,车辆跟踪处理过程中对每帧图像的平均处理时间约为30ms,可以达到实时性要求,并且具有一定的鲁棒性和可靠性. 本系统利用车辆的位置特征、底部阴影特征和边缘特征相结合的方式对目标车辆进行识别,并采用改进的背景加权直方图Camshift跟踪算法对车辆进行跟踪.同时,使用激光测距传感器进行测距,不仅能够对目标车辆进行实时跟踪,而且能够高效快速地实现对图像和距离信息进行采集与处理,并实时输出结果,信息直观清晰,具有良好的人机交互功能. 本系统是一个初步的框架,还存在不足之处,对于车道线不明显的道路环境识别效果不理想,并且只适用于日间.另外,平视系统的表达还过于粗糙,有待于今后改进. [1] 陈浩,曹增辰,戴磊.抬头显示系统:从飞机来到汽车[N].科技日报,2013-6-28(6). [2] 曹增辰,戴磊.HUD技术的汽车应用以及国内外发展情况[J].中国材料科技,2010,(S2):16-18. [3] 杨双宾.高速公路车辆行驶安全辅助换道预警系统研究[D].长春:吉林大学,2008. [4] 陈雷,岳迎春,郑义,等.车载激光雷达测距测速原理[J/OL].中国科技论文在线,(2008-01-25)[2013-11-25].http://www.paper.edu.cn/releasepaper/content/2008/01/736. [5] 胡 铟, 杨静宇.基于单目视觉的路面车辆检测及跟踪方法综述[J].公路交通科技,2007,24(12):127-131. [6] 董春利,董育宁.基于视频的车辆检测与跟踪算法综述[J].南京邮电大学学报:自然科学版,2009,29(2):88-94. [7] 金立生,贾敏,孙玉芹,等.日间高速公路侧后方车辆识别方法[J]. 西南交通大学学报,2010,45(2):231-237. [8] 林俊,徐杜,蒋永平,等.基于梯度的动态分块迭代阈值图像二值化方法[J].光学与光电技术,2006,4(5):98-100. [9] 文学志,赵宏,王楠,等.基于知识和外观方法相结合的后方车辆检测[J].东北大学学报:自然科学版,2007,28(3):333-336. [10] Liu W,Wen X Z,Duan Bb.Rear vehicle detection and tracking for change assist[C].//Proceedings of the IEEE Intelligent Vehicle Symposium,Istanbul,Turkey,2007:252-257. [11] 丁磊,宫宁生,俞克强.改进的Mean Shift跟踪算法在车辆跟踪上的应用[J].电视技术,2013,37( 5):183-199. [12] 高辉,杜庆玲.视频监控系统中运动目标检测算法研究[J].计算机与数学工程,2008,36(9):34-36. [13] 程金汉,杜爱民.基于DM642的嵌入式实时车辆跟踪系统[J].机电工程,2007,24(12):25-28 [14] 喻该,贾茜,李圆双,等.基于DM642的运动目标检测与跟踪系统[J].现代科学仪器,2011(2):30-32. [15] 王伟杰,王春磊,王玖,等.高速公路最小行车安全距离及预警系统设计[J].大连交通大学学报,2010,31(5):6-10. [16] 彭伟,浅析汽车行驶中的安全距离[J]. 四川工程职业技术学院学报, 2012, 26(4): 42-45. [17] 许伦辉,倪艳明,罗强,等.基于最小安全距离的车辆换道模型研究[J].广西师范大学学报,2011,29(4):1-6.3 系统验证及分析
4 结束语