肖信峰,余敏,高飛,葉周潤
(合肥工業大學 土木與水利工程學院,合肥 230009)
車載激光雷達作為一種移動式精確獲取點云數據的傳感器,在行駛過程中能夠快速、準確地獲取道路兩側的三維地物點云[1]。車載激光移動測量技術具有高分辨率、高精度、抗干擾能力強等特點,近年來在地形測量、自動駕駛、精細制圖等諸多行業發展迅速。相對于機載激光雷達測量系統,該平臺通常貼近地面,能夠獲取更高密度、更高精度的地面、建筑物、植被等地物的點云數據,同時能夠采集地物表面更多垂直方向的信息,為道路要素提取提供更好的數據源[2]。
車載點云數據在道路工程中有著廣泛的應用。通過采集的點云數據可以獲取高精度的路面地形,為道路改擴建、路面安全監測、道路設施管理等應用提供基礎數據,而這些深入應用的前提是如何快速精確地從車載點云數據中提取出路面點云[3]。
國內外眾多學者對車載激光點云的道路濾波提取算法進行了大量研究,一部分學者利用掃描線中豐富的幾何信息進行特征分析從而提取道路,劉如飛等[4]根據掃描線上點云分布的空間特征,利用移動動態窗口分類法進行路面的提取。李永強等[5]利用車載激光掃描系統的GPS輔助數據結合掃描線來提取道路。這種基于掃描線的方法主要基于道路點云之間的高差、坡度等,容易受到道路形狀以及道路上的小型地物的影響,魯棒性不高。還有學者將三維離散的激光點云投影到二維平面,再結合點云的特征轉化為特征圖像利用傳統的圖像處理算法進行分割[6-7],但由于轉化二維圖像過程中會丟失垂直方向的信息,存在得到的道路點云精度不高的問題。也有學者根據道路點云在一定范圍內有相似的強度及密度特征,采用了聚類分割的方法。楊望山等[8]利用點云的法向量特征采用K均值算法進行聚類提取。Thanh等[9]利用基于體素的區域生長算法聚類分割從而提取道路點云。胡嘯等[10]利用平滑度約束下歐式聚類分割算法對道路進行提取。
總體來說,目前車載激光點云提取道路時大多數利用道路邊沿的點云高程差設置高差閾值來進行提取,但是對于沒有路緣石的高速公路相關算法不能適用,本文針對高速公路車載點云數據的特點,提出一種基于車載掃描數據的高速公路提取方法。首先,利用改進的隨機抽樣一致(random sample consensus,RANSAC)算法進行道路粗提取;然后,使用結合RANSAC閾值的形態學濾波和基于點云強度和密度的濾波進行道路精提取;最后,通過Alpha Shape邊緣檢測算法來提取邊界點云,平滑生成邊緣線從而提取完整道路點云。
本文高速公路路面提取方法目的是濾除車載掃描數據中車輛、交通設施以及道路兩側地物,提取完整道路點云,大體可分為道路粗提取、道路精提取、道路邊界優化三步,具體流程如圖1所示。

