寧小娟,鞏 亮,張金磊
(西安理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710048)
隨著人工智能技術(shù)的快速發(fā)展,無(wú)人駕駛應(yīng)用越來(lái)越廣泛。環(huán)境感知技術(shù)作為無(wú)人駕駛中至關(guān)重要的一環(huán),是無(wú)人車(chē)安全性和智能性的保障,通過(guò)激光雷達(dá)采集技術(shù)可以捕獲更多的道路環(huán)境信息,更加有利于車(chē)輛感知周邊的道路情況,并做出合理的路徑規(guī)劃和行為操作。但由于激光雷達(dá)設(shè)備價(jià)格昂貴和場(chǎng)景數(shù)據(jù)復(fù)雜,因此激光雷達(dá)環(huán)境感知技術(shù)研究是一項(xiàng)極具挑戰(zhàn)性的課題。
在地面分割方面,主要包括基于柵格[1-2]、基于線特征[3-4]、基于平面擬合[5]等3 類(lèi)方法。文獻(xiàn)[1]通過(guò)繪制網(wǎng)格化的三維點(diǎn)云數(shù)據(jù)的均值高程圖并設(shè)置高度閾值來(lái)分割地面數(shù)據(jù)和非地面數(shù)據(jù)。文獻(xiàn)[3]提出一種基于掃描線相鄰點(diǎn)的特征信息的地面分割算法,該算法主要對(duì)相鄰掃描線幾何特征信息進(jìn)行分析,將掃描線進(jìn)行分類(lèi)標(biāo)記,得到地面掃描線并完成地面分割。文獻(xiàn)[5]在擬合過(guò)程中通過(guò)先驗(yàn)信息的指導(dǎo),加快了平面擬合的速度。前2 種方法實(shí)現(xiàn)簡(jiǎn)單,但在復(fù)雜場(chǎng)景中精度較低,基于平面擬合的地面分割方法效果較好,但處理時(shí)間較長(zhǎng)。
在障礙物檢測(cè)方面,主要包括如基于柵格[6-7]、基于線段特征[8-9]、基于網(wǎng)格聚類(lèi)[10-11]、基于深度學(xué)習(xí)[12-15]等4 類(lèi)方法。文獻(xiàn)[6]將三維點(diǎn)云數(shù)據(jù)進(jìn)行柵格化處理后,計(jì)算每個(gè)柵格的高程值,然后使用鄰域連通域擴(kuò)展柵格單元來(lái)實(shí)現(xiàn)場(chǎng)景中障礙物的分類(lèi)。文獻(xiàn)[8]通過(guò)提取激光雷達(dá)原始數(shù)據(jù)中包含的線段特征,檢測(cè)其線段的高度和向量,利用與實(shí)時(shí)檢測(cè)到的地面向量和高度產(chǎn)生的偏差來(lái)檢測(cè)障礙物。文獻(xiàn)[10]通過(guò)基于動(dòng)態(tài)距離閾值的網(wǎng)格聚類(lèi)算法對(duì)障礙物進(jìn)行聚類(lèi),利用障礙物結(jié)構(gòu)信息實(shí)現(xiàn)修正,最后使用支持向量機(jī)(Support Vector Machine,SVM)分類(lèi)器對(duì)障礙物進(jìn)行檢測(cè)分類(lèi)。文獻(xiàn)[12]利用PointNet++作為主要網(wǎng)絡(luò)提取特征,它是一種端到端網(wǎng)絡(luò),可以直接處理稀疏的三維點(diǎn)云。文獻(xiàn)[13]提出一種SASSD 網(wǎng)絡(luò),通過(guò)設(shè)計(jì)的輔助網(wǎng)絡(luò)將體素特征轉(zhuǎn)換為點(diǎn)級(jí)特征來(lái)完成三維目標(biāo)檢測(cè)任務(wù)。對(duì)比以上方法,基于聚類(lèi)的障礙物檢測(cè)方法在傳統(tǒng)方法中較為常見(jiàn),檢測(cè)精度較高,基于深度學(xué)習(xí)的障礙物檢測(cè)方法普遍優(yōu)于傳統(tǒng)方法,但網(wǎng)絡(luò)模型復(fù)雜且運(yùn)行時(shí)間受計(jì)算機(jī)硬件設(shè)備的影響較大。
在可通行區(qū)域檢測(cè)方面,多數(shù)方法基于高度差提取道路邊界[16-17]。文獻(xiàn)[16]提出一種基于道路形態(tài)分析的邊界提取方法,通過(guò)曲線擬合邊界信息的方式檢測(cè)出道路邊界線,從而劃分出可通行區(qū)域。這類(lèi)方法通常依賴于點(diǎn)云的高度特征,難以處理斜坡等高度不穩(wěn)定區(qū)域。文獻(xiàn)[17]提出一種基于直線特征的可通行區(qū)域?qū)崟r(shí)檢測(cè)算法,通過(guò)重點(diǎn)研究直線特征,避免了因高度帶來(lái)的檢測(cè)誤差[18]。
本文提出一種基于激光點(diǎn)云的道路可通行區(qū)域檢測(cè)方法。利用基于分段校準(zhǔn)的RANSAC[19]算法對(duì)地面進(jìn)行分割,采用基于體素化的DBSCAN[20]聚類(lèi)算法完成障礙物聚類(lèi),融合多特征并利用JointBoost 實(shí)現(xiàn)對(duì)障礙物的分類(lèi)標(biāo)識(shí),同時(shí)基于高程突變提取道路邊界候選點(diǎn)檢測(cè)道路邊界。
本文方法的整體流程如圖1 所示,主要包括數(shù)據(jù)精簡(jiǎn)、地面分割、障礙物分割與識(shí)別、邊界提取與優(yōu)化、可通行區(qū)域檢測(cè)等5 個(gè)部分,具體描述如下:
圖1 可通行區(qū)域檢測(cè)過(guò)程Fig.1 Detection process of passable areas
步驟1數(shù)據(jù)精簡(jiǎn)。以體素柵格為單元,以單元中所有點(diǎn)的質(zhì)心為代表完成下采樣處理,并通過(guò)分段統(tǒng)計(jì)點(diǎn)云數(shù)據(jù)的疏密程度消除噪聲點(diǎn)。
步驟2地面分割。基于分段校準(zhǔn)的RANSAC地面分割方法,將點(diǎn)云數(shù)據(jù)進(jìn)行等距分段,針對(duì)每個(gè)分段的點(diǎn)云數(shù)據(jù)進(jìn)行水平校準(zhǔn),進(jìn)而利用RANSAC算法實(shí)現(xiàn)地面分割。
步驟3障礙物分割與識(shí)別?;隗w素化的DBSCAN 聚類(lèi)算法,實(shí)現(xiàn)對(duì)非地面點(diǎn)的障礙物的準(zhǔn)確聚類(lèi)。同時(shí),融合多特征并利用局部特征分類(lèi)器(JointBoost)實(shí)現(xiàn)對(duì)障礙物的分類(lèi)識(shí)別。
步驟4邊界提取與優(yōu)化?;诟叱掏蛔兲崛〉缆愤吔绾蜻x點(diǎn),并結(jié)合先驗(yàn)知識(shí)優(yōu)化邊界點(diǎn),獲得準(zhǔn)確的道路邊界線。
步驟5可通行區(qū)域檢測(cè)。基于道路區(qū)域柵格化的標(biāo)記處理,利用道路邊界懸空障礙物判斷并更新可通行區(qū)域。
本文使用基于體素化的數(shù)據(jù)下采樣方法,首先為體素單元確定合適的長(zhǎng)寬高,并以此將整個(gè)場(chǎng)景數(shù)據(jù)體素柵格化,然后根據(jù)每個(gè)柵格單元中所有點(diǎn)的位置信息計(jì)算出該單元的質(zhì)心,用質(zhì)心代替整個(gè)單元中的所有點(diǎn),遍歷所有單元從而完成下采樣工作?;隗w素化柵格的下采樣步驟具體如下:
1)讀取場(chǎng)景點(diǎn)云數(shù)據(jù)。
2)確定整個(gè)場(chǎng)景包圍盒的3 個(gè)邊長(zhǎng)LX、LY、LZ以及包圍盒的最小點(diǎn),即左下角的點(diǎn)minP。
3)假設(shè)體素單元格的邊長(zhǎng)分別為VX、VY、VZ,對(duì)點(diǎn)云數(shù)據(jù)劃分后得到m×n×s個(gè)單元,其中,m=
4)從場(chǎng)景中任選一點(diǎn)p(pX,pY,pZ),這點(diǎn)所屬柵格單元的坐標(biāo)可通過(guò)式(1)計(jì)算得到:
通過(guò)每個(gè)柵格單元的坐標(biāo),可以計(jì)算其編號(hào):
5)計(jì)算場(chǎng)景數(shù)據(jù)所有點(diǎn)所屬的柵格單元編號(hào),具有同一編號(hào)的點(diǎn)可以確定為同一柵格中的點(diǎn)。
6)計(jì)算每個(gè)單元格中所有點(diǎn)的質(zhì)心并將其作為代表點(diǎn),從而完成下采樣。
在下采樣后的原始場(chǎng)景中的點(diǎn)云數(shù)據(jù)量明顯減少,但是還存在一些離散點(diǎn)和距離掃描設(shè)備較遠(yuǎn)的無(wú)用點(diǎn)。為了消除這些噪聲點(diǎn),本文提出一種基于點(diǎn)密度統(tǒng)計(jì)的噪聲消除算法,具體步驟如下:
1)在本文場(chǎng)景數(shù)據(jù)中,X軸方向?yàn)檐?chē)輛行駛方向,Y軸方向?yàn)檐?chē)輛右側(cè)的方向,Z軸方向?yàn)榇怪庇诘孛嫦蛏系姆较?。?.1 節(jié)得到的結(jié)果投影到Y(jié)OZ平面。
2)將投影后的數(shù)據(jù)沿Y軸劃分為N段區(qū)域(N=20)。
3)計(jì)算劃分后每段區(qū)域點(diǎn)的密度Di,并據(jù)此繪制整個(gè)場(chǎng)景的密度曲線圖。
4)根據(jù)式(3)計(jì)算每段區(qū)域點(diǎn)的密度占場(chǎng)景總密度的比值δi,并將其與閾值δth作對(duì)比,本文設(shè)定閾值δth為2 000。
5)在對(duì)比過(guò)程中,首先從場(chǎng)景起始位置開(kāi)始遍歷,如果δi≤δth,則認(rèn)為這一段區(qū)域點(diǎn)的密度小,所包含信息較少,刪除此段。判斷下一段區(qū)域,直到出現(xiàn)δi>δth,則終止判斷。然后從場(chǎng)景的末端開(kāi)始往前判斷,如果δi≤δth則刪除此段,直到δi>δth結(jié)束判斷,至此成功刪除道路兩端包含離散點(diǎn)的區(qū)域。
6)對(duì)于道路遠(yuǎn)處稀疏的無(wú)用點(diǎn)的消除,可以規(guī)定距離車(chē)輛和掃描設(shè)備30 m 內(nèi)的區(qū)域?yàn)楦信d趣區(qū)域,并使用直通濾波算法對(duì)場(chǎng)景區(qū)域進(jìn)行劃分,從而獲得精簡(jiǎn)后的場(chǎng)景數(shù)據(jù)。精簡(jiǎn)前后的場(chǎng)景數(shù)據(jù)分別如圖2(a)和圖2(b)所示。
圖2 精簡(jiǎn)結(jié)果Fig.2 Reduction results
在地面分割過(guò)程中,傳統(tǒng)RANSAC 算法在提取平整的結(jié)構(gòu)化道路數(shù)據(jù)時(shí)表現(xiàn)出良好的性能,但是對(duì)于存在緩坡、路面坑洼或者在數(shù)據(jù)采集過(guò)程中,由于車(chē)輛顛簸導(dǎo)致采集到的數(shù)據(jù)出現(xiàn)偏差等情況,單純使用傳統(tǒng)RANSAC 算法實(shí)現(xiàn)地面分割會(huì)出現(xiàn)欠分割現(xiàn)象。因此,本文對(duì)傳統(tǒng)RANSAC 算法進(jìn)行改進(jìn),提出基于分段校準(zhǔn)的地面分割方法來(lái)提高傳統(tǒng)RANSAC 算法處理復(fù)雜地面數(shù)據(jù)時(shí)的魯棒性。
首先沿道路方向確定場(chǎng)景數(shù)據(jù),即沿X軸坐標(biāo)的最大值和最小值Xmax和Xmin,然后對(duì)場(chǎng)景數(shù)據(jù)進(jìn)行等距劃分,沿X軸坐標(biāo)方向劃分為N段區(qū)域,每段區(qū)域長(zhǎng)1 m,其中N=。
在各段區(qū)域劃分完成后,對(duì)每段均使用一次RANSAC 算法來(lái)檢測(cè)平面,從而獲得每一段區(qū)域的地面點(diǎn)云數(shù)據(jù)及其擬合的平面,通過(guò)該平面得到法向量V。由于使用激光雷達(dá)掃描得到場(chǎng)景數(shù)據(jù),因此Z坐標(biāo)軸是垂直于水平面的,通過(guò)定義垂直向量Q=(0,0,1)(如圖3 所示),計(jì)算Q與V的校準(zhǔn)矩陣T,對(duì)此段地面數(shù)據(jù)進(jìn)行校準(zhǔn)。
圖3 地面數(shù)據(jù)校準(zhǔn)示意圖Fig.3 Schematic diagram of ground data calibration
已知法向量V(a1,a2,a3)和垂直向量Q(b1,b2,b3)的關(guān)系如式(4)所示。由此可知兩向量的夾角θ計(jì)算公式如式(5)所示。將法向量V和垂直向量Q進(jìn)行叉乘運(yùn)算得到旋轉(zhuǎn)軸R(r1,r2,r3),如式(6)所示。
對(duì)向量R歸一化處理得到單位向量e(eX,eY,eZ),并將所有已知條件代入羅德里格旋轉(zhuǎn)公式,得到對(duì)應(yīng)的旋轉(zhuǎn)矩陣T。
利用得到的旋轉(zhuǎn)矩陣T對(duì)這一段區(qū)域的點(diǎn)云數(shù)據(jù)進(jìn)行校準(zhǔn)處理,再使用RANSAC 算法檢測(cè)地面數(shù)據(jù),將所有區(qū)域中檢測(cè)的地面數(shù)據(jù)拼接得到完整的地面數(shù)據(jù),從而完成該場(chǎng)景數(shù)據(jù)的地面分割操作。分段校準(zhǔn)的地面分割示意圖如圖4 所示。
圖4 分段校準(zhǔn)的地面分割示意圖Fig.4 Schematic diagram of ground segmentation with sectional calibration
針對(duì)預(yù)處理后的數(shù)據(jù)進(jìn)行聚類(lèi)分割操作。本文對(duì)傳統(tǒng)DBSCAN 聚類(lèi)算法進(jìn)行改進(jìn),提出一種基于體素化的DBSCAN 聚類(lèi)算法,并在搜索最近鄰數(shù)據(jù)時(shí)構(gòu)建KD-Tree 加快搜索。首先對(duì)輸入數(shù)據(jù)體素柵格化,選擇體素單元格邊長(zhǎng)為d=15 cm,然后計(jì)算3 個(gè)坐標(biāo)軸的最大值和最小值,結(jié)合單元格邊長(zhǎng)d,計(jì)算出3 個(gè)坐標(biāo)軸已經(jīng)劃分好的柵格單元的對(duì)應(yīng)層數(shù)m、n、s。以X軸為例,X軸柵格層數(shù)m的計(jì)算公式如下:
將數(shù)據(jù)進(jìn)行柵格單元?jiǎng)澐趾?,?jì)算每個(gè)單元格所包含的點(diǎn)數(shù)Pts,并對(duì)全部非空單元格進(jìn)行標(biāo)記,確保這些單元格整體結(jié)構(gòu)與原數(shù)據(jù)位置信息相同。然后設(shè)定點(diǎn)數(shù)閾值PtsMin,并按照一定規(guī)則對(duì)所有非空單元格進(jìn)行判別:若Pts≥PtsMin,則將該單元格標(biāo)記為核心單元格,其內(nèi)所有點(diǎn)標(biāo)記為核心點(diǎn);若Pts<PtsMin,則需要二次判別。對(duì)該單元格內(nèi)包含的所有點(diǎn)使用ε-鄰域搜索進(jìn)行二次判別:如果其所有點(diǎn)的鄰域中存在核心點(diǎn),則將該單元格標(biāo)記為核心單元格;如果其所有點(diǎn)的鄰域中不存在核心點(diǎn),那么將該單元格標(biāo)記為噪聲單元格。
計(jì)算所有核心單元格的質(zhì)心M,用質(zhì)心點(diǎn)M來(lái)表示整個(gè)單元格中所有的點(diǎn),利用質(zhì)心點(diǎn)來(lái)參與DBSCAN 聚類(lèi)算法鄰近元的搜索和聚合,具體步驟如下:
將所有質(zhì)心點(diǎn)存入集合S中,從中選取任意一點(diǎn)p,將點(diǎn)p與其?-鄰域中存在的其他質(zhì)心點(diǎn)一同存入候選集合Scd中,并對(duì)這些點(diǎn)定義一個(gè)標(biāo)簽,表示它們所屬同一聚類(lèi)簇,這些質(zhì)心點(diǎn)所表示的單元格和其所包含的點(diǎn)也屬于同一聚類(lèi)簇,然后從Scd中選取另一點(diǎn),同樣計(jì)算其?-鄰域中存在的質(zhì)心點(diǎn)并更新所屬聚類(lèi)簇,直到集合Scd中沒(méi)有元素,表示完成該點(diǎn)云簇的聚類(lèi)。隨后將集合S中已有所屬聚類(lèi)簇標(biāo)記的質(zhì)心點(diǎn)刪除,并從中再隨機(jī)選取一點(diǎn)重復(fù)上述操作,直到集合S沒(méi)有元素為止。為了提高?-鄰域搜索操作的速度,構(gòu)建KD-Tree 搜索最近鄰點(diǎn)。
通過(guò)不同特征之間的組合來(lái)實(shí)現(xiàn)障礙物識(shí)別任務(wù),以較少特征下得到較好結(jié)果為目標(biāo),經(jīng)過(guò)大量的實(shí)驗(yàn)得到6 類(lèi)特征,具體描述如表1 所示。
表1 特征描述Table 1 Feature description
對(duì)于障礙物的識(shí)別,采用基于JointBoost 的分類(lèi)識(shí)別方法,由于該方法的分類(lèi)結(jié)果會(huì)存在一定的誤差,因此本文在JointBoost 獲得分類(lèi)概率結(jié)果的基礎(chǔ)上,結(jié)合場(chǎng)景實(shí)際空間特征信息對(duì)結(jié)果進(jìn)行優(yōu)化處理,具體步驟為:將JointBoost 分類(lèi)器得到的結(jié)果輸入集合U中,并將其中的元素按照大小排序,然后使用f4特征,即使用該聚類(lèi)簇與車(chē)輛掃描設(shè)備的距離信息對(duì)集合U進(jìn)行判別。
該聚類(lèi)簇與車(chē)輛掃描設(shè)備的距離信息主要包括3 個(gè)坐標(biāo)的距離信息,其中,X軸方向是車(chē)輛行駛方向,Y軸方向是車(chē)輛左右兩側(cè)方向,Z軸方向是高度,本文假設(shè)道路寬度為W。首先計(jì)算該聚類(lèi)簇的所有點(diǎn)到掃描設(shè)備的距離中Y軸坐標(biāo)的平均距離,然后對(duì)進(jìn)行判斷:如果≥W,則可以判斷該聚類(lèi)簇屬于非道路區(qū)域,障礙物類(lèi)別為車(chē)輛的可能性較低;如果<W,則可以判斷該聚類(lèi)簇屬于道路區(qū)域,障礙物類(lèi)別為建筑等其他類(lèi)別的可能性較低。二次判斷后確定最終的分類(lèi)識(shí)別結(jié)果。
利用場(chǎng)景數(shù)據(jù)中的高程突變特征獲得突變點(diǎn)作為道路邊界候選點(diǎn)并擬合得到邊界線。
1)統(tǒng)計(jì)數(shù)據(jù)中所有點(diǎn)的Z坐標(biāo)作為數(shù)據(jù)點(diǎn)的高程分布并進(jìn)行劃分:
其中:ΔZ為此段數(shù)據(jù)中的高度差,即ΔZ=Zmax-Zmin;Gth為確定突變的高度閾值;H1表示此段數(shù)據(jù)為近地面數(shù)據(jù),無(wú)需考慮數(shù)據(jù)突變情況;H2表示此段數(shù)據(jù)存在突變情況,需進(jìn)一步確定突變點(diǎn)。
結(jié)合道路數(shù)據(jù)的高程分布,直道道路場(chǎng)景數(shù)據(jù)的道路邊界外是建筑物,所使用的閾值Gth約為1 m。彎路道路場(chǎng)景突變區(qū)域分布在柵欄處和路外綠化處,使用的閾值Gth約為0.5 m。
2)將場(chǎng)景點(diǎn)云數(shù)據(jù)沿車(chē)輛行駛方向,即X軸方向進(jìn)行劃分,劃分寬度為0.5 m,然后提取出一個(gè)子區(qū)域進(jìn)行如下操作:
(1)將點(diǎn)云數(shù)據(jù)沿車(chē)輛兩側(cè)方向,即Y軸方向繼續(xù)劃分,劃分寬度為0.5 m,這時(shí)將得到長(zhǎng)寬均為0.5 m 的單元塊,并將其存入序列F中。
(2)從序列F中按順序取出一個(gè)單元塊Fi,計(jì)算該單元塊的最大高度Hmax,并與確定的閾值Gth進(jìn)行比較:當(dāng)Hmax≤Gth時(shí),可以判定該單元所包含的數(shù)據(jù)為近地面數(shù)據(jù),不需要進(jìn)行更多的處理;當(dāng)Hmax>Gth時(shí),可以判定該單元所包含的數(shù)據(jù)為突變數(shù)據(jù),可能存在邊界候選點(diǎn),記錄該單元的序號(hào),并存入需要進(jìn)一步提取候選點(diǎn)的序列FG。
(3)對(duì)于FG中的所有單元塊,采用從左右兩個(gè)方向同時(shí)進(jìn)行處理的模式,其中:向左方向處理單元塊時(shí),在Z值最小的前提下滿足Y值最小的點(diǎn)作為候選點(diǎn);向右方向處理單元塊時(shí),在Z值最小的前提下滿足Y值最大的點(diǎn)作為候選點(diǎn)。
在完成上述操作后,對(duì)另一個(gè)子區(qū)域重復(fù)以上操作,直到遍歷完整個(gè)場(chǎng)景數(shù)據(jù),最終獲得全部道路邊界候選點(diǎn)。道路邊界候選點(diǎn)提取示意圖如圖5 所示。
圖5 道路邊界候選點(diǎn)提取示意圖Fig.5 Schematic diagram of road boundary candidate point extraction
3)為了避免候選點(diǎn)擬合的道路邊界線出現(xiàn)誤差,需要利用先驗(yàn)知識(shí)篩選這些候選點(diǎn)。先將2.3 節(jié)得到的地面數(shù)據(jù)視為道路面,計(jì)算該道路面沿X軸方向兩側(cè)邊緣點(diǎn)的平均Y坐標(biāo)值作為約束,大致確定路寬,如圖6 中繪制的兩條約束線所示,并將約束線左右0.5 m 區(qū)域內(nèi)的候選點(diǎn)作為最終邊界點(diǎn)。對(duì)于彎路場(chǎng)景,需要采用本文分割地面時(shí)使用到的分段處理思想,先對(duì)地面數(shù)據(jù)進(jìn)行分段,使用直道道路邊界的處理方法,處理每一段彎道地面,再將每一段區(qū)域的最終邊界點(diǎn)進(jìn)行拼接,從而完成篩選。在得到邊界點(diǎn)后,使用最小二乘法對(duì)邊界點(diǎn)進(jìn)行擬合得到道路邊界線。
圖6 依據(jù)地面分割得到的兩條約束線Fig.6 Two constraint lines obtained according to ground segmentation
基于道路邊界信息和道路障礙物信息,首先采用八鄰域標(biāo)記算法對(duì)柵格進(jìn)行標(biāo)記處理,然后進(jìn)行道路邊界懸空障礙物判斷更新可通行區(qū)域,最終完成可通行區(qū)域檢測(cè)。道路可通行區(qū)域檢測(cè)具體步驟如下:
1)假定經(jīng)過(guò)3.3 節(jié)得到的道路邊界線分別為l1與l2,根據(jù)這兩條線的位置可以確定場(chǎng)景中的道路區(qū)域以及非道路區(qū)域。對(duì)道路區(qū)域進(jìn)行保留,然后將其投影到XOY平面上并進(jìn)行柵格化,其中選擇長(zhǎng)寬均為0.5 m 的柵格單元塊。
2)采用圖像處理中常用的八鄰域標(biāo)記方法對(duì)所有單元格進(jìn)行分析,判斷其是否為包含障礙物的單元格:若單元格內(nèi)不包含點(diǎn)云數(shù)據(jù),則標(biāo)記其為可通行單元;若單元格內(nèi)包含點(diǎn)云數(shù)據(jù),則標(biāo)記其為不可通行單元。
3)對(duì)判定為不可通行的單元格進(jìn)行二次判斷,排除那些為懸空障礙物的柵格塊。首先基于3.1節(jié)和3.2節(jié)得到的障礙物分割識(shí)別結(jié)果,找到位于l1與l2附近的障礙物,對(duì)其沿車(chē)輛行駛方向作投影,然后對(duì)投影后的結(jié)果,即障礙物正面的輪廓進(jìn)行判別:在日常生活中,如廣告牌、路標(biāo)、延伸出來(lái)的樹(shù)木等懸空障礙物,正面輪廓多數(shù)為“┌”和“┐”兩種。對(duì)于這種懸空障礙物的情況,車(chē)輛是可以通行的,因此需要對(duì)障礙物的正面輪廓進(jìn)行懸空判別,并對(duì)所對(duì)應(yīng)的標(biāo)記單元格進(jìn)行更新。標(biāo)記后的柵格示意圖如圖7 所示。
圖7 標(biāo)記后的柵格示意圖Fig.7 Schematic diagram of the grids after labeling
實(shí)驗(yàn)數(shù)據(jù)來(lái)源于KITTI 數(shù)據(jù)集與百度Apollo Scape 數(shù)據(jù)集。實(shí)驗(yàn)運(yùn)行于Windows10 操作系統(tǒng),程序使用C++與PCL 1.8.0 編寫(xiě),處理器為Intel?CoreTMi7-7700 CPU @ 3.60 GHz,8 GB RAM。
圖8 為在2 種復(fù)雜場(chǎng)景下RANSAC 與本文方法的地面分割結(jié)果,其中場(chǎng)景1 為KITTI 數(shù)據(jù)集中常見(jiàn)的直道道路場(chǎng)景,場(chǎng)景2 為KITTI 數(shù)據(jù)集中道路包含綠化帶的復(fù)雜道路場(chǎng)景。在場(chǎng)景1 中,RANSAC 方法的地面分割結(jié)果如圖8(a)所示,其中矩形框中部分為實(shí)際的道路數(shù)據(jù)但是未被檢測(cè)出來(lái)的結(jié)果,這樣使得地面分割不完整,造成欠分割。在場(chǎng)景1 中,本文方法能完整地將點(diǎn)云數(shù)據(jù)中地面部分分割出來(lái),如圖8(b)所示。在場(chǎng)景2 中,RANSAC 和本文方法的地面分割結(jié)果如圖8(c)和圖8(d)所示。RANSAC 方法將數(shù)據(jù)中間和路旁的綠化帶分割為地面,并且還有一部分的地面沒(méi)有分割出來(lái),如圖8(c)中橢圓部分所示。由此可以看出,本文方法在復(fù)雜場(chǎng)景中具有較好的地面分割效果。
圖8 地面分割結(jié)果Fig.8 Ground segmentation results
圖9 為3 種歐式聚類(lèi)分割[21]、DBSCAN 聚類(lèi)分割和本文方法的障礙物分割與識(shí)別結(jié)果。圖9(a)為非地面點(diǎn)云數(shù)據(jù)。如圖9(b)所示,歐式聚類(lèi)分割方法無(wú)法將特殊形狀進(jìn)行分割,且受算法參數(shù)設(shè)置影響較大,聚類(lèi)個(gè)數(shù)比實(shí)際個(gè)數(shù)多,較小數(shù)據(jù)也存在無(wú)法聚類(lèi)的情況,經(jīng)過(guò)多組數(shù)據(jù)測(cè)試,消耗時(shí)間會(huì)隨著點(diǎn)數(shù)的增多呈指數(shù)級(jí)增長(zhǎng)。如圖9(c)所示,DBSCAN 聚類(lèi)分割方法可以解決歐式距離要求點(diǎn)云形狀的問(wèn)題,但在處理數(shù)據(jù)量大且復(fù)雜的點(diǎn)云數(shù)據(jù)分割時(shí)也會(huì)消耗較長(zhǎng)時(shí)間。如圖9(d)所示,本文方法能夠有效地將道路場(chǎng)景中障礙物進(jìn)行分割,可以處理由大量數(shù)據(jù)點(diǎn)組成的任意形狀的點(diǎn)云數(shù)據(jù),魯棒性強(qiáng),同時(shí)在分割過(guò)程中消耗時(shí)間也在可接受范圍內(nèi),滿足自動(dòng)駕駛要求的實(shí)時(shí)性。圖9(e)和圖9(f)為在場(chǎng)景3 和場(chǎng)景4 中的本文方法的障礙物分割結(jié)果,其中,場(chǎng)景3 為Apollo Scape數(shù)據(jù)集中簡(jiǎn)單的直道場(chǎng)景,場(chǎng)景4 為Apollo Scape數(shù)據(jù)集中障礙物較多的復(fù)雜場(chǎng)景,可以看出本文方法在不同數(shù)據(jù)集中同樣具有較好的障礙物分割效果。表2 為非地面點(diǎn)云數(shù)據(jù)場(chǎng)景下3 種方法的障礙物分割結(jié)果對(duì)比。
表2 3 種障礙物分割方法對(duì)比Table 2 Comparison of three obstacle segmentation methods
圖9 障礙物分割結(jié)果Fig.9 Obstacle segmentation results
圖10為場(chǎng)景數(shù)據(jù)完成障礙物分類(lèi)識(shí)別后的結(jié)果。為便于結(jié)果展示,本文將建筑物等其他類(lèi)障礙物和地面分割數(shù)據(jù)用灰色表示,道路上行駛的車(chē)輛障礙物用灰色包圍盒包圍,識(shí)別到的標(biāo)志桿、樹(shù)木、行人類(lèi)障礙物用黑色包圍盒包圍。結(jié)果表明,本文方法在彎道等復(fù)雜場(chǎng)景下也具有良好的障礙物分類(lèi)結(jié)果。
圖10 障礙物分類(lèi)識(shí)別結(jié)果Fig.10 Obstacle classification and recognition results
為了便于結(jié)果展示,將激光雷達(dá)點(diǎn)云數(shù)據(jù)設(shè)置為灰色。圖11(a)為直道場(chǎng)景數(shù)據(jù)原圖,圖11(b)為基于正確候選點(diǎn)擬合出的直道道路邊界線。圖11(c)為彎道場(chǎng)景數(shù)據(jù)原圖,圖11(d)為基于正確候選點(diǎn)擬合出的彎道道路邊界線,使用方法和直道數(shù)據(jù)相同。結(jié)果表明,本文方法在彎道等復(fù)雜場(chǎng)景下也具有良好的道路邊界檢測(cè)效果。
圖11 道路邊界檢測(cè)結(jié)果Fig.11 Road boundary detection results
基于本文設(shè)計(jì)的可通行區(qū)域檢測(cè)方法對(duì)激光雷達(dá)點(diǎn)云直道場(chǎng)景數(shù)據(jù)進(jìn)行處理,得到可通行區(qū)域檢測(cè)結(jié)果如圖12、圖13 所示。
圖12 直道場(chǎng)景可通行區(qū)域檢測(cè)結(jié)果Fig.12 Detection results of passable area in straight road scene
圖13 彎道場(chǎng)景可通行區(qū)域檢測(cè)結(jié)果Fig.13 Detection results of passable area in curve road scene
激光雷達(dá)點(diǎn)云原圖為圖11(a)和圖11(c),可通行區(qū)域檢測(cè)的結(jié)果中灰色為檢測(cè)到的可通行區(qū)域。采用文獻(xiàn)[22]中的評(píng)估方法來(lái)驗(yàn)證本文提出的道路邊界檢測(cè)方法的準(zhǔn)確性:通過(guò)手工提取激光雷達(dá)道路場(chǎng)景的真實(shí)邊界作為基準(zhǔn)計(jì)算道路寬度,并與本文道路邊界檢測(cè)方法得到的道路邊界確定的道路寬度進(jìn)行對(duì)比,準(zhǔn)確性評(píng)估結(jié)果均超過(guò)了95%,證明了本文檢測(cè)方法的可行性。道路邊界檢測(cè)準(zhǔn)確性對(duì)比結(jié)果如表3 所示。
表3 道路邊界檢測(cè)準(zhǔn)確率對(duì)比Table 3 Comparison of detection accuracy of road boundary
通過(guò)本文方法能夠?yàn)V除道路邊界外的建筑物區(qū)域和道路區(qū)域內(nèi)的障礙物區(qū)域,從而獲得無(wú)人車(chē)能夠行駛的可通行區(qū)域。但是,由于激光雷達(dá)在采集過(guò)程中存在遮擋現(xiàn)象,如掃描儀附近的區(qū)域以及被其他路上車(chē)輛遮擋的區(qū)域等,這些區(qū)域會(huì)出現(xiàn)不連續(xù)的空白,因此單純地依據(jù)激光雷達(dá)數(shù)據(jù),這部分區(qū)域依舊是無(wú)法進(jìn)行判斷的。
本文提出一種基于激光點(diǎn)云數(shù)據(jù)的道路可通行區(qū)域檢測(cè)方法。針對(duì)地面分割算法存在的欠分割問(wèn)題,利用基于分段校準(zhǔn)的RANSAC 算法,提升了原始RANSAC 算法在復(fù)雜場(chǎng)景中的地面分割魯棒性。通過(guò)基于體素化的DBSCAN 聚類(lèi)算法,在保證檢測(cè)精度的同時(shí)提高了檢測(cè)實(shí)時(shí)性。為提高可通行區(qū)域檢測(cè)的準(zhǔn)確率,根據(jù)數(shù)據(jù)高程突變點(diǎn),提取道路邊界候選點(diǎn),并將其篩選擬合后得到完整的道路邊界線,再對(duì)劃分出的道路區(qū)域進(jìn)行柵格處理,在遍歷標(biāo)記后得到較精準(zhǔn)的可通行區(qū)域檢測(cè)結(jié)果。實(shí)驗(yàn)結(jié)果表明,該方法具有較高的檢測(cè)準(zhǔn)確率以及較好的檢測(cè)實(shí)時(shí)性,適用于復(fù)雜場(chǎng)景中的道路可通行區(qū)域檢測(cè)。下一步將研究可滿足無(wú)人駕駛道路行駛要求的動(dòng)態(tài)數(shù)據(jù)環(huán)境感知技術(shù),同時(shí)考慮道路動(dòng)態(tài)障礙物的突發(fā)意圖(如后方超車(chē)等特殊情況),進(jìn)一步提升道路可通行區(qū)域檢測(cè)效果。