一种基于透视图的鲁棒性多车道线检测方法与流程

文档序号:12123921阅读:406来源:国知局
一种基于透视图的鲁棒性多车道线检测方法与流程

本发明属于智能辅助驾驶技术和人工智能领域,尤其涉及一种基于透视图的鲁棒性多车道线检测方法。



背景技术:

近年来,由于无线传感器网络的发展,先进辅助驾驶系统ADAS(Advanced Driving Assistance System)成为车辆主动安全系统中最核心的功能之一。ADAS系统的核心是对道路场景的分析,道路场景分析总的来说可以分成两个方面:道路检测(包括对可行驶区域的划定,车辆和道路之间的相对位置的确定以及车辆前进方向的分析)和障碍物检测(主要是对车辆在道路上可能遇到的障碍物的定位)。车辆在驾驶过程中,需要对自身进行定位,以完成横向控制与纵向控制的基本任务,定位问题的前提是对道路边界的检测以及对所述道路几何形状的估计,在该领域中,车载视觉已被广泛使用。相对于激光雷达等主动型传感器(active sensor),车载视觉(on-board vision)这种被动型传感器(passive sensor)对环境具有非侵入性(nonintrusive)、高分辨率、低功耗、低成本和易集成等特点。

多车道检测技术是满足强劲的需求和低成本产品的最好的选择。一些成功的视觉应用程序已经完全可以应用于半自治的驾驶技术中,例如Mobileye公司的纯视觉ACC系统,车道偏离警示系统,以及车道改变协助等等。



技术实现要素:

本发明要解决的技术问题是,提供一种基于透视图的鲁棒性多车道线检测方法,不需要对摄像机的位置参数进行标定,且对于复杂的驾驶环境,例如:雨天、傍晚、路面有污损、曝光不佳、路面有少量积雪等状况,均具有良好的检测效果。

为了实现上述目的,本发明采取了如下的技术方案:

一种基于透视图的鲁棒性多车道线检测方法包括以下步骤:

步骤1、通过车载相机获取道路图像;

步骤2、对所述道路图像进行灰度预处理

步骤3、利用基于多条件约束的车道线特征滤波器对道路图像中车道线特征进行提取;

步骤4、适应于车道线特征的聚类算法

利用Hough变换确定直线存在的大致区域,然后对每个区域内的特征点集,利用改进的最小二乘法确定精确的直线参数;

步骤5:车道线约束

步骤5-1、建立基于透视投影线性关系的车道线“位置-宽度”函数

根据透视投影的几何关系和三角形相似原理,得:

Wi=(AiPi-di)×2

其中,

步骤5-2、消失点约束

在坐标系OXY中建立图像中直线和消失点的关系,设当前帧的消失点坐标为V(vx,vy),L为候选车道线,过原点O作直线L的垂线,垂足的坐标为P(px,py),垂线长度为ρ,倾斜角为θ,根据圆的基本性质可知,垂足P必定在以原点O和消失V为直径的圆上,因此可以得到方程组:

显然,消失点V是该方程组的一个解。构造目标函数如下:

Δρ=|vx cosθi+vy sinθii|

其中,θi和ρi是待确定直线Li的参数,

步骤5-3、帧间关联约束

假设在当前帧中检测到的车道线个数为m条,用集合L={L1,L2,Λ,Lm}表示;保存的历史帧中检测到的车道线数有n个,用集合E={E1,E2,Λ,En}表示;帧间关联约束滤波器用K表示,令K={K1,K2,Λ,Kn}。

首先建立一个C=m×n的矩阵,矩阵C中的元素cij表示当前帧中的第i条直线Li和历史帧中的第j条直线Ej间的距离Δdij,其中Δdij的计算公式为:

A,B分别代表的是直线Li、Ej的两个端点。