圖1 道路提取流程圖
RANSAC算法是用來從一組含有“外點”的數據中正確估計數學模型參數的迭代算法。RANSAC應用于路面提取時,首先,隨機選取初始點云中的種子點組成平面;然后,在剩余點云中搜索支持平面的點;最后,選擇包含局內點數目最多的點云子集,得到最佳的模型參數[11]。RANSAC的具體步驟如下。
步驟1:隨機選擇三個點P0,P1,P2組成平面,利用三個點組成向量的比例關系判斷三個點是否共線。
步驟2:構造坐標矩陣,根據選取的點求解平面和平面的法向量。其平面方程和法向量如式(1)至式(2)所示。
Ax+By+Cz+D=0
(1)
n=(P0-P1)×(P0-P2)
(2)
步驟3:對點云中每個點Pi求出到平面的距離,表達如式(3)所示。
(3)
步驟4:認為到平面距離小于閾值τ的點都屬于地面點,記錄點的坐標和平面方程。
步驟5:迭代運行步驟1~步驟4T次,選擇地面點數量最多的平面。
1)約束條件RANSAC。
(1)在RANSAC算法進行路面擬合時,初始種子點的選取是完全隨機的,當車載點云數據比較復雜,地物點所占的比例較高時,會大大增加RANSAC的迭代次數,使得算法的處理效率下降,所以要縮小隨機采樣點的范圍。首先,可以根據激光雷達的高度對選取的路面初始隨機點的高程值加以約束,若點云高程大于高程閾值則予以剔除,低于閾值的點作為待定點進行下一步處理。
(2)在激光雷達采集點云數據時,一般將車輛前進方向設為X軸,在水平方向上與X軸垂直的為Y軸,與XY平面垂直的向上方向為Z軸,建立車輛坐標系。RANSAC算法是根據平面模型的數學參數來擬合平面的,不能很好地提取出實際帶有邊界約束的真實面。復雜的車載點云數據中除路面外還有大量非地面平面,這些平面的法向量與車輛坐標系的Z軸夾角各不相同,而RANSAC算法擬合出的地面平面與Z軸夾角θ一般很小,利用這一特性可以將這些平面進行分類,以角度閾值為約束條件進行平面提取,則可避免誤提取交通標示牌等非路面平面。同時,角度閾值的加入也可以加快尋找最佳平面的速度。
令Z軸正方向的單位向量為P=(0,0,1),平面夾角可以通過平面法向量和Z軸方向向量P進行計算,對每個夾角進行判斷是否超過閾值,對超過閾值的加以剔除,具體表達如式(4)所示。
(4)
式中:θi為各平面法向量和Z軸正方向夾角;n為各平面的法向量;λ為角度閾值。
2)分區域自適應閾值提取。RANSAC算法只能提取特有的幾何模型,例如平面,而對曲面等無能為力。實際路面是有坡度起伏的,RANSAC算法提取坡度路段時會出現部分漏提取,不能完整地提取道路點云,降低道路提取的精度。為了提高擬合路面的魯棒性,提出了一種分區自適應閾值RANSAC算法,通過在車輛坐標系XY平面內將點云數據劃分為多個規則的分區分別進行RANSAC后再進行最小二乘擬合,實現路面的自動提取。車載點云數據由于采集視角的約束以及地物遮擋的原因,造成不同區域中點云密度不同,越遠離激光掃描儀點云越稀疏。針對車載點云數據的這種特點,可以將數據集劃分為不同的矩形區域,在不同點云密度的區域采用不同尺度的最小點集N,N表示擬合平面時所需包含的最小點數,當RANSAC提取的地面點數量大于N時就終止迭代。通過根據區域點云密度確定最小點集N的大小,提高了RANSAC擬合路面的效率。具體步驟如下:首先,根據車輛坐標系的四個象限沿X、Y軸可以將點云數據初步分為四個大區域。然后,在四個區域內沿著X、Y軸的正負方向以一定的步長進行分區,以y=0為起始,沿Y軸正負方向隨著點云密度的減少,以一定的收縮因子逐步減少最小點集N,分區域提取后再對提取的地面點云進行擬合,X、Y兩個方向的分段長度要考慮分段處理的效率和性能,可以通過實驗路段來決定。
1)形態學濾波。在形態學濾波中,先腐蝕再膨脹的操作稱為開運算。基于數學形態學的LiDAR點云濾波是將點云數據格網化之后,通過開運算從點云數據中提取地面點[12]。
數學形態學濾波算法的關鍵在于濾波窗口大小的選擇和高度閾值的變化,如果窗口的大小設定過小,可以很好地保留地面起伏的細節,但是只能濾除植被、汽車等低小地物,對大型地物的去除效果較差;相反,窗口大小設定過大,則會過度地去除一些地面點。針對這種情況,目前最常用的是采用多尺度窗口的濾波方法,Zhang等[13]提出漸進式形態學濾波,通過逐漸增大窗口尺寸迭代去除不同大小的地物。相比于機載點云數據,車載點云數據的密度更高,這意味著在每個濾波窗口中需要處理的格網數量更多,數據的運算量更大,而且隨著迭代過程中窗口尺寸的增大,運行效率低下的問題會更加突出。
在RANSAC算法提取道路時到平面距離小于閾值的點都認定為道路點,所以閾值的選取存在兩難問題:采用較小的閾值,那么會過濾掉部分道路點;采用較大的閾值,那么不可避免地會誤提取與道路點云相連的低矮點云。在理想條件下,可以通過點到平面模型的標準偏差來確定閾值,但是實際車載點云數據更加復雜,難以滿足要求。針對以上兩個問題,為了避免RANSAC算法采用小閾值的缺點以及直接使用多尺度濾波迭代運行產生大量運算成本,可以采用稍大的距離閾值,然后根據RANSAC算法提取道路的閾值來確定形態學濾波窗口的大小以及高差閾值來對粗提取的道路進行濾波。
2)基于點云密度和強度的濾波。經過RANSAC地面提取后,除道路路面外還有與道路相接的土地或者草地等非道路面。與道路相比,非道路面點云在點云密度和反射強度上有較大差異,可以利用這一性質對道路進行進一步的濾波。
(1)車載激光掃描系統沿道路方向采集數據,在垂直道路方向上距激光掃描儀越遠點云密度越小,這導致道路點云密度大于非道路點云,并且道路邊界距離掃描儀的距離是相對固定的,所以路面點在道路邊界區域具有均勻的密度。對于任意一點P,利用kd樹索引求出半徑為R的鄰域內的點數Pi,進而求出P點鄰域點云密度,對點云進行遍歷,點云密度大于閾值的點屬于道路點。在進行基于密度的濾波之前可以選取樣本區域計算道路邊界處的路面點云密度作為閾值。
(2)與非道路面相比,道路的激光反射率更高,可以利用反射強度值的變化來進行道路提取。在垂直道路方向上,由于道路距離激光掃描儀距離不同和反射角度的變化導致點云強度也隨著與激光掃描儀距離的增加而減小,所以為了減小距離和反射角度對點云強度的影響,首先對道路面的反射強度按照距離進行歸一化,如式(5)所示,求出歸一化后反射強度的最大值和最小值。對于任意一點,如果其歸一化后的強度值在最大值和最小值之間則可以認為是路面點。同樣的,閾值的確定可由樣本路段實驗所得,表達如式(5)所示。
(5)
式中:d為道路面點云到激光掃描儀的距離;dmean為平均距離;I和In分別為歸一化前后的反射強度值。
在道路點云進行二次濾波后已經大體上提取出了道路點云,但是由于提取出的道路的邊緣點是離散的,存在一定的稀疏性和不連續性,同時數據采集時車輛等障礙物對激光束的遮擋,也導致道路的邊界出現了間斷,所以為了完整地提取出道路點云,需要確定連續的道路邊界。本文根據高速公路道路邊界點的特征,通過邊緣提取算法來提取道路輪廓,然后通過曲線擬合生成光滑邊界。
1)車載點云在經過RANSAC濾波提取后,除道路點云外還有一些其他零星的點或片段,在聚類后進行遍歷,設置點數閾值予以剔除。
2)采用Alpha Shape[14]算法進行邊界提取。將點云投影到XOY平面,根據投影后的點集建立Delaunay三角網。對于三角網中的任意邊的端點P、Q,過這兩個點繪制兩個以S1,S2為圓心,半徑為α的圓,S1,S2的坐標如式(6)、式(7)所示。
(6)
(7)
式中:n為端點P、Q組成的向量;α為繪制圓的半徑;xp、yp為P點的橫縱坐標;xq、yq為Q點的橫縱坐標。如圖2所示,若至少有一個圓內部不包含來自點集的點,那么這條邊的端點就判定為邊界點。
3)在提取道路輪廓后,需要對道路邊界進行平滑處理。B樣條曲線是一種基于多項式方程,具有很強調節能力的曲線,其中局部點的變化不會影響整體邊界的形狀,可以很好地保留道路邊界的局部特征,所以采用B樣條曲線進行平滑處理。

