结合Hough变换与Kalman滤波的车道线检测方法
2018-01-23郭笙听李子印
郭笙听,李子印,赵 储
(中国计量大学 光学与电子科技学院,浙江 杭州 310018)
近年来,智能驾驶技术受到研究者们的普遍关注[1-2],车道线提取是智能驾驶系统的重要组成部分,也是智能车辆计算机视觉系统中的关键技术之一,它提供了车辆与车道位置关系的信息,由此可确定车辆行驶的区域[3].车道线的提取是从车载摄像头获得的视频图像中,根据车道线的颜色、形状和纹理等特征,将车道线与背景进行分离,从而获得车道线的走向与车辆相对于车道线的位置等信息[4-5].一种高效的车道检测算法须同时满足实时性、准确性、鲁棒性三个要求,但三者又是相互限制的.为得到精确的车道线位置信息并适应道路的各种情况以保证系统的鲁棒性,则检测算法的复杂度和运算时间将会增加,不能很好满足实时性的要求;相反,为满足系统的实时性,就需要对检测算法进行简化,往往会牺牲检测的精确性和鲁棒性.
目前,常用车道线方法主要基于RANSAC算法[6]的扫描拟合或Hough变换算法[7]. RANSAC的优点是它能从包含大量局外点的数据集中估计出高精度的参数,估计模型参数,缺点是该算法计算参数的迭代次数没有上限,如果设置迭代次数的上限不合理,得到的结果可能不是最优的结果,甚至可能得到错误的结果[6].而且RANSAC算法只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型,RANSAC算法就不能找到别的模型. Hough变换算法的优点是对噪音不敏感,能较好地处理图像中物体局部被遮挡和覆盖的情况,但是如果算法中图像点受到干扰因素较多、杂乱,则容易丢失目标,出现检测错误而影响整个系统的准确性.
本文提出了一种基于Hough变换和Kalman滤波的车道线检测方法,对原始图像进行设定感兴趣区域和逆透视变换,结合Hough变换算法和Kalman滤波算法对当前行驶的车道进行车道线检测与修正,在保证实时性的情况下提高算法的精确性.
1 车道线检测识别系统组成
本文车道线检测系统实现流程如图1.
图1 车道线检测系统流程Figure 1 Flow chart of the lane detection system
2 车道线检测算法
进行车道线检测,以保证减少其他因素的干扰使检测的精确性得以实现.一般地,通过实时获取的图像中有1/3部分是天空或是较远的非暂时关注的问题.本文采用基于车载摄像机成像模型,获取视频图像帧中的车道信息.
2.1 预处理
由于存在透视的因素,原本车道线平行的线条会出现相交的情况,车道线虚线部分的间隔在图像远端变得很小,这种情况不利于车道线的检测和辨识[8].
本文采用相机几何模型的方法,通过单目摄像机得到的单幅图像,在已知一些参数的情况下,将三维空间中路面的坐标和单目相机获取图像的坐标对应,以便通过图像上的相对位置判断三维空间坐标中路面点的相对位置.在二维空间和三维空间相互转换的过程中,利用已知的参数去掉原图像的透视效果, 得到一幅鸟瞰二维图像.图2所示为相机几何模型.在反透视变换中需已知如下一些参数:
1)摄像机C位置的参数I(l,d,h);l为摄像机的焦距;h为摄像机相对于地面的高度;d为摄像机在大地坐标系x轴上的值.
2)摄像头光轴与车道线的夹角为γ;α为摄像机的最大水平视角;β为摄像机的最大垂直视角.安装的时候,摄像机的光轴的位置需与路面平行.
图2 相机在二维坐标系中的位置Figure 2 Camera positions in the 2nd dimension coordinate
建立路面图像上任意一点I(x,y)与路面坐标的对应点映射模型如下[9]:
(1)
(2)
(3)
(4)
其中:H1,H2分别为摄像机的水平分辨率和垂直分辨率;α,β通过标定得到.随着距离的增加车道线宽度在透视图像中逐渐缩短,即在近视场中车道线宽度较宽,在远视场中车道线宽度较窄;车道线间距也是如此.结合相机成像模型,在世界坐标系中的距离Δx对应的图像坐标中第y行中的距离Δx如下[8]:
(5)
适当调节参数和视频尺寸,设置原图像的ROI范围,尽量裁掉天空等不必要的干扰因素,保留车道线部分.图3为感兴趣区域结果,图4为反透视变换和灰度化后的效果.
图3 感兴趣区域Figure 3 The region of interest
图4 灰度化的反透视变换效果Figure 4 The result of the gray inverse perspective mapping
2.2 图像阈值处理
首先对逆透视变换结果利用中值滤波[10]进行平滑处理,然后采用大津法[11]进行阈值分割,将车道分离出来,再通过腐蚀、膨胀运算去除噪声点.实现流程如图5,上述流程的效果如图6.
图5 阈值处理流程图Figure 5 Flow chart of the threshold
图6 阈值处理效果Figure 6 Result of the threshold processing
2.3 Hough变换车道线检测与筛选
霍夫变换(Hough transform)是从图像中提取出曲线的一种很普遍的方法, 它被广泛用来进行车道线的检测[12-13].它的基本原理是把图像空间上的点对应到参数空间上,通过在参数空间里进行简单的累加,寻找累加器的峰值的方法检测直线.Hough变换的极坐标方程为
ρ=xcosθ+ysinθ.
(6)
可以得到图像空间上同一直线上的点在参数空间中对应正弦曲线交于一点(ρ,θ).ρ是图像空间直线到到坐标原点的距离,θ为直线与x轴的夹角.
本文采用了累计概率霍夫变换(Progressive Probabilistic Hough Transform ,PPHT),其特点是在选择拟合点时采用了随机抽取的方法,结合计数器,当直线拟合的次数达到设定阈值时,完成直线拟合.
由于Hough变换检测出的直线,除了车道线以外,还存在其他的干扰直线,为了提高准确性,必须筛选掉这些干扰直线[14-15],这就得做三次优化筛选.具体流程图如图7.
图7 Hough变换检测流程图Figure 7 Flow chart of the Hough Transform detection
第一次筛选:首先利用累计概率霍夫变换对阈值处理结果图像求取直线,因路面车道线的规格和经过逆透视的转换,图像中车道线的斜率值均是在一个范围内变化的,几乎接近垂直,可以根据斜率来去除干扰直线[16];同时利用概率型Hough变换函数的特点,获取线段两端点所在位置,通过计算线段的长短,设定线段长度阈值范围,筛选出目标车道线;
第二次筛选:利用已经检测到直线上的点,根据与中心线距离筛选出当先行驶车道的两边线,如下:
distance=px-Centerx.
(7)
其中px是检测到点的横坐标,Centerx是当前视频帧中心的横坐标,当distance<0时为左侧车道线,当distance>0时为右侧车道线,以此作为判断条件.
第三次筛选:为了防止因为检测点不足两个,调用直线拟合函数时出错生成水平线造成干扰,再次用斜率筛掉水平线,并储存拟合直线.
2.4 基于Kalman的车道线参数跟踪
由于序列图像的时空连续性,即连续两帧图像之间车道线位置具有的相关性,车道线位置变化几乎不变,所以可以用前一帧图像获取到的信息预测下一帧车道线的位置,这样可以提高算法的处理速度和鲁棒性[17].
卡尔曼滤波器是通过K时刻检测值和K-1上一个时刻最优值来确定当前K时刻目标的最优位置的算法.利用上一个时刻来预测下一个时刻的状态,而不是累计之前所有的状态,这样可以大大减少计算工作量.对于一个动态系统,首先定义一组状态空间方程和测量方程,定义式子如(8)(9)所示.
状态方程:
xk=Akxk+Bkμk+wk;
(8)
测量方程:
zk=Hkxk+vk.
(9)
xk是状态向量,zk是测量向量,Ak是状态转移矩阵,μk是控制向量,Bk是控制矩阵,wk是系统误差(噪声),wk~N(0,Qk).Hk是测量矩阵,vk是测量误差(噪声),vk~H(0,Rk).wk和vk都是高斯噪声.
整个卡尔曼滤波的过程就是个递推计算的过程,不断的预测到更新再预测再更新循环过程[18],计算过程如下,如公式(10)~(16)所示.
预测过程如下:
预测状态值
(10)
预测最小均方误差
(11)
更新过程如下:
测量误差
(12)
测量协方差
(13)
最优卡尔曼增益
(14)
修正状态值
(15)
修正最小均方误差
Pk|k=(1-KkHk)Pk-1|k-1.
(16)
(17)
(18)
本文在拟合直线之后,提取车道线参数,将此时检测的车道线状态作为K-1时刻的最佳值,对存储的线的两个端点进行卡尔曼滤波追踪(每条线2个端点,一共设立4个卡尔曼滤波器),把预测的点进行相应的连接,得到预测的车道线,然后在水平x轴上对预测所得的车道线进行移位,得到一个相应的预测区域.
3 实验结果及分析
本文在VS2013的编译环境下,利用OpenCV 2.4.11实现了基于Hough变换和Kalman滤波的车道线检测.测试使用的PC机配置为:Intel Core(TM)i3-2120 CPU 3.3GHz,内存为2 GB.
实验中的视频通过行车记录仪记录图像序列,图8是本文算法的实验仿真结果,视频分辨率为856×480.(a)、(b)、(c)为逆透视下车道线仿真结果,(d)、(e)、(f) 为再次调用逆透视变换函数使之逆变换回原图像的测试结果.整个算法在实现的过程中保证了实时性和准确性,成功实现了车道线参数的连续检测和跟踪,在汽车辅助驾驶及车道线的检测和跟踪研究中有较好的应用价值.
图8 算法两种视角的检测结果Figure 8 Result of algorithm from two visual angle
通过实验统计列出了对不同帧数视频的测试结果,根据检测结果分为车道线检测完整、不完整漏检、误检三种情况,如表1所列:在序号1和序号2视频道路标志线明显、车辆和干扰线都较少时,车道线检测的准确率能达到96%以上;在序号3和序号4视频光照亮度阴暗,标志线不明显的情况,车道线的检测准确率也能达到90%以上.在光线阴暗的情况下,可以采用启动车辆前照灯以及提高视频图像亮度的方法来保证算法的准确性.此算法的识别速度和识别率与文献[16]中利用 Hough变换的算法和文献[17]中利用边缘点信息识别车道线的算法做了对比,如表2.相比另外两种算法,本文提出的算法.由于采用了Hough变换和Kalman滤波的对图像序列的实时检测的方法,在保证了算法的准确率的情况下,算法的识别速度有所降低,这也是接下来需要改进的地方.
表1 车道线检测实验统计结果
表2 不同算法的识别速度与识别率
为了检验车道线跟踪算法的效果,本文选取不同场景下的道路图像进行了大量的实验,图9展示了不同公路情况下车道线检测结果.从图中可以看出,即在不同的光照条件下,本文算法始终能够得到稳定的车道线结果.
图9 车道线检测结果Figure 9 Result of lane detection
4 结 语
本文介绍了一种结合改进的Hough变换和Kalman滤波的车道线检测算法、该方法能够实时地、准确地检测出当前行驶车道位置、并具有效率高、速度快、准确性强的特点.车道线通过三重筛选的方式,提高算法的精确性,利用Kalman滤波对车道线进行预测跟踪,提高了算法的鲁棒性.在后续工作中,我们将进一步研究并考虑车道线的直线-曲线融合模型,弥补算法在弯道车道线检测时存在的不足,以便对弯道检测得更加准确.
[1] OZGUNALR U, FAN R, AI X, et al. Multiple Lane detection algorithm based on novel dense vanishing point estimation[J]IEEETransactionsonIntelligentTransportationSystems, 2017, 18(3): 621-632.
[2] 蔡军伟, 颜幸尧, 戎悦. 移动智能终端的车辆制动系统监测技术[J]. 中国计量学院学报, 2016, 27(1):28-32.
CAI J W, YAN X Y, RONG Y. Vehicle braking system monitoring techniques based on mobile intelligent terminals[J].JournalofChinaUniversityofMetrology, 2016, 27(1):28-32.
[3] STERNLUND S, STRANDROTH J, RIZZI M, et al. The effectiveness of lane departure warning systems—A reduction in real-world passenger car injury crashes[J].TrafficInjuryPrevention, 2017, 18(2): 225-229.
[4] SON J, YOO H, KIM S, et al. Real-time illumination invariant lane detection for lane departure warning system[J].ExpertSystemswithApplications, 2015, 42(4):1816-1824.
[5] SHIN J, LEE E, KWON K K, et al. Lane detection algorithm based on top-view image using random sample consensus algorithm and curve road model[C]//UbiquitousandFutureNetworks(ICUFN),2014SixthInternationalConfon. Shanghai: IEEE,2014: 1-2.
[6] XU S, YE P, HAN S, et al. Road lane modeling based on RANSAC algorithm and hyperbolic model[C]//InternationalConferenceonSystemsandInformatics. Shanghai: IEEE, 2017:97-101.
[7] XU G, YANG L, LIU X, et al. Research of road extraction based on hough transformation and morphology[C]//ComputerScience&ServiceSystem,2012InternationalConferenceon.Nanjing: IEEE CSSS, 2012: 2261-2264.
[8] YING Z, LI G. Robust lane marking detection using boundary based inverse perspective mapping[C]//Acoustics,SpeechandSignalProcessing(ICASSP),2016IEEEInternationalConferenceon. Shanghai: IEEE, 2016: 1921-1925.
[9] 陈龙, 李清泉, 毛庆洲. 基于成像模型的车道线检测与跟踪方法[J]. 中国公路学报, 2011, 24(6): 96-102.
CHEN L, LI Q Q, MAO Q Z. Lane detection and following algorithm based on imaging model [J].ChinaJournalofHighwayandTranspor, 2011, 24(6): 96-102.
[10] 王欢, 王修晖. 基于阈值判断的自适应中值滤波算法[J]. 中国计量学院学报, 2011, 22(4):382-385.
WANG H, WANG X H. An improved adaptive median filter based on noises detection[J].JournalofChinaUniversityofMetrology, 2011, 22(4):382-385.
[11] SHOU-XIN J I, YI-QUAN W U, ZHAN B C. Threshold segmenation method for infrared images based on 2-D symmetric cross-entropy[J].JournalofOptoelectronicsLaser, 2010, 21(12):1871-1876.
[12] LIU Z, WANG S, DING X. ROI perspective transform based road marking detection and recognition[C]//Audio,LanguageandImageProcessing,2012InternationalConferenceon.Shanghai: IEEE ICALIP, 2012: 841-846.
[13] LI X, WU Q, KOU Y, et al. Lane detection based on spiking neural network and hough transform[C]//ImageandSignalProcessing,20158thInternationalCongresson. Shenyang:IEEE CISP, 2015: 626-630.
[14] LI W, GONG X, WANG Y, et al. A lane marking detection and tracking algorithm based on subregions[C]//InformativeandCyberneticsforComputationalSocialSystems,2014InternationalConferenceon. Qingdao: IEEE ICCSS, 2014: 68-73.
[15] LIU X, DAI B, SONG J, et al. Real-time long-range lane detection and tracking for intelligent vehicle[C]//ImageandGraphics,2011SixthInternationalConferenceon. Hefei: IEEE ICIG, 2011: 654-659.
[16] WANG J, AN X. A multistep curved lane detection algorithm based on hyperbola-pair model[C]//IEEEInternationalConferenceonAutomationandLogistics. Hong Kong and Macau: IEEE, 2010:132-137.
[17] LIN Q, HAN Y, HAHN H. Real-time lane departure detection based on extended edge-linking algorithm[C]//ComputerResearchandDevelopment,2010SecondInternationalConferenceon. Kuala Lumpur: IEEE ICCDR, 2010: 725-730.
[18] 彭红, 肖进胜, 程显,等. 基于扩展卡尔曼滤波器的车道线检测算法[J]. 光电子·激光, 2015(3):567-574.
PENG H, XIAO J S, CHEN X, et al. Lane detection algorithm based on extended Kalman filter [J].JournalofOptoelectronics·Laser, 2015(3):567-574.