胡亮,肖俊,王穎
(中國科學(xué)院大學(xué)人工智能學(xué)院, 北京 100049)
激光掃描技術(shù)[1]可以快速直接地獲取目標(biāo)物體高精度、高密度的三維空間信息,被廣泛應(yīng)用于三維模型重建、三維目標(biāo)識別和虛擬現(xiàn)實等領(lǐng)域。在巖石工程領(lǐng)域,需要利用有限元、離散元、不連續(xù)變形分析[2]等數(shù)值計算方法對巖體三維數(shù)據(jù)模型進行數(shù)值分析,以保證工程實施的安全性[3]。激光掃描技術(shù)可以提供高精度的巖體表面三維空間信息,這些三維點云數(shù)據(jù)可以作為基本的數(shù)據(jù)輸入有效地構(gòu)建巖體三維數(shù)值模型。但是,通過激光掃描儀獲取的初始巖體點云表面往往含有一些植被點,這些植被點會嚴(yán)重影響后續(xù)的建模過程,需要被過濾。由于巖體本身的特殊性例如表面不規(guī)則、朝向不統(tǒng)一、粗糙程度不一和尺度變化較大的特點[4],傳統(tǒng)的點云植被濾波方法在巖體點云上難以取得較好的結(jié)果。因此針對巖體點云的植被濾波是一個亟需解決的問題。
經(jīng)典的點云植被濾波算法,主要分為基于形態(tài)學(xué)的濾波[5]、基于坡度的濾波[6]、基于漸進三角網(wǎng)格的濾波[7]和基于窗口擬合的濾波[8]。這些濾波方法主要針對大場景的機載雷達點云數(shù)據(jù),濾除植被信息以獲得數(shù)字高層模型。這類算法主要利用植被與地面高程差的變化進行濾波。然而,大多數(shù)巖體自身高程變化較大,且植被多附著于巖體表面生長,與巖體的高程差不明顯,因此難以利用典型濾波算法在巖體點云上獲得較好的濾波結(jié)果。Liu等[9]將典型濾波算法在巖體點云數(shù)據(jù)上進行比較,其實驗結(jié)果驗證經(jīng)典植被濾波算法在巖體點云上性能較低。此外,部分激光掃描儀可以獲取多次回波數(shù)據(jù),Pirotti等[10]利用首次回波和尾次回波參與濾波運算,濾除掉首次回波的點云,然后再根據(jù)反射比和形態(tài)學(xué)的方法得到最終結(jié)果。但是這種方法對設(shè)備依賴很高且對植被與地面邊界處的點云難以進行有效的區(qū)分。
目前巖體點云濾波的難點是由巖體點云本身特征所決定的,由于巖體點云中的巖體點和植被點的高程值并不具有顯著的差異性,因此難以用傳統(tǒng)的點云植被濾波思路解決巖體點云的植被濾波問題,但是如果將植被濾波過程看作是巖體點與植被點的二分類問題,則可以利用深度學(xué)習(xí)或者機器學(xué)習(xí)的方法實現(xiàn)巖體點云的植被濾波過程。
在機器學(xué)習(xí)領(lǐng)域進行數(shù)據(jù)分類的通用做法是首先對數(shù)據(jù)進行分析,提取出具有代表性的特性,然后利用人工神經(jīng)網(wǎng)絡(luò)、支持向量機(support vector machine, SVM)以及樸素貝葉斯等分類器快速實現(xiàn)對數(shù)據(jù)的分類,其難點是如何提取合適、通用的特征。通過激光掃描儀獲取的點云數(shù)據(jù)一般包括三維坐標(biāo)信息、顏色信息以及強度信息。但是巖體點云中的三維坐標(biāo)是無序且無規(guī)則的,難以直接用作分類特征選擇;蒼桂華等[11]分析強度信息會受儀器設(shè)備、外界環(huán)境條件、地物表面特性和地物掃描幾何條件等因素的影響,因此不能直接用于分類;顏色信息會受到強陰影投影,圖像曝光變化以及表面濕度的影響也難以作為分類特征的選擇[12]。Brodu和Lague[13]在三維點云數(shù)據(jù)中分析不同地物點特征,發(fā)現(xiàn)其局部維度特征具有差異性,然后利用三維局部維度特征實現(xiàn)河床點云分類并取得較好的結(jié)果。
在深度學(xué)習(xí)領(lǐng)域,可以通過搭建深度神經(jīng)網(wǎng)絡(luò)自動提取學(xué)習(xí)特征,解決了傳統(tǒng)機器學(xué)習(xí)需要提取特征的難題。但是,目前深度學(xué)習(xí)算法僅被廣泛應(yīng)用于二維圖像領(lǐng)域,在三維點云數(shù)據(jù)上的分類與識別尚處于研究階段[14]。Qi等[15-16]提出PointNet++網(wǎng)絡(luò)可以實現(xiàn)對點云數(shù)據(jù)的分類。但是深度網(wǎng)絡(luò)往往需要大量數(shù)據(jù)的支持,且三維點云數(shù)據(jù)不同于二維圖像數(shù)據(jù),其維度較高,信息量更大,通常訓(xùn)練難度更大。
基于以上分析,考慮到巖體點云數(shù)據(jù)缺少標(biāo)準(zhǔn)數(shù)據(jù)庫的支持且訓(xùn)練復(fù)雜度較高,本文針對工程巖體點云的植被濾波問題,提出一種基于多維度特征和多層神經(jīng)網(wǎng)絡(luò)(multi-layer perceptron, MLP)的巖體點云植被濾波方法。首先定義點云中的多尺度局部維度特征,并分析其應(yīng)用于巖體點云植被分類的可用性。其次,由于多尺度維度特征通常是非線性特征,本文選擇非線性能力較強的MLP作為分類器并通過實驗選擇分類器參數(shù)。目前神經(jīng)網(wǎng)絡(luò)架構(gòu)較為成熟,其難點主要是針對特定特征的參數(shù)選擇,例如特征數(shù)目、網(wǎng)絡(luò)深度、網(wǎng)絡(luò)層結(jié)點個數(shù)、過擬合參數(shù)、學(xué)習(xí)率等,以訓(xùn)練出最優(yōu)的效果。最后通過設(shè)置好的參數(shù),訓(xùn)練出最終模型,相比其他機器學(xué)習(xí)算法,本文算法在測試集上具有更高的分類精度,可用于巖體點云的植被濾波過程。其濾波結(jié)果可以提高后續(xù)的巖體三維建模精度,在巖體工程領(lǐng)域具有較大的應(yīng)用價值。
本文利用點云數(shù)據(jù)的多尺度維度特征作為分類依據(jù)。維度特征的定義方式如圖1(a)所示,以點云中任意一點為中心點建立半徑尺度為R的鄰域球,該點與其鄰域內(nèi)的其他點組成的局部空間內(nèi)可以形成3種不同的維度特征,如圖1(b)所示,分別為一維線性特征、二維平面特征和三維立體特征。
圖1 不同維度特征Fig.1 Different dimensionality features
不同的分類物體在不同尺度下的維度差異越明顯,則說明可分性越強。如圖2所示,自然界的巖體表面往往是由大尺度的平面構(gòu)成,因此其在不同尺度下近似表現(xiàn)為二維平面特征[17],而植被點云在小尺度下可能表現(xiàn)為一維特征(樹干)或者二維特征(樹葉),在較大的尺度下,展現(xiàn)出三維特征。因此,在工程點云中,巖體點與植被點在多尺度的綜合特征下具有顯著的維度差異,該特征可被用于進行巖體點云上的植被點與巖石點的分類。
圖2 不同分類物的維度特征Fig.2 Dimensionality features of different objects
本文主要聚焦于巖體點云中植被濾波問題。在分析不同尺度下分類物體維度特征的基礎(chǔ)上,構(gòu)建多層神經(jīng)網(wǎng)絡(luò)模型以實現(xiàn)點云的精確分類。該算法的具體流程如下:
1)對獲取的初始巖體點云,首先需要濾除噪聲,其中主要是對離群點的過濾,然后計算點云的平均間隔;
2)對過濾后的點云,手動選取部分具有代表性的子集,并對點云內(nèi)巖體點和植被點進行標(biāo)簽分類;然后將該點云隨機劃分為訓(xùn)練集和測試集;
3)設(shè)置不同的尺度范圍以及尺度間隔,最小尺度一般大于點云的平均間隔;在不同尺度下,計算每個點的維度特征,作為分類依據(jù);
4)建立不同的神經(jīng)網(wǎng)絡(luò)模型,在測試集上選取精度最高的模型作為最佳分類器;
5)將分類器應(yīng)用于整個點云以實現(xiàn)對整個大規(guī)模巖體點云的植被濾波。
在預(yù)處理階段主要是對點云數(shù)據(jù)的去噪以及點云的分類工作。通過激光掃描儀獲取的初始點云,受采集環(huán)境以及設(shè)備影響會含有部分噪聲,其中主要以離群點集(孤立點群)為主。離群點其周圍含有極少量的點,鄰域特征不隨尺度變化,會對后續(xù)分類訓(xùn)練結(jié)果產(chǎn)生較大影響,因此需要進行濾除。目前常用的離群點集判斷方法,是利用空間鄰域搜索的方法快速將點云分割成若干子區(qū)域,然后刪除含有點數(shù)較少的子區(qū)域。
對過濾后的點云,手動選取部分具有代表性的子集,并對點云內(nèi)巖體點和植被點進行標(biāo)簽分類。然后將點云隨機劃分為訓(xùn)練集和測試集。訓(xùn)練集用于模型訓(xùn)練,測試集用于估計模型的泛化誤差以選擇最優(yōu)的分類器。
(1)
Σ·vj=λj·vj,j∈{0,1,2}.
(2)
協(xié)方差矩陣的特征值可以反映出局部維度特征,若局部特征為一維則λ1≠0,λ2=λ3=0;若局部特征為二維則λ1,λ2≠0,λ3=0;若局部特征為三維則λ1,λ2,λ3≠0。本文利用式(3)計算每個特征值占有的比例qi作為特征輸入,由于q1+q2+q3=1,所以只需要選取{q1,q2}作為特征輸入即可表示在該尺度下每個點的局部維度特征。
(3)
采用Python深度學(xué)習(xí)庫Pytorch實現(xiàn)基于多層神經(jīng)網(wǎng)絡(luò)的模型建立。MLP神經(jīng)網(wǎng)絡(luò)是常見的人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),包括1個輸入層、1個輸出層和若干隱藏層。對于二分類問題輸出層只需1個神經(jīng)元,其輸出值用0或者1用來代表植被點和巖體點,通常使用sigmoid函數(shù)作為輸出層的激勵函數(shù)。式(4)表示損失函數(shù),通常用交叉熵表示,其中z為真實值,y為預(yù)測值。為了訓(xùn)練模型,需要將損失函數(shù)最小化,然后利用梯度下降法最小化損失函數(shù)。
Loss=-(zlogy+(1-z)log(1-y)).
(4)
(5)
目前神經(jīng)網(wǎng)絡(luò)架構(gòu)較為成熟,其難點主要是模型一些參數(shù)的設(shè)定。為了訓(xùn)練出較好的實驗結(jié)果,本實驗測試了不同尺度選擇也就是不同特征維度對結(jié)果的影響,以及不同隱藏層節(jié)點數(shù)對結(jié)果的影響。通過實驗結(jié)果選擇合適的特征以及隱藏層參數(shù)搭建最終的模型。其他參數(shù)設(shè)置如表1所示,為防止過擬合問題,選用L2正則化以及初始數(shù)據(jù)規(guī)范化。
表1 MLP模型基本參數(shù)Table 1 Parameters used in MLP
本實驗所用的巖體點云數(shù)據(jù)來源于巖體通用的數(shù)據(jù)庫Rockbench[4],其利用激光掃描儀獲取加拿大安大略的一處包含植被的巖體點云數(shù)據(jù)。如圖3所示,該點云是從原始大場景的巖體點云中截取的部分具有代表性的點云數(shù)據(jù)并人工分類后的示意圖,其中深色表示植被點,淺色部分表示巖體點,該實驗的數(shù)據(jù)集包括高的樹木以及低矮的植被信息。為了后續(xù)的訓(xùn)練過程,需要將初始的點云數(shù)據(jù)按照7∶3的比例劃分為訓(xùn)練集與測試集,具體各個數(shù)據(jù)集的信息如表2所示。
圖3 實驗巖體點云數(shù)據(jù)Fig.3 Rock mass data for the experiments
集合巖體點植被點總計數(shù)據(jù)集290121178640798訓(xùn)練集20309825128560測試集8703353512238
本實驗通過在訓(xùn)練集上分別選取5組{5,10,15,20,30}不同尺度個數(shù)作為特征輸入構(gòu)建不同的網(wǎng)絡(luò)模型,通過損失函數(shù)和測試集的精確度篩選出最佳尺度個數(shù),尺度范圍從0.2開始,尺度間隔選取為0.1,其他參數(shù)選擇表1的初始參數(shù)。
5組不同的MLP模型在訓(xùn)練集上隨著訓(xùn)練次數(shù)的損失函數(shù)結(jié)果如圖4(a)所示,可以看出,不同數(shù)量尺度的特征在該網(wǎng)絡(luò)結(jié)構(gòu)中均可以快速達到收斂,其中測試數(shù)據(jù)集在15個尺度下的網(wǎng)絡(luò)模型達到最好的收斂效果。不同的網(wǎng)絡(luò)模型在測試集上的準(zhǔn)確度如圖4(b)所示,從結(jié)果可以看出15個尺度的網(wǎng)絡(luò)模型精確度最高。綜上,在該巖體數(shù)據(jù)集上選擇的最佳尺度個數(shù)為15。
圖4 不同模型在不同尺度個數(shù)和不同隱藏結(jié)點個數(shù)下的訓(xùn)練集測試結(jié)果Fig.4 Results of different models on training sets and test sets with different scales and hidden sizes
為了測試隱藏層不同的結(jié)點數(shù)目對實驗結(jié)果的影響。本實驗測試了隱藏層結(jié)點數(shù)分別為{20,30,40,50,60}的5組不同的網(wǎng)絡(luò)模型。根據(jù)3.2節(jié)結(jié)果,該5組模型均選取15個尺度特征作為輸入,其余參數(shù)使用表1的默認參數(shù),實驗結(jié)果如圖4(c)、4(d)所示??梢钥闯霎?dāng)選取15個尺度特征作為輸入的前提下,隱藏層節(jié)點個數(shù)對該數(shù)據(jù)集的訓(xùn)練結(jié)果影響不大,均可以快速收斂并在測試集上獲得較好的訓(xùn)練結(jié)果(準(zhǔn)確度大于90%)。綜合3.2與3.3節(jié)的實驗結(jié)果,本實驗的模型最終選擇15個不同的尺度特征作為特征輸入同時選取60個隱藏層結(jié)點數(shù)以搭建適合此數(shù)據(jù)集的多層神經(jīng)網(wǎng)絡(luò)模型。
目前常用的機器學(xué)習(xí)分類器有很多,包括SVM、樸素貝葉斯、決策樹和神經(jīng)網(wǎng)絡(luò)方法。由于在巖體點云中多尺度的維度特征在分類時展現(xiàn)出較多的非線性特性,因此MLP可以利用其多層網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)較為精確的分類。
本實驗選用SVM和樸素貝葉斯作為比較算法,SVM是目前常用的分類器,它可以實現(xiàn)線性和非線性分類;樸素貝葉斯是一種基于概率的分類器,它以貝葉斯理論為基礎(chǔ),對不同維度特征通過概率計算以實現(xiàn)分類過程。除此之外,Xiao等[18]提出一種利用人工神經(jīng)網(wǎng)絡(luò)進行植被分類的方法,取得了較好的結(jié)果,因此也被用于作為對比算法。
在本實驗中統(tǒng)計了查準(zhǔn)率、召回率以及F1值作為性能評測標(biāo)準(zhǔn),相較于單純測試準(zhǔn)確度,F(xiàn)1值能夠更好地反映模型對整個數(shù)據(jù)樣本的分類能力。實驗結(jié)果如表3所示,可以看出針對巖體點云上多尺度維度特征的分類問題,本文提出的MLP算法相比SVM、樸素貝葉斯算法以及人工神經(jīng)網(wǎng)絡(luò)算法具有更好的分類精度。
表3 不同分類器實驗結(jié)果比較Table 3 Performance comparison among four different methods
實驗的仿真結(jié)果如圖5所示,其中淺色為正確分類的點,深色為錯誤分類的點。可以看出,本文提出的濾波模型,可以濾除大部分的高處植被,只是在低矮植被處有部分錯誤,相比于圖3的初始點云數(shù)據(jù),本文提出的算法可以較好濾除巖體點云中的植被信息。
此外,測試了該模型在未標(biāo)注的新數(shù)據(jù)集上的結(jié)果,共包含192 303個點,此數(shù)據(jù)集與測試數(shù)據(jù)集來自同一巖體數(shù)據(jù)庫,實驗結(jié)果如圖6所示,其中深色代表分類為植被的點,淺色代表分類為巖體的點??梢钥闯?,本文提出的算法,可以較好地應(yīng)用于工程巖體點云的植被濾波過程。
圖6 網(wǎng)絡(luò)模型在新數(shù)據(jù)集實驗結(jié)果Fig.6 Filtering results in new data set using our models
本文針對工程巖體點云的植被濾波問題提出一種基于多維度特征和MLP的植被濾波算法。該算法可以實現(xiàn)將高大數(shù)木、稀疏植被以及低矮植被等常見的植被點從巖石點云中分離出來,并具有較高的精度。由于多尺度的維度特征是基于統(tǒng)計計算的方法,只利用了點云的三維坐標(biāo)信息,因此具有較高的適用性,可以應(yīng)用于各類激光掃描場景中。該算法通過實驗選擇最優(yōu)尺度個數(shù)與網(wǎng)絡(luò)模型參數(shù),相對于SVM、樸素貝葉斯等分類算法具有較明顯的優(yōu)勢。其濾波結(jié)果可以很好地應(yīng)用于后續(xù)巖體三維重建過程。但是,該算法在處理密度嚴(yán)重不均勻的點云數(shù)據(jù)以及巖體邊界處點云數(shù)據(jù)的適用性仍需加強。