元艳玲,杨金鑫
(太原科技大学 交通与物流学院,山西 太原 030024)
基于视觉的辅助驾驶系统(Driver Assistant)是车辆自主行驶领域的一项重要应用,车道线是规范车辆行驶范围、表示道路几何信息、提示车辆行驶方向的一个重要标识,车道线的检测则成为实现车辆无人驾驶的关键技术之一。由于在城市道路中车道线的检测易受光照、车辆阴影、车道线破损、路面遮挡等外界环境的影响,并且行驶中的车辆作为动态刚体,需要实时感知外界环境的改变,快速做出姿态判断。因此对车道线检测的准确度及时效性是实现无人驾驶技术的一项难点。
目前国内外学者对于车道线检测有通过道路特征的分割方法实现,也有建立道路模型进行研究,一般拟合模型主要有:直线模型、B- 样条模型、双曲线模型、双模型等,还有根据神经网络对大量样本进行学习的方法。基于特征的分割方法主要利用车道线的固有物理属性颜色、形状、尺寸等进行判别,但由于年久失修破损、路面积水、光照强度变化等因素,基于特征的检测方法很难适应多变的车道线环境。对于建立道路模型,王雷[1]采用双曲线模型,通过对像素加权的方式提出了抑制噪声影响允许像素点在曲线周围浮动的曲线匹配率算法, 对车道线进行曲线拟合。王宝锋[2]等提出基于动态区域规划的双模型检测算法根据“微元”理论对图像进行动态细化分区,最终利用直线和B 样条曲线完成对车道线拟合。MCCALL[3]等利用逆透视变换将道路图片转换成鸟瞰图形式,并根据透视原理将现实世界中平行车道线进行提取。时利[4]等提出在感兴趣区域内基于车道线宽度对边缘点进行筛选,并建立相关的投票空间,根据消隐点快速检测出车道线。对于神经网络的方法,贾会群[5]等首先对道路进行边缘检测,提取出边缘点利用BP 神经网络估计路径参数并确定模型函数,最后利用最小二乘法实现车道线的重构。对于道路模型检测和神经网络算法通常需要多个参数进行曲线拟合,运算复杂、计算量大,虽然单幅图片处理效果很好但是对于运动环境下很难满足实时性的要求。
针对传统方法在检测精度和识别速度上的不足,首先根据RGB 熵分量算法对图像进行处理,过滤出需检测的道路部分,然后利用平行坐标系结合类霍夫变换的思想,当需要表示二维空间中的一个点时,需要有2 条等间距的平行线,每个平行线上的坐标则表示这个点在这一维上的投影,然后根据平行线之间连线的交点进行Voting 的方式找出需要的消失点。并根据消失点的坐标确定感兴趣区域,根据车道线灰度值差异以及几何特性得到车道线采纳点,并以消失点为约束条件,最后利用最小二乘法对最终点进行车道线拟合。
RGB 熵可以表示图像的分布特性[6],是描述图像纹理特征的重要指标。单个像素RGB 熵定义如式(1)、式(2):
式中:N=3 (R,G,B);M 为每个像素的 RGB 分量在原始像素中所占的颜色比例;T 为[R,G,B]3 种标识。在采集图像中车道区域多为灰白黄颜色,RGB 分量相对较小图像熵值较大,而其他区域颜色丰富纹理特征明显,RGB 分量较大因此图像熵值较小。
根据得到的熵图像,可以得到其灰度直方图f=[f(0),f(1),…,f(255)],灰度直方图差值函数为:
式中:t=1,…,255,在此利用差值函数中最小的d 值作为阈值并对熵图像进行分割。根据大于等于阈值的点为背景区域,小于阈值的点为车道线区域,分割图像像素为S(i,j)其表达式如式(4):
根据二值化分割后的图像,车道区域变为白色,背景区域变为黑色。图1 是经过RGB 熵分割后图像,去除了大部分的噪声和背景部分,并保留了车道线部分。
图1 RGB熵处理效果
Hough 直线检测是根据Hough 变换[7]提出的一种图形提取算法,其通过交点投票机制就可检测出在图像中直线部分。该算法主要通过两个坐标系之间的参数变换,例如在原始坐标系(X-Y)中以直线形式表示的图形:y=kx+b,将直线上各点映射到参数坐标系(K-B)下,通过这种映射关系可实现(X-Y)中的直线将在(K-B)下以点的形式存在,而在(X-Y)中的点则在(K-B)中以直线的形式存在,这样在(X-Y)中的一条直线上的N 个特征点映射在(K-B)中则成为N 条直线交于一点如图2 所示。这样通过对(K-B)坐标空间某个点形成峰值就可检测出(X-Y)中的直线信息,从而将检测直线的问题转化为统计峰值的问题。
图2 Hough变换
Hough 直线检测对图像中直线段进行检测,由于图像中会有一些不属于车道线的离散点,为了去除这些干扰点,引入投票机制对(K-B)下的交点进行阈值处理,对于小于阈值的点进行排除,以此来消除部分干扰点影响。为了求取消失点则需要进一步引入投票机制,为避免更大的误差在此,文章引入平行坐标系概念。
平行坐标系[8]是另一种坐标表示数据的方法,对于N 维空间中的一个点时,可将其在每个维度上的投影作为已知量Xn,建立N 条等距的平行轴,并将Xn的值依次标注在规定的平行轴上,然后连接起来形成一条折线。这样平行坐标系便可以描述多维的数据。为了更好地描述真实环境下平行直线,在此使用齐次坐标系,令[x,y,w]表示平行坐标系中的点,令(a,b,c)表示指定的一条直线ax+by+c=0。为了量化方便,在平行坐标系下建立笛卡尔坐标系(U-V),如图3 所示为各坐标系之间转化关系,并给出点线之间的映射关系如式(5)。
图3 各坐标转化关系
式中:[x,y,w]代表一个点;(a,b,c)代表一条直线;d 为平行坐标系轴间距;w 为齐次系数。至此完成了由点到直线的转化,根据CHT 理论文章引入第二次Hough 变换,这次由点再一次映射为直线,直线则映射为点。令D 为在第二个平行坐标系两坐标轴的间距,点线之间的映射关系如式(7)、式(8):
如图4 所示,经过SSdD变换后完成了在笛卡尔坐标系上的点到平行坐标系的映射,但在直线映射中只能完成斜率小于零的直线映射,如图5 所示它们的交点f(直线)不在S 空间下,在此引入Γ 空间如图6。Γ 空间位于-d 的位置且方向与Y 轴相反,映射到Γ 空间的表达式如式(9)、式(10):
图4 级联平行坐标系变换示意图
CHT 根据平行坐标参数化可以完成4 种映射组合,这4 种级联变换在S 空间和Γ 空间对点的映射关系如式(11)、式(12)、式(13)、式(14):
因为在同一方向上消失点是所有平行直线的交点,可根据投票的方式搜索到消失点位置,公式(15)、公式(16)为笛卡尔坐标系下推算出来的消失点坐标公式:
这样就可以将在(X-Y)坐标下无限大的空间经过CHT 变换后成为有限的菱形空间,且两个坐标之间有固定的象限对应关系,这样在X-Y 坐标下的直线便可由CHT 后的3 个端点值确定:
在真实情况下车道线分布在图像两侧,且斜率分别为正值和负值,消失点最可能出现的区域位于笛卡尔坐标系下一或二象限,在经过CHT 变换后则位于二或三象限,如图5 所示为滤波后检测消失点在菱形坐标系中的位置。
图5 基于CHT的消失点检测
图6 建立Γ空间
在经过图像轮廓分割及消失点检测后可根据消失点进行感兴趣区域的提取,令过消失点且平行于X 轴的水平线以下为感兴趣区域。根据消失线及两条真实车道线组成的两三角形区域,以左三角形为例由消失线上的点沿Y 轴向下进行搜索,并规定在指定像素范围内的点为车道采纳点。对于车道线不连续情况进行跳跃搜索处理,这样可在每一侧的三角形区域内部找到一组采纳点数据。
根据上述得到的采纳点数据(x0,y0)、(x1,y1)、…、(xn,yn)及消失点(vx,vy)坐标数据,根据函数原型g(x)式(19),与式(20)找到满足各观测值yi与g(xi)的平方偏差值和最小的曲线,通过求取参数偏导数的方式得到n+1 个方程[9], 并根据式(21)解出所需要的曲线参数。
式中:X 是一个 n×n 维矩阵;A=aj(j=0…n) 是一个n×1 维矩阵。
在安全行驶状态下车辆多处于车道线中间状态,因此对于两车道线与过消失点并垂直于消失线的直线之间所形成的两夹角近似相等,并以此为约束条件舍弃拟合错误的车道线。
在MATLAB2014a 平台上进行仿真试验。试验采用离线处理的方式,采集真实环境下道路图片,对于该数据库中的测试数据则尽可能包括各种道路情况,如车道线残缺、雨水路面、弯道等。部分检测结果如图7 所示,图中左列为原图,中列为通过Hough检测的车道线,右列为使用本文算法检测车道线其中点是提取的采纳点,星点则是经过CHT 得到的消失点,最后通过最小二乘法对其进行拟合得到白色车道线。
图7 Hough检测与本文算法效果对比
如图7 所示,在断裂道路中Hough 检测已无法检测出车道线信息,而是检测出树木及路肩部分,本文算法在消失点构建的感兴趣区域内仅通过车道线特征信息检测出车道线。在直线道路中使用Hough检测的消失点过多,导致未检测出真实车道线。在右弯道路中Hough 检测仅识别出车道线直线部分,且检测出噪声,本文算法根据CHT 检测得到消失点并规划出感兴趣区域,利用最小二乘法拟合采纳点,最终得到车道线信息。
表1 Hough检测与本文算法准确率及实时性对比
a)在图像预处理方面针对人工参与较大,算法鲁棒性较差的问题,文章使用RGB 图像熵的方法对车道与非车道进行分割,根据环境自动生成阈值,不需人工参与,提高了对环境的适应性,如图7 所示清除大部分噪声。
b)针对传统Hough 消失点检测上识别准确度及速度上的不足,提出利用级联霍夫变换(CHT)检测消失点的方法,该方法通过两次坐标线性变换将原本无限大空间转换到一个有限的菱形空间上,方便量化整个空间中的直线并仅根据一次投票方式得到消失点位置,如图7 所示本文算法检测的消失点能更好地描绘车道行进方向。在检测速率方面如表1所示,利用CHT 检测效率明显高于Hough 检测,其原因是在坐标映射时CHT 检测不需要逐点进行计算,仅对边缘部分进行扫描。这样提高了算法的运行效率。
c)为了避免传统直线检测在弯道路面误差较大的问题,文章采用最小二乘拟合采纳点的方法,提高了在弯道工况下的准确度。
d)通过实验对比验证表明,本文算法在实际路况中可以更好地拟合出车道线信息,并且在检测速率及准确度上优于Hough 检测,满足实际工况下检测需求。