趙夫群,周明全
(1.西安財經大學 信息學院,陜西 西安 710010;2.西北大學 信息科學與技術學院,陜西 西安 710127)
三維激光掃描技術是獲取物體空間點云數(shù)據(jù)信息的重要手段之一,并在多種領域發(fā)揮著重要的作用[1-4]。但是受儀器測量誤差、物體反射、遮擋、光照以及環(huán)境變化等因素的影響,掃描獲取的初始點云數(shù)據(jù)模型中往往含有大量的噪聲點。這些噪聲點的數(shù)量越多,密度越大,對點云質量的影響也就越大,因此需要采取合適的去噪算法將其加以刪除。
近年來,國內外學者對點云去噪算法進行了較為深入地研究。Polat N等[5]提出一種LiDAR數(shù)據(jù)去噪算法,該算法性能可以根據(jù)地區(qū)地形特征的變化而變化,可以有效濾除非地面點,是一種有效的點云去噪算法;徐少平等[6]提出一種基于卷積神經網(wǎng)絡的去噪算法,該算法首先通過訓練卷積神經網(wǎng)絡模型構成NLAF特征矢量,然后利用增強的BP(Back Propagation)神經網(wǎng)絡預測模型將NLAF特征矢量映射為噪聲水平值,最后以估計值的中值作為噪聲水平值的最終估計結果,該去噪算法具有較高的準確性和執(zhí)行效率;Xu Z等[7]提出一種基于局部坐標系下多個各向異性估計的點云去噪算法,該估計對點云表面的形狀保持具有自適應性,既可保持點云尖銳的特征點,也可以保留點云中的光滑區(qū)域;趙凱等[8]提出一種基于柵格劃分的點云離群噪聲點去除算法,該算法通過對點云進行體素柵格劃分降低了點在鄰域中的搜索范圍,有效分離了目標點云和離群點,加快了點云處理的效率。
為了在去噪同時有效保持點云的幾何特征信息,進一步提高點云去噪的精度和速度,本文提出一種層次化的點云去噪算法。首先計算點云中的點及其鄰域點的張量投票矩陣,并計算該矩陣的特征值和特征向量;然后利用各向異性濾波方程對點云進行光順處理,實現(xiàn)點云初始去噪;最后計算點云的曲率特征,根據(jù)曲率值進一步刪除點云中的噪聲點,并通過計算點云熵值對算法定量評價。
點云P={pi}(i=1,2,…,NP,NP表為點云P中點的數(shù)目)上任意一點pi都可以表示為一個3×3的對稱半正定矩陣。假設Nk(pi)為點pi的k個鄰域點集,那么點pi及其鄰域點集Nk(pi)的張量投票矩陣T為[9]:
(1)
本文通過建立張量矩陣T和點云中點的幾何特征的關系來實現(xiàn)點云初始粗去噪。 假設λ1,λ2,λ3表示張量矩陣T的三個特征值,并且滿足λ1≥λ2≥λ3,e1,e2,e3表示三個特征值λ1,λ2,λ3對應的特征向量。那么,由點的幾何特征與張量投票矩陣特征值的分布的關系可知:當λ1≥λ2≈λ3≈0時,點pi為點云中的點;當λ1≈λ2≥λ3≈0時,點pi為點云邊界上的點;當λ1≈λ2≈λ3≥0時,點為點云上的角點或孤立點。
基于張量投票和點的幾何特征的關系,該點云初始粗去噪算法的基本步驟描述如下:
Step 1:對于噪聲點云P={pi},首先利用KD tree算法搜索點pi的k個最近鄰域點集Nk(pi);
Step 2:利用式(1)計算點pi及其鄰域點集Nk(pi) 的張量投票矩陣T,并求解T的特征值λ1,λ2,λ3和特征向量e1,e2,e3;
Step 3:根據(jù)λ1,λ2,λ3和e1,e2,e3構造擴散張量矩陣D,D定義為:
(2)
式中Dij(1≤i,j≤3)定義為:
(3)
式中參數(shù)μ1,μ2,μ3分別定義為:
μ1=α,
(4)
(5)
(6)
Step 4:基于擴散張量D,利用各向異性擴散方程[10]對點云進行循環(huán)濾波去噪,直到濾波次數(shù)的值大于給定閾值時為止。各向異性濾波方程的定義式為:
(7)
式中:Jp是點云的結構張量,其表示點云的局部信息特征;D是擴散張量,其特征值代表點云在三個主特征方向上的擴散速率,I0(x,y,z)是初始輸入的點云數(shù)據(jù)。
從上述基于張量投票的點云去噪算法可見,結構張量可以保留點云的局部信息特征,尤其是點云的尖銳幾何特征,有效剔除點云中的大尺度噪聲(距離主體點云較遠的噪聲)和部分混雜在主體點云中的小尺度噪聲,從而實現(xiàn)點云的初始粗去噪。接下來采用基于曲率特征的去噪算法進一步去除混在主體點云中的其余的噪聲。
在對點云進行進一步精確去噪時,主要是去除點云主體中混雜的小尺度噪聲,本文通過提取曲率幾何特征來實現(xiàn)點云小尺度噪聲的精確去噪。點云的曲率能夠較好地反映點云的表面特征,它可以通過在離散點集拓撲結構的基礎上進行曲面擬合計算得到。本文通過搜索點云中各離散點的k鄰域點來建立點云的拓撲結構,可以有效提高空間分布不均勻的海量離散點集的空間搜索效率。
BY=D,
(8)
(9)
式中h是一個距離常數(shù)。
建立如式(10)所示的約束準則,即:
(10)
由式(10)約束準則可得:
BTQBY=0,
(11)
(12)
由于點云表面不同點的曲率各不相同,結合以上點云中點的曲率和法向量計算方法,基于曲率特征的點云精確去噪步驟具體描述如下:
Step 3:判斷每點曲率,若大于給定閾值ε,則判斷該點為噪聲點,將其刪除。
通過上述步驟即可實現(xiàn)點云噪聲的最終精確刪除。
目前已有點云去噪算法大多缺少對去噪結果的定量評價,為了描述去噪算法對點云特征的保持程度,本文采用信息熵理論[13]對點云去噪結果進行定量評價。信息熵理論可以描述去噪后點云的特征信息,點云中某點的熵值越大,表明該點的信息量越大,細節(jié)表現(xiàn)越精確。
定義點云中某點的信息熵Hi為:
(13)
那么,點云P′的熵H為:
(14)
通常,點云熵值H越大,其所包含的特征信息量就越大,對點云的細節(jié)表現(xiàn)就越精確。
在公共點云數(shù)據(jù)去噪實驗中,采用網(wǎng)絡上公開的Bunny和Dragon點云數(shù)據(jù)模型,通過對其進行加噪來驗證本文去噪算法,加噪的公共點云模型如圖1所示。對于圖1的公共點云噪聲模型,采用本文提出的層次化點云去噪算法進行去噪,首先采用基于張量投票的去噪算法進行初始粗去噪,粗去噪結果如圖2所示;然后采用基于曲率的去噪算法進行精確去噪,最終去噪結果如圖3 所示。實驗中,參數(shù)k的值取16,具體取值跟點云類型和密度等有一定的關系,密度越大,取值越小,通常建議取值在8~28之間。
(a)加噪Bunny(a)Noisy Bunny
(b)加噪Dragon(b)Noisy Dragon圖1 待去噪公共點云模型Fig.1 Common point cloud model to be denoised
(a)Bunny去噪結果(a)Bunny denoising result
(b)Dragon去噪結果(b)Dragon denoising result圖2 本文算法對公共點云的粗去噪結果Fig.2 Coarse denoising results of public point clouds with proposed algorithm
(a)Bunny去噪結果(a)Bunny denoising result
(b)Dragon去噪結果(b)Dragon denoising result圖3 本文算法對公共點云的精確去噪結果Fig.3 Fine denoising results of public point clouds with proposed algorithm
從圖2和圖3的去噪結果可見,基于張量投票的去噪算法可以有效剔除公共點云中的大尺度噪聲和部分小尺度噪聲,實現(xiàn)點云的初始粗去噪。而基于曲率的去噪算法可以對點云中的小尺度噪聲進行進一步地精確提出。同時,本文算法可以較好地保留公共點云模型的原始幾何特征,是一種有效的點云去噪算法。
為了進一步驗證本文去噪算法的性能,對圖1的公共點云噪聲模型再分別采用文獻[14]、文獻[15]和文獻[7]的算法進行去噪,去噪結果分別如圖4、圖5、圖6和表1所示。
(a)Bunny去噪結果(a)Bunny denoising result
(b)Dragon去噪結果(b)Dragon denoising result圖4 文獻[14]算法對公共點云的去噪結果Fig.4 Denoising results of public point clouds with reference [14] algorithm
(a)Bunny去噪結果(a)Bunny denoising result
(b)Dragon去噪結果(b)Dragon denoising result圖5 文獻[15] 算法對公共點云的去噪結果Fig.5 Denoising results of public point clouds with reference [15] algorithm
(a)Bunny去噪結果(a)Bunny denoising result
(b)Dragon去噪結果(b)Dragon denoising result圖6 文獻[7]算法對公共點云的去噪結果Fig.6 Denoising results of public point clouds with reference [7] algorithm
從圖3、圖4、圖5和圖6的去噪結果可見,本文算法在對點云數(shù)據(jù)去噪的同時能夠更好地保留原始細節(jié)特征,算法具有更高的可行性。從表1算法的運行參數(shù)可見,本文算法的誤差最小,耗時最短,而且熵值較文獻[14]算法、文獻[15]算法和文獻[7]算法都要大,因此本文算法是一種更加精確快速的點云模型去噪算法。
表1 不同算法對公共點云的去噪結果Tab.1 Denoising results of different algorithms forpublic point clouds
在文物點云模型的去噪實驗中,采用了5個含噪聲的陶質文物碎塊的點云數(shù)據(jù)模型來驗證本文算法,如圖7所示。利用本文提出的層次化點云去噪算法,首先采用基于張量投票的去噪算法對文物碎塊的點云模型進行初始粗去噪,粗去噪結果如圖8所示;然后基于粗去噪的結果,采用基于曲率的去噪算法進行精確去噪,最終去噪結果如圖9所示。實驗中,參數(shù)k的值取16。
從圖8和圖9的去噪結果可見,基于張量投票的去噪算法可以有效剔除公共點云中的大尺度噪聲和部分小尺度噪聲,實現(xiàn)點云的初始粗去噪。而基于曲率的去噪算法可以對點云中的小尺度噪聲進行進一步的精確提出。同時,本文去噪算法在對文物點云數(shù)據(jù)模型去噪的同時,能夠較好地保留模型的原始幾何特征信息,是一種有效的文物點云模型去噪算法。
為了進一步驗證本文去噪算法的性能,對圖7 所示的文物碎塊點云模型再分別采用文獻[14]算法、文獻[15]算法和文獻[7]算法分別進行去噪處理,其去噪結果分別如圖10、圖11、圖12和表2所示。
(a)碎塊1(a)Fragment 1
(b)碎塊2(b)Fragment 2
(c)碎塊3(c)Fragment 3
(d)碎塊4(d)Fragment 4
(e)碎塊5(e)Fragment 5
(a)碎塊1(a)Fragment 1
(b)碎塊2(b)Fragment 2
(c)碎塊3(c)Fragment 3
(d)碎塊4(d)Fragment 4
(e)碎塊5(e)Fragment 5圖8 本文算法對文物點云的初始去噪結果Fig.8 Initial denoising results of cultural relics point clouds with the proposed algorithm
(a)碎塊1(a)Fragment 1
(b)碎塊2(b)Fragment 2
(c)碎塊3(c)Fragment 3
(d)碎塊4(d)Fragment 4
(e)碎塊5(e)Fragment 5圖9 本文算法對文物點云的精確去噪結果Fig.9 Accurate denoising results of cultural relics point clouds with the proposed algorithm
(a)碎塊1(a)Fragment 1
(b)碎塊2(b)Fragment 2
(c)碎塊3(c)Fragment 3
(d)碎塊4(d)Fragment 4
(a)碎塊1(a)Fragment 1
(b)碎塊2(b)Fragment 2
(c)碎塊3(c)Fragment 3
(d)碎塊4(d)Fragment 4
(e)碎塊5(e)Fragment 5圖11 文獻[15]算法對文物點云的去噪結果Fig.11 Denoising results of cultural relics point clouds with reference [15] algorithm
(a)碎塊1(a)Fragment 1
(b)碎塊2(b)Fragment 2
(c)碎塊3(c)Fragment 3
(d)碎塊4(d)Fragment 4
(e)碎塊5(e)Fragment 5圖12 文獻[7]算法對文物點云的去噪結果Fig.12 Denoising results of cultural relics point clouds with reference [7] algorithm
表2 不同算法對文物點云的去噪結果Tab.2 Denoising results of different algorithms for cultural relic point clouds
從圖9、圖10、圖11、圖12的去噪結果可見,本文算法在對點云數(shù)據(jù)去噪的同時能夠更好地保留原始細節(jié)特征,算法具有更高的可行性。從表2的算法運行參數(shù)同樣可見,本文算法的去噪平均誤差最低,耗時最短,而且熵值較文獻[14]算法、文獻[15]算法和文獻[7]算法都要大,包含的特征信息量更大,對點云的細節(jié)表現(xiàn)更加精確。因此說,本文算法是一種精度高、速度快,且能有效保持點云幾何特征信息的有效點云去噪算法。
點云去噪是點云預處理的一個重要環(huán)節(jié),有效的點云去噪算法應該在去噪的同時能夠保持原始點云數(shù)據(jù)的幾何特征信息,并且算法具有較低的復雜度和較高的執(zhí)行效率。本文提出一種層次化的點云去噪算法,首先采用基于張量投票的去噪算法對點云進行初始粗去噪,然后采用基于曲率特征的去噪算法對點云進行精確去噪,該算法對公共點云和文物點云數(shù)據(jù)模型均具有良好的去噪效果,是一種有效的點云去噪算法。