摘 要:三維點(diǎn)云語義分割是目前人工智能領(lǐng)域中研究的重點(diǎn)問題,在自動駕駛、環(huán)境感知機(jī)器人和工業(yè)自動化等領(lǐng)域中廣泛應(yīng)用。針對激光雷達(dá)掃描數(shù)據(jù)的特點(diǎn),本文根據(jù)經(jīng)典的二次導(dǎo)向?yàn)V波方法并針對激光雷達(dá)掃描數(shù)據(jù)的特點(diǎn)提出三維導(dǎo)向?yàn)V波算法,其作用是改進(jìn)三維點(diǎn)云數(shù)據(jù),能夠有效濾除無用噪聲并保留點(diǎn)云中的局部輪廓信息。以公開的SemanticKITTI數(shù)據(jù)集為基礎(chǔ),分析濾波效果,證明本文方法的有效性。
關(guān)鍵詞:三維點(diǎn)云;語義分割;激光雷達(dá);三維導(dǎo)向?yàn)V波
中圖分類號:TM 732" " " " " 文獻(xiàn)標(biāo)志碼:A
激光雷達(dá)可在光線不足、紋理特征少的場景中探測物體的三維信息,其優(yōu)點(diǎn)是測距范圍大。目前,基于激光雷達(dá)的三維場景重建在工業(yè)界、自動駕駛領(lǐng)域得到了廣泛關(guān)注。采用激光雷達(dá)雷達(dá)測得的點(diǎn)云數(shù)據(jù)具有稀疏、無序等特點(diǎn),與二維圖像相比,處理難度更大,有效提升點(diǎn)云數(shù)據(jù)質(zhì)量可為后續(xù)研究提供基礎(chǔ)。
該領(lǐng)域已有一系列研究成果。例如,JENKE P等[1]將統(tǒng)計學(xué)與點(diǎn)云濾波算法相結(jié)合。KALOGERAKIS E等[2]提出一種穩(wěn)健的統(tǒng)計模型框架。張芳菲等[3]采用構(gòu)造KD樹的方法使點(diǎn)云數(shù)據(jù)有序化,并削弱噪聲。戴士杰等[4]提出三維散亂點(diǎn)云平滑去噪算法,針對散亂點(diǎn)云去除噪聲。AVRON H等[5]提出采用L1正則化來恢復(fù)點(diǎn)的法線場。CHEN H等[6]設(shè)計了一個帶有圖形約束的低秩矩陣恢復(fù)模型,以保留各種幾何特征。上述研究適用于受小噪聲影響的點(diǎn)云,但是在高噪聲情況下可能產(chǎn)生過度平滑或銳化現(xiàn)象。RAKOTOSAONA M J[7]提出基于卷積架構(gòu)的濾波方法,其在圖像去噪方面具有優(yōu)勢,但是在局部法線估計階段效果不佳。
1 點(diǎn)云數(shù)據(jù)濾波
1.1 三維空間中的導(dǎo)向?yàn)V波
經(jīng)典的導(dǎo)向?yàn)V波是一種具有特征保持能力的高效平衡算子,其具有兼顧抑噪性能和保留局部紋理信息的能力。在二維平面中,導(dǎo)向?yàn)V波算法的處理過程為對引導(dǎo)圖像進(jìn)行線性變換后,輸出窗口圖像。針對二維圖像與三維點(diǎn)云數(shù)據(jù)在空間位置信息上的表達(dá)差異,借鑒二維圖像導(dǎo)向?yàn)V波思路,可以設(shè)計三維點(diǎn)云空間的導(dǎo)向?yàn)V波處理,將其稱為導(dǎo)向點(diǎn)云濾波。本文主要研究了三維點(diǎn)云數(shù)據(jù)的處理方法,所以以導(dǎo)向點(diǎn)云濾波方法為基礎(chǔ)進(jìn)行改進(jìn)。與其他基于三維點(diǎn)云強(qiáng)度信息濾波的算法不同,三維導(dǎo)向?yàn)V波是根據(jù)三維點(diǎn)云數(shù)據(jù)的位置信息進(jìn)行濾波的,能夠有效防止局部細(xì)節(jié)丟失與噪聲干擾,具有濾波效果好、算法運(yùn)行時間短等優(yōu)點(diǎn)。
三維點(diǎn)云導(dǎo)向?yàn)V波基于點(diǎn)云數(shù)據(jù)的局部鄰域計算,因此,需要確定點(diǎn)云中的每個點(diǎn)的鄰域。設(shè)3D點(diǎn)云,多個點(diǎn)云數(shù)據(jù)pi如公式(1)所示。
P={pi∈R3} " " "(1)
式中:P為點(diǎn)云集合;i為點(diǎn)云序號;R3為3D空間。
構(gòu)造一個KD樹結(jié)構(gòu)來表示點(diǎn)云和鄰域N(pi),KD樹又稱為K維空間搜索樹,它是在二叉樹的基礎(chǔ)上的一種數(shù)據(jù)結(jié)構(gòu),外表與二叉搜索樹相近。利用KD樹可以進(jìn)行多維空間數(shù)據(jù)的鄰域搜索并存儲關(guān)鍵數(shù)據(jù),其鄰域如公式(2)所示。
N(pi)={Pi,j∈P} " "(2)
式中:Pi,j為點(diǎn)Pi領(lǐng)域里的第j個鄰域點(diǎn)。
對每一點(diǎn)Pi均進(jìn)行K鄰域搜索。給定1個KD樹和1個節(jié)點(diǎn),在不同的搜索路徑中查找有最小歐式距離節(jié)點(diǎn)的路徑,從而確定該搜索路徑為當(dāng)前路徑,重復(fù)以上過程直至在該路徑中不存在距離更近的數(shù)據(jù)點(diǎn)為止。
在點(diǎn)云導(dǎo)向?yàn)V波中,每組鄰域數(shù)據(jù)集都可以計算1個該鄰域質(zhì)心點(diǎn),如公式(3)所示。
(3)
式中:Pi,j為點(diǎn)Pi鄰域里的第j個鄰域點(diǎn);為Pi鄰域中的質(zhì)心;|N(Pi)|為N(Pi)的基數(shù)。如果計算Pi所有的鄰域點(diǎn),濾波后的輸出點(diǎn)云就可以通過局部線性模型擬合鄰域中的導(dǎo)引點(diǎn)云N(Pi)。在N(Pi)中對Pi,j進(jìn)行線性變換,可以產(chǎn)生相應(yīng)的輸出點(diǎn),如公式(4)所示。
=aiPi,j+bi (4)
式中:為去噪后得到的點(diǎn)云數(shù)據(jù),ai和bi為第i組線性模型調(diào)節(jié)因子,可最小化公式(5)中的代價函數(shù)J(ai,bi)來確定。對N(pi)代價函數(shù)取最小值來求解調(diào)節(jié)因子,計算過程如公式(5)所示。
(5)
式中:ε為控制濾波效果的1個因子,公式(4)和公式(5)結(jié)合可以消去bi,然后展開累加項(xiàng),如公式(6)所示。
(6)
可進(jìn)一步推導(dǎo)bi的表達(dá)式,如公式(7)所示。
bi=-ai (7)
對所有點(diǎn)云的每個鄰域中的每個點(diǎn)進(jìn)行線性變換,并求取線性模型。
1.2 二次導(dǎo)向?yàn)V波算法
經(jīng)過導(dǎo)向?yàn)V波處理后,雖然點(diǎn)云數(shù)據(jù)中的噪聲得到明顯抑制,但是還有殘留。為了進(jìn)一步增強(qiáng)噪聲去除效果,本文提出二次導(dǎo)向?yàn)V波算法,流程如圖1所示。首先,對原始帶噪聲的點(diǎn)云數(shù)據(jù)構(gòu)造KD樹。其次,進(jìn)行K鄰域搜索,將所有點(diǎn)云數(shù)據(jù)的噪聲點(diǎn)分成多個不同的鄰域。求取每個鄰域的質(zhì)心,并以鄰域質(zhì)心為引導(dǎo)數(shù)據(jù),計算該鄰域的線性調(diào)節(jié)因子,對該鄰域的點(diǎn)云數(shù)據(jù)進(jìn)行初次導(dǎo)向?yàn)V波。處理后的點(diǎn)云數(shù)據(jù)中仍存在噪聲。最后,將其作為二次導(dǎo)向?yàn)V波處理的引導(dǎo)數(shù)據(jù)。分別對原始數(shù)據(jù)與引導(dǎo)數(shù)據(jù)進(jìn)行K鄰域搜索,計算相應(yīng)的線性調(diào)節(jié)因子,完成對原始點(diǎn)云的二次導(dǎo)向?yàn)V波。第一次和第二次導(dǎo)向?yàn)V波的差別是搜索半徑參數(shù)。為了獲取點(diǎn)云數(shù)據(jù)中的結(jié)構(gòu)信息,當(dāng)進(jìn)行第一次導(dǎo)向?yàn)V波時設(shè)置的搜索半徑較大;為了獲得點(diǎn)云數(shù)據(jù)中的細(xì)節(jié)信息,當(dāng)進(jìn)行第二次導(dǎo)向?yàn)V波時設(shè)置的搜索半徑較小。
從圖1可知,在第一次導(dǎo)向?yàn)V波的基礎(chǔ)上,將第一次導(dǎo)向?yàn)V波的輸出作為第二次導(dǎo)向?yàn)V波的引導(dǎo)點(diǎn)云數(shù)據(jù),N()為該點(diǎn)集。輸入的原始點(diǎn)云數(shù)據(jù)仍然為Pi,j,二次導(dǎo)向?yàn)V波輸出的點(diǎn)云數(shù)據(jù)為 qi,j??梢赃M(jìn)一步推導(dǎo),如公式(8)~公式(10)所示。
(8)
(9)
qi,j=ai'Pi,j+bi' (10)
式中:ai'、bi'為二次導(dǎo)向?yàn)V波的第i組線性模型調(diào)節(jié)因子;為N()的質(zhì)心,ξ為<1的正數(shù)。
本文提出的方法能夠保持點(diǎn)云數(shù)據(jù)的去噪效果并保留輪廓信息,為了評價方法的性能,選擇信噪比(SNR)作為評價指標(biāo),其定義如公式(11)所示。
(11)
式中:S1、S2分別為處理后的點(diǎn)云數(shù)據(jù)與處理前的點(diǎn)云數(shù)據(jù);pi、qi分別為相應(yīng)數(shù)據(jù)集中點(diǎn)的坐標(biāo)。
在數(shù)學(xué)統(tǒng)計中,均方誤差(Mean Square Error, MSE)體現(xiàn)了估計量與被估計量的差異程度,由于該定義簡潔實(shí)用,因此通常利用MSE來評價二維或三維空間數(shù)據(jù)處理前后的效果,如公式(12)所示。
(12)
式中:N為原始點(diǎn)云的總數(shù)。
2 試驗(yàn)與分析
2.1 激光雷達(dá)點(diǎn)云數(shù)據(jù)與試驗(yàn)環(huán)境
激光雷達(dá)測量具有距離長、受光線影響小的特點(diǎn),其可以重建煤礦井下三維場景,為煤炭安全開采提供保障。為了分析實(shí)際場景中遮擋點(diǎn)、誤差點(diǎn)、測量隨機(jī)誤差點(diǎn)等噪聲點(diǎn)對點(diǎn)云數(shù)據(jù)處理的進(jìn)一步影響,本文對點(diǎn)云數(shù)據(jù)的濾波方法進(jìn)行研究。從煤礦井下采集數(shù)據(jù)難度較大,因此,本文以公開激光雷達(dá)點(diǎn)云數(shù)據(jù)集的數(shù)據(jù)為基礎(chǔ),驗(yàn)證所提出點(diǎn)云濾波方法的有效性和可靠性。本文所使用的公開數(shù)據(jù)集為SemanticKITTI。2019年,德國波恩大學(xué)的研究小組開發(fā)了該數(shù)據(jù)集,其是在 KITTI Vision數(shù)據(jù)集的基礎(chǔ)上推出的1個基于汽車激光雷達(dá)的大型戶外場景數(shù)據(jù)集顯示了內(nèi)城交通、住宅區(qū)以及德國卡爾斯魯厄市
周圍的高速公路場景和鄉(xiāng)村道路。該數(shù)據(jù)集包括22個序列(每次掃描有105個點(diǎn)),將序列00~10定為訓(xùn)練集,將11~21定為測試集,分別提供了23 201個用于訓(xùn)練的完整3D掃描數(shù)據(jù)和20 351個用于測試的掃描數(shù)據(jù),這使其成為公開可用的最大數(shù)據(jù)集。該數(shù)據(jù)集包括28個類別,其中6個類別為移動或非移動屬性。具體來說,數(shù)據(jù)集中不區(qū)分騎車人和車輛,而是將車輛和人標(biāo)記為騎自行車的人或騎摩托車的人,因此最后綜合定義為22類。
本文使用的是實(shí)驗(yàn)室自主搭建的服務(wù)器,使用GPU加速,在PyTorch的框架下,基于上文CARLA平臺中虛擬環(huán)境點(diǎn)云采集的數(shù)據(jù)進(jìn)行試驗(yàn)。實(shí)驗(yàn)室自主搭建服務(wù)器具體配置為Ubuntu18.04、Anaconda3、Python3.7、Intel i7-6700K和NVIDIA GeForce GTX 2080 Ti,試驗(yàn)環(huán)境見表1。
2.2 三維導(dǎo)向?yàn)V波處理效果評價
算法改進(jìn)前后的濾波效果對比如圖2所示。從圖2可以明顯看出,利用三維導(dǎo)向?yàn)V波算法處理噪聲后,能夠保留原始點(diǎn)云模型的輪廓特征與局部紋理信息。由于在單次濾波過程中,所有鄰域點(diǎn)對中心點(diǎn)的影響程度相同,因此在邊緣區(qū)域仍然存在噪聲,如圖2(a)所示。經(jīng)過本文提出的改進(jìn)算法處理后的噪聲點(diǎn)云模型整體細(xì)節(jié)完整,同時有效剔除了邊緣區(qū)域的噪聲數(shù)據(jù)。
利用經(jīng)過本文改進(jìn)的三維導(dǎo)向?yàn)V波算法,處理基于上文CARLA平臺中的虛擬環(huán)境點(diǎn)云采集的數(shù)據(jù),濾波前效果如圖3(a)所示,經(jīng)過二次點(diǎn)云導(dǎo)向?yàn)V波后效果如圖3(b)所示。由于數(shù)據(jù)是在虛擬環(huán)境中采集的,避免了在現(xiàn)實(shí)環(huán)境中的大氣雜質(zhì)等,因此激光雷達(dá)掃描采集的數(shù)據(jù)噪聲較少。三維導(dǎo)向?yàn)V波后效果沒有明顯變化,從圖3(b)可以看出處理了建筑物和道路周圍的雜亂點(diǎn),有效防止局部細(xì)節(jié)丟失與噪聲干擾,為后續(xù)點(diǎn)云語義分割打下了堅實(shí)基礎(chǔ)。
為了進(jìn)一步分析本文算法的點(diǎn)云濾波效果,本文將使用SNR和MSR 2個參數(shù)信息來驗(yàn)證本文改進(jìn)后的算法優(yōu)于其他經(jīng)典濾波算法。SNR越大,濾波后的點(diǎn)云模型邊緣效果越好;MSR越小,濾波后的點(diǎn)云模型邊緣效果越好。大場景點(diǎn)云濾波結(jié)果客觀評價參數(shù)見表2,與單次導(dǎo)向?yàn)V波相比,二次導(dǎo)向?yàn)V波信噪比顯著提升,均方誤差顯著下降,說明經(jīng)過二次濾波后,點(diǎn)云模型采樣效果較好。
3 結(jié)論
本文針對激光雷達(dá)點(diǎn)云數(shù)據(jù)帶有噪聲的特點(diǎn),提出了改進(jìn)的二次導(dǎo)向?yàn)V波算法。在試驗(yàn)過程中,以公開的SemanticKITTI數(shù)據(jù)集數(shù)據(jù)為基礎(chǔ),分析濾波效果,從定性和定量2個角度證明,與使用經(jīng)典導(dǎo)向?yàn)V波的方法相比,二次導(dǎo)向?yàn)V波方法處理點(diǎn)云數(shù)據(jù)的效果明顯提升。綜上所述,在對激光雷達(dá)點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理方面,本文提出的改進(jìn)的二次導(dǎo)向?yàn)V波方法效果更好。
參考文獻(xiàn)
[1]JENKE P,WAND M,BOKELOH M, et al.Bayesian point cloud"reconstruction[J].Computer Graphics Forum, 2006,25(3):379-388.
[2]KALOGERAKIS E, NOWROUZEZAHRAI D, SIMARI P,"et al. Extracting lines of curvature from noisy point clouds[J].Computer-Aided Design,2009, 41(4):282-292.
[3]張芳菲,梁玉斌,王佳.基于近鄰搜索的激光點(diǎn)云數(shù)據(jù)孤立噪點(diǎn)濾波研究[J]. 測繪工程,2018,27(11):32-36.
[4]戴士杰,任永潮,張慧博.各向異性擴(kuò)散濾波的三維散亂點(diǎn)云平滑去噪算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2018,30(10):7.
[5]AVRON H, SHARF A, CHEN G, et al.1-Sparse reconstruction"of sharp point set surfaces[J].ACM Transactions on Graphics,2020,26(11):3255-3270.
[6]CHEN H,WEI M,SUN Y,et al.Multi-Patch collaborative point"cloud denoising via Low-Rank recovery with graph constraint[J].IEEE Transactions on Visualization and Computer Graphics,2020,26(11):3255-3270.
[7]RAKOTOSAONA M J,LA BARBERA V,GUERRERO P,et al. PointCleanNet: learning to denoise and remove outliers from dense
point clouds[J].Computer Graphics Forum,2020,39(1):185-203.