呂富強,唐詩華,2*,李灝楊,劉坤之
(1.桂林理工大學 測繪地理信息學院,廣西 桂林 541004;2.廣西空間信息與測繪重點實驗室,廣西 桂林 541004)
使用無人機航測技術進行地表信息的獲取,具有速度快、精度高、成本低以及靈活性強等特點,因此,無人機航測技術在測繪領域被普遍使用。但在進行點云數據的采集與處理過程中,會由于非目標地物遮擋、數據獲取與處理技術的局限等各方面原因,造成點云數據的部分缺失,形成各種點云孔洞。這些孔洞的存在給后續測繪產品的生產帶來較大的影響,在前期的處理工作中,需要對這些點云孔洞進行修補,以便后續的產品制作。
為了解決無人機獲取的點的孔洞問題,王春香等[1]使用優化BP神經網絡的方法進行點云孔洞的修補,該方法在密度均勻的點云孔洞修補中具有較好的效果,但在密度差異較大的點云孔洞修補中效果不夠理想。刑鵬威等[2]使用LSSVM算法對點云孔洞進行修補,該方法總體的修補效果較好,但在局部的修補中會存在誤差較大的問題。李永強等[3]通過地空雷達點云數據融合的方法對建筑物點云孔洞進行了修補,該方法修補的自動化程度較高,但需要進行地空數據的同時采集,數據獲取成本較高,且在局部隱蔽區域的修補上效果還有待提高。Davis等[4]提出了基于體數據擴張的修補算法,該算法適應性較強,但在修補的精度上還有待提高。Chen等[5]將RBF函數進行曲面孔洞的修補,該方法在曲面較為平滑的區域修補精度較高,但在曲率變化較大的區域修補精度無法得到保證。這幾種方法對孔洞面積較小、地勢起伏平緩、特征缺失較少的地表點云孔洞修補效果較好,但在地形起伏較大、點云分布雜亂以及孔洞面積較大的地表區域中,修補效果還不夠理想,修補結果的穩定性以及局部修補精度上還難以達到生產需求。因此,在無人機點云孔洞的修補中,需要一種適應性更強、精度更高的修補方法。
隨機森林算法具有良好的泛化性與抗噪性,可以避免過度擬合,但目前隨機森林多用于礦產[6-7]、大氣[8]、變形監測[9-10]、土地利用[11]以及影像檢測[12-14]等不同領域,還未運用到無人機點云的孔洞修補中。因此,本文提出了一種基于隨機森林算法對地表點云孔洞進行修補的方法。根據隨機森林算法良好的泛化性與抗噪性,對無人機獲取的地表點云孔洞進行修補,并將該算法的修補結果與LSSVM和BP神經網絡2種常用的修補算法進行修補結果的比較與分析。
隨機森林算法是一個依據決策樹為學習器的分類方法,屬于Bagging類型,采用分類回歸樹(Classification and Regression Tree,CART)決策樹為弱學習器,對原始數據使用bootstrap重抽樣的方法抽取出多個樣本,在樣本基礎上構建決策樹模型,根據多棵決策樹的預測,經過投票或取均值的方式對所有分類器的結果進行統計,進而得出最終的預測結果[15]。
數據因變量為連續數值時,CART決策樹算法則為回歸樹,葉子的觀測均值為預測值,采用二分遞歸分割技術分裂。隨機森林算法使用“基尼指數”劃分屬性的選擇,其樣本純度用基尼值表示為:
(1)
式中,Gini為基尼值;K為樣本類別數;Pk為所選樣本屬于k類別的概率;1-Pk為樣本錯分概率。基尼指數越大時,不確定性越大;基尼系數越小時,不確定性越小。
預測模型通過樣本X和預測變量Y生成依賴于隨機變量的回歸樹,關于k類別的樣本數取均值即可得到預測模型[16]。從原始數據的n個樣本中隨機抽取多個獨立樣本構成訓練樣本,未被抽取的樣本稱為袋外數據。被抽中的樣本集再隨機抽取特征集,構建決策樹。每顆二叉樹從根節點開始按照節點不純度最小原則,對訓練樣本集進行劃分,各節點分裂至滿足分支停止規則為止。進行數據預測時,使用均方誤差(MSE)最小的特征來分裂節點:
(2)

該算法在特征選取時,從n個樣本中隨機選取,避免了數據的過度擬合,預測模型不會被特定組合所確定,抑制了模型的擬合能力。
本文實驗使用的是無人機獲取的廣西壯族自治區桂林市雁山區雁山街某區域的無人機點云數據。采用大疆精靈Phantom 4 RTK小型多旋翼高精度航測無人機獲取數據,它具備厘米級導航定位系統和高性能成像系統。實驗區域面積2 565.277 m2,存在較多的坑洼與土堆,且存在較多低矮植被,區域周邊為施工用地。選取3處能代表地表特征的區域作為實驗樣本,設定為孔洞區域,3個孔洞區域分別分布于低矮植被區域、坑洼區域以及起伏較大的區域,具體位置如圖1所示。

(a) 三維模型

