李 特
(中國(guó)鐵路設(shè)計(jì)集團(tuán)有限公司,天津 300251)
隨著無(wú)人機(jī)、慣性導(dǎo)航和激光測(cè)距技術(shù)的快速發(fā)展,機(jī)載激光雷達(dá)技術(shù)在鐵路勘察設(shè)計(jì)項(xiàng)目中的應(yīng)用越來(lái)越廣泛[1]。機(jī)載雷達(dá)是一種主動(dòng)遙感技術(shù),不受時(shí)間、氣候的影響,可以全天候獲取地面的三維信息[2]。利用機(jī)載LiDAR獲取的三維點(diǎn)云數(shù)據(jù),其點(diǎn)云密度較高,可以建立高精度的DEM模型并切繪出鐵路的橫斷面。在建立DEM模型時(shí),需要對(duì)原始的點(diǎn)云進(jìn)行濾波(區(qū)分地面點(diǎn)和非地面點(diǎn))。
目前,點(diǎn)云濾波算法大致分為基于坡度的點(diǎn)云濾波、基于數(shù)學(xué)形態(tài)學(xué)的點(diǎn)云濾波和基于表面的濾波[3-4]?;谄露鹊臑V波算法是假設(shè)地形坡度在某一地域范圍內(nèi)逐漸變化,而建筑或樹木與地面之間的坡度變化相對(duì)較大,基于這一假設(shè),通過比較LiDAR點(diǎn)與其相鄰點(diǎn)的斜率區(qū)分地面點(diǎn)和非地面點(diǎn),但此方法難以在復(fù)雜地形中發(fā)揮良好的作用[5-6]。數(shù)學(xué)形態(tài)學(xué)濾波算法是利用數(shù)學(xué)形態(tài)學(xué)思想去除非地面點(diǎn)[7-8],一般會(huì)設(shè)置合適的濾波窗口。若濾波窗口過大則會(huì)平滑掉地形細(xì)節(jié),如山脊、懸崖等,窗口過小則會(huì)保留大的建筑物點(diǎn),故需要通過豐富的先驗(yàn)知識(shí)定義合適的窗口尺寸[9]。基于表面的s波方法是通過迭代來(lái)篩選地面點(diǎn),這種濾波方法的核心是需要建立一個(gè)裸露地表面。典型代表有自適應(yīng)不規(guī)則三角網(wǎng)濾波(Triangulated Irregular Network,TIN)算法[10],但該算法需要設(shè)置整個(gè)區(qū)域的閾值參數(shù),故難以在折線和陡峭地形附近檢測(cè)到地面點(diǎn),Bayram E[11]等介紹一種基于曲面的濾波方法,引入加權(quán)最小二乘插值來(lái)識(shí)別地面點(diǎn),結(jié)果表明該方法在平坦地形上效果良好,但在坡度陡、變異性大的地形上可靠性較差。
綜上所述,傳統(tǒng)的濾波算法在特定區(qū)域的運(yùn)用較為成功,但其性能會(huì)隨著地形特征不同而變化,在復(fù)雜的城市景觀地區(qū)和地形陡峭的山區(qū),濾波結(jié)果具有爭(zhēng)議性[12]。此外,以上濾波方法的實(shí)現(xiàn)還需要合適的參數(shù)才能達(dá)到滿意的效果,而這些參數(shù)由于區(qū)域地形特征的不同而很難確定。
為了解決上述問題,介紹一種布料模擬濾波算法(cloth simulation filter,CSF)[13],該算法以一種“自下而上”的策略逼近地面點(diǎn),參數(shù)較少。張昌賽等利用不同坡度、點(diǎn)云密度、不同覆蓋物測(cè)試數(shù)據(jù)對(duì)布料模擬濾波算法進(jìn)行適用性分析,結(jié)果表明其誤差率小,效率高[14-15]。相較于現(xiàn)有的濾波算法,CSF濾波方法具有一定優(yōu)勢(shì)[16]:①人為設(shè)置參數(shù)少,且參數(shù)易于理解和設(shè)置,不需要過多經(jīng)驗(yàn)知識(shí);②在平坦、山區(qū)和建筑物密集的不同地形場(chǎng)景中,其參數(shù)一致性較好。
布料模擬是計(jì)算機(jī)圖形學(xué)的專業(yè)術(shù)語(yǔ),是一種基于物理過程的假設(shè)模擬。其思想是假設(shè)一塊布隨著重力自由下落,如果布料極其柔軟可以貼在地面上,則布料的最終形狀則是數(shù)字表面模型((Digital Surface Model,DSM)。基于此思想,若將獲取的點(diǎn)云數(shù)據(jù)進(jìn)行倒置,將布料賦予剛性特點(diǎn),則布料的最終形狀就是DEM(見圖1)。
圖1 布料模擬算法
為了從原始點(diǎn)云中提取地面點(diǎn),模擬布料結(jié)構(gòu)中會(huì)有許多節(jié)點(diǎn),程序通過分析粒子節(jié)點(diǎn)與鄰近LiDAR點(diǎn)云相應(yīng)點(diǎn)之間的相互作用,確定出最符合真實(shí)地形的節(jié)點(diǎn)分布位置,進(jìn)而確定布料最終形狀,從而可以將原始點(diǎn)云區(qū)分為地面點(diǎn)和非地面點(diǎn)。
在程序仿真布料模擬過程中,圖中每一個(gè)粒子均帶有質(zhì)量信息,粒子之間相互連接的網(wǎng)絡(luò)模型稱為Mass-Spring模型(見圖2)。粒子在三維空間中的分布位置和形狀決定了布的形狀,粒子之間的互連網(wǎng)絡(luò)遵循一定力的性質(zhì)特點(diǎn),相當(dāng)于在粒子之間安置了彈簧。為了模擬布的形狀,可設(shè)置優(yōu)化函數(shù)對(duì)其進(jìn)行求解。
圖2 網(wǎng)絡(luò)模型結(jié)構(gòu)
式中,X表示t時(shí)刻粒子的位置,F(xiàn)ext(X,t)表示粒子運(yùn)動(dòng)時(shí)受到的外力,F(xiàn)int(X,t)表示粒子在位置X和時(shí)間t時(shí)刻的內(nèi)力(相互連接的力)。內(nèi)部力和外部力隨著時(shí)間t變化而變化,因而可以通過數(shù)值積分來(lái)求解。
算法詳細(xì)步驟如圖3所示。
圖3 算法流程
(1)對(duì)點(diǎn)云進(jìn)行預(yù)處理,去除原始點(diǎn)云中的噪聲和異常值。將預(yù)處理后的點(diǎn)云進(jìn)行翻轉(zhuǎn),將末次回波點(diǎn)置于上方。
(2)將空間中的粒子位置和LiDAR點(diǎn)云投影到同一水平面,根據(jù)設(shè)置的超參數(shù)空間分辨率GR(相鄰粒子之間的距離)確定粒子個(gè)數(shù)Np,并找到每個(gè)網(wǎng)格中離粒子最近的LiDAR點(diǎn)(命名為CP點(diǎn)),布料模擬過程中各個(gè)粒子的初始值Xinit一般為最高點(diǎn)以上,后續(xù)迭代會(huì)進(jìn)行不斷糾正。
(3)定義一個(gè)IHV(交點(diǎn)高度值),即CP點(diǎn)在投影前的高度值,該值會(huì)限制粒子移動(dòng)的范圍。當(dāng)粒子移動(dòng)到IHV時(shí),表明已經(jīng)到達(dá)臨界最低位置,粒子狀態(tài)變?yōu)橥V挂苿?dòng)。在優(yōu)化過程中,每一次迭代都會(huì)將粒子當(dāng)前高度值CHV(粒子迭代當(dāng)前高度值)與IHV進(jìn)行比較。當(dāng)CHV等于或者低于IHV時(shí),粒子被認(rèn)為回到IHV位置,并標(biāo)記為不可移動(dòng)點(diǎn)。
(4)在獲取所有粒子的三維位置后,可以得到真實(shí)地形的近似值,通過計(jì)算粒子與原始激光點(diǎn)Xp之間的距離和人為設(shè)置的參數(shù)閾值(thread),實(shí)現(xiàn)將原始LiDAR點(diǎn)云分為地面點(diǎn)和非地面點(diǎn)(低于或等于閾值為地面點(diǎn),高于閾值為非地面點(diǎn))。
在算法研究基礎(chǔ)上,采用基于PCL庫(kù)C++語(yǔ)言編程,研發(fā)點(diǎn)云濾波小插件,并利用Qt框架搭建圖形界面(見圖4)。
圖4 算法實(shí)現(xiàn)界面
整個(gè)布料模擬過程中,除了算法的自動(dòng)約束條件外,還需人為指定5個(gè)超參數(shù)。①布料硬度:控制粒子節(jié)點(diǎn)隨重力下降的幅度;②時(shí)間步:控制著粒子移動(dòng)的位移;③網(wǎng)格的分辨率GR:代表布料中相鄰粒子之間的距離,一般設(shè)置為2 m左右(數(shù)值過小則迭代計(jì)算慢);④最大迭代次數(shù)iteration:表示算法迭代終止的臨界值;⑤分類閾值thread:表示將點(diǎn)云分為地面點(diǎn)和非地面點(diǎn)的閾值(根據(jù)不同場(chǎng)景而定,一般設(shè)置為0.5 m)。針對(duì)陡坡區(qū)域,由于粒子位于實(shí)際點(diǎn)云位置上方,其濾波易出現(xiàn)錯(cuò)誤點(diǎn)。為了解決此問題,對(duì)于陡坡區(qū)域,應(yīng)進(jìn)一步限制粒子間的移動(dòng)關(guān)系,平滑陡坡的邊緣,達(dá)到與實(shí)際地形相符的效果。
與遙感影像分類類似,點(diǎn)云濾波結(jié)果也需要定量評(píng)價(jià),因而需要建立真實(shí)的標(biāo)簽數(shù)據(jù)作為groundtruth。通過手動(dòng)分類建立測(cè)試數(shù)據(jù)集,即測(cè)試數(shù)據(jù)已經(jīng)明確地面點(diǎn)和非地面點(diǎn),將其濾波結(jié)果與groundtruth作比較,算出評(píng)價(jià)因子。評(píng)價(jià)體系采用國(guó)際攝影測(cè)量與遙感學(xué)會(huì)的交叉表評(píng)價(jià)因子(見表1)。
表1 交叉表
為了評(píng)價(jià)濾波結(jié)果可靠性,以總誤差作為指標(biāo),表示分類結(jié)果與groundtruth不一致的概率值,有
(2)
同時(shí),與遙感影像分類結(jié)果評(píng)價(jià)類似,利用kappa系數(shù)作為檢驗(yàn)方法,kappa系數(shù)越高,表明濾波效果越好,有
(3)
選用兩塊不同地形場(chǎng)景數(shù)據(jù)a和b作為測(cè)試數(shù)據(jù),a為地形起伏大的山區(qū),有陡坎且植被覆蓋茂盛;b為建筑物密集的城區(qū),地勢(shì)較平坦,有植被和高大建筑物。這些測(cè)試數(shù)據(jù)均已進(jìn)行人工精細(xì)分類,每個(gè)三維坐標(biāo)點(diǎn)均有屬性類別信息(見圖5、表2)。
圖5 測(cè)試數(shù)據(jù)
表2 測(cè)試數(shù)據(jù)集特征(pt表示points)
為了測(cè)試CSF點(diǎn)云濾波算法適用性,將測(cè)試數(shù)據(jù)a和b作為實(shí)驗(yàn)驗(yàn)證數(shù)據(jù),通過比較濾波后結(jié)果和真實(shí)驗(yàn)證數(shù)據(jù)的總誤差、kappa系數(shù)評(píng)價(jià)算法的可靠性。同時(shí),為了比較不同算法的差異性,實(shí)驗(yàn)還將CSF濾波算法與傳統(tǒng)的基于數(shù)學(xué)形態(tài)學(xué)濾波方法、基于TIN濾波方法進(jìn)行對(duì)比分析,分析測(cè)試數(shù)據(jù)在不同濾波方法上的濾波總誤差kappa系數(shù)。
在一些陡坡區(qū)域,形態(tài)學(xué)濾波容易將地面點(diǎn)歸類為低植被點(diǎn);在坡度較大地區(qū)地面點(diǎn)極其稀疏,在生成DEM模型時(shí),容易將坡度細(xì)節(jié)區(qū)域忽略(見圖6(a))。當(dāng)真實(shí)場(chǎng)景為過渡緩坡時(shí),通過數(shù)學(xué)形態(tài)學(xué)濾波方法建立的DEM模型表現(xiàn)為陡坎(見圖7(a))?;赥IN的點(diǎn)云濾波算法其搜索的地面點(diǎn)不連續(xù),點(diǎn)與點(diǎn)之間空洞比較大,在靠近坡底的區(qū)域地面點(diǎn)較少,因而建立的DEM模型在坡度區(qū)域易出現(xiàn)“尖刺”現(xiàn)象(見圖7(b))。CSF濾波算法在坡度較陡的區(qū)域,過濾出的地面點(diǎn)較多且連續(xù),建立的DEM三角網(wǎng)模型能夠充分利用這些地面點(diǎn),因而其模型較為接近真實(shí)場(chǎng)景。
在植被茂盛地區(qū),自上而下的地面點(diǎn)搜索策略容易受植被或建筑物點(diǎn)的影響,而CSF是自下而上的地面點(diǎn)濾波算法,因而搜索地面點(diǎn)較為有利。在植被和建筑物混合區(qū)域,形態(tài)學(xué)濾波算法和基于TIN的濾波算法均能搜索到地面點(diǎn),但搜到的地面點(diǎn)較稀疏,并夾雜低植被點(diǎn)(見圖6(b))。相比而言,CSF算法搜索到的地面點(diǎn)分布更為合理。
圖6 基于形態(tài)學(xué)、基于TIN和基于CSF濾波后剖面
圖7 DEM模型
對(duì)比分析數(shù)學(xué)形態(tài)學(xué)濾波、基于TIN和CSF濾波算法在不同場(chǎng)景下的總誤差和kappa系數(shù)。研究結(jié)果表明(見表3、表4),CSF濾波算法在測(cè)試數(shù)據(jù)下要優(yōu)于傳統(tǒng)的點(diǎn)云濾波算法。針對(duì)數(shù)據(jù)a,CSF相比形態(tài)學(xué)和TIN,總誤差分別減小了15.79%、5.91%,kappa系數(shù)分別提高了14.41%、9.09%;針對(duì)數(shù)據(jù)b,其總誤差分別減小了10.82%、4.18%,kappa系數(shù)分別提高了11.55%、4.38%。CSF濾波算法總誤差低于11%,表明濾波結(jié)果與手動(dòng)分類建立的參考數(shù)據(jù)一致性較為良好(默認(rèn)手動(dòng)分類結(jié)果正確),其kappa系數(shù)優(yōu)于92%,表明濾波效果良好。
表3 總誤差 %
表4 kappa系數(shù) %
CSF算法處理效率與分辨率GR、迭代次數(shù)iteration、粒子移動(dòng)時(shí)間步長(zhǎng)有關(guān)。一般而言,在地形較復(fù)雜的山區(qū),粒子到達(dá)局部最優(yōu)位置的迭代次數(shù)有所增加,其處理效率會(huì)有所下降。本次采用的測(cè)試數(shù)據(jù)范圍較小,3種算法在處理效率上未見明顯差別。
(1)布料模擬的點(diǎn)云濾波方法是通過模擬布料貼近地面的物理過程,以不斷迭代來(lái)獲取原始LiDAR點(diǎn)云的地面點(diǎn)。相較于傳統(tǒng)的點(diǎn)云濾波算法,其參數(shù)少,且易于設(shè)置。在不同的地形場(chǎng)景下,參數(shù)的變化不大,濾波效果穩(wěn)定。
(2)在一些植被茂密且地形相對(duì)復(fù)雜的區(qū)域,坡度變化是影響點(diǎn)云濾波的重要因素,一般的算法在濾波過程中往往難以獲取到連續(xù)地面點(diǎn),造成大量地面點(diǎn)出現(xiàn)空洞現(xiàn)象,其后續(xù)建立的DEM模型易出現(xiàn)“尖刺”現(xiàn)象或忽略陡坡細(xì)節(jié)。CSF算法通過布料模擬過程搜尋地面點(diǎn),并經(jīng)坡度后處理策略可以解決此類問題。
(3)為了進(jìn)一步提高CSF算法的性能,在后續(xù)研究中將深化研究CSF參數(shù)自適應(yīng)化。