丁少鵬,劉如飛,蔡永寧2,王鵬
(1.山東科技大學 測繪科學與工程學院,山東 青島 266590;2.濟南市勘察測繪研究院,濟南 250101)
三維激光掃描系統(tǒng)能快速獲取高精度的地理信息數(shù)據(jù),近些年得到了廣泛的應用。其中,車載移動測量系統(tǒng)能夠精確地獲取公路兩側(cè)一些近地物信息,在智慧交通、道路管理和城市規(guī)劃等方面具有重要作用[1]。近些年許多專家學者圍繞著車載移動數(shù)據(jù)中道路提取及目標分類做了大量研究,但是如何能夠在地面濾波過程中顧及各種復雜地形特征,是一個亟待解決的問題。
在點云地面濾波方面,許多學者做了相關的研究,其方法可以分為四類:首先,基于形態(tài)學的方法原理比較簡單,如何選擇合適的濾波窗口是最關鍵的一步[1-3],董保根等[4]在插值方面做了相應的改進,但是仍然無法在起伏的地形中取得滿意的效果。其次,基于不規(guī)則三角網(wǎng)的方法可以取得很好的濾波效果[5-6],但是三角網(wǎng)的創(chuàng)建過程較復雜,占用內(nèi)存較大,濾波時間較長,如何改進算法提高濾波效率,減少內(nèi)存占用,是現(xiàn)在需要研究的主要問題。而對于基于曲面擬合的方法[7-9],需要選取足夠準確的點進行擬合運算,參與擬合運算的點越多,擬合出的平面就越準確。所以很多算法都是先插值再擬合,但是插值運算一般會造成一些精度損失。最后是基于坡度的濾波方法[10],張皓等[11]提出通過設置坡度增量來判斷非平面地形,Susaki[12]提出利用數(shù)字地面模型(digital terrain model,DTM)計算坡度閾值,何培培等[13]又增加了不斷變化窗口,利用DTM自動更新坡度閾值通過多次迭代進行濾波。以上方法需要手動輸入多個閾值參數(shù),而不斷迭代計算坡度也增加了運算成本。
總體來說,相比前3類方法,基于坡度的方法原理簡單,不需要插值運算并能很好地保留原始地形特征信息,但如何選取合適的閾值進行濾波是最主要問題。本文提出一種顧及地形的點云自適應坡度濾波方法,可動態(tài)選取濾波窗口和坡度閾值,實現(xiàn)對多種地形的濾波。
基于坡度的濾波方法最早由Vosselman提出[10],傳統(tǒng)的坡度法只能設置固定坡度閾值,對單一地形進行濾波時可以取得不錯的效果,無法顧及所有的地形。坡度閾值過大,無法過濾掉一些距離地面較近的非地面點,坡度閾值過小又會造成過度濾波,丟失一些地面點。除此之外,如果在處理不同的地形時使用單一尺度的窗口也不具有自適應性。因此,傳統(tǒng)的坡度濾波方法主要存在無法自適應選取窗口大小與坡度閾值這2個問題。
算法主要分為數(shù)據(jù)組織與預處理、地形判斷與多尺度濾波、優(yōu)化處理與數(shù)據(jù)輸出3部分,對傳統(tǒng)坡度濾波方法存在的問題進行改進,主要體現(xiàn)在地形判斷與多尺度濾波部分。具體方法如圖1所示。
圖1 算法流程圖
1)創(chuàng)建格網(wǎng)索引。為了方便數(shù)據(jù)的組織,提高運行效率,首先根據(jù)文獻[14]建立二維格網(wǎng),將原始點云投影到xoy平面。
2)去噪與選點。傳統(tǒng)坡度濾波方法直接選取每個格網(wǎng)內(nèi)的最低點作為地面種子點。但是在采集點云的過程中,會因為一些漂浮在空氣中雜物的遮擋,或掃描到低于地面的一些坑洞而產(chǎn)生噪點。這些噪點一般分布在整塊點云周邊,點數(shù)相對較少。若選取的最低點為噪點,則會對后期濾波造成干擾。為了準確選取地面種子點,需要增加約束條件。
如圖2所示,本文在選取地面種子點前,先進行高程分析統(tǒng)計去噪,即對每個格網(wǎng)中的點按高度分層,若某一層中點數(shù)小于平均點密度的1/10,則認為該點為孤立的噪點,需要去除。同時為了避免所選取的最低點是位于地面以下的噪點,改為選取每個格網(wǎng)內(nèi)的次低點作為地面種子點[7]。
如圖3所示,若中心格網(wǎng)內(nèi)所包含的點全是高于地面的非地面點,所選取的地面種子點也會是非地面點。因此,可以利用高差進行判斷,將高差閾值H設定為2倍格網(wǎng)邊長,計算該中心點與8鄰域格網(wǎng)內(nèi)地面種子點的高差ΔHi(i=1,2…,8),若ΔH大于H的鄰域格網(wǎng)點數(shù)N=8,則認為該點是非地面點,需要去除。
圖2 格網(wǎng)分層孤立>點示意圖
圖3 中心點與8鄰域過高示意圖
如圖4所示,計算某窗口內(nèi)臨近點之間的坡度,并對坡度進行分段,統(tǒng)計出坡度的頻率分布情況,由曲線可以看出窗口內(nèi)點云坡度值符合正態(tài)分布的統(tǒng)計規(guī)律。
圖4 坡度頻率分布圖
進行濾波時,首先要計算較大窗口內(nèi)的坡度值,統(tǒng)計局部坡度分布情況,將地形分為3類;然后根據(jù)地形選用不同尺度的濾波窗口,計算出該窗口范圍內(nèi)的局部坡度閾值;最后利用計算出的局部坡度閾值,對相應區(qū)域內(nèi)的點云進行判斷,得到準確的地面點。
1)地形判斷。進行地形判斷時,所選擇的窗口大小應該顧及周圍地形,不能過小,但是如果窗口過大,會同時包含多種地形信息,錯判地形情況,導致濾波失敗??紤]到以上問題,根據(jù)所處理的數(shù)據(jù),本文設定9×9格網(wǎng)作為地形判斷窗口Wb。
根據(jù)正態(tài)分布的統(tǒng)計規(guī)律,剔除一些可能有異常的坡度值,即計算出坡度均值μ與標準差σ,選取(μ-2σ,μ+2σ)內(nèi)的最大坡度作為該窗口內(nèi)判斷地形的坡度值S0??紤]到實際道路路面會有起伏,所以選擇坡度值0.3作為路面與斜坡的分界值。若S0<0.3,則認為是路面等平地;0.3≤S0<1則認為是緩坡;S0≥1的部分可認為是地形比較復雜的陡坡。
2)多尺度濾波。根據(jù)坡度值S0判斷出地形后,選擇合適的濾波窗口W0進行濾波。路面等平坦地形坡度變化較小,采用較大窗口可以更準確地判斷中心點坡度,所以直接采用地形判斷窗口Wb計算窗口內(nèi)中心點與鄰域格網(wǎng)內(nèi)點的坡度。山地等地形坡度變化較大,若窗口過大,計算出的坡度閾值可能無法準確表示中心點坡度,所以要選擇較小的窗口??紤]到數(shù)據(jù)要具有統(tǒng)計特性,數(shù)量不能過少,所以選擇5×5格網(wǎng)作為較小大的濾波窗口Ws。緩坡地形則選擇介于二者之間的7×7格網(wǎng)作為濾波窗口Wm。如式(1)選擇合適的濾波窗口。
(1)
選取合適的窗口后,需要計算出坡度閾值Sm來確定地面點。坡度閾值由中心點與窗口W0內(nèi)的所有鄰域格網(wǎng)點的坡度值決定。同樣選取(μ-2σ,μ+2σ)范圍內(nèi)所有坡度Si,剔除粗差或疑似異常值,按照式(2)計算坡度閾值Sm。然后以中心點與8鄰域格網(wǎng)點的最大坡度作為該點坡度,若小于閾值Sm則認為是地面點,否則需去除。
(2)
式中:N為在(μ-2σ,μ+2σ)范圍內(nèi)的坡度數(shù)量。
1)去噪優(yōu)化。完成上述濾波后,可能還會存在少量噪點,如圖5紅點所示。這類噪點主要特征是周圍沒有臨近點,處于孤立的位置。本文基于鄰域判斷去噪,以待判點為中心點,以窗口W0為判斷范圍,統(tǒng)計該點的鄰域格網(wǎng)內(nèi)是否有點,如果有點的格網(wǎng)數(shù)小于窗口內(nèi)格網(wǎng)總數(shù)的一半,即周圍點數(shù)過少,則去除該中心點。
圖5 孤立點示意圖
2)提取所有地面點。以所得到的地面種子點提取所有地面點。對于中心格網(wǎng)內(nèi)各點,分別計算其與8鄰域格網(wǎng)內(nèi)地面種子點的坡度,求取均值S8m,以上文中的閾值Sm進行判斷,若S8m 算法由C++/QT語言實現(xiàn)。實驗數(shù)據(jù)共2組,都以高程進行渲染。如圖6(a)所示,數(shù)據(jù)1是泰安某一段公路,長度約100 m,共有2 048 061個點。其中包括平坦路面、較陡的邊坡以及中間的緩坡等地形,并含有樹木、護欄、車輛等非地面物。公路較平坦,沒有明顯起伏。陡坡處地形較復雜,中間部分有明顯凸起,斜坡整體坡度在0.8左右,局部最大坡度在2以上。 圖6(c)為原始點云的側(cè)視圖,從圖中可更加直觀地看到所有地物以及地形變化情況。圖6(b)為濾波效果圖,與原數(shù)據(jù)相比,緩坡處的兩排樹已經(jīng)被過濾掉,整個地面保留較完整,無漂浮的噪點。同時,從圖6(d)中的濾波效果側(cè)視圖可以進一步看到,平坦的公路和高低起伏的邊坡等地形都被完整地保留下來,公路上的汽車和公路右側(cè)的低矮灌木護欄已經(jīng)被過濾掉。 圖6 公路點云濾波效果對比圖 數(shù)據(jù)2為某礦山邊坡數(shù)據(jù),如圖7(a)所示,相較于數(shù)據(jù)1,整個測區(qū)無植被,但是地形變化較大。藍色部分是坡度為1的邊坡,中部為平地,剩余部分是坡度近似垂直的陡坡,陡坡中部有凸起,其中地物主要包含1號區(qū)域及周圍平地上的卡車和2號區(qū)域內(nèi)的挖掘機。圖7(b)為濾波后的效果圖,從圖中可以看到卡車及挖掘機等地物都已被過濾,平地及緩坡部分的地面點保留比較完整。 圖7(c)為區(qū)域1濾波效果圖,白色為濾波后的點,紅色為原始點云。疊加后可發(fā)現(xiàn),左側(cè)的A邊坡保留相對比較完整,B邊坡中的部分凸起坡度接近垂直,因為選取地面種子點時只保留了低點,格網(wǎng)內(nèi)的其他坡度較大點需要通過計算出的坡度閾值進行比對,保留小于坡度閾值的點。而計算坡度閾值時,剔除了2σ以外的極值點,然后求取平均值,垂直部分的坡度的較大點就有可能大于坡度閾值,造成一部分不能保留。圖7(d)為區(qū)域2局部濾波效果圖,A邊坡是與地面垂直的陡坡部分,同樣也沒有被完整地保留下來,而B邊坡部分基本上保留完整。 分析2塊點云數(shù)據(jù)的實驗結(jié)果,可以看出算法可以過濾掉2塊點云的絕大部分的地物點。在數(shù)據(jù)1中,平地、緩坡、陡坡都是連續(xù)的,且無近似垂直的陡坡,所以整體地形保留較完整。數(shù)據(jù)2中,除無法保留與地面近似垂直的邊坡外,其他邊坡都可以較完整地保留下來。 圖7 礦山邊坡點云濾波效果對比圖 為了進一步驗證濾波效果,將本文方法與傳統(tǒng)的坡度法和擬合法進行對比。傳統(tǒng)的坡度法設置固定的8鄰域濾波窗口和固定坡度閾值0.2和2,擬合法則是在取最低點后去除明顯非地面點,局部擬合出二次曲面,計算所有點到曲面的距離,分別設定閾值0.5 m和1 m進行濾波。手動將2組數(shù)據(jù)的地面點和地物點進行分類,GP表示地面點數(shù),OP表示非地面點數(shù),OFP表示被過濾的地面點的點數(shù),IFP表示錯判為地面點的點數(shù)。按公式(3)計算出一類誤差Ie、二類誤差IIe和總體誤差Ae,對3種方法濾波結(jié)果進行定量評價。一類誤差和二類誤差反映了適用性,總體誤差反映了算法的可行性,統(tǒng)計結(jié)果如表1所示。 (3) 表1 濾波誤差分析表 從表1中可以看出,對于公路數(shù)據(jù),本文提出的顧及地形的點云自適應坡度濾波方法相比傳統(tǒng)的坡度濾波方法在一類誤差和總體誤差方面有很大地提升。利用傳統(tǒng)的坡度濾波方法,設置坡度閾值0.2,二類誤差僅為0.02%,但因為有非平面的地形,造成了大范圍的過度濾波,一類誤差高達54.15%。擬合法采用了二次曲面擬合,效果較好,但相對而言本文算法的3種誤差都更低,可以取得更好的濾波效果。 礦山邊坡數(shù)據(jù)中,傳統(tǒng)坡度法依然會大范圍過度濾波,設置坡度為2的情況下,雖保留下了大部分地面點,但非地面點也無法去除,造成二類誤差較高。擬合法雖然保留了整體的地形特征,但是二類誤差卻整體偏大,無法過濾掉卡車等地物。從表中的數(shù)據(jù)結(jié)合濾波效果圖來看,相對于傳統(tǒng)坡度法和擬合法而言,本文方法雖然一類誤差、總體誤差稍微偏高,但是可以保留下整體地形特征,算法具有一定的可行性。 本文提出的顧及地形的點云自適應坡度濾波方法,可以根據(jù)不同地形自適應地確定坡度閾值,完成地面濾波。算法無需迭代,提高了點云濾波的自動化水平。最后的實驗結(jié)果表明,算法在去除地物點的同時可以保留地形特征信息。但是在垂直的陡坡地形中,雖然能夠過濾地物,邊坡信息卻無法完整保留下來。所以,如何能夠在處理這種地形時保留更多的地面點和進一步提高自動化水平是后續(xù)研究重點。2 實驗分析
3 結(jié)束語