圖2 Alpha Shape原理圖
本文在Windows 10 64位系統下利用C++實現了以上算法,實驗數據為某一地區高速公路車載激光掃描數據,選取了兩處比較典型的路段,兩段點云數據均包含路燈、標識牌、護欄、行道樹、灌木、車輛等地物數據類型。第一段點云數據為平坦的直線路段,路面起伏較小,路段長度約400 m,點云最大高差約15 m,點云數量為4 350 803個,如圖3所示。第二段點云數據為起伏較大的坡度路段,路段長度約為300 m,點云最大高差20 m,點云數量為4 259 053個,如圖4所示。

圖3 平坦路段點云數據

圖4 坡度路段點云數據
為了加快RANSAC算法迭代尋找道路面的速度,首先利用車載激光掃描系統距離地面高度2.5 m設置高程閾值,進行高程濾波預處理,剔除不在高程閾值范圍內的點云。
為了排除其他非地面平面對RANSAC擬合路面的干擾,擬合平面與Z軸正方向的夾角閾值設置為0.04 rad。同時在分區域自適應閾值提取中,RANSAC算法沿X軸道路方向以10 m分段,沿Y方向以5 m分段,除路面點云外其他點云所占最小比例為總點云的0.4倍,收縮因子為0.8,距離閾值設置為0.18 m,根據以上設置利用改進RANSAC算法初步地提取出道路點云,結果如圖5所示。

