matlab点云中值滤波,基于车载激光雷达的车道线识别方法与流程
本發(fā)明屬于自動駕駛的模式識別領(lǐng)域,涉及激光雷達(dá)點(diǎn)云數(shù)據(jù)處理及識別方法。
背景技術(shù):
車道線檢測在智能車輛輔助安全系統(tǒng)中起著關(guān)鍵的作用,車道偏離警示系統(tǒng)在車道保持輔助系統(tǒng)以及車道換道輔助系統(tǒng)中有著廣泛的應(yīng)用;同時(shí)車道線檢測是智能車自動導(dǎo)航系統(tǒng)的基礎(chǔ),車輛自動導(dǎo)航的最優(yōu)行駛路徑需要根據(jù)已獲取的道路環(huán)境信息進(jìn)行規(guī)劃,車道線檢測在具體的車道行駛中是非常重要的。
車道線檢測的基本原理是使用傳感器獲取道路以及周邊環(huán)境信息,然后經(jīng)過復(fù)雜的分析獲取車道線所在的具體位置,最終在車輛自主導(dǎo)航系統(tǒng)和智能車輛輔助安全系統(tǒng)中發(fā)揮作用。目前,車道線檢測方法有三種:分別是基于雷達(dá)的車道線檢測、基于視覺的車道線檢測和雷達(dá)與視覺相結(jié)合的車道線檢測。目前基于視覺的車道線檢測技術(shù)已經(jīng)比較成熟,它是通過相機(jī)獲取道路信息,通過直接利用道路的視覺特征,這種方式有著很快的處理速度,因此被廣泛的應(yīng)用;但相機(jī)本身有個(gè)很大的缺陷就是易受外界環(huán)境的影響。由于雷達(dá)技術(shù)的發(fā)展使其具有及其不容易受外界環(huán)境的影響這一優(yōu)勢,基于雷達(dá)的車道線檢測成為了研究熱點(diǎn)。目前使用在車道線檢測上的雷達(dá)主要是激光雷達(dá)和毫米波雷達(dá),因?yàn)榧す饫走_(dá)有著強(qiáng)大的抗外界干擾能力和高分辨率優(yōu)勢,因此被廣泛使用。激光雷達(dá)分為單線激光雷達(dá)、多線激光雷達(dá)和三維全向激光雷達(dá)。其中因?yàn)槎嗑€激光雷達(dá)探測距離更遠(yuǎn)、檢測精確度更高、掃描范圍更廣并且返回信息量更大;三維全向激光雷達(dá)價(jià)格過高而備受青睞。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的
本發(fā)明使用激光雷達(dá)傳感器做車道線識別,解決了傳統(tǒng)相機(jī)在夜晚、霧天等光照條件不好的情況下無法識別車道線的問題。
技術(shù)方案
一種基于車載激光雷達(dá)的車道線識別方法,其特征在于:步驟如下:
一、讀取curb中間的道路點(diǎn)云數(shù)據(jù):
使用32線激光雷達(dá)傳感器,將此傳感器豎直的安裝在自車的車頂,以獲取道路及其周圍的環(huán)境點(diǎn)云數(shù)據(jù);
(1)使用最小二乘算法分別擬合左、右curb的函數(shù)關(guān)系式y(tǒng)l=alxl+bl和yr=arxr+br,其中yl代表左邊curb點(diǎn)云的縱坐標(biāo)值,xl代表左邊curb點(diǎn)云的橫坐標(biāo)值,al為左邊curb函數(shù)式的系數(shù),bl為左邊curb函數(shù)式的截距,yr代表右邊curb點(diǎn)云的縱坐標(biāo)值,xr代表右邊curb點(diǎn)云的橫坐標(biāo)值,ar為右邊curb函數(shù)式的系數(shù),br為右邊curb函數(shù)式的截距;
(2)根據(jù)左、右curb的函數(shù)關(guān)系式y(tǒng)l=alxl+bl和yr=arxr+br使用Visual Studio平臺中的C++編程提取curb中間的道路點(diǎn)云數(shù)據(jù)(x1,y1),(x2,y2)...(xn,yn),其中n代表提取的點(diǎn)云個(gè)數(shù),為后續(xù)識別車道線做準(zhǔn)備;
(3)取由激光雷達(dá)的1-22線束獲取的點(diǎn)云數(shù)據(jù);
二、排序:
首先對路面數(shù)據(jù)分開處理,以自車坐標(biāo)為原點(diǎn),分別將數(shù)據(jù)根據(jù)笛卡爾坐標(biāo)系的縱坐標(biāo)0點(diǎn)為基準(zhǔn),存成兩類,分別為縱坐標(biāo)值大于0和縱坐標(biāo)值小于等于0,路面數(shù)據(jù)從小到大快速有序進(jìn)行排列存儲;
三、均值濾波:
使用均值濾波算法,對數(shù)據(jù)進(jìn)行平滑操作;
四、尋找峰值:
對于通過激光雷達(dá)獲取的點(diǎn)云數(shù)據(jù)的強(qiáng)度值,由同一個(gè)線束返回的多點(diǎn)云強(qiáng)度值就會出現(xiàn)局部峰值,此局部峰值點(diǎn)即為車道線的強(qiáng)度;
因?yàn)閷?shí)際的數(shù)據(jù)處理中有噪聲的干擾,因此多點(diǎn)云強(qiáng)度值局部會出現(xiàn)很多的峰值點(diǎn),然而并不是所有的峰值點(diǎn)都是車道線的數(shù)據(jù)點(diǎn),根據(jù)車道線的強(qiáng)度值要比路面點(diǎn)的強(qiáng)度值大很多這一信息,設(shè)置峰值點(diǎn)要比其峰谷點(diǎn)至少大5,才認(rèn)為是有意義的車道線數(shù)據(jù)點(diǎn);
五、車道線高度信息篩選:
車道線是在路面刷了一層涂漆,那么這層涂漆就會高出其周圍的路面,根據(jù)此信息,我們選取強(qiáng)度峰值周圍的點(diǎn),并在這些點(diǎn)中,找出高度較其他點(diǎn)高的點(diǎn),這些點(diǎn)就是組成車道線標(biāo)識的點(diǎn),這里需要使用均值濾波進(jìn)行平滑處理;六、多線束聯(lián)合篩選峰值:
因?yàn)檐嚨谰€是具有線性特征的,那么每個(gè)線束提取的峰值如果是車道線標(biāo)識點(diǎn),那么其相對應(yīng)的在其最鄰近線束應(yīng)該具有x軸方向橫向距離不超過車道線標(biāo)識寬度的峰值點(diǎn);為了剔除噪聲點(diǎn)的干擾,這個(gè)連續(xù)的峰值點(diǎn)還需大于一定數(shù)目,將此橫向距離閾值設(shè)置為0.15m,連續(xù)的點(diǎn)數(shù)目閾值設(shè)置為10,即這個(gè)連續(xù)的點(diǎn)數(shù)目超過10,我們才認(rèn)為它是組成車道線的峰值點(diǎn);
由第一線數(shù)的峰值點(diǎn)找到第二線束的峰值點(diǎn),再由第二線束的峰值點(diǎn)找到第三線束的峰值點(diǎn),以此類推直到搜索到最后一個(gè)線束;然后判斷找到的峰值點(diǎn)總數(shù)是否滿足我們設(shè)置的閾值,滿足則保留,否則丟棄;
然后從第一線數(shù)的其余峰值點(diǎn)繼續(xù)按照上述方法往下找,直到遍歷完所有峰值點(diǎn),已經(jīng)遍歷過的點(diǎn)不再參與遍歷操作;
以上多線束聯(lián)合,將基于自車坐標(biāo)的y軸上、下部分分開操作;
如此,為了減小計(jì)算量和無用信息的干擾,首先通過curb限制,提取了道路信息點(diǎn),然后根據(jù)車道線的強(qiáng)度特征,使用峰值法粗篩選車道線點(diǎn),最后根據(jù)車道線的線性特征,使用多線束聯(lián)合法篩選掉干擾點(diǎn),進(jìn)而將自車前方和后方的車道線識別出來。
上述步驟二-步驟六的數(shù)據(jù)分析均采用單線束獨(dú)立分析。
優(yōu)點(diǎn)及效果
本發(fā)明的識別方法通過使用激光雷達(dá)獲取的點(diǎn)云數(shù)據(jù)進(jìn)行車道線識別,很好的克服了傳統(tǒng)視覺算法檢測的缺點(diǎn),即使在下雨、大霧等天氣不好的情況下也能很好的進(jìn)行車道線檢測。并且激光雷達(dá)分辨率高,掃描范圍廣,通過復(fù)雜的數(shù)據(jù)分析和多幀聯(lián)合能夠快速且精確的檢測出車道線。
附圖說明
圖1、原始點(diǎn)云數(shù)據(jù)圖;
圖2、單線束自車上半部分強(qiáng)度趨勢圖;
圖3、均值濾波之后的強(qiáng)度數(shù)據(jù)趨勢;
圖4、原數(shù)據(jù)高度趨勢;
圖5、均值濾波后數(shù)據(jù)高度趨勢;
圖6、原圖;
圖7、平滑后的數(shù)據(jù)圖;
圖8、多線束聯(lián)合;
圖9、識別效果圖1;
圖10、識別效果圖2;
圖11、識別效果圖3;
圖12、耗時(shí)統(tǒng)計(jì)。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明做進(jìn)一步的說明:
基于車載激光雷達(dá)的車道線識別方法,步驟如下:
一、讀取curb(curb即為馬路牙子)中間的道路點(diǎn)云數(shù)據(jù):
本實(shí)施例中,使用32線激光雷達(dá)傳感器,將此傳感器豎直的安裝在自車的車頂,以獲取道路及其周圍的環(huán)境點(diǎn)云數(shù)據(jù);
(1)首先為了限制道路分析區(qū)域,使用最小二乘算法分別擬合左、右curb的函數(shù)關(guān)系式y(tǒng)l=alxl+bl和yr=arxr+br,其中yl代表左邊curb點(diǎn)云的縱坐標(biāo)值,xl代表左邊curb點(diǎn)云的橫坐標(biāo)值,al為左邊curb函數(shù)式的系數(shù),bl為左邊curb函數(shù)式的截距,yr代表右邊curb點(diǎn)云的縱坐標(biāo)值,xr代表右邊curb點(diǎn)云的橫坐標(biāo)值,ar為右邊curb函數(shù)式的系數(shù),br為右邊curb函數(shù)式的截距;
(2)根據(jù)左、右curb的函數(shù)關(guān)系式y(tǒng)l=alxl+bl和yr=arxr+br使用Visual Studio平臺中的C++編程提取curb中間的道路點(diǎn)云數(shù)據(jù)(x1,y1),(x2,y2)...(xn,yn),其中n代表提取的點(diǎn)云個(gè)數(shù),為后續(xù)識別車道線做準(zhǔn)備;
縮編程序代碼:
(3)根據(jù)數(shù)據(jù)統(tǒng)計(jì)結(jié)果以及雷達(dá)線束掃描方式,發(fā)現(xiàn)并不是雷達(dá)所有線束都能打到地面獲取數(shù)據(jù),取由激光雷達(dá)的1-22線束獲取的點(diǎn)云數(shù)據(jù);
以下步驟二-步驟六的數(shù)據(jù)分析均采用單線束獨(dú)立分析;
二、排序:
為了更好的使用強(qiáng)度信息進(jìn)行車道線和道路分離,首先對路面數(shù)據(jù)分開處理,以自車坐標(biāo)為原點(diǎn),其坐標(biāo)系如圖1坐標(biāo)線所示,分別將數(shù)據(jù)根據(jù)笛卡爾坐標(biāo)系的縱坐標(biāo)0點(diǎn)為基準(zhǔn),存成兩類,分別為縱坐標(biāo)值大于0和縱坐標(biāo)值小于等于0,路面數(shù)據(jù)從小到大快速有序進(jìn)行排列存儲(即如圖1虛線箭頭所示,從左到右的方向);
三、均值濾波:
對排序好的數(shù)據(jù),觀察其強(qiáng)度變化趨勢如圖2所示,從圖2我們可以發(fā)現(xiàn)數(shù)據(jù)并不平滑,不利于尋找峰值,于是這里使用本技術(shù)領(lǐng)域的均值濾波算法,對數(shù)據(jù)進(jìn)行平滑操作,濾波后的數(shù)據(jù)趨勢如圖3所示;
四、尋找峰值:
對于通過激光雷達(dá)獲取的點(diǎn)云數(shù)據(jù)的強(qiáng)度值,物體材質(zhì)不同返回的強(qiáng)度數(shù)據(jù)是不一樣的,通常車道線的強(qiáng)度值要大于道路強(qiáng)度值;那么,由同一個(gè)線束返回的多點(diǎn)云強(qiáng)度值就會出現(xiàn)局部峰值,此局部峰值點(diǎn)即為車道線的強(qiáng)度,如圖3中代表的點(diǎn)(圓圈里的值);
因?yàn)閷?shí)際的數(shù)據(jù)處理中有噪聲的干擾,因此多點(diǎn)云強(qiáng)度值局部會出現(xiàn)很多的峰值點(diǎn),然而并不是所有的峰值點(diǎn)都是車道線的數(shù)據(jù)點(diǎn),根據(jù)車道線的強(qiáng)度值要比路面點(diǎn)的強(qiáng)度值大很多這一信息,設(shè)置峰值點(diǎn)要比其峰谷點(diǎn)至少大5,才認(rèn)為是有意義的車道線數(shù)據(jù)點(diǎn);
五、車道線高度信息篩選:
車道線是在路面刷了一層涂漆,那么這層涂漆就會高出其周圍的路面,根據(jù)此信息,我們選取強(qiáng)度峰值周圍的點(diǎn),如圖4所示,并在這些點(diǎn)中,找出高度較其他點(diǎn)高的點(diǎn),如圖5所示圓圈里的點(diǎn),這些點(diǎn)就是組成車道線標(biāo)識的點(diǎn),因?yàn)樵趯?shí)際道路中車道線會有磨損等一些外力的干擾,其呈現(xiàn)的數(shù)據(jù)趨勢并不是我們理想中很明顯的找出有高度特征的趨勢,如圖6原始數(shù)據(jù)和圖7使用均值濾波處理后的數(shù)據(jù)對比所示,所以這里需要使用均值濾波進(jìn)行平滑處理;
六、多線束聯(lián)合篩選峰值:
因?yàn)檐嚨谰€是具有線性特征的,那么每個(gè)線束提取的峰值如果是車道線標(biāo)識點(diǎn),那么其相對應(yīng)的在其最鄰近線束應(yīng)該具有x軸方向橫向距離不超過車道線標(biāo)識寬度的峰值點(diǎn);為了剔除噪聲點(diǎn)的干擾,這個(gè)連續(xù)的峰值點(diǎn)還需大于一定數(shù)目,我們才認(rèn)為它是構(gòu)成車道線的峰值點(diǎn);根據(jù)《道路交通標(biāo)志和標(biāo)線》國家標(biāo)準(zhǔn)(GB5768-1999)的規(guī)定,我國現(xiàn)行的道路交通指示標(biāo)線寬10-20cm,并且分析現(xiàn)在處理的數(shù)據(jù)后,我們將此橫向距離閾值設(shè)置為0.15m,連續(xù)的點(diǎn)數(shù)目閾值設(shè)置為10,即這個(gè)連續(xù)的點(diǎn)數(shù)目超過10,我們才認(rèn)為它是組成車道線的峰值點(diǎn);
如圖8所示,由第一線數(shù)的峰值點(diǎn)1找到第二線束的峰值點(diǎn)2,再由第二線束的峰值點(diǎn)2找到第三線束的峰值點(diǎn)3,以此類推直到搜索到最后一個(gè)線束N;然后判斷找到的峰值點(diǎn)總數(shù)是否滿足我們設(shè)置的閾值,滿足則保留,否則丟棄;
然后從第一線數(shù)的11點(diǎn)繼續(xù)按照上述方法,往下找,直到遍歷完所有峰值點(diǎn),注意,已經(jīng)遍歷過的點(diǎn)不再參與遍歷操作;
因?yàn)榭紤]到車道線標(biāo)識有錯(cuò)開的情況,所以以上多線束聯(lián)合,將基于自車坐標(biāo)的y軸上、下部分分開操作;
如此,為了減小計(jì)算量和無用信息的干擾,我們首先通過curb限制,提取了道路信息點(diǎn),然后根據(jù)車道線的強(qiáng)度特征,使用峰值法粗篩選車道線點(diǎn),最后根據(jù)車道線的線性特征,使用多線束聯(lián)合法篩選掉干擾點(diǎn),進(jìn)而將自車前方和后方的車道線識別出來。
識別效果如圖9、圖10和圖11所示,圖中圓點(diǎn)即為識別出來的車道線的點(diǎn)。
選取高速路上的200幀數(shù)據(jù)的耗時(shí)進(jìn)行分析,如圖12所示,平均耗時(shí)為37ms。
總結(jié)
以上是生活随笔為你收集整理的matlab点云中值滤波,基于车载激光雷达的车道线识别方法与流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AsciiDoc的安装和简单使用
- 下一篇: decawave1001-DEV简介开发