王莉敏,史鵬程
(1.河南省基礎(chǔ)地理信息中心,鄭州 450003;2. 武漢大學 計算機學院,武漢 430072)
隨著測量技術(shù)的飛速發(fā)展、三維掃描設備精度不斷提高,可在短時間內(nèi)采集海量點云數(shù)據(jù),并已廣泛應用于三維重建[1]、逆向工程[2]、數(shù)字城市[3]、醫(yī)療診斷[4]、虛擬現(xiàn)實[5]等領(lǐng)域。如何從海量點云數(shù)據(jù)中快速準確地提取出環(huán)境特征信息,已成為國內(nèi)外學者的研究重點。地面由于位置穩(wěn)定、特征顯著等特性,在自動駕駛目標感知[6]、路徑規(guī)劃[7]、導航定位[8]中發(fā)揮著重要作用。
依據(jù)數(shù)據(jù)類型,目前基于點云數(shù)據(jù)的地面分割方法主要分為基于車載激光雷達(light detection and ranging,LiDAR)點云、基于機載LiDAR點云和基于地面三維激光掃描點云的地面分割方法。
1)基于車載LiDAR點云。根據(jù)分割原理分為基于柵格、線特征和平面擬合三類。柵格類方法[9]將點云劃分為柵格,通過分析柵格中點的高度差等信息進行地面提取。但該方法忽略了地面的連續(xù)性,易造成地面分段不連續(xù)。線特征類方法[10]將地面提取問題轉(zhuǎn)為區(qū)域內(nèi)直線擬合問題,構(gòu)建距離與高度的直線方程進行地面分割。該方法計算效率有所提升,但地面提取效果易受到近距離障礙物影響。平面擬合類[11]方法,假定地面為平面,數(shù)學模型較簡單。但該方法對傳感器精度較為依賴,適用于高線數(shù)LiDAR點云,在低線數(shù)的LiDAR點云中效果不佳。
2)基于機載LiDAR點云。以基于表面信息的地面分割為代表,主要利用上下文信息,構(gòu)建接近真實地面的表面。主要分為形態(tài)學濾波、迭代插值濾波和漸進致密化濾波。形態(tài)學濾波[12]使用尺寸不一的窗口進行形態(tài)學操作,去除干擾目標。但該方法需假設地形坡度為定值,在地形起伏區(qū)域效果不佳。迭代插值濾波[13]在點云中逐步擬合判斷地表,通過擬合表面與地物點的坐標插值進行判斷,進而提取地面。但該方法需不斷迭代插值,效率有待提高。漸進致密化濾波[14]與迭代插值濾波類似,逐步對各點進行分類,無需插值計算,但對坡度較大區(qū)域較敏感。
3)基于地面三維激光掃描點云。該類點云通常較為稠密,常用方法為基于平面,利用已知高度信息進行地面提取。關(guān)鍵問題在于如何進行平面提取。根據(jù)平面分割方法主要分為模型擬合類、區(qū)域生長類和深度學習類方法。模型擬合類方法主要包括隨機采樣一致性方法(random sample consensus,RANSAC)[15]和霍夫(Hough)變換算法[16]。RANSAC算法預先設定平面方程參數(shù),利用點面距離約束,確定滿足同一平面方程的點作為平面點云,但該方法計算效率較低,未考慮點云的連通性。霍夫變換算法將原始點云中平面檢測問題轉(zhuǎn)為參數(shù)空間峰值判斷問題,但該方法準確度有待提高。深度學習類方法[17]通過搭建深度神經(jīng)網(wǎng)絡,對點云特征進行訓練學習,實現(xiàn)點云的語義分割。但該方法需要大量模型訓練等工作。區(qū)域生長類方法[18]通過不斷對比分析局部鄰域關(guān)系,制定鄰域生長條件,實現(xiàn)平面點云生長。該方法提取平面精度較高,但受到區(qū)域生長條件限制,平面的完整度有待提高。
室內(nèi)稠密點云通常是由高精度三維激光掃描儀采集得到或由多幀稀疏點云拼接得到,其數(shù)據(jù)量較大。相比于室外車載點云及機載點云,數(shù)據(jù)場景范圍更小,數(shù)據(jù)中存在大量的冗余,地面信息提取挑戰(zhàn)性更高。
本文綜合分析了目前地面分割方法局限性,提出了一種基于平面和空間信息統(tǒng)計分析的室內(nèi)稠密點云地面分割方法。該方法不依賴于傳感器坐標系信息,可在任意坐標系下完成分割任務,僅使用稠密點云作為輸入,利用室內(nèi)空間布局準確有效地提取出室內(nèi)稠密點云中的地面信息,為室內(nèi)地面分割提供一種新方法。
圖1為本文室內(nèi)稠密點云地面分割流程。主要包括預處理、地面初提取與地面優(yōu)化三個主要步驟。在預處理中,對稠密點云進行統(tǒng)計濾波與體素濾波,實現(xiàn)數(shù)據(jù)的降噪與抽稀。在地面初提取中,采用區(qū)域生長完成平面分割,并根據(jù)平面間位置關(guān)系實現(xiàn)平面的合并與分組,并利用室內(nèi)空間信息實現(xiàn)地面點云的初步分割。在地面優(yōu)化中,通過圖像映射、輪廓提取、孔洞填充、點云映射等,優(yōu)化初分割的地面點云,降低點云數(shù)據(jù)冗余。
圖1 稠密點云地面分割流程
由于稠密點云數(shù)據(jù)海量,對其直接處理會嚴重降低處理效率。首先對輸入稠密點云M進行預處理,主要包括以下步驟。
1)統(tǒng)計濾波。在式(1)中根據(jù)鄰域半徑范圍內(nèi)點數(shù)濾波,移除部分孤立點pnoi,表達如式(1)所示。
pnoi={p|p∈M,nr(p)>N}
(1)
式中:nr(p)為點p在鄰域半徑r范圍內(nèi)的點數(shù);N是數(shù)量閾值。由于離群點的離散孤立特性,實驗中r和N分別經(jīng)驗性地設置為0.05和15。
2)體素濾波。采用邊長v的三維體素網(wǎng)格劃分點云。在每一網(wǎng)格內(nèi)部,采用點云重心代替原始點云。預處理后得到點云Mv。由于稠密點云密度較高,降采樣需保證點云總體特征,多次實驗對比后設置v為0.02 m。
1)平面分割。相比于稀疏點云,稠密點云具有更高的距離分辨率。因此,相比于霍夫變換、RANSAC等方法,區(qū)域生長可更好地留平面局部信息?;邳c云的區(qū)域生長算法的原理主要是不斷迭代地進行鄰域?qū)Ρ确治觯瑢M足平滑約束的點云合并在一起。其中主要包含三個關(guān)鍵環(huán)節(jié)。①種子點的選取。由于平面結(jié)構(gòu)的幾何特殊性,優(yōu)先選取曲率較小點作為種子點。②相似性判斷準則。在每一次迭代過程中,對種子點及其鄰域進行分析時,常采用兩點法線夾角偏差作為評判種子點與鄰域點相似的準則,并使用曲率作為種子點的判斷依據(jù)。③生長終止條件。若當前所有種子點的鄰域均已進行②中的相似性判斷后并無新的種子點產(chǎn)生,則終止當前平面點云的生長。
基于以上三個準則,在點云Mv中執(zhí)行區(qū)域生長,得到平面點云集Pi和剩余點云L,同時得到每個平面點云的點數(shù)ni以及二維外接矩形面積si(式(2))。
(2)
式中:K為平面數(shù);Pi為第i個平面點云。
2)平面合并與分組。室內(nèi)環(huán)境常為居家和辦公場所,場景構(gòu)造通常滿足曼哈頓假設,即環(huán)境中存在三個互相垂直的方向,兩個方向與地面垂直,另一方向與地面平行。因此對提取的平面P進行合并與分組,主要包括以下兩個步驟。
步驟1:平面分組。遍歷所有平面Pi,根據(jù)兩平面法線的夾角進行聚類,當角度偏差大于某個角度A1時,將其歸為其他類別。
步驟2:平面合并。采用最小二乘法擬合平面參數(shù)ζi(ai,bi,ci,di),同一平面分組中,根據(jù)式(3)計算兩平面的近似距離dt,并計算兩平面點云中最近兩點距離dn。若dt小于閾值D1,dn小于閾值D2,則將兩平面點云合并為同一平面點云,并再次采用最小二乘法,更新平面方程參數(shù)ζi。
(3)
3)空間信息統(tǒng)計分析。平面分組與合并后,采用空間信息統(tǒng)計分析判斷地面所在分組,流程如圖2所示。主要包括以下四個步驟。
圖2 空間信息統(tǒng)計分析流程
步驟1:平面數(shù)量分析。基于曼哈頓假設及生活經(jīng)驗,通常多個室內(nèi)物體存在與地面平行表面,并且室內(nèi)平面總體可分為三個方向。選取數(shù)量最多的三個平面方向作為候選平面集方向。
步驟2:投影面積分析。圖3為投影面積分析示意圖?;谑覂?nèi)布局分析,室內(nèi)空間向地面正射投影面積大于向墻面投影面積。根據(jù)候選平面集的法向量,對點云進行校正,計算投影面積,面積采用最小外接矩形近似。面積最大者,則為包含地面的平面組Sd。根據(jù)Sd中平面法向量,對Sd中平面進行校正,得到平面組Sdc。
圖3 投影面積分析示意圖
步驟3:天花板與地面分析。室內(nèi)場景稠密點云通常分為兩類情況,一是同時包含地面與天花板,二是僅包含地面。首先判斷是否同時存在地面與天花板。在式(4)中,根據(jù)Sdc中平面的Z坐標,確定出兩個極值z1,z2(z1>z2)。進一步確定出兩段坐標范圍(d1,d2)和(d3,d4),遍歷Sdc中每一平面的幾何中心Z坐標,查看兩坐標范圍內(nèi)平面分布情況。若同時存在平面,則天花板與地面同時存在,否則即可認為場景中不存在天花板,此時只需將Sdc中投影面積最大的點云認為是地面點云。
(4)
式中:σ為尺度因子,實驗中取值0.2。該參數(shù)設置適用一般高度的室內(nèi)空間,若室內(nèi)天花板與地面高度過低時,應適當增大該參數(shù)。
步驟4:空間距離分析。若場景中地面與天花板不同時存在,則直接輸出初提取的地面點云,否則需進一步區(qū)分。當場景中同時存在地面和天花板時,在剩余點云L中聚類分析,若場景中的聚類目標過少或者過小時,認為場景近似不存在物體目標,不滿足地物條件,停止地面判斷過程。
相比于天花板,室內(nèi)物體距地面距離更近。在聚類分析完成后,根據(jù)平面面積分別選取位于式(4)中兩距離范圍內(nèi)最顯著的平面P1和P2,計算L到兩平面的平均距離,距離較小者則為地面,得到初分割地面點云Pd。
圖4 空間距離分析示意圖
初分割地面點云Pd經(jīng)過區(qū)域生長與平面的合并后存在部分孔洞。本文將其轉(zhuǎn)為圖像進行優(yōu)化,主要包括以下四個步驟。
步驟1:圖像映射。根據(jù)式(5)中映射關(guān)系ψ將Pd投影到二值化圖像,其中地面點為1,非地面點0。
ψ:r=ρ-1(ymax-y),c=ρ-1(x-xmin)
(5)
式中:r和c為圖像行列號;ymax和xmin為坐標極值;ρ為柵格化像素大小,實驗中設置為0.03。
步驟2:輪廓提取。在二值圖上進行像素聚類,分為多個聚類,通過輪廓追蹤提取圖像中的所有輪廓。
步驟3:孔洞填充。圖5為地面輪廓優(yōu)化示意圖,在所有輪廓中,根據(jù)輪廓的幾何位置關(guān)系,挑選出最外層輪廓,并將輪廓內(nèi)元素全部變?yōu)槟繕讼袼亍?/p>
圖5 地面輪廓優(yōu)化示意圖
步驟4:點云映射。根據(jù)映射關(guān)系ψ-1,將圖像映射回三維點云,得到優(yōu)化后的地面Pdo。
如圖6所示,本文實驗數(shù)據(jù)選取Park等[19]公開的兩個典型室內(nèi)場景-公寓和臥室,二者均為稠密點云,室內(nèi)均存在部分家具等物件,滿足地物條件。實驗環(huán)境為Intel Core i7-5500U,Ubuntu16.04系統(tǒng),C++編程實現(xiàn)。
圖6 實驗數(shù)據(jù)
1)預處理結(jié)果。圖7為稠密點云預處理后效果,其中紅色矩形標記了部分干擾點被去除的位置。從圖中可以看出,在保持整體場景特征信息的前提下,點云數(shù)據(jù)量在一定程度上降低,大部分離群噪聲點得到有效剔除。
圖7 預處理結(jié)果
2)平面分割結(jié)果。圖8為平面分割效果,其中不同顏色點云表示不同平面。目視效果上,場景中平面結(jié)構(gòu)已基本被提取出來,平面結(jié)構(gòu)之間的邊緣點云也得到較好歸類,平面結(jié)構(gòu)的區(qū)分度較高,在保證準確度的同時也保證了平面結(jié)構(gòu)的完整度。
圖8 平面分割結(jié)果
圖9 地面提取結(jié)果
3)地面提取結(jié)果。圖9為采用空間信息統(tǒng)計分析得到的地面點云分割效果。其中圖9(a)、圖9(b)為地面初分割效果??梢钥吹剑崛〉牡孛纥c云較為雜亂,由于室內(nèi)場景存在座椅等地物,造成地面點云中存在部分孔洞。圖9(c)、圖9(d) 為地面初始輪廓。圖9(e)、圖9(f)為孔洞填充后的地面輪廓??梢钥吹?地面內(nèi)部的孔洞已基本被剔除,并保留了地面的整體輪廓。圖9(g)、圖9(h)為優(yōu)化后的地面點云??梢钥吹?,視覺效果上,場景中的地面信息已被完整提出。在公寓數(shù)據(jù)中,不同房間內(nèi)的地面也融合為一個完整地面,較好地保持了室內(nèi)場景地面的完整度。圖9(g)中公寓場景地面中心位置附近,原始數(shù)據(jù)中不存在地面三維點,而本文方法側(cè)重于提取可為后續(xù)機器人導航定位、路徑規(guī)劃提供地面信息基礎(chǔ)的數(shù)據(jù)格式更加有條理的地面。因此,初始完整的地面信息更有利于后續(xù)感知規(guī)劃任務。該位置處點云可通過剩余點云L進行位置分析進一步濾除。
為對比分析本文地面分割算法性能,對實驗結(jié)果進行如下分析評價。
1)疊加顯示。圖10中將優(yōu)化的地面點云Pdo與降采樣后稠密點云疊加顯示,其中紅色為地面點云,白色為采樣后稠密點云。目視效果上,優(yōu)化后的地面與稠密點云的重合度較好,已提取出場景中大部分地面點。
圖10 地面疊加顯示
2)準確率與召回率。為定量評價地面提取結(jié)果,驗證本文方法性能,采用Cloud Compare軟件的標記工具,在原始稠密點云中進行標記。通過目視觀察,結(jié)合軟件勾選功能,標記出地面點云,并對真實地面點云數(shù)據(jù)單獨保存。采用式(6)、式(7)計算地面分割的準確率Pr與召回率Re。
(6)
(7)
式中:ps是地面分割結(jié)果中的地面點;pd是人工標記地面中距離ps最近的地面點;d(ps,pd)為ps和pd兩點間的距離,為與采樣后點云尺度保持一致;距離閾值τ設為0.02 m;TP是提取結(jié)果中正確識別的地面點數(shù);FP為提取結(jié)果中錯誤識別的地面點數(shù);FN為提取結(jié)果中漏計的地面點數(shù)。
由于本文方法所獲得的地面點是在稠密點云基礎(chǔ)上所生成的一種近似模擬真實地面的點云,相比與原始稠密點云,雖存在一定程度失真,但數(shù)據(jù)格式更有條理,更加有利于后續(xù)室內(nèi)場景下自動駕駛可通行區(qū)域的構(gòu)建。因此在式(6)、式(7)中,評價分割結(jié)果性能時,本文將ps和pd兩點間距離小于τ的點認為是TP點,否則為FP點;當人工標記的地面點中未能在分割結(jié)果中確定對應點時為漏計點FN。
3)實驗分析。在分割結(jié)果的準確率方面,數(shù)據(jù)1公寓地面分割準確度約為93%,數(shù)據(jù)2臥室地面分割的準確度約為98%。公寓中心位置存在部分特殊構(gòu)造,導致稠密點云中無三維點,本文算法在進行地面輪廓優(yōu)化時,僅以常見的地面類型為研究目標,對于該類特殊構(gòu)造考慮欠佳,導致地面點云優(yōu)化時出現(xiàn)了部分錯誤地面點,在一定程度上影響結(jié)果的準確率。臥室場景中的地面為常見的地面類型,因此本文算法取得了較高的分割準確度。雖然公寓中地面分割的準確度受到中心位置處的小空地區(qū)域影響,準確度有所降低,但本文方法所提取的地面點云主要為后續(xù)的室內(nèi)機器人在自動駕駛中障礙物感知與路徑規(guī)劃服務,因此相比于分割原始地面點云,本文優(yōu)化后的點云更有利于機器人的自動駕駛中構(gòu)建可通行區(qū)域。其中心位置處的空間點云可利用剩余點云與地面點云進行位置分析進一步去除。
在分割結(jié)果的召回率方面,實驗發(fā)現(xiàn),兩場景的地面點云召回率均不足30%。如前文介紹,本文生成的地面點云是一種近似模擬真實地面的點云數(shù)據(jù),優(yōu)化后的點云數(shù)據(jù)從圖像映射得到,去除了部分冗余信息,導致地面點云數(shù)據(jù)量有所降低,存在一定程度的數(shù)據(jù)失真。但該地面點云在保證地面結(jié)構(gòu)整體輪廓特征同時,提高了點云數(shù)據(jù)的條理性,顯著降低了數(shù)據(jù)量,降低了稠密點云中地面冗余信息,提高了點云數(shù)據(jù)精簡率,更有利于數(shù)據(jù)的存儲與管理,有利于后續(xù)自動駕駛中對地面數(shù)據(jù)進行相關(guān)處理。
表1 地面分割統(tǒng)計
本文針對室內(nèi)地面提取問題,提出了一種基于平面和空間信息的室內(nèi)稠密點云數(shù)據(jù)地面分割方法。該方法不依賴點云數(shù)據(jù)的校正坐標系,可在任意姿態(tài)下實現(xiàn)地面分割。以平面結(jié)構(gòu)為基礎(chǔ),利用平面合并分組、空間信息分析完成地面初提取。綜合圖像映射、輪廓提取、孔洞填充、點云映射等,對初提取地面進行優(yōu)化,提高地面完整度,降低點云數(shù)據(jù)冗余度,在一定程度上提高了地面提取的自動化程度,克服了傳統(tǒng)地面分割方法對高度信息、坐標系的依賴,為室內(nèi)地面分割提供了一種新方法。文中選取公寓與臥室兩種典型室內(nèi)場景進行實驗。結(jié)果表明,該方法可有效提取室內(nèi)稠密點云中地面,一定程度上解決了室內(nèi)顯著地物信息提取問題,為后續(xù)室內(nèi)自動駕駛構(gòu)建可通行區(qū)域、路徑規(guī)劃等提供輔助信息。但是,該方法中平面分割部分采用最原始的區(qū)域生長,平面結(jié)構(gòu)的完整度有待提高。同時,該方法無法勝任自動駕駛目標感知模塊中實時地面分割任務。因此,后續(xù)研究中,將從以下兩方面進行研究:一是研究基于多線LiDAR點云的地面信息提取,以輔助機器人導航定位;二是研究改進基于稠密點云的平面分割,提高平面完整度,進一步提高地面信息的準確度與完整度。