然后在矩阵C中,统计第i行中Δdij<T的个数ei,若ei<1,说明当前车道线没有与之相关联的前帧车道线,因此将该条车道线作为全新的车道线,更新下一帧帧间关联约束的历史帧信息;若ei=1,则认为当前帧车道线Li和历史帧车道线Ej在前后帧间是同一条车道线;当ei>1时,用向量Vi记录当前帧第i行中满足条件的车道线位置,即:

在Vi中统计非零元素所在的列j的所有元素Vj,得到Vj中最小的元素,即:

(Δdij)min=min{Vj}(Vj≠0)

当则得到当前帧车道线Li和历史帧车道线Ej在前后帧间是同一条车道线。

步骤6、基于卡尔曼滤波算法进行多车道线实时跟踪检测。

作为优选,步骤3具体为:利用车道线部分相比于周围路面形成“波峰”的特性,提取道路图像中车道线的特征,包括以下步骤:

步骤3-1、基于一阶导数的局部“波峰”判别

对每个像素的左右一阶导数定义如下:

其中,i表示像素的位置(2≤i≤Width-1)。

将满足Dil>0&&Dir≤0的像素点定义为局部“波峰”,将满足Dil≤0&&Dir>0的像素点定义为局部“波谷”;

步骤3-2多条件约束

条件一:动态阈值的设置

根据每行亮度的均值,动态选择波峰相对亮度的判别阈值函数,函数的表达式如下:

条件二:波峰宽度约束

波峰宽度为波峰两侧最近的波谷沿扫描线方向上的像素距离,有效波峰具有适中的宽度,即4<Wp<20,Wp为波峰p的宽度;

条件三:波谷亮度约束

gp>0.4×Gi,其中gp表示波谷p处的亮度,Gi为第i行的亮度均值的波谷对应的波峰。

作为优选,步骤4为:

设定直线所在大致区域的距离误差限d、Hough变换的一系列参数以及均值误差阈值ε,具体步骤如下:

4-1、在给定参数下,对车道线特征进行基于概率的Hough变换操作,获取直线;

4-2、对每一个通过Hough变换检测得到的直线,在所有的特征点集S中寻找距离直线不大于d的特征点,构成集合E;

4-3、利用最小二乘法确定集合E的回归直线参数k和b,以及均方误差e;

4-4、对集合E中的任一特征点(xi,yi),所有满足的kxi+b>yi的特征点构成子集Epos,所有满足的kxi+b<yi的特征点构成子集Eneg

4-5、在集合Epos和Eneg中,找出误差最大的点和其中d(P)表示点P到回归直线的距离;

4-6、移除点Pp和Pn,更新集合Epos、Eneg和E,重复步骤3,直至误差e小于ε;

为了对这些直线进行聚类,判别这些直线的归属,引入了两个相似性度量,即距离相似度和方向相似度,其中,P1(x1,y1)和P2(x2,y2)为直线L1的两个端点,其倾斜角为θ1;P3(x3,y3)和P4(x4,y4)为直线L2的两个端点,其倾斜角为θ2;连接点P2和P3间的直线倾斜角为θ,则:

dir=|θ1-θ|+|θ2-θ|

将距离和方向上具有近似一致性的直线聚类成一类,对属于同一类的所有直线上的车道线特征点进行最小二乘直线拟合,得到获选车道线。

本发明针对实际驾驶道路上有较为明显的车道线标记,且这些标记具有较强几何特征等特点,首先对道路图像中的车道线特征进行提取,再采用车道模型对车道线进行匹配。为了提高算法的可靠性,获得更加稳定的车道线的检测效果,本文采用了基于卡尔曼滤波的车道线跟踪和预测方法以及视频帧间关联性约束,并提出了一种结合了概率Hough变换和改进最小二乘法两种算法对候选车道线特征进行聚类的算法。同时,为了提高整个算法的实时性,在图像预处理阶段,采用降采样的策略并对道路图像进行灰度化处理;只在卡尔曼滤波跟踪和预测的特定的自适应动态ROI(region of interest)内提取车道线特征,避免了对整幅道路图像的操作而造成计算资源的大量浪费,同时也避免了对车道线特征的误提取对最终检测结果的误导。算法采用动态阈值以削弱光照条件对检测结果的影响,增强了算法的鲁棒性和适用性。本发明中涉及的算法是基于道路图像的透视图中进行多车道线的检测,不需要对摄像机的位置参数进行标定。

