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

文档序号:12123921阅读:来源:国知局

技术特征:

1.一种基于透视图的鲁棒性多车道线检测方法,其特征在于,包括以下步骤:

步骤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为直径的圆上,因此可以得到方程组:

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>y</mi> <mn>2</mn> </msup> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>xp</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>yp</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>p</mi> <mi>x</mi> </msub> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&theta;</mi> <mo>+</mo> <msub> <mi>p</mi> <mi>y</mi> </msub> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&theta;</mi> <mo>-</mo> <mi>&rho;</mi> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> </mfenced>

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

Δρ=|vxcosθi+vysinθ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的计算公式为:

<mrow> <msub> <mi>&Delta;d</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msup> <mrow> <mo>&lsqb;</mo> <mrow> <mo>|</mo> <mrow> <msubsup> <mi>x</mi> <mi>i</mi> <msub> <mi>L</mi> <mi>A</mi> </msub> </msubsup> <mo>-</mo> <msubsup> <mi>x</mi> <mi>j</mi> <msub> <mi>E</mi> <mi>A</mi> </msub> </msubsup> </mrow> <mo>|</mo> </mrow> <mo>,</mo> <mrow> <mo>|</mo> <mrow> <msubsup> <mi>x</mi> <mi>i</mi> <msub> <mi>L</mi> <mi>B</mi> </msub> </msubsup> <mo>-</mo> <msubsup> <mi>x</mi> <mi>j</mi> <msub> <mi>E</mi> <mi>B</mi> </msub> </msubsup> </mrow> <mo>|</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mi>T</mi> </msup> <mo>&Element;</mo> <msup> <mi>R</mi> <mn>2</mn> </msup> </mrow>

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

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

<mrow> <msub> <mi>V</mi> <mi>i</mi> </msub> <mo>=</mo> <mo>{</mo> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> <mo>,</mo> <mi>L</mi> <mo>,</mo> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>}</mo> <mo>,</mo> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msub> <mi>&Delta;d</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&gt;</mo> <mi>T</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&Delta;d</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>o</mi> <mi>t</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

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

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

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

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

2.如权利要求1所述的基于透视图的鲁棒性多车道线检测方法,其特征在于,步骤3具体为:利用车道线部分相比于周围路面形成“波峰”的特性,提取道路图像中车道线的特征,包括以下步骤:

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

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

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>D</mi> <mrow> <mi>i</mi> <mi>r</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>p</mi> <mrow> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>p</mi> <mi>i</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>D</mi> <mrow> <mi>i</mi> <mi>l</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>p</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced>

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

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

步骤3-2多条件约束

条件一:动态阈值的设置

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

<mrow> <mi>T</mi> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>10</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mn>0</mn> <mo>&le;</mo> <msub> <mi>G</mi> <mi>i</mi> </msub> <mo>&le;</mo> <mn>20</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>10</mn> <mo>+</mo> <mo>&lsqb;</mo> <mi>cos</mi> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>G</mi> <mi>i</mi> </msub> <mo>-</mo> <mn>20</mn> </mrow> <mn>160</mn> </mfrac> <mo>&times;</mo> <mi>&pi;</mi> <mo>+</mo> <mi>&pi;</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> <mo>&rsqb;</mo> <mo>&times;</mo> <mn>80</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mn>20</mn> <mo>&lt;</mo> <msub> <mi>G</mi> <mi>i</mi> </msub> <mo>&le;</mo> <mn>180</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>40</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mn>180</mn> <mo>&lt;</mo> <msub> <mi>G</mi> <mi>i</mi> </msub> <mo>&le;</mo> <mn>255</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

条件二:波峰宽度约束

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

条件三:波谷亮度约束

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

3.如权利要求1所述的基于透视图的鲁棒性多车道线检测方法,其特征在于,步骤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间的直线倾斜角为θ,则:

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

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

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

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

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