基于单目视觉的智能车辆视觉导航系统设计
在以往的车辆验证方法中,最常用的是对称性测度验证。这种算法的计算量较大,且对于背景复杂,对称度差图像的验证效果不尽人意。为了解决这个问题,该系统采用了一种基于边缘二值化图像,通过搜索车辆左右边缘进行验证的算法。
假设疑似区域的宽度为W,区域左边缘的坐标为(X1,Y1),右边缘的水平坐标为(X2,Y2)。定义函数:
式中:f(x,y)为(x,y)点的灰度值。在区间(X1-W/4,X1+W/4)内搜索g(u)的最大值点,该点对应的水平坐标X1’就是车辆的左边缘坐标。同理也可以搜索到车辆的右边缘X2’。如果左右边缘的g(u)值均大于某阈值,那么就可以认定该车辆确实存在。实验证明,该算法能排除掉大量的“虚警”区域并得到真实车辆的两侧边缘。
2.3 车辆跟踪
现关心的是前方车辆与本车相对的二维位置和速度,因此只需要使用卡尔曼滤波器预测横坐标x、横向速度Vx、纵坐标y、纵向坐标Vy这四个状态向量。此外由于x方向和y方向的状态向量没有直接联系,所以可以将其分为两组分别处理。
在车辆行驶过程中,由于颠簸或遮挡等原因,系统可能会将路牌、灌木丛等物体误认为是车辆检测出来,产生虚警。而这些虚警物体往往只能在连续数帧图像中存在。如果不采取措施,系统就会时常产生短促的报警。
当图像采样间隔足够短时,相邻帧内同一车辆的位置会具有很大的相关性。
系统采用检测与跟踪相结合的方法,根据第n帧图像获得的信息,预测车辆在第n+1帧图像中的位置等信息,并与n+1帧图像中实际检测到的结果进行比对。如果二者匹配度最大且超出一定值,则认定为同一车辆,继续进行跟踪、报警,否则认为此车已被遮挡或消失,暂时不做处理,数帧后被剔除出去。2.4 测距报警
车间测距通常采用几何投影模型,采用了一种简化的车距模型公式L×W=C,其中L为两车间距,单位为m;W为图像上目标车辆处车道宽度,单位为pixel;C为常数,可通过事先的标定获得。然而两车间安全车距S采用文献推导的临界安全车距公式动态得到。
式中:Vr为相对车速,由对测出车距求导得到相对车速后进行卡尔曼滤波得到;Vb为本车车速,由GPS得到。
如果告警频率过高,容易使驾驶员麻痹大意,过低可能使驾驶员来不及做出反应,因此该系统采用由远至近的三段报警。
若车距d≥1.5S,判定为3级威胁,发出长而缓的报警声,提醒驾驶员前方有障碍物,但暂无危险;若车距S≤d≤1.5S,判定为2级威胁,发出较急促的报警声,提醒驾驶员减速;若车距d≤S,判定为1级威胁,发出短而急的报警声,提醒驾驶员制动;3种状态下的告警声差异很大,驾驶员可以很容易地根据报警声判断威胁等级。
3 试验结果
系统框架及所有算法在Boiland C++ Builder 6环境下编译完成。为了验证系统算法的可靠性和实时性,利用在合肥市环城高速公路上采集不同车型、不同路段、不同环境光下多组道路图像作为测试序列,进行了大量实验。
图3为典型道路场景下的实验结果,图3(a)为大型卡车;(b)为小型面包车;(c)为远距离处;(d)为近距离处的检测结果。系统将检测到的目标用黑框标记出来。
可以看出,系统能够检测到本车道内不同距离上的各种车型车辆。在高速公路上的实验结果表明,在最大车速100 km/h的情况下,系统在Celeron M 600 MHz处理器上的处理速度为8 j/s左右,也就是说处理一帧图像的时间内车辆行驶3~4 m,基本满足实时报警的要求。在一般光照条件下,系统正常报警的纵向距离超过200 m,视场角远远大于雷达(一般为±7°)。
为了验证单目视觉测距准确性,在市内道路上采集了前车与本车距离从5~100 m的一组图像。对采集的图像进行处理后,根据公式推导出本车与前车距离以及实际距离见表1。表中数据显示,单目视觉测距的相对误差都在5%以内,可以满足实际工作中测距告警的需要。
4 结语
本文设计了一个基于单目视觉的汽车追尾预警系统。该系统采用了一种基于光密度差的道路检测算法,并使用了一种以车辆阴影检测为主、左右边缘检测为辅的车辆探测方法,同时采用了简单、实用的测距和报警方法。高速公路上的实验结果证明了该系统的实时性、鲁棒性和准确性。该系统目前还没有在雨雾天气或缺少照明的夜间环境下进行试验,未来我们将针对这些使用环境对系统做进一步改进和优化。
评论