发明名称 一种基于Hough变换的车道线检测方法
摘要 一种基于Hough变换的车道线检测方法,该方法针对现有车道线检测技术的需要建立特定的模型,算法比较复杂,效率低,实时性差的缺点,通过对经过Hough变换后的含有车道线的图像,利用车道线像素的位置信息进行车道线检测和趋势的判断,算法具有良好的实时性,高效率得检测车道线。本方法不需要引入过多的参数来辅助判别弯道,不需要车道线建模等繁琐方法,可用于普通车道和高速公路,可以简单快速地实现弯道趋势的识别,有较好的实时性和准确性。
申请公布号 CN105760812A 申请公布日期 2016.07.13
申请号 CN201610029449.X 申请日期 2016.01.15
申请人 北京工业大学;北京日立北工大信息系统有限公司 发明人 张文利;王锦宏;李会宾;王卓峥;颜啸;贾维晟
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 沈波
主权项 一基于Hough变换的车道线检测方法,其特征在于:本方法采用的步骤如下:步骤1:图像预处理;1.1、首先从监控相机等图像采集装置中获得原始图像R,对图像R二值化处理得到二值化图像R1;1.2、针对上述二值化图像R1进行边缘提取处理;边缘提取处理采用Sobel算子或LoG算子;确定LOG算子的具体步骤如下:首先采用二维高斯滤波器平滑滤波;其次采用二维拉普算子进行图像增强;最后依据二阶导数零交叉进行边缘检测;二维高斯滤波器的函数G(x,y)<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msup><mi>&pi;&sigma;</mi><mn>2</mn></msup></mrow></mfrac><msup><mi>e</mi><mfrac><mrow><mo>-</mo><mrow><mo>(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo>)</mo></mrow></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000011.GIF" wi="1033" he="171" /></maths>用G(x,y)与原始图像f(x,y)进行卷积,得到平滑图像I(x,y)I(x,y)=G(x,y)*f(x,y)  (2)其中*是卷积运算符,再用拉普拉斯算子<img file="FDA0000908055480000012.GIF" wi="103" he="99" />来获取平滑图像I(x,y)的二阶方向导数图像M(x,y);由线性系统中卷积和微分的可交换性得:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>M</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><msup><mo>&dtri;</mo><mn>2</mn></msup><mo>{</mo><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>}</mo><mo>=</mo><msup><mo>&dtri;</mo><mn>2</mn></msup><mo>&lsqb;</mo><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&rsqb;</mo><mo>=</mo><msup><mo>&dtri;</mo><mn>2</mn></msup><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000013.GIF" wi="1459" he="91" /></maths>对图像的高斯平滑滤波与拉普拉斯微分运算结合成一个卷积算子,<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msup><mo>&dtri;</mo><mn>2</mn></msup><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msup><mi>&pi;&sigma;</mi><mn>4</mn></msup></mrow></mfrac><mrow><mo>(</mo><mfrac><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup></mrow><msup><mi>&sigma;</mi><mn>2</mn></msup></mfrac><mo>-</mo><mn>2</mn><mo>)</mo></mrow><msup><mi>e</mi><mfrac><mrow><mo>-</mo><mrow><mo>(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo>)</mo></mrow></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000014.GIF" wi="1267" he="171" /></maths>式中<img file="FDA0000908055480000021.GIF" wi="196" he="75" />即为LOG算子,又称为高斯拉普拉斯算子;求取M(x,y)的零穿点轨迹即得到图像f(x,y)的边缘;以<img file="FDA0000908055480000022.GIF" wi="198" he="75" />对原始灰度图像进行卷积运算后提取的零交叉点作为边缘点;边缘提取过程结束,得到边缘特征图像R2;1.3、针对上述边缘特征图像R2进行图像去噪处理;对图像去噪采用均值滤波或高斯滤波方法;其中,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到;对上述边缘特征图像R2进行去噪处理后得到去噪后的图像R3;确定高斯滤波的具体操作如下,1.3.1确定一个n*n的模板(或称卷积、掩模),用于扫描图像中的每一个像素;高斯滤波器直接从离散高斯分布中计算模板值,二维零均值离散高斯函数作平滑滤波器,函数表达式如下:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>g</mi><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>=</mo><msup><mi>ce</mi><mfrac><mrow><mo>-</mo><mrow><mo>(</mo><msup><mi>i</mi><mn>2</mn></msup><mo>+</mo><msup><mi>j</mi><mn>2</mn></msup><mo>)</mo></mrow><mo>_</mo></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000023.GIF" wi="1243" he="179" /></maths>其中g[i,j]为模板元素,c是规范化系数,σ是高斯滤波器的宽度(决定着平滑程度),把式(5)重新表示如下:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mfrac><mrow><mi>g</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo></mrow><mi>c</mi></mfrac><mo>=</mo><msup><mi>e</mi><mfrac><mrow><mo>-</mo><mrow><mo>(</mo><msup><mi>i</mi><mn>2</mn></msup><mo>+</mo><msup><mi>j</mi><mn>2</mn></msup><mo>)</mo></mrow><mo>_</mo></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000024.GIF" wi="1219" he="200" /></maths>式(6)中,σ越大,高斯滤波器的频带越宽,其平滑程度越好;选择适当的σ<sup>2</sup>值,以便获取模板;选择n值和σ<sup>2</sup>值,然后根据下式:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>g</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo><mo>*</mo><mi>f</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><msup><mi>e</mi><mfrac><mrow><mo>-</mo><msup><mi>k</mi><mn>2</mn></msup><mo>_</mo></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></msup><mo>{</mo><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msup><mi>e</mi><mfrac><mrow><mo>-</mo><msup><mn>1</mn><mn>2</mn></msup><mo>_</mo></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></msup><mi>f</mi><mo>&lsqb;</mo><mi>i</mi><mo>-</mo><mi>k</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>&rsqb;</mo><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000031.GIF" wi="1379" he="186" /></maths>f(i,j)为图像像素值的灰度值;首先计算出模板的右下角元素,再根据高斯模板的中心左右上下对称性对应地复制给其它三个区域,即得出整个模板的元素,最后再对全部的模板元素求和、取倒数即求得规范化系数c;<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>c</mi><mo>=</mo><mfrac><mn>1</mn><mrow><munderover><mo>&Sigma;</mo><mn>0</mn><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mn>0</mn><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>g</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000032.GIF" wi="1263" he="227" /></maths>1.3.2利用高斯模板对图像中每个像素进行遍历;h[i,j]为f[i,j]高斯滤波后的像素值;<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mi>h</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo><mo>=</mo><mfrac><mn>1</mn><mrow><munderover><mo>&Sigma;</mo><mn>0</mn><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mn>0</mn><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>g</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo></mrow></mfrac><mrow><mo>(</mo><mi>g</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo><mo>*</mo><mi>f</mi><mo>&lsqb;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>&rsqb;</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000033.GIF" wi="1283" he="226" /></maths>图像R2经过滤波去噪后,得到去噪后的边缘特征图像R3;1.4针对上述步骤得到去噪后的边缘特征图像R3并设置有效区域;本方法中的图像有效区域是指车辆在正常行驶过程中近处车道线出现概率高的地方,设置有效区域的目的就是去除与图像无关的信息以减少处理的数据量,提高算法执行效率和实时性;在确定有效区域之前,首先确定图像采集器的固定位置,然后确定近处车道线出现概率高的位置,所述近处即为车载摄像头三分之一至二分之一范围内的车道线拍摄角度图像;确定有效区域设置的步骤如下:有效区域设置为任何形状,如设置为矩形,该矩形的有效区域在图像R3中距离上边界n1个像素,下边界n2个像素,左边界n3个像素,右边界n4个像素,n1、n2、n3、n4均为正整数;去噪后的边缘特征图像R3经过设置有效区域后,得到图像R4;步骤2、Hough变换;针对图像R4中的有效区域作Hough变换;Hough提出点(xi,yi)满足直线方程y=a×x+b  (10)式(10)中,a是直线的斜率,b是直线的截距;通过点A(xi,yi)的直线有无限条,并且每一条直线对应不同的a值和b值,同时二者均满足直线方程(1);将式(10)改写如下,b=‑a×x+y  (11)因此在a‑b参数空间平面,就得到关于(xi,yi)的唯一直线方程;此时将参数空间中另一个点(xj,yj)也做出相同的变换,又会得到关于B(xj,yj)的唯一直线方程,这两条直线会在a‑b参数空间中会相交于一个点,设这一点为(a’,b’),其中a’是原图像空间中的过(xi,yi)、(xj,yj)的直线的斜率,b’则是其截距,所以可知图像空间x‑y内的一点与参数空间a‑b内的一条直线相对应;即图片空间x‑y中直线上的所有点转换后得到一个直线簇,直线簇内所有直线都经过参数空间a‑b中的点(a’,b’):由于这种方法不能表达斜率为无穷的直线,所以用极坐标方程进行Hough变换,极坐标方程为:ρ=x×cosθ+y×sinθ  (12)ρ是直角坐标系的原点到直线的法线距离,θ是该法线与x轴的正向夹角;将图像空间直线上的点(xi,yi)带入xcosθ+ysinθ=ρ中,得到一条在O‑ρθ平面上的正弦曲线,将图像空间中直线上的点(xj,yj)带入xcosθ+ysinθ=ρ中,得到另一条在O‑ρθ平面上的正弦曲线,且两条正弦曲线交于一点(ρ’,θ’),即图片空间x‑y中直线上的所有点转换后得到一个正弦线簇,正弦线簇内所有曲线都经过参数空间O‑pθ中的点(ρ’,θ’),可知图像空间x‑y中的一点与极坐标空间O‑ρθ中的一条正弦曲线相对应;在实际应用中,要把参数空间O‑ρθ离散化成一个累加器阵列,即将参数空间细分成一个网格阵列,其中的每一个格子对应一个累加器,累加器阵列中每个累加器的初值为零,且[θ<sub>max</sub>,θ<sub>min</sub>]和[ρ<sub>min</sub>,ρ<sub>max</sub>]分别为预期的斜率和截距的取值范围;图像空间x‑y中每一个点(x,y)映射到极坐标空间O‑ρθ中对应的一系列的累加器中,即对于图像空间x‑y中每一个点,按照xcosθ+ysinθ=ρ进行变换,就会得到其在极坐标空间O‑ρθ中所对应的曲线,凡是曲线经过的网格,对应的累加器就加1;由于通过同一格子的曲线所对应的点近似于共线,于是网格对应的累加器的累加值就等于共线的点数;步骤3、检索局部极大值;检索局部极大值就是在上述图像R5中,即在累加器二维数组Hough[n][180]中进行,当图像R5中存在若干条直线,就会有同样数量对应的累加器内的累加值出现局部极大值,每一个局部极大值对应图像R5中的一条直线,检索出局部最大值从而检测出图像R5中的直线,得到检索后的图像R6;检索局部极大值的步骤如下:(1)经上述步骤Hough变换之后,针对二维数组Hough[n][180],车道线位于道路的左右两侧,所以对应的θ值的范围不同;所以检索局部极大值时,将θ值分为0°‑90°与90°‑179°两组,也相应的调整每一个分组的范围;分别遍历这个数组中两组θ值对应的所有的点,然后进行比较,取得每个分组中的极大值,(2)检索出这些极大值,根据这些极大值确定与之所对应的ρ、θ的数值,每一组(ρ,θ)对应一条直线,从而检测出各条直线;(3)加入阈值进行辅助判断,阈值是判断是否在检索到的直线上是否有足够多的像素点,增加检索直线的准确性;步骤4、跟踪有效性判断;针对检索后的图像R6,进行跟踪有效性的判断;当车道线被前车或其他物体严重遮挡,或车辆换道时,检测得到的车道线和实际车道线发生偏移的现象,即被认定为车道线跟踪失效,引入跟踪有效性是判断检测得到的车道线是否准确;跟踪有效性判断步骤如下:1、记录前五帧图像R6、R7、R8、R9、R10的车道线数据,车道线数据为检测出的车道线两侧中任何一侧车道线像素的个数,或是当前帧图像R6的车道线斜率K和截距B数据;车道线斜率K和截距B;车道线截距B的计算公式为:<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>B</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>&rho;</mi></mrow><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>13</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000071.GIF" wi="973" he="143" /></maths>ρ原点到直线的距离,θ为ρ与x轴正向夹角;车道线斜率K的计算公式为:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><mi>K</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi></mrow><mrow><mi>sin</mi><mi>&theta;</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000072.GIF" wi="984" he="139" /></maths>2、计算前四帧图像R6、R7、R8、R9中车道线的数据加权值叠加,为与第五帧图像R10的数据相比较,前四帧的加权叠加公式为:K<sub>ave</sub>=w<sub>1</sub>×K<sub>1</sub>+w<sub>2</sub>×K<sub>2</sub>+w<sub>3</sub>×K<sub>3</sub>+w<sub>4</sub>×K<sub>4</sub>  (15)B<sub>ave</sub>=w<sub>1</sub>×B<sub>1</sub>+w<sub>2</sub>×B<sub>2</sub>+w<sub>3</sub>×B<sub>3</sub>+w<sub>4</sub>×B<sub>4</sub>  (16)其中,K<sub>ave</sub>是前四帧图像车道线的斜率的加权叠加值,B<sub>ave</sub>是前四帧图像车道线的截距的加权叠加值,w<sub>1</sub>、w<sub>2</sub>、w<sub>3</sub>、w<sub>4</sub>分别表示前四帧图像车道线的权重;K<sub>1</sub>、K<sub>2</sub>、K<sub>3</sub>、K<sub>4</sub>分别是前四帧图像车道线的斜率,B<sub>1</sub>、B<sub>2</sub>、B<sub>3</sub>、B<sub>4</sub>分别是前四帧图像车道线的截距;3、将前四帧图像R6、R7、R8、R9中车道线的数据加权叠加值与第五帧图像R10的数据相比较,通过斜率变化量或截距变化量判断图像车道线数据是否有较大变化;前四帧图像R6、R7、R8、R9中车道线的数据加权叠加值与第五帧图像R10的数据相比较的计算公式为:ΔK=K<sub>5</sub>‑K<sub>ave</sub>  (17)ΔB=B<sub>5</sub>‑B<sub>ave</sub>  (18)其中,K<sub>5</sub>为第五帧图像R10中车道线的斜率,B<sub>5</sub>为第五帧图像R10中车道线的截距,ΔK为第五帧图像的斜率相比较前四帧图像的加权累加值的变化量;ΔB为第五帧图像的截距相比较前四帧图像的加权累加值的变化量;4、如果ΔK、ΔB超出了判断依据值,认为跟踪失效,就忽略第五帧图像R10车道线数据,使用图像R9的车道线数据,最终得到跟踪有效性检测后图像R11;5、如果ΔK、ΔB未超出了判断依据值,即认为跟踪失效,就使用第五帧图像R10的车道线数据,得到跟踪有效性检测后图像R11;步骤5、计算灭点;针对图像R11中检测到的车道线,计算车道线的灭点;灭点是上述步骤检测到的直线车道线延伸后的交点,在实际道路上指道路消失不见的点;计算灭点是为确定灭点直线,灭点直线是为下防止步骤6中所设置的弯道敏感区域发生重叠,弯道敏感区域在步骤6中进行解释;计算灭点的步骤如下:1、计算出图像R11中左右直线车道线的直线方程;车道线截距B的计算公式为:<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mi>B</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>&rho;</mi></mrow><mrow><mi>sin</mi><mi>&theta;</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>19</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000081.GIF" wi="1059" he="139" /></maths>ρ原点到直线的距离,θ为ρ与x轴正向夹角;车道线斜率K的计算公式为:<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><mi>K</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi></mrow><mrow><mi>sin</mi><mi>&theta;</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>20</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000082.GIF" wi="1099" he="139" /></maths>2、计算灭点的坐标:设灭点的坐标为(x<sub>m</sub>,y<sub>m</sub>),灭点横坐标x的计算公式为:<maths num="0013" id="cmaths0013"><math><![CDATA[<mrow><msub><mi>x</mi><mi>m</mi></msub><mo>=</mo><mfrac><mrow><mo>(</mo><mi>B</mi><mn>2</mn><mo>-</mo><mi>B</mi><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>K</mi><mn>1</mn><mo>-</mo><mi>K</mi><mn>2</mn><mo>)</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>21</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000091.GIF" wi="1107" he="147" /></maths>B1为左车道线的的截距,B2为右车道线的截距,K1为左车道线的的斜率,K2为右车道线的的斜率;灭点纵坐标y<sub>m</sub>的计算公式为:y<sub>m</sub>=K1×x+B1  (22)3、最后以灭点为顶点,描绘出出图像R8中左右两条直线车道,所描绘的直线方程为:y=K×x+B  (23)并且设置两条直线车道线的颜色,这样就得到含有灭点的图像R12;步骤6、确定弯道敏感区域;针对图像R12,在弯道出现概率高的位置设置弯道敏感区域;弯道敏感区域是用来统计弯道像素点的分布特征的区域;敏感区域的设置形状不唯一,一般位于能够覆盖图像R12中车道的区域;确定弯道敏感区域的步骤如下:(1)若弯道敏感区域位于图像R12中检测到的直线车道线两侧,设置四个弯道的敏感区域,弯道敏感区域的数量也能够根据不同的情况进行调整;四个弯道的敏感区域分布方式为:左直道线的两侧设置两个弯道敏感区域,左直道线的左侧弯道敏感区域设为敏感区域1,左直道线的右侧弯道敏感区域设为敏感区域2,右直道线的两侧设置为两个弯道敏感区域,右直道线的左侧弯道敏感区域设为敏感区域3,右直道线的右侧弯道敏感区域设为敏感区域4;(2)确定四个弯道敏感区域的具体位置的大小;弯道敏感区域宽为N1(正整数)个像素的距离,长为N2(正整数)个像素的距离;根据步骤5得到的灭点坐标(x<sub>m</sub>,y<sub>m</sub>),以直线方程:y=y<sub>m</sub>  (24)为弯道敏感区域的上边界;以直线方程:y=w<sub>5</sub>×y<sub>m</sub>  (25)为敏感区域的下边界,w<sub>5</sub>表示权重,0&lt;w<sub>5</sub>≤1;根据上述步骤所确定的两条直线车道线,在左右直线车道线的两侧拓展N1个像素的长度,来表示弯道敏感区域的宽;(3)然而,设置的弯道敏感区域2、3易出现重叠,这些因素会影响后续弯道趋势的判断,如果出现上述情况,要做出相应的调整;调整的方法为:对于弯道敏感区域2、3出现重叠现象这种情况,要进行对敏感区域2、3的分隔;利用灭点直线来进行分隔,灭点直线是以灭点(x<sub>m</sub>,y<sub>m</sub>)为顶点,垂直于图片底边的一条分界线,分隔就是防止敏感区域2、3不能跨越灭点直线;灭点直线的方程为,x=x<sub>m</sub>  (26)灭点直线设置相应的颜色,在图像中清楚地显示;由此得到含有四个弯道敏感区域的图像R13;步骤7、判断车道趋势;针对图像R13中车道,判断车道的趋势;经过上述步骤6后确定了弯道敏感区域,实际车道处于不同的趋势时,车道线上的像素点在弯道敏感区域内的分布特征是不同的;当实际车道处于直线车道状态时,弯道敏感区域内的车道线像素点分布比较均匀;当实际车道处于转弯状态时,弯道相比较直道发生弯曲,所以检测的弯道像素点也会在相应的弯曲方向发生偏移,由此,弯道的像素点在四个弯道敏感区域内的分布相比较直线车道会发生明显变化,根据这一特征,进行车道趋势的判断;车道趋势的判断步骤如下:(1)在弯道区域内搜索实际车道线上的像素点;遍历图像R13中每一个像素点,而实际车道线每一个像素点都有自己的特征,根据这一特征,在遍历图像R13中每一个像素点的过程中寻找出实际车道线的像素点;如所引用的是实际车道线像素点的灰度值为255这一特征,进行检索;(2)确定检索到的实际车道线每一个像素点的横值,横值指在弯道敏感区域中,相邻的弯道敏感区域(弯道敏感区域1和2或弯道敏感区域3和4)的水平方向的取值范围规定为[‑N1,N1],即两个敏感区域的宽度,实际车道线每一个像素点在弯道敏感区域水平方向的位置,这个位置在[‑N1,N1]内对应的值为横值;因为在图像R13中出现弯道的情况下,弯道敏感区域1、3的车道线像素点的分布情况变化一致;弯道敏感区域2、4的车道线像素点的分布情况变化一致,分布情况指实际车道像素点的增加和减少;确定的4个弯道敏感区域内所有的横值,用横值组表示,弯道敏感区域1、2、3、4横值组分别是(a<sub>1</sub>,a<sub>2</sub>,....a<sub>k1</sub>)、(b<sub>1</sub>,b<sub>2</sub>,....b<sub>k2</sub>)、(c<sub>1</sub>,c<sub>2</sub>,....c<sub>k3</sub>)、(d<sub>1</sub>,d<sub>2</sub>,....d<sub>k4</sub>),将确定的敏感区域1、3的横值组归为一类,确定的敏感区域2、4的横值组归为一类;(3)计算代表车道线趋势的最终值F;最终值F代表实际车道线趋势的特征值,计算最终值F的公式为:<maths num="0014" id="cmaths0014"><math><![CDATA[<mrow><mi>s</mi><mi>u</mi><mi>m</mi><mn>1</mn><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>=</mo><mi>k</mi><mn>1</mn></mrow></munderover><msub><mi>a</mi><mi>n</mi></msub><mo>&times;</mo><msub><mi>a</mi><mi>n</mi></msub><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>=</mo><mi>k</mi><mn>3</mn></mrow></munderover><msub><mi>c</mi><mi>n</mi></msub><mo>&times;</mo><msub><mi>c</mi><mi>n</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>27</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000121.GIF" wi="1320" he="195" /></maths><maths num="0015" id="cmaths0015"><math><![CDATA[<mrow><mi>s</mi><mi>u</mi><mi>m</mi><mn>2</mn><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>=</mo><mi>k</mi><mn>2</mn></mrow></munderover><msub><mi>b</mi><mi>n</mi></msub><mo>&times;</mo><msub><mi>b</mi><mi>n</mi></msub><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>=</mo><mi>k</mi><mn>4</mn></mrow></munderover><msub><mi>d</mi><mi>n</mi></msub><mo>&times;</mo><msub><mi>d</mi><mi>n</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>28</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000908055480000122.GIF" wi="1315" he="203" /></maths>sum1、sum2分别是横值组1、3和2、4的乘积的累加值,那么F=sum2‑sum1  (29)(4)然后设定出两个阈值T1、T2,与最终值F相比较,阈值是直道与弯道趋势判断的临界值,T1代表直道与右弯道趋势判断的临界值,T2代表直道与左弯道趋势判断的临界值;当最终值F大于阈值T1(正值)的时候,判断为车道向右弯曲的趋势;当最终值小于阈值T2(负值)的时候,判断为车道向左弯曲的趋势;当最终值F处于两个阈值的范围之中时,证明车道线上的像素点在弯道敏感区域内分布比较均匀,判断为直线车道的趋势;经过上述的对图像R13的处理,得到了已判断车道线趋势的图像R14;步骤8、绘制车道线;利用多段折线法绘制车道线;所谓的多段折线法,就是在弯道敏感区域内,搜索车道的像素点,如果找到一个弯道上的像素点,就保存找到的点,并继续转到上一行执行,如果没有找到,那就不保存这一行上的弯道上的像素点,转到上面一行进行搜索,通过上面的处理,把车道线上的点找出来,然后再利用直线将相邻的点进行相连,就形成了多段直线,因此通过这样画出来车道线的方法成为多段直线法。
地址 100124 北京市朝阳区平乐园100号