(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 210094)
對(duì)道路環(huán)境的感知是智能車輛的核心技術(shù)之一,道路檢測(cè)是無(wú)人駕駛技術(shù)的一個(gè)重要研究?jī)?nèi)容,為智能車提供可靠的可通行區(qū)域[1]。可靠魯棒的道路邊界檢測(cè)為智能車的路徑規(guī)劃提供關(guān)鍵的信息。
隨著近年來(lái)計(jì)算機(jī)視覺(jué)[2~6]技術(shù)的發(fā)展,相機(jī)被廣泛應(yīng)用于道路邊緣檢測(cè)。相機(jī)的分辨率很高,圖像可以獲取十分豐富的環(huán)境信息,并利用顏色、紋理等特征進(jìn)行區(qū)域的生長(zhǎng)和分割。不過(guò)相機(jī)容易受到自然環(huán)境的干擾,如光照、天氣等。激光雷達(dá)是一種主動(dòng)式傳感器,測(cè)量距離遠(yuǎn)、精度高、不受光照和陰影遮擋的影響[7~12],能夠在雨雪、霧霾等惡劣環(huán)境條件下穩(wěn)定工作。高分辨率激光雷達(dá)對(duì)于復(fù)雜環(huán)境下的環(huán)境感知能力十分強(qiáng)大,三維激光雷是智能駕駛中不可或缺的傳感器。
柵格映射法[13~14]是常用的道路檢測(cè)以及障礙物檢測(cè)方法,將三維點(diǎn)云利用高程差映射到二維的柵格地圖中,這大大減小了計(jì)算量,然后提取邊界種子點(diǎn)并進(jìn)行曲線擬合的方式擬合出道邊,然而對(duì)于道路邊緣與道路無(wú)明顯高度差的環(huán)境效果不好。文獻(xiàn)[15]的地面分割基于每個(gè)扇形中提取的直線,此方法可用于平坦場(chǎng)景,在顛簸路面或起伏較大場(chǎng)景效果不佳,且易于受路內(nèi)障礙物干擾?;跓o(wú)向圖的方法[16]充分利用了存儲(chǔ)和計(jì)算資源,可對(duì)包含噪聲的復(fù)雜場(chǎng)景下的點(diǎn)云進(jìn)行分割并可以獲得較高的檢測(cè)精度,然而時(shí)間復(fù)雜度大,處理數(shù)據(jù)量較大的點(diǎn)云耗費(fèi)時(shí)長(zhǎng)。由于道路邊界具有多樣性、道路顛簸起伏、道路中存在障礙物以及車輛運(yùn)動(dòng)復(fù)雜性等情況,因此很難建立固定的模型對(duì)道路進(jìn)行準(zhǔn)確、可靠的識(shí)別。本文基于64線激光雷達(dá)點(diǎn)云的空間鄰域多特征進(jìn)行點(diǎn)云分割,建立相應(yīng)的柵格地圖,并基于柵格地圖檢測(cè)道路邊界以及道路區(qū)域的障礙物。
64線激光雷達(dá)一幀數(shù)據(jù)大約有11萬(wàn)個(gè)點(diǎn),數(shù)據(jù)量巨大,首先通過(guò)濾波處理數(shù)、去噪以及位姿修正。
1)使用直通濾波器確定點(diǎn)云在x、y、z方向上的范圍,較快得到感興趣區(qū)域。橫向上保留距離車身左右各20m范圍內(nèi)的點(diǎn),縱向上保留車后20m、車前60m范圍內(nèi)的點(diǎn)云;
2)由于激光雷達(dá)安裝的周圍車體有可能被掃描到,可將雷達(dá)周圍2m左右范圍的點(diǎn)濾波處理掉以消除干擾;
3)使用統(tǒng)計(jì)濾波器去除離群點(diǎn);
4)利用慣導(dǎo)的位姿信息對(duì)點(diǎn)云進(jìn)行位姿修正。
柵格法將三維點(diǎn)云映射到二維的柵格地圖中,大大減小了計(jì)算量,不過(guò)對(duì)于道路邊緣及無(wú)明顯高程差的場(chǎng)景不適用。首先使用最大最小柵格法粗分割:利用柵格內(nèi)最大最小高度差特征對(duì)預(yù)處理后的點(diǎn)云進(jìn)行提取,能夠較快得到障礙物柵格以及地面柵格,分離出地面柵格內(nèi)的點(diǎn)云與障礙物柵格內(nèi)的點(diǎn)云。
激光雷達(dá)安裝高度是固定的,且雷達(dá)的垂直角分辨率、水平角分辨率也是固定值,因此理想情況下,激光掃描線在路面上的投影是一個(gè)個(gè)同心圓,不同激光束掃描在地面上的距離是固定的,于是不同掃描線間的距離固定,而且一條激光束上的相鄰點(diǎn)云間的距離也是固定的。假設(shè)激光雷達(dá)安裝高度為H,某束激光線的垂直角度為ω,角度分辨率為β,則該束激光線掃描在地面上的距離Le為
該束激光線上相鄰點(diǎn)云的間距ΔSe為
根據(jù)單束激光掃描線上相鄰點(diǎn)的距離、高度差特征對(duì)上面地面柵格內(nèi)的點(diǎn)云進(jìn)行分割。理想情況下一束激光線上相鄰點(diǎn)云的距離是固定的且無(wú)高度差,當(dāng)?shù)缆分杏懈哒系K遮擋時(shí),激光點(diǎn)間的距離會(huì)離得較遠(yuǎn),且高度差也較大;當(dāng)掃在路牙等障礙物上時(shí),相鄰點(diǎn)云的距離及高度差也會(huì)發(fā)生明顯變化。計(jì)算相鄰點(diǎn)間的高度差Ti,當(dāng)Ti大于閾值Th時(shí),則取為障礙物候選點(diǎn);當(dāng)Ti小于閾值Th時(shí),計(jì)算相鄰點(diǎn)的距離Si,如果Si大于ΔSe,則取為障礙物點(diǎn)。但是道路邊緣高度差不是很明顯時(shí)檢測(cè)效果不好,因此引入二維平面單束激光掃描線的曲率特征,一束激光線上相鄰三點(diǎn)構(gòu)成的三角形在俯仰和側(cè)傾的情形下,三角形的變化很小。但是在碰到路牙障礙等,三角形會(huì)發(fā)生明顯變化。假定在XOY 平面坐標(biāo)分別為A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3),根據(jù)余弦定理,三個(gè)點(diǎn)中間點(diǎn)B的角度θ可以由式(6)計(jì)算得出:
當(dāng)激光束掃描到路面上時(shí),cosθ保持在一個(gè)比較穩(wěn)定的值,當(dāng)激光束掃描到道路障礙物或者道路邊界時(shí),cosθ會(huì)發(fā)生明顯變化,通過(guò)計(jì)算cosθ的變化便可以獲得一系列平滑度發(fā)生變化的數(shù)據(jù)點(diǎn),當(dāng)?shù)缆愤吔绮皇呛苊黠@時(shí)也能提取出有效的候選點(diǎn)。
因此點(diǎn)云分割的流程為
1)利用柵格內(nèi)最大最小高度差特征對(duì)預(yù)處理后的點(diǎn)云S進(jìn)行粗提取,可分離出較明顯的障礙物點(diǎn)Sng及地面點(diǎn)Sg;
2)利用單束激光線上相鄰點(diǎn)的距離及高度差特征、曲率特征對(duì)地面點(diǎn)Sg進(jìn)行細(xì)分割,分離出其中低矮的障礙物,得到最終的分割結(jié)果。
根據(jù)點(diǎn)云分割結(jié)果構(gòu)建柵格地圖,然后利用逐行掃描法對(duì)邊界進(jìn)行提取,假設(shè)當(dāng)前車輛行駛方向與道路方向保持一致,沿車頭朝前方向逐掃描線進(jìn)行掃描,車左右分別搜索邊界候選點(diǎn)。當(dāng)?shù)缆分谐霈F(xiàn)車輛、行人等障礙物遮擋,逐行掃描會(huì)將道路中的障礙物識(shí)判別為邊界,當(dāng)?shù)缆愤吔绫旧泶嬖谌笨跁r(shí)會(huì)將道路缺口外部識(shí)別為邊界,造成道路邊界識(shí)別錯(cuò)誤。為解決道路邊界遮擋、斷開(kāi)等問(wèn)題,需使用道路的固有屬性:連續(xù)性以及寬度不會(huì)突變的特性來(lái)排除干擾?;玖鞒倘缦?。
1)基于逐行掃描算法提取道路邊界候選點(diǎn),計(jì)算道路的寬度信息,獲取道路寬度分布直方圖,如圖1。道路邊界的最大特性是連續(xù)性,可以統(tǒng)計(jì)道路寬度分布直方圖的分布范圍獲取道路的最大似然寬度,依此作為道路寬度的估計(jì)值Wp。
圖1 道路寬度分布圖
2)道路邊界存在障礙物遮擋時(shí),計(jì)算出的道路寬度比估計(jì)值要小于Wp,道路邊界存在缺口時(shí),計(jì)算的道路寬度比估計(jì)值大,利用兩端正常的邊界候選點(diǎn)進(jìn)行過(guò)插值補(bǔ)充,得到最終的邊界候選點(diǎn)。排除干擾前后如圖2。
圖2 排除干擾前以及排除干擾后的路沿候選點(diǎn)
3)基于RANSAC算法擬合出左右道路邊界線。
根據(jù)上一章節(jié)中得到的障礙物柵格地圖以及根據(jù)柵格地圖得到的道路邊界信息,然后對(duì)屬于道路區(qū)域的障礙物進(jìn)行聚類檢測(cè)。柵格地圖中的每個(gè)柵格間相互獨(dú)立、互不影響,不過(guò)根據(jù)激光雷達(dá)的點(diǎn)云分布情況以及柵格地圖的構(gòu)建,一個(gè)障礙物會(huì)由多個(gè)障礙物柵格組成,且其距離比較近,因此如果某個(gè)障礙物柵格的鄰域也是障礙物柵格,那么它們很有可能是同一類且共同組成同一個(gè)障礙物?;谶@樣的認(rèn)識(shí),本文采用圖像處理中十分常用的二維連通域標(biāo)記法,利用區(qū)域生長(zhǎng)法對(duì)障礙物柵格的鄰域進(jìn)行聚類處理,這充分利用了柵格地圖,避免了對(duì)點(diǎn)云數(shù)據(jù)的直接處理,大大減少了數(shù)據(jù)處理量,處理效率高。該方法能夠?qū)⑾嗤卣鞯倪B通區(qū)域分割出來(lái),同時(shí)保證良好的邊緣信息,且步驟簡(jiǎn)潔。
區(qū)域生長(zhǎng)法聚類的基本流程如下:
Step1:輸入要進(jìn)行障礙物聚類的道路柵格區(qū)域Grids,并初始化要輸出的障礙物列表Objects;
Step2:遍歷Grids中柵格,跳過(guò)空閑狀態(tài)的柵格,對(duì)于占據(jù)狀態(tài)的柵格,將其從Grids列表中刪除,將此柵格標(biāo)記為objecti(i=1,2,3…)并加入到障礙物列表Objects中;
Step3:對(duì)Step2中的占據(jù)柵格進(jìn)行8鄰域方向的生長(zhǎng)操作,如果鄰域中柵格為占據(jù)狀態(tài),則將柵格標(biāo)記為objecti并從Grids列表刪除,然后對(duì)此占據(jù)狀態(tài)的柵格繼續(xù)進(jìn)行8鄰域生長(zhǎng),直到無(wú)法繼續(xù)生長(zhǎng)下去;
Step4:重復(fù)執(zhí)行 Step2~Step3,直到 Grids中的所有占據(jù)狀態(tài)的點(diǎn)都被處理;
Step5:若某objecti目標(biāo)中柵格數(shù)量小于閾值,則將其去除,得到最終的障礙物目標(biāo)列表Objects。
障礙物柵格被聚成不同類后,得到組成不同目標(biāo)對(duì)象的柵格集合,由于點(diǎn)云打在障礙物上只能表示障礙物的部分輪廓信息,為了描述障礙物的大小、整體輪廓信息以及中心點(diǎn)特征,一般使用矩形框描述目標(biāo)的狀態(tài)特征,用矩形框把每一個(gè)聚類好的物體框出來(lái)。AABB包圍盒是和坐標(biāo)軸對(duì)齊的邊界框,比較簡(jiǎn)單但是緊密性較差,且無(wú)法描述目標(biāo)的朝向;而有向包圍盒OBB能夠描述目標(biāo)的位置與大致朝向。考慮到道路環(huán)境中障礙物大多為車輛、行人等,因此使用主成分分析法(PCA)獲取目標(biāo)對(duì)象的最小外接矩形框,使用OBB包圍盒描述對(duì)象。
PCA是一種十分常用的數(shù)據(jù)降維方法,其主要思想是通過(guò)線性變換的方法,將一組高維數(shù)據(jù)投影成互不相關(guān)的低維數(shù)據(jù),保留原始數(shù)據(jù)中最關(guān)鍵、最具代表性的數(shù)據(jù),以壓縮數(shù)據(jù)量從而加速運(yùn)算過(guò)程。PCA將N維特征投影映射到k維上(其中k 對(duì)于經(jīng)過(guò)聚類得到的某個(gè)目標(biāo)柵格集合ob?ject,假設(shè)有m條數(shù)據(jù),柵格的位置使用(x,y)來(lái)表示,因而是二維的數(shù)據(jù)。PCA獲得OBB包圍盒的過(guò)程為 Step1:將原始數(shù)據(jù)按照列組成兩行m列的矩陣X; Step2:計(jì)算柵格中心點(diǎn)的x、y坐標(biāo)值,中心點(diǎn)坐標(biāo)通過(guò)x、y方向的均值得到; Step3:將X矩陣中的每一個(gè)屬性(x,y)進(jìn)行零均值化,即減去對(duì)應(yīng)的均值; Step5:計(jì)算協(xié)方差矩陣的特征值以及對(duì)應(yīng)的特征向量; Step6:兩個(gè)特征向量所指向的方向代表該目標(biāo)的方向,也就是目標(biāo)最小矩形框的長(zhǎng)、寬的方向; Step7:根據(jù)中心點(diǎn)位置確定兩個(gè)特征向量的位置,分別計(jì)算聚類中的點(diǎn)到兩個(gè)特征向量的最大距離,將距離乘以2就是障礙物目標(biāo)對(duì)象的最小外接矩形框的尺寸。 PCA過(guò)程可以得到最小外接矩形的中心點(diǎn)、長(zhǎng)度、寬度、最大特征值所對(duì)應(yīng)的特征向量與x軸正半軸間的夾角也就是目標(biāo)的朝向特征。根據(jù)目標(biāo)對(duì)象的高度值,還能得到每個(gè)目標(biāo)聚類的外接長(zhǎng)方體。 為了驗(yàn)證本文方法,通過(guò)安裝在地面試驗(yàn)平臺(tái)的Velodyne64線激光雷達(dá)采集數(shù)據(jù),雷達(dá)安裝高度為1.8m;雷達(dá)在水平方向測(cè)量范圍為0~360°,水平分辨率為0.09°;垂直方向測(cè)量范圍為向上+2°到向下-24.8°,垂直角分辨率為0.42°。 如圖3所示為點(diǎn)云分割結(jié)果,圖中藍(lán)色點(diǎn)云為利用最大最小高度差特征得到的障礙物柵格內(nèi)的點(diǎn)云,即表示高障礙;紅色點(diǎn)云為為對(duì)屬于地面柵格內(nèi)的點(diǎn)云進(jìn)行二次分割得到的非地面點(diǎn)云,即表示低矮障礙;綠色區(qū)域?yàn)榈玫降牡孛纥c(diǎn)云。 圖3 不同場(chǎng)景點(diǎn)云分割效果 場(chǎng)景1中道路邊界比較明顯,道路比較平坦,因此道路區(qū)域點(diǎn)云比較光滑,基于最大最小柵格法能夠基本分離出車輛,行人等,在障礙物完整保留的基礎(chǔ)上,路面被完整分割,沒(méi)有產(chǎn)生漏分割和過(guò)分割現(xiàn)象。場(chǎng)景2中道路左側(cè)的車輛都得到有效分離,車輛右側(cè)為多條鐵路軌道,因此初次分割時(shí)只檢測(cè)到近處的部分非地面點(diǎn)云,較低的障礙并沒(méi)有檢測(cè)出來(lái),不過(guò)經(jīng)過(guò)二次分離后,鐵軌處的點(diǎn)云基本都能檢測(cè)出。 圖4為道路邊界檢測(cè)的結(jié)果。場(chǎng)景3中在道路左側(cè)有車輛遮擋,但是擬合過(guò)程中利用道路的固有屬性排除了車輛遮擋的干擾,準(zhǔn)確擬合出道路邊界;場(chǎng)景4中車輛前方障礙物過(guò)多,導(dǎo)致道邊擬合受到了干擾,將打在車輛上的點(diǎn)誤認(rèn)為是道路的邊界點(diǎn),在車輛附近擬合出道路邊界。 圖4 不同場(chǎng)景道邊檢測(cè)結(jié)果 圖5為在障礙物柵格地圖中聚類檢測(cè)效果,道路前方有車輛、行人以及騎自行車的人,其中行人以及車輛沿著道路向前進(jìn),騎自行車的人向左側(cè)拐彎。障礙物柵格地圖5(a)中可見(jiàn)分離出合適的道路區(qū)域且擬合出準(zhǔn)確的道路邊界,前方障礙物都得到有效檢測(cè)。圖5(b)中對(duì)道路區(qū)域的障礙物使用區(qū)域生長(zhǎng)算法進(jìn)行聚類,并繪制了黃顏色的有向包圍盒,其描述了目標(biāo)的輪廓特征,通過(guò)包圍盒可見(jiàn)行人以及車輛的運(yùn)動(dòng)方向與本車大致平行,而騎自行車的人向左前方運(yùn)動(dòng)的特征也能通過(guò)包圍盒看出。 圖5 柵格圖中障礙物聚類檢測(cè)效果 實(shí)驗(yàn)中采集了2000幀的數(shù)據(jù),算法運(yùn)行時(shí)間如圖6所示,平均運(yùn)行時(shí)間為40.3ms,點(diǎn)云分割準(zhǔn)確率達(dá)到96.13%,運(yùn)行時(shí)間滿足智能駕駛的實(shí)時(shí)性的需求。 圖6 算法運(yùn)行時(shí)間圖 針對(duì)智能駕駛中道邊檢測(cè)以及障礙物檢測(cè)的問(wèn)題,本文首先利用柵格法粗分割點(diǎn)云,減少了計(jì)算量,然后利用相鄰點(diǎn)云的距離、高度、角度差等空間鄰域特征對(duì)點(diǎn)云進(jìn)行二次分割,然后建立相應(yīng)的障礙物柵格地圖,并利用道路的連續(xù)性特征進(jìn)行道路邊界的擬合,能適用于有少量障礙物遮擋的情景;基于柵格地圖利用區(qū)域生長(zhǎng)法進(jìn)行障礙物聚類檢測(cè),并基于PCA得到目標(biāo)特征。算法的準(zhǔn)確性以及運(yùn)行效率滿足智能駕駛的需求,但是對(duì)于遮擋過(guò)多的情形,道邊檢測(cè)的準(zhǔn)確性還有待提高。4 實(shí)驗(yàn)結(jié)果與分析
5 結(jié)語(yǔ)