李廣金,楊 濤
(1.西南科技大學(xué) 信息工程學(xué)院,綿陽 621010;2.特殊環(huán)境機(jī)器人技術(shù)四川省重點(diǎn)實(shí)驗(yàn)室,綿陽 621010)
隨著逆向工程和三維建模在制造行業(yè)的廣泛應(yīng)用,實(shí)物模型的三維點(diǎn)云成了主要操作對象[1~3]。由于三維信息采集設(shè)備固有的硬件誤差和人為、環(huán)境等因素的干擾,測得的模型點(diǎn)云中不可避免含有部分噪聲點(diǎn),影響后續(xù)模型的重建精度和成像質(zhì)量。因此,對采集到的模型點(diǎn)云進(jìn)行去燥和平滑處理至關(guān)重要。
近年來,三維點(diǎn)云數(shù)據(jù)在噪聲處理方面得到很大的發(fā)展。Digne[4]提出一種基于局部相似度的點(diǎn)云濾波去噪算法,通過平均曲率流將點(diǎn)云分解成低頻和高頻部分分別進(jìn)行處理,但該方法依賴于局部點(diǎn)云的密度,不能很好的分辨成團(tuán)的離群點(diǎn)和局部噪聲點(diǎn)。Sergio等[5]提出一種基于增長神經(jīng)氣(Growing Neural Gas,GNG)網(wǎng)絡(luò)的點(diǎn)云去噪和精簡算法,對Kinect采集到的數(shù)據(jù)進(jìn)行處理,能有效去除離群點(diǎn),但對于點(diǎn)云模型缺少平滑處理。吳曉慶等[6]利用移動最小二乘法對點(diǎn)云進(jìn)行平滑、重采樣處理,雖然能有效平滑噪聲點(diǎn),但也會損失模型尖銳處幾何特征。雙邊濾波算法由于具有良好的邊緣保持特性,被大量用于點(diǎn)云噪聲處理[7~9],但其只能平滑局部噪聲點(diǎn),且算法耗時(shí)較長。
針對以上問題,本文提出一種結(jié)合高斯統(tǒng)計(jì)的點(diǎn)云引導(dǎo)濾波算法。在對點(diǎn)云數(shù)據(jù)進(jìn)行KD-tree[10,11]拓?fù)溥B接后,首先采用高斯統(tǒng)計(jì)法去除點(diǎn)云離群點(diǎn),然后通過點(diǎn)云引導(dǎo)濾波對剩余點(diǎn)云進(jìn)行平滑處理。仿真實(shí)驗(yàn)展示了不同參數(shù)下高斯統(tǒng)計(jì)方法對離群點(diǎn)的去除效果,將點(diǎn)云引導(dǎo)濾波分別與均值濾波、雙邊濾波進(jìn)行對比,驗(yàn)證了引導(dǎo)濾波算法的優(yōu)越性。
離群點(diǎn)是指那些偏離主體點(diǎn)云一定的距離、數(shù)量也比主體點(diǎn)云少很多的噪聲點(diǎn)[12]。高斯統(tǒng)計(jì)去除離群點(diǎn)的算法思想如下:
定義di為某一已知點(diǎn)pi到其k個鄰域點(diǎn)的平均距離,為di的均值,σ為di的標(biāo)準(zhǔn)差。
現(xiàn)假設(shè)di服從高斯分布,即,那么根據(jù)高斯函數(shù)曲線的特點(diǎn),我們可以設(shè)定閾值:對于原始點(diǎn)云中某一點(diǎn),當(dāng)時(shí),將其看作離群點(diǎn)從點(diǎn)云數(shù)據(jù)中去除,其中ε為人為設(shè)定的去噪?yún)?shù)。當(dāng)ε=1時(shí),根據(jù)高斯函數(shù)特點(diǎn),理論上可濾除的點(diǎn)數(shù)量為原始點(diǎn)云的31.73%。
當(dāng)距離主體點(diǎn)云一定距離的離群點(diǎn)被去除后,在局部點(diǎn)云表面仍有一些幅度比較小的噪聲點(diǎn)不能被高斯統(tǒng)計(jì)的方法去除。這些噪聲點(diǎn)會造成點(diǎn)云局部高低起伏,影響后續(xù)點(diǎn)云模型的重建精度,故需要對剩余點(diǎn)云進(jìn)行平滑處理[13]。
引導(dǎo)濾波最初由何凱等[14]提出用于圖像濾波,采用一張引導(dǎo)圖計(jì)算線性模型系數(shù),對輸入圖像進(jìn)行濾波,使輸出圖像大體上與輸入圖像相同,紋理上卻與引導(dǎo)圖相似,具有良好的邊緣保持特性和時(shí)間復(fù)雜度低的優(yōu)勢。根據(jù)三維點(diǎn)云的特點(diǎn),可將引導(dǎo)濾波改進(jìn)后應(yīng)用到點(diǎn)云噪聲平滑處理上[15]。
假設(shè)點(diǎn)云中某鄰域平滑處理前后滿足以下線性關(guān)系:
其中,p'ij為濾波平滑后的點(diǎn),ai和bi為線性模型的待求參數(shù),可通過求解式(5)在該鄰域的極小值解出:
式中λ為控制平滑效果的人為設(shè)置參數(shù)。J(ai,bi)取極小值時(shí),對ai和bi的偏導(dǎo)數(shù)為零。解得:
其中為此處鄰域的幾何中心:
由于點(diǎn)云中任一點(diǎn)pi的鄰域點(diǎn)集不完全相同,對應(yīng)的ai和bi也不會相同,對點(diǎn)云中每一點(diǎn)重復(fù)以上計(jì)算,解出的ai和bi用于對該點(diǎn)作平滑處理:
從以上推導(dǎo)看出,通過將處理點(diǎn)的鄰域點(diǎn)集作為引導(dǎo)窗口,使得平滑處理后模型能保持其鄰域的幾何特征。由式(6)、式(7)、式(9)可以看出,參數(shù)λ=0時(shí),ai=1,bi=(0,0,0),輸出點(diǎn)坐標(biāo)等于輸入點(diǎn),點(diǎn)云局部噪聲并未得到平滑;隨著λ取值不斷增大,ai相應(yīng)減小,輸出點(diǎn)越來越接近其鄰域幾何中心。實(shí)際應(yīng)用中通常取λ<1。
在圖像處理領(lǐng)域,均值濾波是一種線性平均濾波器。在點(diǎn)云處理方面,均值濾波算法即為引導(dǎo)濾波參數(shù)λ趨于無窮大后的特殊情況。此時(shí),平滑處理過程即為通過式(9)得到的鄰域幾何中心來代替處理點(diǎn)。
雙邊濾波平滑點(diǎn)云的表達(dá)式為:
此處Wc與Ws為高斯核函數(shù):
Wc為平滑函數(shù),以該點(diǎn)到鄰域點(diǎn)的距離為自變量。為平滑因子,其值越大,平滑效果越好,通常取為Wc自變量的最大值;Ws為幾何特征保持函數(shù),以此鄰域法向量與該點(diǎn)到鄰域點(diǎn)距離向量的內(nèi)積作為自變量。為特征保持因子,其值越小,幾何特征保持性能越好,通常取為Ws自變量的標(biāo)準(zhǔn)差。
雙邊濾波涉及點(diǎn)云法向量的相關(guān)計(jì)算,通常采用主元分析法[16](Principal Component Analysis,PCA)對某局部點(diǎn)云法向量進(jìn)行估計(jì):
設(shè)ni為某鄰域點(diǎn)法向量,則它與鄰域點(diǎn)集滿足關(guān)系:
定義矩陣Ci:
解出其最小特征值對應(yīng)的特征向量即可作為ni的估計(jì)。
采用3ds Max軟件對汽車建模后,通過MeshLab軟件對導(dǎo)出文件處理得到txt格式的三維數(shù)據(jù)點(diǎn)云,通過matlab R2016a軟件對點(diǎn)云數(shù)據(jù)加入隨機(jī)噪聲點(diǎn),依次采用前文介紹的算法編程進(jìn)行處理。計(jì)算機(jī)硬件條件為:處理器Inter(R) Xeon(R) CPU E5-1603 v4 @ 2.80GHZ,內(nèi)存8GB,顯卡NVIDIA Quadro M2000。
由式(1)~式(3)可見,高斯統(tǒng)計(jì)去除離群點(diǎn)受鄰域點(diǎn)數(shù)k和參數(shù)ε的影響。由圖1(b)和圖1(d)、圖1(c)和圖1(e)可看出,鄰域大小相同時(shí),ε取值越大,去除的離群點(diǎn)越少,這也符合高斯分布曲線特點(diǎn)。圖1(d)、圖1(e)、圖1(f)可以看出,高斯統(tǒng)計(jì)閾值相同時(shí),k取值越大,去除的離群點(diǎn)越少,因?yàn)猷徲虬霃皆龃髮?dǎo)致了模型表面附近的點(diǎn)被忽略了。對不同三維點(diǎn)數(shù)量的點(diǎn)云模型,μ和k取值對離群點(diǎn)去除效果都有影響。對車體點(diǎn)云取k=10,ε=1,去噪效果如圖2所示。
圖2 車體點(diǎn)云去除離群點(diǎn)
當(dāng)模型點(diǎn)云中含有的離群點(diǎn)噪聲被去除后,對比使用三種濾波算法平滑局部小型噪聲點(diǎn)。取k=10,ε=1.96處理后的模型點(diǎn)云分別進(jìn)行實(shí)驗(yàn)。
圖3 輪轂點(diǎn)云局部噪聲點(diǎn)平滑
圖4 車體點(diǎn)云局部噪聲點(diǎn)平滑
圖3(a)和圖4(a)、圖3(b)和圖4(b)分別為均值濾波迭代一次和迭代三次的效果圖,由于均值濾波通過選取鄰域點(diǎn)集的幾何中心點(diǎn)代替處理點(diǎn),故隨著迭代次數(shù)增加,點(diǎn)云坐標(biāo)會相應(yīng)地改變,平滑后點(diǎn)會出現(xiàn)更多的重合,造成點(diǎn)云數(shù)目減少的效果影響模型觀測度。圖3(c)和圖4(c)、圖3(d)和圖4(d)分別為雙邊濾波平滑一次和平滑三次的效果圖,可以看出雖然雙邊濾波在一定程度上保持了點(diǎn)云模型的幾何特征,但其平滑效果并不明顯,且隨著迭代次數(shù)增加,模型會出現(xiàn)局部失真的情況。圖3(e)和圖4(e)、圖3(f)和圖4(f)分別為引導(dǎo)濾波算法平滑一次和平滑三次的效果圖,可以看出引導(dǎo)濾波算法能很好地平滑模型表面起伏噪聲點(diǎn),且當(dāng)?shù)螖?shù)增加時(shí),模型幾何特征保持性能較好,模型點(diǎn)重合數(shù)量也較少。
為更好地評價(jià)幾種濾波算法的平滑效果,定義兩個評價(jià)標(biāo)準(zhǔn)D和δ。因?yàn)閹追N濾波算法都是對離群點(diǎn)去除后剩余點(diǎn)云的每個點(diǎn)進(jìn)行處理,可定義D為平滑前后模型點(diǎn)云的平均移動距離。
其中,n為處理的點(diǎn)云數(shù)量,pi為對應(yīng)待平滑點(diǎn);由于此次仿真實(shí)驗(yàn)中模型的無噪聲標(biāo)準(zhǔn)點(diǎn)云已知,可定義δ為平滑后模型點(diǎn)云的法向量與無噪聲標(biāo)準(zhǔn)點(diǎn)云的法向量夾角余弦平均值。
這里,n'i為p'i在平滑后點(diǎn)云模型里的法向量,通過在標(biāo)準(zhǔn)點(diǎn)云中搜索p'i的k鄰域,ni為該處法向量。實(shí)驗(yàn)計(jì)算結(jié)果如表1所示。
表1數(shù)據(jù)結(jié)果表明,引導(dǎo)濾波平滑點(diǎn)云模型時(shí),平均移動距離小于均值濾波和雙邊濾波,從而保證了點(diǎn)云模型不會被過度放大或縮??;平均夾角余弦值δ整體上大于或等于均值濾波和雙邊濾波對應(yīng)值,由于δ在(0,π)上是減函數(shù),證明引導(dǎo)濾波平滑后模型整體法向量與標(biāo)準(zhǔn)點(diǎn)云模型整體法向量相比改變較小,即幾何特征保持性能更好。
表1 濾波算法評價(jià)指標(biāo)比較
圖5 三種濾波算法耗時(shí)對比圖
圖5為算法耗對比圖,三種濾波算法對比情況表明,由于引導(dǎo)濾波算法采用局部線性模型,以鄰域點(diǎn)集為引導(dǎo)窗口,其算法復(fù)雜度低于雙邊濾波采用的高斯函數(shù)加權(quán),高于均值濾波的簡單幾何中點(diǎn)替代,故點(diǎn)云引導(dǎo)濾波耗時(shí)略高于均值濾波,但遠(yuǎn)低于雙邊濾波。
針對三維信息采集設(shè)備得到的點(diǎn)云中含有噪聲點(diǎn),采用高斯統(tǒng)計(jì)方法去除離群點(diǎn),引導(dǎo)濾波算法平滑局部小型噪聲點(diǎn)。仿真實(shí)驗(yàn)展示了不同參數(shù)下高斯統(tǒng)計(jì)方法對去除離群點(diǎn)的影響。將點(diǎn)云引導(dǎo)濾波在算法耗時(shí)、幾何特征保持效果方面分別與線性均值濾波算法和邊緣保持特性較好的雙邊濾波進(jìn)行了比較,表明引導(dǎo)濾波算法雖然在耗時(shí)方面略高于均值濾波,但低于雙邊濾波一個數(shù)量級,且在平滑模型表面噪聲點(diǎn)和保持模型幾何特征方面效果更好。未來的研究工作重點(diǎn)是,在模型點(diǎn)云稀疏的情況下進(jìn)行噪聲點(diǎn)的去除和平滑。