圖5 道路粗提取結果
在形態學二次濾波中設置高差閾值為0.2 m,對粗提取后的道路殘余的腳點點云進行進一步的濾波。在基于點云密度和強度的濾波中,通過單段數據的實驗,搜索半徑設為0.15 m,點云密度閾值設為1 900,歸一化后反射強度的最大值和最小值設為3和7。在進行邊界提取時,Alpha Shape算法關鍵是確定圓的半徑α的取值,這里根據道路點云的特征,α取值為6,允許誤差取值為0.004,提取出的邊界結果如圖6所示。綜合以上的參數設置對兩段點云數據按照本文的方法進行處理,最后道路點云的提取結果如圖7所示。

圖6 道路邊界提取結果

圖7 道路提取結果
為了對本文方法的高速公路路面提取結果進行評估,在沒有真實的道路數據的前提下,利用手工獲得的道路數據作為參考,以Wang等[15]提出的評價方法作為依據,從準確度CR,完整度CP和提取質量Q三個方面對本文方法路面提取結果進行定量評估,結果見表1,表達如式(8)所示。

(8)
式中:TP表示正確提取出的道路點個數;FP表示未能提取的道路點個數;FN表示錯誤分類到道路點的個數。
如表1所示,可以看出本文方法對平坦和坡度路段點云提取準確度、完整度和提取質量都超過90%,以此證明了本文方法的有效性、魯棒性。

表1 路面提取精度分析
本文利用車載激光掃描數據,提出了基于RANSAC和二次濾波的高速公路濾波提取方法,并以實際的道路點云數據進行實驗,驗證了方法的有效性。本文方法在無法以路沿凸起作為邊界的情況下也可以準確提取道路,相比于傳統RANSAC提取路面方法,本文的RANSAC角度閾值約束和不同密度區域設置相應最小點集的優化提高了道路提取的精度的同時,也提高了擬合效率;與RANSAC閾值結合的形態學濾波進一步減少了多尺度窗口迭代運算帶來的成本;最后基于點云密度和強度的濾波充分利用了點云的本身信息,流程簡單,同時不需要掃描幾何信息以及更多輔助信息。此外,本文方法需要對點云進行預處理獲得先驗知識,在參數的選擇上針對不同的數據需要進行取樣測試,所以接下來進一步的研究是減少人工經驗的干擾,提高算法的自適應性。