吕颖 李红建 李骏 吕铮 董小瑜
(1.中国第一汽车股份有限公司智能网联开发院,长春130013;2.中国第一汽车股份有限公司创新技术研究院,长春130013;3.汽车振动噪声与安全控制综合技术国家重点实验室,长春130013;4.清华大学,车辆与运载学院,北京100083)
主题词:车道线检测 道路特征 道路模型 智能驾驶
智能驾驶技术的发展对交通运输产生着深远的影响。环境感知技术在汽车的智能驾驶专业领域里扮演了关键的角色,也是确保智能驾驶汽车在兼顾智能和安全的重要技术手段。其中,对道路中的道线进行划分和追踪是感知车辆周边环境信息的重要步骤,能够给安全驾驶和自动驾驶提供重要的基础保障和依赖,也是当前智能驾驶技术研究的难点和核心。现如今车道线检测技术通常用于智能驾驶辅助系统中的车道偏离预警功能[1-3]。当前我国道路具有规范的道路标志和交通法规,这样的道路提供了清晰的车道线边界特征来帮助我们进行智能驾驶技术的开发,此外交通道路上的标志均符合相应的国家标准,这些清晰且具体的特征和规范是车道线识别的一个优秀的先天条件。目前,对于车道线检测技术国内外已经有了很多的研究,但真正应用在主流车型上的方法技术主要分为2种,即以道路特征和道路模型为基础的车道线检测方法[4-7]。
以道路特征为基础的车道线检测算法受图像质量的影响较大,交通道路上复杂的环境因素无法让图像质量得到保证,这也是制约该方法的重要因素。以道路模型为基础的车道线检测算法虽然能够应对复杂的道路环境导致的图像质量问题,但是其运算量过大导致对车道线的检测不能满足实时性的要求。本文提出一种道路特征和道路模型的车道线检测算法,模型能够综合道路模型和道路特征的车道线检测优点,解决利用道路特征检测车道线受光照以及环境因素影响。
车道线检测中利用道路上的物理特征因素进行车道线分割识别建立的模型被称为道路特征模型,主要是通过车道线和路面的颜色差异进行分割识别。
这种检测方式主要是依赖摄像头系统拍摄到的道路图像,通过识别图像中车道线和车道的不同特征从而进行对车道线精确的分割。在车道线匹配上主要选择的一些拟合算法有:霍夫变换、边缘算子、卡尔曼滤波、自适应边界检测。鞠乾翱等[8]基于摄像头系统拍摄到道路图像,主要针对图像中的灰度信息进行了提取,通过图中车道线和车道的像素值不同进行图像分割。石林军等[9]利用图像灰度处理技术对摄像头捕获的RGB图像进行处理,然后进行霍夫变换,最后提取出来车道线的线条。王鑫等[10]将经过灰度处理后的图像,基于透视变换分割扫描线,对车道线和车道的结合处特征的差异进行了预先的检测,然后设置了一个2层感兴趣区域,又通过边界算子对车道线的轮廓进行辨别,最后车道线模型的匹配采用的是霍夫变换的方法。程文冬等[11]通过对道路进行网格划分排除了大量的非相关像素,增加提取车道线特征的正确性。在提取边界信息后,经过霍夫变换得到匹配拟合后的车道线。李超等[12]将道路图像转换为灰度图像并利用中值滤波降噪后,建立动态变化的感兴趣区域,经过自适应边界检测,利用帧间的变化信息约束并更新车道线。该方法可同时降低计算量和提高算法的环境适应性。Li X等[13]在采集到的图像中划定感兴趣区域,通过图像灰度化和中值滤波处理消除噪声后,采用尖峰神经网络检测车道线的边界,应用霍夫变换的算法获取车道线模型。
在减少运算时间和提高鲁棒性方面也有许多学者做了研究。Madrid等[14]提出了适用于移动设备的车道偏离报警系统,通过应用霍夫变换和图像的模糊技术,很大程度上减少了图像识别需要的计算量,并能够完成车道偏离预警功用的实时性。Gaikwad等[15]将图像灰度化以后,为了提高图像ROI的对比度采用了线性的分段拉伸函数进行处理,这样由ROI分割出2个子区域,在这2个区域内分别进行霍夫变换处理,完成了车道线的分割和追踪,这样也大大提高图像处理速度。Yeniaydin等[16]提出了一种利用机器视觉的具有较强鲁棒性的车道线分割匹配的算法,利用灰度化的感兴趣区域获得2个二值化的图像。将所得到的二值化图像经过一个新的邻域算子合并,通过逆透视变换得到鸟瞰图,利用高斯概率密度函数对检测到的车道线进行匹配。
由上述文献分析可知,当前主流的车道线检测方法是基于车道内特征的边界信息,即不同像素值的区别来划分不同特征。此种方法具有一定的缺陷,比如环境因素对图像质量的影响很大,这样的图像检测就会变得颇具挑战。并且大量的学者在提升鲁棒性和消除环境影响方面做了研究,如分割扫描线、划分网格、滤波降噪、采用神经网络。
由于仅凭图像特征进行的检测受环境影响较大,并且我国现有的道路上各种交通特征形状具有严格的标准,所以考虑结合道路模型进行检测。即把车道线在道路上的形状用二次或者三次曲线模型表示,通过各种方法获取模型中的固定参数,进一步来确定车道线的形状,完成分割。韩浩等[17]提出了一种结合贝塞尔曲线的车道线划分匹配方法,主要思想是在一个特定范围内进行处理计算特征边界,能够提高车道线划分匹配算法在光照变化场景下的鲁棒性。段建民等[18]通过结合顶帽分割算法和曲线模型对三车道的识别进行了研究。高嵩等[19]利用边界检测算法对结构化道路的特征进行了识别和分割,利用霍夫变换的方法获取离散的道路曲线,然后经过卡尔曼滤波对车道线进行追踪和检测,最后采用双曲线模型对检测到的2侧车道线进行拟合,实现了车道线的检测。Kumar等[20]提出了一种基于模板匹配的车道检测方法,为了使算法对阴影区域的检测更加精准,对阴影区域进行了修复,使用贝塞尔样条曲线对车道线类型是曲线的部分进行匹配,最后使用Kalman滤波的方法对车道线进行拟合。Paula等[21]使用抛物线车道模型检测车道边界,采用高斯混合的贝叶斯分类器,对视频序列中的车道线按照虚线、实线和虚实线进行分类。Chi等[22]提出了一种利用消失点估计的车道线检测算法。Shin等[23]提出了基于生成的顶视图图像(Top-View image)的车道检测算法,通过构建一个曲线道路模型,将ROI底部的车道线扩展出来。
以上方法对于特定的车道线类型具有精准的检测效果,但存在运算量相对偏大、局限性较强、实时性不足的问题。
本文的车道线检测与绘制的方法是综合考虑道路特征和道路模型,将2者有机结合以克服环境因素的影响。首先,利用道路特征中车道线和车道的颜色不同进行区分和识别,将彩色图灰度化和二值化处理,得到车道线部分区域和非车道线部分区域。然后,通过道路模型对分割出来的二值化图像进行拟合匹配。最后,对利用识别结果对车道线的类型进行分类并标记绘制。
本文基于MATLAB软件中提供的自动驾驶工具来实现车道线的检测和拟合。摄像机选用的是针孔相机模型,针孔相机模型是用于表示相机将三维坐标转化为平面坐标的最常用的模型。首先,创建了一个单目摄相机模型,模型中需要设置摄像头的外参和内参,并进行校正。世界坐标系和相机坐标系的之间的联系可以通过相机的外参矩阵来表示。
世界坐标系的详细定义、相机的位置和姿态以及2者之间的相互关系通过外参矩阵中的参数进行描述。相机的内参比如焦距和畸变一般在相机出厂时已经标定完成,此时不需要考虑内参的标定。一般相机坐标系通过一定的转换关系与像素坐标系关联在一起,假设相机坐标系下有一个点P,该点在成像平面中的投影有如下关系,如式(1)。
其中,f为点P到成像平面的距离,X,Y,Z是相机坐标系下的坐标,(x,y)为点P在成像坐标系下的坐标点,z等于点P到成像平面的距离。
从成像坐标系转换到像素坐标系需要平移和缩放。将坐标(x,y)在水平方向缩放α倍,垂直方向缩放β倍经过平移后得式(2)如下:
其中,(u,v)是对应点位于像素坐标系中的具体值,cx、cy为平移距离,转换为矩阵形式如式(3):
该矩阵为内参矩阵。
将摄像头采集的视频按照帧导入,为了使图像处理更为方便,首先要将原图转换为鸟瞰图(图1)。这里采用的是逆透视变换的方法。逆透视变换的原理也是坐标系的转换,即将图像坐标系转换成世界坐标系。
图1 原图转换为鸟瞰图
将得到的鸟瞰图进行阈值分割,即灰度化和二值化处置,以便依据道路特征进行车道线的分割和追踪。特别注意在进行色彩变换前要设置好感兴趣区域,这样可以大大减少计算量,其次需要根据实际情况设置敏感度系数和车道线的宽度,这也是一个调参的过程。
经过上述一系列的图像处理,获得了只含有车道线的二值图像,此时需要选择道路模型对车道线进行建模表达,常用的方法是用多项式进行拟合,本文采用二次曲线的道路模型进行车道线的匹配拟合。比较常见的匹配方法是最小二乘法,针对图像上已有的全部数据点进行适配和拟合,此方法容易产生较大的误差,拟合的效果不是很理想。
RANSAC算法在拟合数据点的开始就假设数据是不需要全部适配模型的。即数据中包含正确数据和错误数据,一般错误数据也常常被称为噪声信息。最小二乘法则没有将噪音信息剔除,所以拟合出来的道路模型与实际情况常常具有较大的偏差。RANSAC算法的宗旨就是根据一定的规则选择样本进行匹配模型,没有选中的样本当作测试集进行测试,最后得到误差最小的模型。
因此,对于车道线的匹配方法挑选采用了RANSAC(Random Sample Consensus)算法,如图2表示了最小二乘法和RANSAC法拟合数据的对比,明显可以看岀RANSAC法对于车道线拟合的精度更满足要求。
图2 最小二乘算法与RANSAC算法对比
其算法流程图如图3所示。通过该算法得到图像中车道线的匹配结果和类型识别结果,并用不同的表示方法绘制出不同类型的车道线。首先,随机挑选了n个样本作为内部集合,用内部集合中的样本拟合一个模型用来测试外部集合。当外部集合的样本与该模型的距离大于阈值,重新进行模型拟合,若小于阈值则将该点加入到内部集合中,一直当内部集合中点的个数大于设定的数值,将所有的内部集合的点拟合成曲线,得到最佳的道路模型。
图3 RANSAC算法流程
通过上述方法,在MATLAB中搭建了车道线检测算法的模型。通过实验分析,根据设置的ROI区域的原始数据采集到的原始图像(图4)为输入图像。
图4 输入图像数据
在图像处理阶段,将相机采集到图像首先转换为鸟瞰图,再将鸟瞰图处理为灰度图,进而转换为二值图。将二值化的图像中的车道线用RANSAC算法进行匹配,得到对车道线类型的判别,并用不同的表示方法绘制出不同类型的车道线,如图5a所示。再将鸟瞰图转换为正常视野,图5 b为车道线检测实验的结果。
图5 车道线检测过程
车道线检测实验的具体结果如图6所示,图中对于车道线的类型进行了标记,使用红色线条标记虚线车道线,绿色线条标记为实线车道线,基本符合预期的实验目标,即绘制出包含道路规则的车道线。
图6 车道线检测结果
本文提出的算法模型利用道路特征和道路模型的方法来进行车道线的检测和跟踪。能够稳定并且快速的提取车道线并进行拟合,保证了准确性和实时性。对有技术难度的弯道以及阴影道路的检测也有很好的适应性。但是该方法在路面车道线缺失的情况下也会出现车道线识别不稳定的现象,以后的研究也可以在车道线自动补全方面进行。未来的研究应该更加关注复杂道路条件和环境下的车道线检测,增加算法的鲁棒性,保证自动驾驶技术的安全性。