基于双重ROI和变间距扫描的车道线检测
2018-01-18王鑫刘玉超海丹
王鑫 刘玉超 海丹
跟随社会发展的脚步,汽车成为人类生活中重要的代步工具.汽车保有量逐渐增加,同时交通事故发生率也越来越高.美国国家公路交通管理局(NHTSA)分析,超过90%的道路交通事故源于驾驶员的失误[1],其中大部分都是由驾驶员注意力不集中或者违反交通规则所导致,这些失误随着辅助驾驶和无人驾驶的出现将大大减少.作为驾驶安全辅助系统和无人驾驶系统的关键技术之一,车道线检测成为众多科研机构和汽车厂商的研究热点.
1 车道线检测方法介绍
当前主流的车道线检测方法可以归纳为两个过程:特征点提取和车道线识别.早期的特征提取方法[2−3]主要利用了车道线明显的灰度值特征进行路面区域的分割.首先通过从全局上对RGB图像进行灰度化处理和滤波去噪,在预处理的结果上对比路面区域的亮度差异,筛选出灰度值高于设定阈值的像素点.基于亮度或颜色的车道线特征提取对于光线变化、树木阴影的遮挡非常敏感,误识别率很高.为此文献[4−6]等借助车道线的边缘有局部像素值突变的特点,提出了基于边缘检测的特征提取方法,通过构造Sobel、Prewitt、Canny、Laplacian等边缘检测算子对图像上的所有像素点进行逐一处理,从而突显车道线的边缘像素点.车道线识别常用的方法包括区域生长法[7]和基于模型的方法.由于区域生长法的空间和时间开销都比较大,一般只用于对算法效率要求不高的离线车道线检测,在实时性系统中应用较少.基于对车道线形状的假设建立道路模型,又分为直线模型和曲线模型.对于直线模型设定的车道线,一般采用Hough变换法[8],其原理是利用图像空间和Hough参数空间的点-线对偶性,把原始图像空间中像元的聚类问题转换为参数空间累积对应点的峰值检测问题.常用的曲线模型包括双曲线和3次样条曲线.
从辅助驾驶和无人驾驶的实时性需求出发,本文选用扫描线法进行特征提取.为了进一步减少扫描的时间代价,我们提出了基于双重ROI和变间距扫描线的特征提取方法.在对图像进行灰度化预处理的基础上,首先以变间距的扫描方式进行特征检测,将提取到的特征点与历史帧跟踪的车道线共同作为ROI划分的依据,在双重感兴趣区域范围内再次进行逐行扫描,得到全图的车道线特征点.该算法不仅处理速度快,而且对光照条件、天气状况和路面环境的适应能力很强.
2 算法描述
考虑到当前车道线检测多应用于结构化和半结构化道路,此类道路主要有如下特征:1)路面平坦:路面坡度一般较小且变化缓慢,在一定视野范围内可以将路面作为水平平面;2)车道线宽度较为固定:根据中华人民共和国行业标准JTG B01-2003可知,曲率变化幅度较小的路段内车道线宽度可认为固定不变;3)车道线具有高灰度级:车道线分为白色和黄色标识线,在灰度图像中相较于路面其他区域的灰度值更高.
根据上述特征,本文采用如图1所示的算法流程,将车道线检测分为图像预处理、特征点提取和车道线识别3个模块.从获取的图像中截取下半部分的路面区域作为子图像,后续的处理都基于子图像实现,首先对其进行初步的灰度化预处理,依据透视原理划分上密下疏的变间距扫描线并沿扫描线进行粗略的特征提取,之后结合当前帧变间距扫描得到的特征点位置和前一帧识别得到的车道线位置设定双重感兴趣区域(ROI),并在ROI内依据亮度变化寻找边缘特征点,得到车道线特征点备选集,进而完成基于概率Hough变换的车道线识别,最终输出车道线检测结果.
3 图像预处理
车载摄像头在行驶过程中采集到汽车前方视频,图像中包含待检测车道线的路面区域通常分布在整幅图像的下半部分,即物理世界的地平线在透视图上的投影位置以下.为了缩小搜索区域、滤除天空等图像上半部分噪声的干扰,依据路面与天空的交界线对图像进行裁剪,截取原始图像1/3高度部分为待检测的子图像.另外原始图像为三通道彩色图像,数据量较大且存在信息冗余,考虑到后续处理的时间代价,我们对原始图像进行灰度化处理.
彩色图像中每个像素的颜色由R、G、B3个分量决定,灰度图像可以在保留图像整体和局部色度、亮度等级分布的前提下,通过不同计算方法将三通道降为单通道.常用的图像灰度化处理方法包括分量法、加权平均值法、YUV法、HSV法等,由于本文在特征提取中重点考察的是车道线的亮度特征,因此,选用YUV法进行灰度化处理.YUV颜色空间[9]原理表明,Y分量的物理意义是像素点的亮度,根据RGB空间和YUV空间的对应关系可得到像素点灰度值:
图2是图像预处理的过程,图2(a)为原始图像,图2(b)是裁剪后的子图像(上图)及其灰度化结果,可以看出去除了大部分天空区域.
4 特征点提取
4.1 变间距扫描线划分
根据透视原理可知,图像上相同长度的线段代表的物理空间实际距离随线段位置的变化而变化,并且越靠近图像底部,线段代表的实际物理距离越短.因此,为了实现物理空间的等间距扫描,透视图像上的扫描线应该呈现上密下疏的整体趋势.在实践过程中,我们发现差分数列可以简单有效地体现扫描线的变间距特性,因此,尝试将差分数列作为设置扫描线间隔的依据.
对裁剪后的子图像设置变间距的扫描线,具体的设置方法如图3所示.根据每次试验的实际路况预先设定扫描线的数目N s,第一条扫描线s1和最后一条扫描线s Ns分别对应图像的上边界和下边界,总行数为N r,从上至下相邻两条扫描线的间隔依次为d s,2d s,3d s,···,(N s− 1)d s,依据等差数列的性质不难得出,
可进一步计算得到扫描线间隔的差值:
从而可以计算出第x条扫描线s x在图像中的行号
其中r u为上边界,也是第一条扫描线s1的行号r s1.
依据差分数列设定变间距扫描线,N r=25时得到的扫描线如图4所示:
4.2 基于车道线宽度的双重ROI设定
截取后的子图像面积缩小50%,虽然在一定程度上降低了算法的计算代价,但是在进行特征提取时,子图像范围内的像素点都会经过多次计算,裁剪之后图像处理的计算量依然很大,因此,针对车道线这一特定目标进一步缩小感兴趣区域,聚焦于可能出现车道线的位置,排除路面其他区域以及路边干扰物的影响.
4.2.1 双重ROI设定依据
为了聚焦在疑似车道线的区域,本文充分利用车道线跟踪的结果,同时兼顾可能出现的新的车道线,提出两种划分感兴趣区域的方法:
1)在前一帧识别得到的车道线附近划定ROI.
根据时空关联特性可知,连续两帧的时间间隔较小时,两幅图像上同一目标的位置偏差也很小[10].对于摄像头等视觉传感器而言,采集的帧速率一般在30fps左右,即使车辆以120km/h的高速行驶,前后两帧图像对应的物理世界移动距离也不会超过1m,图像上同一条车道线的位置相距仅数个像素.因此,对于前一帧图像中已经出现的车道线,可以如图5所示,以该车道线的识别结果为中心,向左右两侧开辟出宽度为w R的区域作为当前帧特征检测的ROI.
2)在当前帧检测得到的特征点邻域内划定ROI.
仅根据车道线跟踪的结果划定ROI会遗漏前一帧中不存在的车道线,例如图6中临近路口时车道数目增多的情况、因车道线磨损而导致车道线断裂的情况等.因此,本文针对这种在当前帧可能出现的新车道线,首先通过4.1节中的方法进行变间距扫描并记录检测到的特征点,之后根据车道线的连续性将这些特征点的邻域作为第2种ROI,如图5所示.
4.2.2 基于车道线宽度的ROI划分方法
根据上述设定依据可以定出ROI的粗略位置,但是ROI的大小w R同样会影响车道线检测的速率和准确率,当ROI区域设置过小时,会遗漏部分车道线边缘,设置过大时会增加搜索的时间,因此,本文提出了基于车道线宽度的ROI划分方法.
根据透视原理可知,车辆前方近处的车道线较宽,远处的较窄.在透视图上呈现的效果是从上到下车道线所占横向像素点的数目逐渐增多.为了体现车道线宽度随纵向距离变化的特性,通过分析车道线宽度与所在图像位置之间的对应关系,给出了图中任意一行x的车道线宽度d x的计算方法.如图7所示,图像坐标系左上角为原点(0,0),像素点的横坐标C为图像列数,纵坐标R为图像行数.
根据映射几何原理可知,图中任意两条车道线交于地平线上的一点V,从透视图中任选两行i、j,测出这两行上的车道宽度D i和D j以及第j行的车道线宽度d j,接下来运用相似三角形特性推算车道线宽度与行数的关系.在图中不难发现存在两对相似三角形:
根据两对相似三角形,可知,
其中h i和h x分别为△VI1I2和△VX0X1的高,h j为△VJ1J2和△VJ0J1的高.
从图7上可以看出,
结合式(4)和式(5)可以推出第x行的车道线宽度:
依据4.2.1的两种方法划分ROI,结果如图8所示,设定ROI宽度w R与车道线宽度成正比,比例为ratioR,即
4.2.3 边缘特征点提取
本文在图像进行横向线性扫描以寻找车道线特征点,首先处理4.1节指定的N s条扫描线,逐个判断其对应行上的像素点是否为特征点,记录特征点位置,之后按照4.2节中的ROI划定方法,再对指定扫描线以外各行上的感兴趣区域进行扫描,确保不因重复扫描而增加计算量.
车道线的边缘有明显的亮度变化,在灰度图上从左到右横向扫描时,可以发现经过车道线区域时像素值会先变大后变小,而且多是渐变的形式,即存在连续多个像素点分别符合上升沿(左侧边缘)和下降沿(右侧边缘).利用一维边缘检测算子[11−12]和车道线宽度限制完成车道线特征点的提取工作.
5 车道线识别
从道路结构特性出发,在特征提取的基础上建立直线模型,通过概率Hough变换法并结合最小二乘法[13]对车道线进行拟合,同时为下一帧的ROI划定提供数据支撑.
5.1 Hough变换介绍
鉴于半结构化道路在近处一定距离的车道线可用直线描述,采用对噪声不敏感的Hough变换方法提取直线.该方法的基本思想是利用点线的对偶性原则[14−15],如图9所示,图像空间(直角坐标系)中同一条直线上的3个点A、B、C投影到参数空间(极坐标系)后对应3条正弦曲线且交于同一点D(ρ0,θ0),坐标变换方程如下
由此可见,通过搜索参数空间中的累加点峰值即可得到图像空间中直线的方程.Hough变换法是一种基于全局统计信息的方法,对于局部遮挡和噪声具有良好的鲁棒性和较强的抗噪能力,但是由于其较高的计算复杂性,无法满足实时性系统的要求[16].
5.2 基于概率Hough变换的车道线识别
为了提高该算法的效率,我们采用概率Hough变换[17],具体步骤如下:
1)将图像空间中提取到的所有特征点放到待选特征点集,并初始化参数空间峰值累加器A(ρ,θ);
2)判断待选特征点集是否为空,如果为空则算法结束,否则从待选特征点集中随机选取一个特征点(x0,y0)投影至参数空间,计算各θ值下的ρ值,并更新对应的累加器A(ρ,θ);
3)比较A(ρ,θ)与预设的阈值,如果大于阈值则执行第4)步,否则转至第2)步;
4)记录累加器及其对应的直线,将位于该直线上的特征点从待选点集中删除,同时将该累加器清零后转至第2)步.
6 实验与结果分析
为验证本文算法的有效性,在快速路和城市主干路上采集了多个路段的视频,车载采集设备包括一台AVT 1394 PIKE F-100C摄像机和一个焦距为2.8mm的广角镜头,采样帧率为60fps.使用Visual Studio2010平台,基于C++调用OpenCV视觉库[18],图像分辨率设为1000×290,运用所提算法进行车道线检测实验,效果如图10所示,从上至下依次为原始图像,对应的特征点提取结果及车道线检测结果.第1列为路面存在斑马线时的检测结果,由于车道线宽度的限制可以很好地滤除路面非车道线的标线;第2列车道数目发生变化时的检测结果,双重ROI的设定确保了新车道线以最快的速度被发现并检测到.由此可见,算法检测实时性高,在Windows7 64位操作系统,内存大小2G的环境下进行实验验证,算法平均运行时间为12.37ms.
综上,在不同的光照和道路环境下,本文算法都具有很好的鲁棒性和实时性.
7 结论
本文提出了一种基于双重ROI和变间距扫描线的实时性车道线检测算法.将车道线检测分为特征点提取和车道线识别,侧重于通过减少感兴趣区域来提高特征提取的效率.首先裁剪图像仅保留路面有效区域,之后进行图像灰度化处理,通过划分“上密下疏”的变间距扫描线体现物理世界“远小近大”的特性,在此基础上结合当前帧隔行粗略扫描得到的特征点位置和前一帧识别得到的车道线位置划定当前图像上车道线检测的感兴趣区域,依据亮度变化和车道线宽度寻找边缘特征点,得到疑似车道线的特征点备选集.最后基于概率Hough变换完成车道线的识别.实际的检测结果表明,该算法可以实时准确地完成车道线检测,在路面其他标线干扰和车道变化等复杂路况下检测结果依然稳定有效,证明了算法在复杂道路环境下的适应能力.但所采用的算法仍有不足之处,对于曲率较大的弯道路段不再适用,需要进一步探索曲线模型适应各种道路类型,完善辅助驾驶和无人驾驶系统,这也是未来将要研究的课题.
1 National Highway Traきc Safety Administration.National motor vehicle crash causation survey:Report to congress[R].National Highway Traきc Safety Administration,Washington,DC,DOT HS,2008,811:059.
2 PENG Y Z,GAO H F.Highway lane detection based on a new gray method[J].Advanced Materials Research,2014,1044−1045:1553−1557.
3胡骁,李岁劳,吴剑.基于特征颜色的车道线检测算法[J].计算机仿真,2011,28(10):344−348.
4 GUO J,WEI Z,MIAO D.Lane detection method based on improved RANSAC algorithm[C]//IEEE Twelfth International Symposium on Autonomous Decentralized Systems,2015:285−288.
5王越,范先星,刘金城,等.结构化道路上应用区域划分的车道线识别[J].计算机应用,2015,35(9):2687−2691.
6李亚娣,黄海波,李相鹏,等.基于Canny算子和Hough变换的夜间车道线检测[J].科学技术与工程,2016,16(31):234−237.
7肖晓明,马智,蔡自兴,等.一种自适应的区域生长算法用于道路分割[J].控制工程,2011,18(3):364−368.
8 NG C S.Intelligent hough transform for object detection and tracking[J].Innovative Food Science&Emerging Technologies,2015,5(3):307−316.
9樊超,狄帅,侯利龙,等.一种阴影及破损车道线识别方法研究[J].计算机应用研究,2012,29(10):3968−3971.
10张诚,马华东,傅慧源.基于时空关联图模型的视频监控目标跟踪[J].北京航空航天大学学报,2015,41(4):713−720.
11李超,刘宏哲,袁家政,等.一种基于帧间关联的实时车道线检测算法[J].计算机科学,2017,44(2):317−323.
12瞿洋,冯焕清,丁锋.一种基于视频实时处理的车道检测算法[J].计算机应用研究,2013,30(3):930−-932.
13吴毅华,梁华为,王智灵,等.基于激光雷达回波信号的自适应阈值车道线检测[J].机器人,2015,37(4):451−458.
14王赛,徐伯庆,苏栋骐.Hough变换的车道线并行检测[J].电子科技,2015,28(12):96−99.
15 CHAI Y,WEI S J,LI X C.The multi-scale hough transform lane detection method based on the algorithm of Otsu and Canny[J].Advanced Materials Research,2014(1042):126−130.
16王燕清,辛柯俊,陈德运,等.基于启发式概率Hough变换的道路边缘检测方法[J].计算机科学,2013,40(9):279−283.
17王宝锋,齐志权,马国成,等.基于线性逼近的车道线弯道识别方法[J].北京理工大学学报,2016,36(5):470−474.
18 BRADSKI G,KAEHLER A.Learning openCV:computer vision in C++with the openCV library[M].Sebastopol:O’Reilly Media,Inc.2013.