附图说明:

图1本发明的流程示意图;

图2车载相机安装示意图;

图3波峰的局部放大图;

图4车道线“位置-宽度”示意图;

图5卡尔曼滤波流程图。

具体实施方式

采用本发明的方法,给出一个非限定性的实例,结合图1进一步对本发明的具体实施过程进行说明。本发明在智能车辆平台、智能车测试场地进行实现,为了保证驾驶智能汽车以及人员安全,所用平台和场地均为智能驾驶技术专业实验平台和测试场地。所使用的一些通用技术如图像采集、图像变换等不在详细叙述。

如图1所示,本发明实施例提供一种基于透视图的鲁棒性多车道线检测方法包括以下步骤:

步骤1:车载相机的安装

将摄像机安装在汽车前挡风玻璃的正下方中央位置,距离地面距离为1米,并且相机的光轴平行于车辆底盘的所在平面,朝向为车辆行驶的正前方,如图2所示。

步骤2:图像的预处理

为了便于对道路图像进行处理,提高算法的实时性,本文采用经典的灰度化方法,利用如下公式对图像进行灰度化处理:

Gray=R*0.299+G*0.587+B*0.114

其中,R、G和B分别代表红、绿和蓝通道分量值,Gray表示转换后的像素的灰度值。最后,对得到的灰度图像进行中值滤波去噪处理。

步骤3:利用基于多条件约束的车道线特征滤波器对车道线特征进行提取

车道线部分相比于周围路面具有更高的亮度,且变化幅度较大,形成一个“波峰”。本文利用这些特性,来提取道路图像中车道线的特征,如图3所示。

步骤3-1基于一阶导数的局部“波峰”判别

对每个像素的左右一阶导数定义如下:

其中,i表示像素的位置(2≤i≤Width-1),Dir表示当前像素的一阶右导数,Dil表示当前像素的一阶左导数,pi表示当前的像素值。

我们将满足Dil>0&&Dir≤0的像素点定义为局部“波峰”,将满足Dil≤0&&Dir>0的像素点定义为局部“波谷”。

同时由于像素之间的差异,在宽度较大的波峰上,亮度分布可能会存在细微的变化,在很近的范围内出现多个波峰的现象。对波峰进行局部放大不难发现,由于图像的模糊产生了双峰、多峰等情况,因此对满足条件的局部邻近“波峰”进行合并是十分必要的。

步骤3-2多条件约束

条件一:动态阈值的设置

本文结合具体的实验分析结果,设计了一个根据每行亮度的均值,动态选择波峰相对亮度的判别阈值函数,函数的表达式如下:

其中,Gi为当前第i行的所有像素的平均值。

条件二:波峰宽度约束

本文中的波峰宽度指的是波峰两侧最近的波谷沿扫描线方向上的像素距离。由于在图像采集的过程中会产生噪声(高斯噪声和椒盐噪声),表现为有过于尖锐的波峰出现;或是道路上出现高反光物体,例如出现路面积水等不可控因素,此时可能会有宽度较大的波峰出现。因此,有效波峰应该具有适中的宽度(4<Wp<20,Wp为波峰p的宽度)。

条件三:波谷亮度约束

在实际的道路场景中,路面上常常会有由于行道树形成的阴影存在,在阴影交界处,亮度上表现为“暗-亮-暗”的效果,此时可能造成车道线波峰特征的误提取。

因此,波谷处的亮度值不能太低,本文中保留gp>0.4×Gi(其中gp表示波谷p处的亮度,Gi为第i行的亮度均值)的波谷对应的波峰。

步骤4:适应于车道线特征的聚类算法

