吴茂友,陈万培,陈 军,张 涛
(扬州大学 信息工程学院,江苏 扬州 225009)
2017年9月,公安局交警支队通报一起错误使用远光灯导致交通事故的典型案例,这起案例也是四川省内首例因灯光错误使用导致交通事故发生而担责的案件。从这起案件可以看出,车前灯的错误使用会带来严重的后果。智能车前灯自动切换系统一直是汽车安全驾驶领域的研究热点,同时引导着智能驾驶的研究方向。文献[1-2]提出了一种利用微波雷达识别对方来车从而自动切换本车车前灯的系统方法。文献[3]提出了一种利用坡道传感器在车辆行驶到坡道上进行坡度识别的远近光切换方法,从而在上坡下坡时进行车前灯切换。文献[4-6]利用光敏传感器进行了系统设计,从而达到自动切换车前灯的目的。文献[7]以手动控制与自动控制相结合的方式保证了车前灯的正确使用。
上述几种车前灯自动切换方法适用场景比较单一,并不能够满足车辆行驶的路况要求。所以本文创新地利用图像处理技术,在机器视觉领域对车前灯自动切换进行了深入研究,实现了对车辆行驶的大多数路况可自由、准确地切换车前灯的目标。本文方法创新地对路灯区域和车灯区域进行了划分,并研究了路面标示牌与车灯路灯的区别,采用双阈值处理方法,很好地避免了标示牌导致的误判。
基于机器视觉的车载智能车前灯切换系统,由图像采集模块、图像处理模块和控制模块3个模块组成,其系统原理图如图1所示。
图1 系统原理
图像采集模块由安装在车辆前挡风玻璃中间的图像传感器组成,主要负责采集前方的灯光环境;图像处理模块为整个系统的核心,负责对图像传感器标定及对采集模块采集的图片进行分析,检测当前车辆行驶的前方灯光环境,判断本车是否应该关闭(打开)远光灯;控制模块通过CAN通信,接收到处理模块的信号后对车辆的灯光进行通信控制,由此实现车辆车前灯的自动切换功能。
系统旨在会车时自动切换车前灯以避免对向车流驾驶员炫目引发交通事故,所以设置了会车距离DT这一参考阈值,即对向车流距离本车距离小于DT时才进行车前灯自动切换。考虑到系统运行实时性问题,将车前灯自动切换系统分为路灯识别和车灯识别2步,其中,车灯识别包括对向车流前照灯及同向车流尾灯。这样,系统在识别到路况照明条件为良好时,只允许本车开启近光灯,当判断照明条件较差时再识别车灯,若有车灯存在即开启近光灯,若无车灯,本车开启远光灯为驾驶员提供良好视野。系统流程图如图2所示。
图2 系统流程
2.1.1 标定
由于车灯识别区域设置在本车前方DTm内,所以本系统采用了一种基于透射投影的相机标定方法[8-9]对相机进行快速标定,以判断车灯识别区域。本方法只需在车辆前方放置一块标定板即可标定相机安装参数。基于透射投影的标定方法设计基于三线标定法[10-11],其基本原理为利用空中平面上的点集合演算出地面上3条相互平行的直线,从而进行相机标定,透射投影标定方案的基本模型如图3所示。
图3 透射投影模型
设G1~G6为地面上的6点,且两两一组决定了3条相互平行的直线,点A1~A6为空中同一平面上的6点,且点G1~G6与点A1~A6在像素坐标系中各自对应具有同一像素坐标,并且确立同一组世界坐标系中相互平行的直线。利用式(1)即可计算出点A1~A6的世界坐标,从而确立3条相互的平行线y1,y2,y3。
(1)
(2)
式中,(xc,yc,zc)为相机安装坐标;(xg,yg,zg)为地面G1~G6点坐标。由该组直线可得到同一消失点坐标p0(i1,j1),取3条直线外各自一点pL(i2,j2),pM(i3,j3),pR(i4,j4)。由点p0,pL,pM,pR,结合式(3)~式(11)即可计算得到相机外参[15-16]。
(3)
(4)
(5)
(6)
A=r1·sinφ·cosθ-cosθcosφ,
(7)
B=-(cosφsinφ+sinφcosφsinθ)-
r1(cosφcosφ-sinφsinφsinθ),
(8)
C=r2·sinφ·cosθ-cosθcosφ,
(9)
D=-(cosφsinφ+sinφcosφsinθ)-
r2(cosφcosφ-sinφsinφsinθ)
(10)
(11)
式中,a,b,c为3条线到车中心线的垂直距离;gn为3条直线斜率;dx,dy为水平比例因子,垂直比例因子;fi,fj为方向i与方向j上的焦距。
设经过标定后得到像素坐标系到世界坐标系的转换矩阵为R,需要检测的会车区域为DT1~DT2m,结合转换矩阵与相机坐标即可得到该区域对应像素坐标区域为RowL~RowH。
2.1.2 曝光调节
利用机器视觉实现车前灯的自动切换,相机曝光参数调节是一项重要技术,文献[12-14]对车载相机的曝光调节做了不同层次研究。为了避免外在环境灯光对系统造成干扰,更准确地对路灯及车灯进行识别,本文对相机曝光参数做了一定调节,典型路况不同曝光参数的采集记录如图4所示。由图4分析可见,右侧图像所用参数更易于进行基于视觉的车前灯自动切换系统的研发,故本系统皆按照此参数进行系统研发。
图4 曝光调节
从实际路况采集信息分析,参考摄像机的安装角度,路灯检测应集中于图像上半部分[17-20]。由标定系统得到相机安装参数后,即可大致得到图像中的路灯区域。从曝光参数调节记录数据来看,不难发现路灯灯源皆为独立的亮白色区域,首先尝试利用像素灰度值为255的点的数量在路灯识别区域所占比例的方法进行路灯检测,然而实验结果不尽人意,表1详细记录了本方法夜间城区道路不同路况的百次测试数据。
表1 测试记录
由表1数据可以看出,此方法在路灯昏暗区域、路口转弯区域有明显的误判行为,进一步研究发现,无路灯路况与有路灯路况图像上半部分有明显的灰度差异如图5和图6所示。
图5 路灯路况
图6 路况灰度直方图
所以将本系统路灯识别方法改为灰度均值法,经测试验证,灰度均值法有效地在路灯昏暗区域及路口转弯区域进行了车前灯自动切换。
系统进行路灯检测后,会根据检测结果决定是否进入车灯识别阶段。在灯光环境较差的行驶环境下,系统对前方车辆进行车灯识别。本阶段进行会车车灯检测即跟车车灯检测,由于夜间环境复杂,且系统容易受反光标识牌影响,所以本系统采用双阈值对图像进行处理,可有效避免反光标识牌的影响。首先利用标定数据标定出车灯识别区域底部RowL和顶部RowH,在该识别区域内,利用双阈值法对图像进行分割处理,将识别区域分割为黑、白、灰3部分,分割结果如图7所示。
图7 双阈值分割
结合图7进行分析,很容易找到车灯与反光标识牌的特征差异,车灯经双阈值处理后可明显与背景区分开,且反光标识牌可与车灯特征区别开。利用以下步骤即可对车灯进行准确检测:① 如果不存在路灯;② 车灯检测区域设定;③ 双阈值图像切割;④ 寻找符合车灯特征区域;⑤ 输出车灯检测结果;⑥ 进行车前灯切换。
为了验证提出的车前灯自动切换方案的可行性,将设计的系统安装在车前挡风玻璃上进行实车测试,其中,路灯测试在不同路段进行了百公里实车行驶,记录测试数据如表2所示。车灯测试在城区夜间下班高峰期进行实车跟车、会车,并记录了各路口转弯的系统工作情况,部分测试数据如表3所示。
表2 道路路灯测试
表3 城区道路测试
本文提出的车前灯自动切换系统,经过大量路测数据验证了其在路灯检测与车灯检测方面的卓越性能,但在无路灯无车灯的路况下易受反光标识牌的影响。其主要原因是本车远光灯造成的反光标识牌过亮,系统误认为当前行驶区域路况照明条件良好,强制车辆切换为近光灯。在汽车产业飞速发展的时代,安全一直是汽车产业至关重要的组成部分,在此希望各界友人对本系统提出批评指正,为中国汽车主动安全产业的发展做出更大的贡献。