发明名称 一种多车道线的测距方法
摘要 本发明公开了一种多车道线的测距方法,包括以下步骤:1、车道线特征提取;2、获取最大置信度车道线及其相关信息;3、获取消失线相关信息;4、获取消失点相关信息;5、获取其他车道线及其相关信息;6、进行曲线型车道线的参数寻优及进行测距工作。本发明能快速且准确的识别多条车道线并进行准确的测距,从而很好地帮助智能辅助驾驶系统对于车辆的控制。
申请公布号 CN106599868A 申请公布日期 2017.04.26
申请号 CN201611198167.9 申请日期 2016.12.22
申请人 合肥工业大学 发明人 张炳力;叶运生;白广路;张杰;曹聪聪
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 安徽省合肥新安专利代理有限责任公司 34101 代理人 陆丽莉;何梅生
主权项 一种多车道线的测距方法,其特征是按如下步骤进行:步骤1、车道线特征提取:步骤1.1、从图像采集装置中获取原始图像集,并将所述原始图像集进行预处理,得到像素值为M×N的灰度化图像集;从X方向上将所述灰度化图像集中的任意一幅灰度化图像划分为四个图像块,包括:像素值为M<sub>1</sub>×N的第一图像块、像素值为M<sub>2</sub>×N的第二图像块、像素值为M<sub>3</sub>×N的第三图像块、像素值为M<sub>4</sub>×N的第四图像块;定义任意一幅灰度化图像中第i行第j列的灰度值为G(x<sub>i</sub>,y<sub>j</sub>);步骤1.2、对第一图像块的特征边缘进行提取,得到第一边缘图像:步骤1.2.1、初始化k=1;步骤1.2.2、初始化i=1;步骤1.2.3、读取第i行第k列的灰度值G(x<sub>i</sub>,y<sub>k</sub>)和第i+p行第k列的灰度值G(x<sub>i+p</sub>,y<sub>k</sub>)并进行判断,若G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+p</sub>,y<sub>k</sub>)>A是否成立,若成立,则计算G<sup>(1)</sup><sub>i,i+p‑1</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+p‑1</sub>,y<sub>k</sub>);否则,执行步骤1.2.7;步骤1.2.4、若G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+p‑1</sub>,y<sub>k</sub>)>A是否成立,若成立,则计算G<sub>1</sub>={G<sup>(1)</sup><sub>i,i+1</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+1</sub>,y<sub>k</sub>),G<sup>(1)</sup><sub>i,i+2</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+2</sub>,y<sub>k</sub>),…,G<sup>(1)</sup><sub>i,i+2p</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+2p</sub>,y<sub>k</sub>)}后,执行步骤1.2.5;否则,执行步骤1.2.7;步骤1.2.5、统计集合G<sub>1</sub>中的元素大于阈值A的个数g<sub>1</sub>;若个数g<sub>1</sub>大于阈值B,则令第i+2p行第k列的灰度值G(x<sub>i+2p</sub>,y<sub>k</sub>)=255,其余第i行第k列的灰度值G(x<sub>i</sub>,y<sub>k</sub>)至第i+2p‑1行第k列的灰度值G(x<sub>i+2p‑1</sub>,y<sub>k</sub>)均为0;否则,执行步骤1.2.7;步骤1.2.6、将i+2p赋值给i;并判断i>N是否成立,若成立,则执行步骤1.2.8;否则,返回步骤1.2.3;步骤1.2.7、将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤1.2.8;否则,返回步骤1.2.3;步骤1.2.8、将k+1赋值给k;并判断k>M<sub>1</sub>是否成立,若成立,则执行步骤1.3;否则,返回步骤1.2.2;步骤1.3、对第二图像块的特征边缘进行提取,得到第二边缘图像:步骤1.3.1、初始化k=1;步骤1.3.2、初始化i=1;步骤1.3.3、读取第k行第i列的灰度值G(x<sub>k</sub>,y<sub>i</sub>)和第k行第i+p列的灰度值G(x<sub>k</sub>,y<sub>i+p</sub>)并进行判断,若G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i+p</sub>)>A是否成立,若成立,则计算G<sup>(2)</sup><sub>i,i+p‑1</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i+p‑1</sub>);否则,执行步骤1.3.7;步骤1.3.4、若G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i+p‑1</sub>)>A是否成立,若成立,则计算G<sub>2</sub>={G<sup>(2)</sup><sub>i</sub>,<sub>i+1</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i+1</sub>),G<sup>(2)</sup><sub>i,i+2</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i+2</sub>),…,G<sup>(2)</sup><sub>i,i+2p</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i+2p</sub>)}后,执行步骤1.3.5;否则,执行步骤1.3.7;步骤1.3.5、统计集合G<sub>2</sub>中的元素大于阈值A的个数g<sub>2</sub>;若个数g<sub>2</sub>大于阈值B,则令第k行第i+2p列的灰度值G(x<sub>k</sub>,y<sub>i+2p</sub>)=255,其余第k行第i列的灰度值G(x<sub>k</sub>,y<sub>i</sub>)至第k行第i+2p‑1列的灰度值G(x<sub>k</sub>,y<sub>i+2p‑1</sub>)均为0;否则,执行步骤1.3.7;步骤1.3.6、将i+2p赋值给i;并判断i>M<sub>2</sub>是否成立,若成立,则执行步骤1.3.8;否则,返回步骤1.3.3;步骤1.3.7、将i+1赋值给i;并判断i>M<sub>2</sub>是否成立,若成立,则执行步骤1.3.8;否则,返回步骤1.3.3;步骤1.3.8、将k+1赋值给k;并判断k>N是否成立,若成立,则执行步骤1.4;否则,返回步骤1.3.2;步骤1.4、对第三图像块的特征边缘进行提取,得到第三边缘图像:步骤1.4.1、初始化k=1;步骤1.4.2、初始化i=M<sub>3</sub>;步骤1.4.3、读取第k行第i列的灰度值G(x<sub>k</sub>,y<sub>i</sub>)和第k行第i‑p列的灰度值G(x<sub>k</sub>,y<sub>i‑p</sub>)并进行判断,若G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i‑p</sub>)>A是否成立,若成立,则计算G<sup>(3)</sup><sub>i,i‑p+1</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i‑p+1</sub>);否则,执行步骤1.4.7;步骤1.4.4、若G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i‑p+1</sub>)>A是否成立,若成立,则计算G<sub>3</sub>={G<sup>(3)</sup><sub>i,i+1</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i‑1</sub>),G<sup>(3)</sup><sub>i,i‑2</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i‑2</sub>),…,G<sup>(3)</sup><sub>i,i‑2p</sub>=G(x<sub>k</sub>,y<sub>i</sub>)‑G(x<sub>k</sub>,y<sub>i‑2p</sub>)}后,执行步骤1.4.5;否则,执行步骤1.4.7;步骤1.4.5、统计集合G<sub>3</sub>中的元素大于阈值A的个数g<sub>3</sub>;若个数g<sub>3</sub>大于阈值B,则令第k行第i‑2p列的灰度值G(x<sub>k</sub>,y<sub>i‑2p</sub>)=255,其余第k行第i‑2p+1列的灰度值G(x<sub>k</sub>,y<sub>i‑2p+1</sub>)至第k行第i列的灰度值G(x<sub>k</sub>,y<sub>i</sub>)均为0;否则,执行步骤1.4.7;步骤1.4.6、将i‑2p赋值给i;并判断i<1是否成立,若成立,则执行步骤1.4.8;否则,返回步骤1.4.3;步骤1.4.7、将i‑1赋值给i;并判断i<1是否成立,若成立,则执行步骤1.4.8;否则,返回步骤1.4.3;步骤1.4.8、将k+1赋值给k;并判断k>N是否成立,若成立,则执行步骤1.5;否则,返回步骤1.4.2;步骤1.5、对第四图像块的特征边缘进行提取,得到第四边缘图像:步骤1.5.1、初始化k=1;步骤1.5.2、初始化i=1;步骤1.5.3、读取第i行第k列的灰度值G(x<sub>i</sub>,y<sub>k</sub>)和第i+p行第k列的灰度值G(x<sub>i+p</sub>,y<sub>k</sub>)并进行判断,若G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+p</sub>,y<sub>k</sub>)>A是否成立,若成立,则计算G<sup>(4)</sup><sub>i,i+p‑1</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+p</sub>‑1,y<sub>k</sub>);否则,执行步骤1.5.7;步骤1.5.4、若G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+p‑1</sub>,y<sub>k</sub>)>A是否成立,若成立,则计算G<sub>4</sub>={G<sup>(4)</sup><sub>i,i+1</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+1</sub>,y<sub>k</sub>),G<sup>(4)</sup><sub>i,i+2</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+2</sub>,y<sub>k</sub>),…,G<sup>(4)</sup><sub>i,i+2p</sub>=G(x<sub>i</sub>,y<sub>k</sub>)‑G(x<sub>i+2p</sub>,y<sub>k</sub>)}后,执行步骤1.5.5;否则,执行步骤1.5.7;步骤1.5.5、统计集合G<sub>4</sub>中的元素大于阈值A的个数g<sub>4</sub>;若个数g<sub>4</sub>大于阈值B,则令第i+2p行第k列的灰度值G(x<sub>i+2p</sub>,y<sub>k</sub>)=255,其余第i行第k列的灰度值G(x<sub>i</sub>,y<sub>k</sub>)至第i+2p‑1行第k列的灰度值G(x<sub>i+2p‑1</sub>,y<sub>k</sub>)均为0;否则,执行步骤1.5.7;步骤1.5.6、将i+2p赋值给i;并判断i>N是否成立,若成立,则执行步骤1.5.8;否则,返回步骤1.5.3;步骤1.5.7、将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤1.5.8;否则,返回步骤1.5.3;步骤1.5.8、将k+1赋值给k;并判断k>M<sub>4</sub>是否成立,若成立,则退出;否则,返回步骤1.5.2;由所述第一边缘图像、第二边缘图像、第三边缘图像和第四边缘图像组成所述任意一幅灰度化图像的边缘化图像;步骤2、获取最大置信度车道线及其相关信息:对所述边缘化图像进行Hough变换,得到累加器空间中灰度值为255的像素点的参数对,并从中找出灰度值为255的像素点最多的前2个参数对,记为(r<sub>1</sub>,θ<sub>1</sub>),(r<sub>2</sub>,θ<sub>2</sub>),从而获得两条最大置信度车道线的外边缘方程:<maths num="0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>y</mi><mn>1</mn></msub><mo>=</mo><msub><mi>m</mi><mn>1</mn></msub><msub><mi>x</mi><mn>1</mn></msub><mo>+</mo><msub><mi>b</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>y</mi><mn>2</mn></msub><mo>=</mo><msub><mi>m</mi><mn>2</mn></msub><msub><mi>x</mi><mn>2</mn></msub><mo>+</mo><msub><mi>b</mi><mn>2</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001188465390000041.GIF" wi="501" he="143" /></maths>式(1)中,<img file="FDA0001188465390000042.GIF" wi="1134" he="135" />步骤3、利用式(2)获取消失线y<sub>horizon</sub>:y<sub>horizon</sub>=‑f<sub>e </sub>tanφ+y<sub>0</sub>   (2)式(2)中,f<sub>e</sub>为相机的等效焦距,φ为相机的安装俯仰角,y<sub>0</sub>为相机光轴与成像面的交点与成像中心在Y方向上偏移的像素数目;步骤4、获取消失点相关信息:步骤4.1、将所述消失线y<sub>horizon</sub>上的像素点个数记为M;统计所述消失线y<sub>horizon</sub>以下的像素点中像素值为255的像素点个数,记为C;计算M像素点和C像素点之间的斜率,从而获得斜率集合<img file="FDA0001188465390000044.GIF" wi="1667" he="91" /><img file="FDA0001188465390000045.GIF" wi="72" he="71" />表示所述消失线y<sub>horizon</sub>上第v个像素点与所述消失线y<sub>horizon</sub>以下第u个像素值为255的像素点的斜率;u∈[1,C],v∈[1,M];步骤4.2、利用式(3)所示的投票函数对所述消失线y<sub>horizon</sub>上的每个像素点进行投票,得到所述消失线y<sub>horizon</sub>上投票数最多的像素点作为消失点,记为(x<sub>horizon</sub>,y<sub>horizon</sub>)<maths num="0002"><math><![CDATA[<mrow><mi>v</mi><mi>o</mi><mi>t</mi><mi>e</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><msub><mi>y</mi><mrow><mi>h</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>o</mi><mi>n</mi></mrow></msub><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mi>i</mi><mi>f</mi><mrow><mo>|</mo><mrow><msubsup><mi>k</mi><mi>u</mi><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow></msubsup><mo>-</mo><msub><mi>m</mi><mn>1</mn></msub></mrow><mo>|</mo></mrow><mo>&le;</mo><mi>e</mi><mo>&cup;</mo><mrow><mo>|</mo><mrow><msubsup><mi>k</mi><mi>u</mi><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow></msubsup><mo>-</mo><msub><mi>m</mi><mn>2</mn></msub></mrow><mo>|</mo></mrow><mo>&le;</mo><mi>e</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>e</mi><mi>l</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001188465390000043.GIF" wi="1318" he="151" /></maths>式(3)中,e为角度偏差的阈值;步骤5、获取其它车道线及其相关信息:步骤5.1、从所述累加器空间中灰度值为255的像素点的参数对中获取除前2个参数对(r<sub>1</sub>,θ<sub>1</sub>),(r<sub>2</sub>,θ<sub>2</sub>)之外的W个参数对,记任意个参数对为(r<sub>w</sub>,θ<sub>w</sub>),并利用式(1)获得相应的直线方程为:y<sub>w</sub>=m<sub>w</sub>x<sub>w</sub>+b<sub>w</sub>;步骤5.2、初始化w=1;步骤5.3、判断直线方程y<sub>w</sub>=m<sub>w</sub>x<sub>w</sub>+b<sub>w</sub>通过消失点(x<sub>horizon</sub>,y<sub>horizon</sub>)且<img file="FDA0001188465390000051.GIF" wi="467" he="143" />或<img file="FDA0001188465390000052.GIF" wi="462" he="143" />是否成立,若成立,则判定直线方程y<sub>w</sub>=m<sub>w</sub>x<sub>w</sub>+b<sub>w</sub>为车道线;否则,则判定直线方程y<sub>w</sub>=m<sub>w</sub>x<sub>w</sub>+b<sub>w</sub>为非车道线;步骤5.4、将w+1赋值给w,判断w>W是否成立,若成立,则执行步骤6;否则,返回步骤5.3执行;其中,H为所述图像采集装置的安装高度;h<sub>biaozhun</sub>为车道的标准宽度;步骤6、曲线型车道线的参数寻优及测距工作:步骤6.1、以车道线的实际宽度在灰度化图像上的像素数目p为宽度,并以所述最大置信度车道线的长度或是所述车道线的长度为长度,设定相应的矩形框;步骤6.2、利用式(4)所示的搜索方程对所述矩形框内所有灰度值为255的像素点进行搜索,得到灰度值为255的像素点个数最多时所对应的参数D和E作为曲线形车道线的最优解;<maths num="0003"><math><![CDATA[<mrow><mi>y</mi><mo>-</mo><msub><mi>y</mi><mrow><mi>h</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>o</mi><mi>n</mi></mrow></msub><mo>=</mo><mi>D</mi><mrow><mo>(</mo><mi>x</mi><mo>-</mo><msub><mi>x</mi><mrow><mi>h</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>o</mi><mi>n</mi></mrow></msub><mo>)</mo></mrow><mo>+</mo><mi>E</mi><mfrac><mn>1</mn><mrow><mo>(</mo><mi>x</mi><mo>-</mo><msub><mi>x</mi><mrow><mi>h</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>o</mi><mi>n</mi></mrow></msub><mo>)</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001188465390000053.GIF" wi="1006" he="127" /></maths>步骤6.3、利用式(5)得到道路的曲率ρ:<maths num="0004"><math><![CDATA[<mrow><mi>&rho;</mi><mo>=</mo><mfrac><mrow><mn>2</mn><msup><mi>cos</mi><mn>3</mn></msup><mi>&phi;</mi></mrow><mrow><msubsup><mi>f</mi><mi>e</mi><mn>2</mn></msubsup><mi>H</mi></mrow></mfrac><mi>E</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001188465390000054.GIF" wi="533" he="135" /></maths>步骤6.3、利用式(6)得到车辆纵轴与车道线的侧向距离h:<maths num="0005"><math><![CDATA[<mrow><mi>h</mi><mo>=</mo><mfrac><mi>H</mi><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&phi;</mi></mrow></mfrac><mi>D</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001188465390000055.GIF" wi="526" he="127" /></maths>步骤6.4、利用式(7)得到车辆纵轴与车道线的夹角θ:<maths num="0006"><math><![CDATA[<mrow><mi>&theta;</mi><mo>=</mo><mfrac><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>h</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>o</mi><mi>n</mi></mrow></msub><mo>-</mo><msub><mi>x</mi><mn>0</mn></msub><mo>)</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&phi;</mi></mrow><mrow><mo>-</mo><msub><mi>f</mi><mi>e</mi></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001188465390000056.GIF" wi="534" he="127" /></maths>式(7)中,x<sub>0</sub>为相机光轴与成像面的交点与成像中心在X方向上偏移的像素数目。
地址 230009 安徽省合肥市包河区屯溪路193号