考虑到Hough变换和最小二乘法的优缺点,提出了一种结合两种算法的直线检测方法。首先,利用Hough变换确定直线存在的大致区域,然后对每个区域内的特征点集,利用改进的最小二乘法确定精确的直线参数。

给定直线所在大致区域的距离误差限d、Hough变换的一系列参数以及均值误差阈值ε。算法的具体步骤如下:

1.在给定参数下,对车道线特征进行基于概率的Hough变换操作,获取直线;

2.对每一个通过Hough变换检测得到的直线,在所有的特征点集S中寻找距离直线不大于d的特征点,构成集合E;

3.利用最小二乘法确定集合E的回归直线参数k和b,以及均方误差e;

4.对集合E中的任一特征点(xi,yi),所有满足的kxi+b>yi的特征点构成子集Epos,所有满足的kxi+b<yi的特征点构成子集Eneg

5.在集合Epos和Eneg中,找出误差最大的点和其中d(P)表示点P到回归直线的距离;

移除点Pp和Pn,更新集合Epos、Eneg和E,重复步骤3,直至误差e小于ε。

用以上算法可以屏蔽噪声的影响,得到较为理想的直线。为了对这些直线进行聚类,判别这些直线的归属,本文引入了两个相似性度量,即距离相似度和方向相似度。其中,P1(x1,y1)和P2(x2,y2)为直线L1的两个端点,其倾斜角为θ1;P3(x3,y3)和P4(x4,y4)为直线L2的两个端点,其倾斜角为θ2;连接点P2和P3间的直线倾斜角为θ,则:

dis=|(x3-x2)sinθ1-(y3-y2)cosθ1|

+|(x3-x2)sinθ2-(y3-y2)cosθ2|

dir=|θ1-θ|+|θ2-θ|

将距离和方向上具有近似一致性的直线聚类成一类,对属于同一类的所有直线上的车道线特征点进行最小二乘直线拟合,得到获选车道线。

步骤5:车道线约束

步骤5-1基于透视投影线性关系的车道线“位置-宽度”函数

通过车载相机采集到的道路图像往往具有强烈的透视效果,具有“近小远大”的特点,主要表现为车道线在图像底部时显得较宽,越往远处车道线越窄,世界坐标系下具有平行结构的道路线在远处相交。

如图4所示根据透视投影的几何关系和三角形相似原理,易得:

Wi=(AiPi-di)×2

其中,Wi为在道路图像中第i行的车道线宽度

步骤5-2消失点约束

建立坐标系OXY,O为图像长的中点,在坐标系OXY中建立图像中直线和消失点的关系。设当前帧的消失点坐标为V(vx,vy),L为候选车道线,过原点O作直线L的垂线,垂足的坐标为P(px,py),垂线长度为ρ,倾斜角为θ。根据圆的基本性质可知,垂足P必定在以原点O和消失V为直径的圆上,因此可以得到方程组:

显然,消失点V是该方程组的一个解。构造目标函数如下:

Δρ=|vx cosθi+vy sinθii|

θi和ρi是待确定直线Li的参数,根据目标函数求得Δρ,当Δρ在一个很小的范围内,说明对应的直线为有效的车道线。消失点的性质作为约束条件,提高了对车道线提取的准确率,尤其是对零散的干扰直线有很好的滤除作用。

步骤5-3帧间关联约束

在实际采集系统以及大部分的智能车辆系统中,车载相机直接获得的是视频流信息,视频流中的相邻两帧图像间往往具有很大的冗余性。车辆运动在时间上和空间上都具有连续性,由于车载相机的采样频率快(100fps左右),在图像帧的采样周期内,车辆只是前进了一段很短的距离,道路场景的变化十分微小,表现为前后帧间的车道线位置变化缓慢,因此前一帧图像为后一帧图像提供了非常强的车道线位置信息。为了提高车道线识别算法的稳定性和准确性,本文引入了帧间关联性约束。