(b) 正射影像圖1 孔洞區域Fig.1 Hole area
本文實驗通過Matlab軟件對點云孔洞進行修補。實驗選取的3個孔洞區域的訓練樣本數分別為473,2 174,2 303個,檢核點數分別為468,819,1 196個。
在參數的選擇上,決策樹的數量和決策樹的節點個數為影響預測模型精度和穩定性的2個重要因素,根據文獻[10]可知其選取原則如下:
mtry=[lbs],
(3)
(4)
式中,mtry為決策樹的節點個數;s為數據的變量個數。
將數據的訓練集與測試集分別導入Matlab中,以點云數據中的平面坐標作為數據樣本X的2個獨立樣本,以點位高程值作為預測變量Y,生成依賴隨機變量θ的回歸樹,通過回歸樹進一步建立隨機森林預測模型。
使用隨機森林預測后,導出預測結果,將預測結果與孔洞周圍點云數據進行匯總與展示,使用CloudCompare軟件對缺失面積較大的孔洞進行修補前后的效果展示,如圖2所示。

(a) 修補前

(b) 修補后

(c) 修補前剖面圖

(d) 修補后剖面圖圖2 修補前后比對Fig.2 Comparison before and after repair
從圖2可以看出,使用隨機森林算法修補前后的變化明顯,從修補前后的總體視圖與修補前后的剖面視圖可證明,該算法的修補結果連續性、平滑性較好,匹配度較高,具有較好的修補效果。
為了驗證隨機森林算法修補結果的精確度、穩定性以及適用性,將隨機森林的高程預測結果與BP神經網絡、LSSVM算法的預測結果進行對比。實驗從3組數據修補結果的殘差、平均絕對誤差(MAE)、MSE和均方根誤差(RMSE)4個方面進行修補結果的精度對比與分析。
從3個孔洞中分別選取修補結果中的200個點進行殘差曲線的繪制,如圖3所示。
根據3種算法分別對3個孔洞修補得到殘差曲線圖,可以看出LSSVM算法在點云缺失面積較小的孔洞中,殘差值總體較小,但在點云缺失面積較大的孔洞中,其殘差值總體較大,預測結果不穩定。BP神經網絡在面積較大的孔洞修補中,仍具適用性,但其算法的穩定性不足,容易出現過度擬合的現象。隨機森林算法在3個孔洞的修補結果中,穩定性最強,殘差曲線總體平穩于另外2組算法。殘差值總體較小,精度最高。由此可以得出,隨機森林算法在點云缺失面積較大或地形變化復雜的孔洞中更具適用性,算法穩定度更強,且具有更高的修補精度。

(a) 孔洞1

(b) 孔洞2

(c) 孔洞3圖3 殘差曲線Fig.3 Residual curve
為了進一步驗證隨機森林算法的適用性與算法精確性,將3種算法修補結果的MAE,MSE和RMSE進行對比與分析[18]。計算如下:
(5)
(6)
(7)
式中,y′為預測值;yi為原始值;n為訓練樣本數量[19]。MAE,MSE,RMSE的計算結果如表1所示。

表1 精度比較
由表1可以看出,隨機森林算法的MAE,MSE和RMSE均小于BP神經網絡與LSSVM算法,3組算法總體精度均滿足1∶500地形圖航空攝影測量規范要求,但在部分點的修補精度上,BP神經網絡與LSSVM算法存在誤差較大的情況,而隨機森林算法在局部點的修補精度上仍滿足精度要求。在3組數據中,BP神經網絡的MAE值最大為0.074 3 m,LSSVM算法的MAE值為0.105 2 m,而隨機森林算法的MAE值最大僅有0.061 3 m,最小值為0.033 1 m,明顯小于前2種算法。RMSE的對比中,BP神經網絡與LSSVM算法的最大值分別為0.103 9,0.134 4 m,而隨機森林算法的最大值為0.083 8 m,最小值為0.042 4 m,明顯小于另外2種算法。
由以上殘差與精度的對比與分析可得出,隨機森林算法的修補精度高于BP神經網絡和LSSVM兩種算法,且在點云缺失面積較大的孔洞區域的修補中,仍具有較好的修補效果,說明隨機森林算法相比于另外2種算法的適用性更強,并且該算法具有更強的穩定性和抗噪性。
本文針對無人機航測數據中的點云孔洞問題,提出了基于隨機森林算法的點云孔洞修補方法,隨機森林的預測模型具有較高的預測精度,具有一定的抗噪性,且不容易出現過度擬合。在修補效果上,隨機森林算法的修補結果連續性、平滑性較好,匹配度較高,具有較好的修補效果。在精度上,隨機森林算法與BP神經網絡、LSSVM算法的MAE,MSE,RMSE的對比中,隨機森林算法的各誤差均小于另外2種算法,證明了使用隨機森林算法的孔洞修補方法在地表還原與高精度DEM生產的可行性,精度上滿足1∶500地形圖航空攝影測量規范。在復雜地形或點云孔洞面積較大的地形中,隨機森林算法相比于BP神經網絡、LSSVM算法的修補精度更高,穩定性與適用性更強,是一種可行的點云孔洞修補方法。該算法也存在一些不足,當決策樹數量較多時,算法的訓練時間會加長,使得模型預測效率降低。在后續的工作中,將對此進行下一步的研究。