基于Catmull-Rom样条的道路检测算法研究
2018-10-15葛媛媛张宏基
葛媛媛,张宏基
(榆林学院 现代设计与先进制造技术研究中心,陕西 榆林 719000)
0 引 言
道路检测技术是智能车辆视觉导航的关键技术,因其具有较大的环境复杂性和智能技术的挑战性而备受科研机构以及汽车生产厂家研发部门的关注。利用视觉作为环境感知的主要方法是由于视觉图像具有信息量大、易于采集和传输等优点,也被公认为是最有效的感知方式之一[1-2]。如何快速精准地识别可行驶的环境道路以及如何很好地适应复杂多变的外界环境是目前优秀道路检测算法所要解决的两个最关键的问题,也即检测算法的实时性和鲁棒性。然而在城市半结构化道路环境下,由于车辆的运动、环境干扰,实际路面的凹凸障碍和道路两边树木等景物的变化,以及光照、道路表面纹理的取向和深度等的不同,使得被处理的图像信号受复杂、时变和不确定性等因素影响,所以在半结构化环境下道路识别算法变得非常困难,无法满足实时性的技术要求。何鹏等[3]提出充分利用道路的几何特征来完成车道线的检测与定位。这种方法的优势在于定位精确,但计算量很大,需要配合特殊硬件才能实现。为了降低计算量,Claudio等[4]提出了基于感兴趣区域的检测方法。这种方法以空间和时间连续性作为限制,将算法的处理区域锁定为整幅图像中某一特定的区域,在该区域内能更加有效地检测出可行的道路区域。然而感兴趣区域的选择很重要,选择不当将会导致算法失效。目前用于道路检测的算法基本可以分为两类:基于特征的检测算法[5]和基于模型的检测算法[6]以及两者相结合的方法。前者主要包括两部分:特征提取和特征聚合。常用的基于特征的检测算法有边界跟踪法和统计测试法等[7]。这类算法对道路形状不敏感,但对外界环境的变化(如光照、路面水迹等)较为敏感,并且算法处理的计算量较大。而后者是通过建立道路曲线模型来求解路面,如模型匹配法和样条函数法。这类检测算法识别出来的道路区域较为完整,同时计算的数据量小,但模型的选择和求解是关键。基于特征和模型混合的检测方法主要用于识别具有多种特定的环境信息和道路模型复杂多变的情况。该类算法综合了前两类算法的特点,但很难在鲁棒性和实时性之间取得平衡。综上所述,目前大多数的道路检测算法一般只注重提高算法的鲁棒性而忽略了实时性,影响了算法的推广应用。
为了充分结合基于特征和模型检测算法各自的优点,在提高算法鲁棒性的同时保证实时性,研究了基于Catmull-Rom样条曲线的城市半结构化道路检测算法。使用最小二乘法求解Catmull-Rom样条曲线最优控制点完成对道路的检测。采用自适应混合各向异性高斯滤波器保证算法的执行效率和鲁棒性。同时为了准确描述多车道线存在的情况,分别对每条车道线进行单独建模及检测,克服了常规算法对车道线的形状及平行性的假设。
1 算法总体设计
利用Catmull-Rom样条进行城市半结构化道路检测的算法流程如图1所示。该算法主要包括视觉标定、图像处理、道路识别及更新三个模块。
为了解决算法在检测效率和鲁棒性间难以得到平衡的问题,首先在图像处理模块中通过算法程序设置核心区域来减小可行道路区域的搜索范围,提高算法效率。其次通过自适应混合各向异性高斯滤波对传感器采集进来的图像进行预处理,提高图像的信噪比,很好地保留道路区域的边缘信息,从而提高检测算法的鲁棒性。通过引入Catmull-Rom样条的道路模型来提高检测算法对城市半结构化道路的适应性,能够灵活精确地识别道路标识线。
图1 半结构化道路检测算法流程
2 图像变换与自适应滤波
基于Catmull-Rom样条的城市半结构化道路检测算法所依赖的摄像机成像模型如图2所示。车辆坐标系{X0,Y0,Z0}的原点位于摄像机焦点O处,车辆的前进方向与Y0方向相同。{X,Y,Z}为摄像机坐标,其中Z轴为摄像机光轴。摄像机安装位置距地面的高度为h,且摄像机的滚转角、俯仰角和偏航角分别为β和φ、θ。
图2 摄像机成像模型
2.1 图像平面消失点计算
由世界坐标系和摄像机坐标系以及摄像机坐标系到图像坐标系之间的投影关系可得真实空间与成像空间之间的对应关系,公式如下[8]:
(1)
通过分析上式可知,当平移变换矩阵T为零时,摄像机坐标系和图像坐标系之间只存在旋转关系而无平移关系。为了简化投影模型,设世界坐标系的原点和摄像机坐标系的原点相互重合,这样式1可简化为:
(2)
将式2展开,可得点在世界坐标系与图像坐标系上的相互映射关系,如下式所示。
(3)
由几何投影关系可知,任意空间中的平行直线组都将会在无穷远处汇交于一点(即W→∞),将该点投影到图像平面上即为道路的消失点[9]。该点在图像平面上的坐标表示为:
(4)
又由于像素坐标和图像之间的转换关系为:
(5)
将式4带入式5可得消失点像素空间在像素空间中的位置,如下:
(6)
2.2 核心区域的设置
由于道路检测算法处理整幅图像需要大量的计算,通过核心区域的设定不仅可以有效避免整幅图像中其他非道路区域噪声的干扰,还可以显著减少处理区域的范围,从而提高道路检测算法的实时性。文中在图像预处理的不同阶段,分别在采集到的图像中设置横向和纵向两层核心区域。
(1)横向核心区域的设置。根据式6计算得到图像消失点,将整幅图像分为上下两部分,选定位于消失点下方图像为横向核心区域,如图3(a)所示。可通过式7设定横向核心区域:
R=(Ib,l×Ih)
(7)
其中,Ib、Ih分别为图像的宽度和高度值;l为比例调节系数。
(2)纵向核心区域设置。横向核心区域的设置使得位于消失点上方区域的图像不参与处理计算,在一定程度上能有效减少计算量,提高检测算法的实时性。但在城市半结构道路环境下,位于消失点下方的图像区域也存在大量非道路区域。所以这里以横向核心区域设置结果为基础,设置纵向核心区域。目的就是进一步去除横向核心区域中的非道路区域。纵向核心区域的范围由当前车辆状态以及后续动作意图(变换车道、左/右转弯)等决定。其中,纵向核心区域的宽度由当前动作意图决定,当车辆变换车道时,由变换方向来调节系数a,使得系数b增大。高度系数h由车辆的运行速度确定,当运行速度较高或加速时,增大系数b'和高度系数h,为高速行驶提供更开阔的视场。反之车速较低或减速时减小b'和h。纵向核心区域设置方式如图3(b)所示。
图3 核心区域设置
2.3 自适应混合各向异性高斯滤波
以高斯函数为尺度函数,在x、y两个方向上选取具有不同大小标准差的高斯滤波函数作为平滑滤波器,构建混合各向异性滤波器。滤波算子表达式为[10]:
(8)
由坐标变换可得像素坐标与图像坐标的关系为
(9)
将式9带入式8可得到旋转角γ后的滤波算子:
Gγ(x,y,σu,σv,γ)=
(10)
为了提高滤波算法的计算速度,充分利用二维Gauss函数的圆对称性以及可分解的特征,将其在竖直和水平方向的方向导数与图像进行卷积变换,得到图像在水平和垂直方向的梯度分别为Ex、Ey。
(11)
其中,∂G(x,y,σ)为滤波算子;I0(x,y)为原始图像;*号表示卷积运算。
由式11可计算(x,y)处的梯度值及梯度方向角γθ。
(12)
(13)
可以看出,γ与γθ满足:
γ=γθ+900
(14)
通过将式14带入式10可获得自适应各向异性高斯滤波算子。
Gγθ(x,y,σu,σv,γθ)=
(15)
由于在待检测道路图像的平滑区域内没有明显的边缘,整个图像像素灰度的分布接近于各项异性分布,所以采用各项异性滤波方法不仅能够很好地滤去噪声,同时使算法具有较小的计算量。滤波结果如图4所示。根据道路图像梯度阈值T的不同,决定在待检测道路图像是采用滤波器还是滤波,所以最终的滤波器表达式为:
(16)
图4 各向异性高斯滤波器
3 基于Catmull-Rom样条的道路模型
Catmull-Rom样条曲线模型是利用给定一组控制点得到一条曲线,消除了其他曲线模型对车道线平行的假设,而且使得安装在车辆上方的视觉传感器的角度得到降低,扩大了该模型的适应范围[11]。文中通过引入Catmull-Rom样条曲线构造城市半结构化道路模型,根据道路信息实时选择模型参数,确定当前的道路模型,通过梯度方向角的过滤区分左右车道线,并将检测结果进行融合形成一条完整的车道标识线。力求该算法在道路检测的鲁棒性和实时性之间寻求较好平衡。
3.1 Catmull-Rom样条函数
Catmull-Rom样条是一种3次的分段插值样条函数[12],其原理是利用前后的2个节点直接计算出各点处的切矢量,每相邻4个节点的信息就可以构造出一段经过中间两点的3次多项式函数,并且所构造的每一段样条能够保持连续。设有一组节点x0,x1,x3,…,xi,…,其对应的值分别为X0,X1,X3,…,Xi,…,通过这些节点的样条值就可以唯一构造一个n次多项式,设该多项式的系数为a,则多项式的函数表达式可描述为:
f(x)=a0+a1x+a2x2+…+anxn
(17)
(18)
上述4点可以插值P2、P3之间的曲线段,除第一个控制点外,该方法可以应用到所有的曲线段。
3.2 道路模型
在道路检测中,视觉传感器安装在车辆正前端且焦距为f,则道路轮廓在世界坐标系下满足如下方程:
(19)
其中,k、m分别为曲率和斜率;bL,R为偏移量。
由世界坐标系与图像坐标之间的投影关系可得:
(20)
其中,d为像素点之间的距离。
将式20带入式19可得图像平面内道路轮廓模型为:
(21)
(22)
3.3 似然函数
根据上述道路模型定义模型参数S=[K,BL,M,BR]。BL和BR分别为道路的左右标识线。设图像平面上的点到左右标识线的距离分别为DL(S)和DR(S),则:
(23)
在此引入式24所示的函数度量上述距离:
(24)
其中,a为控制函数。
根据上述道路模型及定义的参数,则可知似然函数的表达式为:
f(a,DR(S)))
(25)
4 似然函数的最优化搜索算法
如前所述,道路检测问题可以转换为Catmull-Rom道路模型参数确定问题,而模型参数确定问题又可等价为似然参数估计问题。
定义如式26所示的势场函数[13]:
(26)
在道路模型参数的估计中,对参数的估计相当于由残差函数组成的目标函数的非线性最小二乘问题,即[14]:
(27)
r(x,y)=exp(-p(x,y,σ)|cosB(r,c)|)
(28)
由无约束优化的最优化条件,要使目标函数最小,也即:
(29)
其中,ψGM(r)为ρGM(r)的微分,称为影响函数。
由于加权函数ωGM(r)=ψGM(r)/r,则可知目标函数ψGM(r,β)的影响函数与加权函数分别可以表示为[15]:
(30)
由此可知式27中的最优化问题转化成加权最小二乘问题。
(31)
利用Catmull-Rom样条函数进行道路检测算法中控制点的搜索实质是道路似然函数的最大化问题。具体的算法流程如下:
(1)构造初始解。构造初始解x0={P0,P1,P2,P3},为了保证初始曲线为样条曲线,初始解中P0、P1、P2、P3参数均不能为空。
(2)根据初始解中产生的控制点为基础,以道路标线内可运动范围为区域尺度,设置期望区域。其中,控制点P0和P3的期望区域为10×30的矩形,P1和P2的期望区域为r=20的圆。
(3)在各控制点的期望区域尺度内,以一定的样本搜索距离搜索各控制点的全局最优解,如果搜索过程中某样本组拟合得到的目标函数大于阈值Sth1而小于Sth2时,样本间搜索距离降为初始值的一半,当在搜索区域内如果存在目标函数大于Sth2的样本,则表示搜索结束,否则返回继续搜索。
5 实验结果及分析
5.1 测试环境和主要参数
实验测试图像来自车载摄像机采集的普通城市道路场景,帧率为25帧/s。算法程序采用Visual Studio 2010平台开发,运行环境为Windows 7操作系统,处理器为Intel(R)Core(TM),主频为3.0 GHz。实验设定的参数如表1所示。
表1 实验参数
5.2 典型城市道路测试分析
图5为典型城市干扰工况下,道路检测算法的实验结果。干扰包括树木阴影、强烈阳光照射、不同路面介质、地面标志、人行横道、标识线破损和前方车辆干扰等。算法对于城市半结构化路面上的各种干扰,如车辆阴影、地面文字和标识、路旁树丛阴影、强烈阳光天气等均具有较好的稳定性和准确性。在较好路面上平均识别正确率达到95%以上,满足了车辆车道标识线识别要求。每帧车道线检测平均耗时为56 ms,车道线平均跟踪耗时为53 ms,其实时性满足实际使用需求。实验结果表明,文中算法可以满足城市半结构化道路标识线检测要求。
图5 典型半结构化道路实验测试结果
6 结束语
针对城市半结构化道路环境特点,通过引入Catmull-Rom样条曲线,提出基于Catmull-Rom样条模型的道路检测算法。算法一方面设置双层核心区域,减小搜索范围,提高效率,使得不同阶段的道路检测都能满足较高的准确性及较强的实用性。另一方面使用自适应混合各向异性高斯滤波技术对图像进行预处理,减少噪声干扰,提高鲁棒性,在效率和鲁棒性间得到较好平衡。最后对算法进行了仿真分析和实验测试,并就结果进行了分析、总结。结果表明,该算法可以满足智能车辆导航的需求。