假设在当前帧中检测到的车道线个数为m条,用集合L={L1,L2,Λ,Lm}表示;保存的历史帧中检测到的车道线数有n个,用集合E={E1,E2,Λ,En}表示;帧间关联约束滤波器用K表示,令K={K1,K2,Λ,Kn}。

首先建立一个C=m×n的矩阵,矩阵C中的元素cij表示当前帧中的第i条直线Li和历史帧中的第j条直线Ej间的距离Δdij,其中Δdij的计算公式为:

和分别表示当前帧中的第i条直线的两端点的坐标,和分别表示历史帧中的第j条直线的两端点的坐标。

然后在矩阵C中,统计第i行中Δdij<T的个数ei,若ei<1,说明当前车道线没有与之相关联的前帧车道线,因此将该条车道线作为全新的车道线,更新下一帧帧间关联约束的历史帧信息;若ei=1,则认为当前帧车道线Li和历史帧车道线Ej在前后帧间是同一条车道线;当ei>1时,用向量Vi记录当前帧第i行中满足条件的车道线位置,即:

在Vi中统计非零元素所在的列j的所有元素Vj,得到Vj中最小的元素,即:

(Δdij)min=min{Vj}(Vj≠0)

当则得到当前帧车道线Li和历史帧车道线Ej在前后帧间是同一条车道线。

步骤6:基于卡尔曼滤波的多车道线实时跟踪

卡尔曼滤波是由匈牙利数学家Kalman基于系统的能控性和能观性,于上世纪60年代提出来的一种基于最小均方差预测的最优线性递归滤波方法。卡尔曼滤波的基本思想是:以状态方程和观测方程为基础,运用递归方法来预测一个零均值白噪声序列激励下的线性动态系统的变化。其本质是通过观测值来重新构建系统的状态变化,以“预测-观测-修正”的顺序递推,消除系统观测值的随机干扰,通过观测值从被干扰的信号中恢复原始信号的本来特征。如图5所示,卡尔曼滤波的详细过程如下:

模块一:先验估计模块

由于在道路图像采集的过程中,相邻帧之间的车道线位置变化缓慢,可近似认为是匀速变化,即vk=vk-1,由运动学公式:

sk=sk-1+Δt×vk-1

其中,sk-1表示第k-1时刻的位移,vk-1表示第k-1时刻的速度,Δt表示相邻帧间的时间间隔,即车载相机的采样频率的倒数,本文设定为15ms,此时卡尔曼滤波方程中的状态向量可表示为:

x(k)和y(k)表示目标的中心点坐标,vx(k)和vy(k)分别表示目标早X轴、Y轴方向上的运动速度

状态方程可表示为:

X(k|k-1)=A(k-1|k-1)*X(k-1|k-1)+ζk-1

其中,A(k-1|k-1)k-1时刻的状态转移矩阵,ζk-1表示系统噪声,是均值为0的白噪声序列,ζk-1∈(0,Qk),Qk为系统噪声的方差,本文中将其作为常数处理,设

观测方程:

Z(k)=Hk*X(k|k-1)+ηk

Z(k)表示k时刻的观测向量,设其中xz(k)和yz(k)表示第k帧图像中车道线的位置;Hk表示观测矩阵,设ηk为观测噪声,ηk-1∈(0,Rk),Rk为观测噪声的方差,设其中,σx2和σy2为观测噪声的两个分量方差,设σx2=σy2=1

误差协方差预测方程:

P(k|k-1)=A(k-1|k-1)*X(k-1|k-1)*A(k-1|k-1)T+Qk-1

模块二:后验估计模块:

卡尔曼增益:

A(k-1|k-1)为状态转移矩阵,设

状态修正:

X(k|k)=X(k|k-1)+G(k)*[Z(k)-Hk*X(k|k-1)]

协方差修正:

P(k|k)=P(k|k-1)-G(k)*H*P(k|k-1)

状态更新:

X(k-1|k-1)=X(k|k)

P(k-1|k-1)=P(k|k)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1