肖信峰,余敏,高飛,葉周潤(rùn)
(合肥工業(yè)大學(xué) 土木與水利工程學(xué)院,合肥 230009)
車載激光雷達(dá)作為一種移動(dòng)式精確獲取點(diǎn)云數(shù)據(jù)的傳感器,在行駛過程中能夠快速、準(zhǔn)確地獲取道路兩側(cè)的三維地物點(diǎn)云[1]。車載激光移動(dòng)測(cè)量技術(shù)具有高分辨率、高精度、抗干擾能力強(qiáng)等特點(diǎn),近年來在地形測(cè)量、自動(dòng)駕駛、精細(xì)制圖等諸多行業(yè)發(fā)展迅速。相對(duì)于機(jī)載激光雷達(dá)測(cè)量系統(tǒng),該平臺(tái)通常貼近地面,能夠獲取更高密度、更高精度的地面、建筑物、植被等地物的點(diǎn)云數(shù)據(jù),同時(shí)能夠采集地物表面更多垂直方向的信息,為道路要素提取提供更好的數(shù)據(jù)源[2]。
車載點(diǎn)云數(shù)據(jù)在道路工程中有著廣泛的應(yīng)用。通過采集的點(diǎn)云數(shù)據(jù)可以獲取高精度的路面地形,為道路改擴(kuò)建、路面安全監(jiān)測(cè)、道路設(shè)施管理等應(yīng)用提供基礎(chǔ)數(shù)據(jù),而這些深入應(yīng)用的前提是如何快速精確地從車載點(diǎn)云數(shù)據(jù)中提取出路面點(diǎn)云[3]。
國(guó)內(nèi)外眾多學(xué)者對(duì)車載激光點(diǎn)云的道路濾波提取算法進(jìn)行了大量研究,一部分學(xué)者利用掃描線中豐富的幾何信息進(jìn)行特征分析從而提取道路,劉如飛等[4]根據(jù)掃描線上點(diǎn)云分布的空間特征,利用移動(dòng)動(dòng)態(tài)窗口分類法進(jìn)行路面的提取。李永強(qiáng)等[5]利用車載激光掃描系統(tǒng)的GPS輔助數(shù)據(jù)結(jié)合掃描線來提取道路。這種基于掃描線的方法主要基于道路點(diǎn)云之間的高差、坡度等,容易受到道路形狀以及道路上的小型地物的影響,魯棒性不高。還有學(xué)者將三維離散的激光點(diǎn)云投影到二維平面,再結(jié)合點(diǎn)云的特征轉(zhuǎn)化為特征圖像利用傳統(tǒng)的圖像處理算法進(jìn)行分割[6-7],但由于轉(zhuǎn)化二維圖像過程中會(huì)丟失垂直方向的信息,存在得到的道路點(diǎn)云精度不高的問題。也有學(xué)者根據(jù)道路點(diǎn)云在一定范圍內(nèi)有相似的強(qiáng)度及密度特征,采用了聚類分割的方法。楊望山等[8]利用點(diǎn)云的法向量特征采用K均值算法進(jìn)行聚類提取。Thanh等[9]利用基于體素的區(qū)域生長(zhǎng)算法聚類分割從而提取道路點(diǎn)云。胡嘯等[10]利用平滑度約束下歐式聚類分割算法對(duì)道路進(jìn)行提取。
總體來說,目前車載激光點(diǎn)云提取道路時(shí)大多數(shù)利用道路邊沿的點(diǎn)云高程差設(shè)置高差閾值來進(jìn)行提取,但是對(duì)于沒有路緣石的高速公路相關(guān)算法不能適用,本文針對(duì)高速公路車載點(diǎn)云數(shù)據(jù)的特點(diǎn),提出一種基于車載掃描數(shù)據(jù)的高速公路提取方法。首先,利用改進(jìn)的隨機(jī)抽樣一致(random sample consensus,RANSAC)算法進(jìn)行道路粗提??;然后,使用結(jié)合RANSAC閾值的形態(tài)學(xué)濾波和基于點(diǎn)云強(qiáng)度和密度的濾波進(jìn)行道路精提??;最后,通過Alpha Shape邊緣檢測(cè)算法來提取邊界點(diǎn)云,平滑生成邊緣線從而提取完整道路點(diǎn)云。
本文高速公路路面提取方法目的是濾除車載掃描數(shù)據(jù)中車輛、交通設(shè)施以及道路兩側(cè)地物,提取完整道路點(diǎn)云,大體可分為道路粗提取、道路精提取、道路邊界優(yōu)化三步,具體流程如圖1所示。
圖1 道路提取流程圖
RANSAC算法是用來從一組含有“外點(diǎn)”的數(shù)據(jù)中正確估計(jì)數(shù)學(xué)模型參數(shù)的迭代算法。RANSAC應(yīng)用于路面提取時(shí),首先,隨機(jī)選取初始點(diǎn)云中的種子點(diǎn)組成平面;然后,在剩余點(diǎn)云中搜索支持平面的點(diǎn);最后,選擇包含局內(nèi)點(diǎn)數(shù)目最多的點(diǎn)云子集,得到最佳的模型參數(shù)[11]。RANSAC的具體步驟如下。
步驟1:隨機(jī)選擇三個(gè)點(diǎn)P0,P1,P2組成平面,利用三個(gè)點(diǎn)組成向量的比例關(guān)系判斷三個(gè)點(diǎn)是否共線。
步驟2:構(gòu)造坐標(biāo)矩陣,根據(jù)選取的點(diǎn)求解平面和平面的法向量。其平面方程和法向量如式(1)至式(2)所示。
Ax+By+Cz+D=0
(1)
n=(P0-P1)×(P0-P2)
(2)
步驟3:對(duì)點(diǎn)云中每個(gè)點(diǎn)Pi求出到平面的距離,表達(dá)如式(3)所示。
(3)
步驟4:認(rèn)為到平面距離小于閾值τ的點(diǎn)都屬于地面點(diǎn),記錄點(diǎn)的坐標(biāo)和平面方程。
步驟5:迭代運(yùn)行步驟1~步驟4T次,選擇地面點(diǎn)數(shù)量最多的平面。
1)約束條件RANSAC。
(1)在RANSAC算法進(jìn)行路面擬合時(shí),初始種子點(diǎn)的選取是完全隨機(jī)的,當(dāng)車載點(diǎn)云數(shù)據(jù)比較復(fù)雜,地物點(diǎn)所占的比例較高時(shí),會(huì)大大增加RANSAC的迭代次數(shù),使得算法的處理效率下降,所以要縮小隨機(jī)采樣點(diǎn)的范圍。首先,可以根據(jù)激光雷達(dá)的高度對(duì)選取的路面初始隨機(jī)點(diǎn)的高程值加以約束,若點(diǎn)云高程大于高程閾值則予以剔除,低于閾值的點(diǎn)作為待定點(diǎn)進(jìn)行下一步處理。
(2)在激光雷達(dá)采集點(diǎn)云數(shù)據(jù)時(shí),一般將車輛前進(jìn)方向設(shè)為X軸,在水平方向上與X軸垂直的為Y軸,與XY平面垂直的向上方向?yàn)閆軸,建立車輛坐標(biāo)系。RANSAC算法是根據(jù)平面模型的數(shù)學(xué)參數(shù)來擬合平面的,不能很好地提取出實(shí)際帶有邊界約束的真實(shí)面。復(fù)雜的車載點(diǎn)云數(shù)據(jù)中除路面外還有大量非地面平面,這些平面的法向量與車輛坐標(biāo)系的Z軸夾角各不相同,而RANSAC算法擬合出的地面平面與Z軸夾角θ一般很小,利用這一特性可以將這些平面進(jìn)行分類,以角度閾值為約束條件進(jìn)行平面提取,則可避免誤提取交通標(biāo)示牌等非路面平面。同時(shí),角度閾值的加入也可以加快尋找最佳平面的速度。
令Z軸正方向的單位向量為P=(0,0,1),平面夾角可以通過平面法向量和Z軸方向向量P進(jìn)行計(jì)算,對(duì)每個(gè)夾角進(jìn)行判斷是否超過閾值,對(duì)超過閾值的加以剔除,具體表達(dá)如式(4)所示。
(4)
式中:θi為各平面法向量和Z軸正方向夾角;n為各平面的法向量;λ為角度閾值。
2)分區(qū)域自適應(yīng)閾值提取。RANSAC算法只能提取特有的幾何模型,例如平面,而對(duì)曲面等無能為力。實(shí)際路面是有坡度起伏的,RANSAC算法提取坡度路段時(shí)會(huì)出現(xiàn)部分漏提取,不能完整地提取道路點(diǎn)云,降低道路提取的精度。為了提高擬合路面的魯棒性,提出了一種分區(qū)自適應(yīng)閾值RANSAC算法,通過在車輛坐標(biāo)系XY平面內(nèi)將點(diǎn)云數(shù)據(jù)劃分為多個(gè)規(guī)則的分區(qū)分別進(jìn)行RANSAC后再進(jìn)行最小二乘擬合,實(shí)現(xiàn)路面的自動(dòng)提取。車載點(diǎn)云數(shù)據(jù)由于采集視角的約束以及地物遮擋的原因,造成不同區(qū)域中點(diǎn)云密度不同,越遠(yuǎn)離激光掃描儀點(diǎn)云越稀疏。針對(duì)車載點(diǎn)云數(shù)據(jù)的這種特點(diǎn),可以將數(shù)據(jù)集劃分為不同的矩形區(qū)域,在不同點(diǎn)云密度的區(qū)域采用不同尺度的最小點(diǎn)集N,N表示擬合平面時(shí)所需包含的最小點(diǎn)數(shù),當(dāng)RANSAC提取的地面點(diǎn)數(shù)量大于N時(shí)就終止迭代。通過根據(jù)區(qū)域點(diǎn)云密度確定最小點(diǎn)集N的大小,提高了RANSAC擬合路面的效率。具體步驟如下:首先,根據(jù)車輛坐標(biāo)系的四個(gè)象限沿X、Y軸可以將點(diǎn)云數(shù)據(jù)初步分為四個(gè)大區(qū)域。然后,在四個(gè)區(qū)域內(nèi)沿著X、Y軸的正負(fù)方向以一定的步長(zhǎng)進(jìn)行分區(qū),以y=0為起始,沿Y軸正負(fù)方向隨著點(diǎn)云密度的減少,以一定的收縮因子逐步減少最小點(diǎn)集N,分區(qū)域提取后再對(duì)提取的地面點(diǎn)云進(jìn)行擬合,X、Y兩個(gè)方向的分段長(zhǎng)度要考慮分段處理的效率和性能,可以通過實(shí)驗(yàn)路段來決定。
1)形態(tài)學(xué)濾波。在形態(tài)學(xué)濾波中,先腐蝕再膨脹的操作稱為開運(yùn)算?;跀?shù)學(xué)形態(tài)學(xué)的LiDAR點(diǎn)云濾波是將點(diǎn)云數(shù)據(jù)格網(wǎng)化之后,通過開運(yùn)算從點(diǎn)云數(shù)據(jù)中提取地面點(diǎn)[12]。
數(shù)學(xué)形態(tài)學(xué)濾波算法的關(guān)鍵在于濾波窗口大小的選擇和高度閾值的變化,如果窗口的大小設(shè)定過小,可以很好地保留地面起伏的細(xì)節(jié),但是只能濾除植被、汽車等低小地物,對(duì)大型地物的去除效果較差;相反,窗口大小設(shè)定過大,則會(huì)過度地去除一些地面點(diǎn)。針對(duì)這種情況,目前最常用的是采用多尺度窗口的濾波方法,Zhang等[13]提出漸進(jìn)式形態(tài)學(xué)濾波,通過逐漸增大窗口尺寸迭代去除不同大小的地物。相比于機(jī)載點(diǎn)云數(shù)據(jù),車載點(diǎn)云數(shù)據(jù)的密度更高,這意味著在每個(gè)濾波窗口中需要處理的格網(wǎng)數(shù)量更多,數(shù)據(jù)的運(yùn)算量更大,而且隨著迭代過程中窗口尺寸的增大,運(yùn)行效率低下的問題會(huì)更加突出。
在RANSAC算法提取道路時(shí)到平面距離小于閾值的點(diǎn)都認(rèn)定為道路點(diǎn),所以閾值的選取存在兩難問題:采用較小的閾值,那么會(huì)過濾掉部分道路點(diǎn);采用較大的閾值,那么不可避免地會(huì)誤提取與道路點(diǎn)云相連的低矮點(diǎn)云。在理想條件下,可以通過點(diǎn)到平面模型的標(biāo)準(zhǔn)偏差來確定閾值,但是實(shí)際車載點(diǎn)云數(shù)據(jù)更加復(fù)雜,難以滿足要求。針對(duì)以上兩個(gè)問題,為了避免RANSAC算法采用小閾值的缺點(diǎn)以及直接使用多尺度濾波迭代運(yùn)行產(chǎn)生大量運(yùn)算成本,可以采用稍大的距離閾值,然后根據(jù)RANSAC算法提取道路的閾值來確定形態(tài)學(xué)濾波窗口的大小以及高差閾值來對(duì)粗提取的道路進(jìn)行濾波。
2)基于點(diǎn)云密度和強(qiáng)度的濾波。經(jīng)過RANSAC地面提取后,除道路路面外還有與道路相接的土地或者草地等非道路面。與道路相比,非道路面點(diǎn)云在點(diǎn)云密度和反射強(qiáng)度上有較大差異,可以利用這一性質(zhì)對(duì)道路進(jìn)行進(jìn)一步的濾波。
(1)車載激光掃描系統(tǒng)沿道路方向采集數(shù)據(jù),在垂直道路方向上距激光掃描儀越遠(yuǎn)點(diǎn)云密度越小,這導(dǎo)致道路點(diǎn)云密度大于非道路點(diǎn)云,并且道路邊界距離掃描儀的距離是相對(duì)固定的,所以路面點(diǎn)在道路邊界區(qū)域具有均勻的密度。對(duì)于任意一點(diǎn)P,利用kd樹索引求出半徑為R的鄰域內(nèi)的點(diǎn)數(shù)Pi,進(jìn)而求出P點(diǎn)鄰域點(diǎn)云密度,對(duì)點(diǎn)云進(jìn)行遍歷,點(diǎn)云密度大于閾值的點(diǎn)屬于道路點(diǎn)。在進(jìn)行基于密度的濾波之前可以選取樣本區(qū)域計(jì)算道路邊界處的路面點(diǎn)云密度作為閾值。
(2)與非道路面相比,道路的激光反射率更高,可以利用反射強(qiáng)度值的變化來進(jìn)行道路提取。在垂直道路方向上,由于道路距離激光掃描儀距離不同和反射角度的變化導(dǎo)致點(diǎn)云強(qiáng)度也隨著與激光掃描儀距離的增加而減小,所以為了減小距離和反射角度對(duì)點(diǎn)云強(qiáng)度的影響,首先對(duì)道路面的反射強(qiáng)度按照距離進(jìn)行歸一化,如式(5)所示,求出歸一化后反射強(qiáng)度的最大值和最小值。對(duì)于任意一點(diǎn),如果其歸一化后的強(qiáng)度值在最大值和最小值之間則可以認(rèn)為是路面點(diǎn)。同樣的,閾值的確定可由樣本路段實(shí)驗(yàn)所得,表達(dá)如式(5)所示。
(5)
式中:d為道路面點(diǎn)云到激光掃描儀的距離;dmean為平均距離;I和In分別為歸一化前后的反射強(qiáng)度值。
在道路點(diǎn)云進(jìn)行二次濾波后已經(jīng)大體上提取出了道路點(diǎn)云,但是由于提取出的道路的邊緣點(diǎn)是離散的,存在一定的稀疏性和不連續(xù)性,同時(shí)數(shù)據(jù)采集時(shí)車輛等障礙物對(duì)激光束的遮擋,也導(dǎo)致道路的邊界出現(xiàn)了間斷,所以為了完整地提取出道路點(diǎn)云,需要確定連續(xù)的道路邊界。本文根據(jù)高速公路道路邊界點(diǎn)的特征,通過邊緣提取算法來提取道路輪廓,然后通過曲線擬合生成光滑邊界。
1)車載點(diǎn)云在經(jīng)過RANSAC濾波提取后,除道路點(diǎn)云外還有一些其他零星的點(diǎn)或片段,在聚類后進(jìn)行遍歷,設(shè)置點(diǎn)數(shù)閾值予以剔除。
2)采用Alpha Shape[14]算法進(jìn)行邊界提取。將點(diǎn)云投影到XOY平面,根據(jù)投影后的點(diǎn)集建立Delaunay三角網(wǎng)。對(duì)于三角網(wǎng)中的任意邊的端點(diǎn)P、Q,過這兩個(gè)點(diǎn)繪制兩個(gè)以S1,S2為圓心,半徑為α的圓,S1,S2的坐標(biāo)如式(6)、式(7)所示。
(6)
(7)
式中:n為端點(diǎn)P、Q組成的向量;α為繪制圓的半徑;xp、yp為P點(diǎn)的橫縱坐標(biāo);xq、yq為Q點(diǎn)的橫縱坐標(biāo)。如圖2所示,若至少有一個(gè)圓內(nèi)部不包含來自點(diǎn)集的點(diǎn),那么這條邊的端點(diǎn)就判定為邊界點(diǎn)。
3)在提取道路輪廓后,需要對(duì)道路邊界進(jìn)行平滑處理。B樣條曲線是一種基于多項(xiàng)式方程,具有很強(qiáng)調(diào)節(jié)能力的曲線,其中局部點(diǎn)的變化不會(huì)影響整體邊界的形狀,可以很好地保留道路邊界的局部特征,所以采用B樣條曲線進(jìn)行平滑處理。
圖2 Alpha Shape原理圖
本文在Windows 10 64位系統(tǒng)下利用C++實(shí)現(xiàn)了以上算法,實(shí)驗(yàn)數(shù)據(jù)為某一地區(qū)高速公路車載激光掃描數(shù)據(jù),選取了兩處比較典型的路段,兩段點(diǎn)云數(shù)據(jù)均包含路燈、標(biāo)識(shí)牌、護(hù)欄、行道樹、灌木、車輛等地物數(shù)據(jù)類型。第一段點(diǎn)云數(shù)據(jù)為平坦的直線路段,路面起伏較小,路段長(zhǎng)度約400 m,點(diǎn)云最大高差約15 m,點(diǎn)云數(shù)量為4 350 803個(gè),如圖3所示。第二段點(diǎn)云數(shù)據(jù)為起伏較大的坡度路段,路段長(zhǎng)度約為300 m,點(diǎn)云最大高差20 m,點(diǎn)云數(shù)量為4 259 053個(gè),如圖4所示。
圖3 平坦路段點(diǎn)云數(shù)據(jù)
圖4 坡度路段點(diǎn)云數(shù)據(jù)
為了加快RANSAC算法迭代尋找道路面的速度,首先利用車載激光掃描系統(tǒng)距離地面高度2.5 m設(shè)置高程閾值,進(jìn)行高程濾波預(yù)處理,剔除不在高程閾值范圍內(nèi)的點(diǎn)云。
為了排除其他非地面平面對(duì)RANSAC擬合路面的干擾,擬合平面與Z軸正方向的夾角閾值設(shè)置為0.04 rad。同時(shí)在分區(qū)域自適應(yīng)閾值提取中,RANSAC算法沿X軸道路方向以10 m分段,沿Y方向以5 m分段,除路面點(diǎn)云外其他點(diǎn)云所占最小比例為總點(diǎn)云的0.4倍,收縮因子為0.8,距離閾值設(shè)置為0.18 m,根據(jù)以上設(shè)置利用改進(jìn)RANSAC算法初步地提取出道路點(diǎn)云,結(jié)果如圖5所示。
圖5 道路粗提取結(jié)果
在形態(tài)學(xué)二次濾波中設(shè)置高差閾值為0.2 m,對(duì)粗提取后的道路殘余的腳點(diǎn)點(diǎn)云進(jìn)行進(jìn)一步的濾波。在基于點(diǎn)云密度和強(qiáng)度的濾波中,通過單段數(shù)據(jù)的實(shí)驗(yàn),搜索半徑設(shè)為0.15 m,點(diǎn)云密度閾值設(shè)為1 900,歸一化后反射強(qiáng)度的最大值和最小值設(shè)為3和7。在進(jìn)行邊界提取時(shí),Alpha Shape算法關(guān)鍵是確定圓的半徑α的取值,這里根據(jù)道路點(diǎn)云的特征,α取值為6,允許誤差取值為0.004,提取出的邊界結(jié)果如圖6所示。綜合以上的參數(shù)設(shè)置對(duì)兩段點(diǎn)云數(shù)據(jù)按照本文的方法進(jìn)行處理,最后道路點(diǎn)云的提取結(jié)果如圖7所示。
圖6 道路邊界提取結(jié)果
圖7 道路提取結(jié)果
為了對(duì)本文方法的高速公路路面提取結(jié)果進(jìn)行評(píng)估,在沒有真實(shí)的道路數(shù)據(jù)的前提下,利用手工獲得的道路數(shù)據(jù)作為參考,以Wang等[15]提出的評(píng)價(jià)方法作為依據(jù),從準(zhǔn)確度CR,完整度CP和提取質(zhì)量Q三個(gè)方面對(duì)本文方法路面提取結(jié)果進(jìn)行定量評(píng)估,結(jié)果見表1,表達(dá)如式(8)所示。
(8)
式中:TP表示正確提取出的道路點(diǎn)個(gè)數(shù);FP表示未能提取的道路點(diǎn)個(gè)數(shù);FN表示錯(cuò)誤分類到道路點(diǎn)的個(gè)數(shù)。
如表1所示,可以看出本文方法對(duì)平坦和坡度路段點(diǎn)云提取準(zhǔn)確度、完整度和提取質(zhì)量都超過90%,以此證明了本文方法的有效性、魯棒性。
表1 路面提取精度分析
本文利用車載激光掃描數(shù)據(jù),提出了基于RANSAC和二次濾波的高速公路濾波提取方法,并以實(shí)際的道路點(diǎn)云數(shù)據(jù)進(jìn)行實(shí)驗(yàn),驗(yàn)證了方法的有效性。本文方法在無法以路沿凸起作為邊界的情況下也可以準(zhǔn)確提取道路,相比于傳統(tǒng)RANSAC提取路面方法,本文的RANSAC角度閾值約束和不同密度區(qū)域設(shè)置相應(yīng)最小點(diǎn)集的優(yōu)化提高了道路提取的精度的同時(shí),也提高了擬合效率;與RANSAC閾值結(jié)合的形態(tài)學(xué)濾波進(jìn)一步減少了多尺度窗口迭代運(yùn)算帶來的成本;最后基于點(diǎn)云密度和強(qiáng)度的濾波充分利用了點(diǎn)云的本身信息,流程簡(jiǎn)單,同時(shí)不需要掃描幾何信息以及更多輔助信息。此外,本文方法需要對(duì)點(diǎn)云進(jìn)行預(yù)處理獲得先驗(yàn)知識(shí),在參數(shù)的選擇上針對(duì)不同的數(shù)據(jù)需要進(jìn)行取樣測(cè)試,所以接下來進(jìn)一步的研究是減少人工經(jīng)驗(yàn)的干擾,提高算法的自適應(yīng)性。