戴士杰,東 強(qiáng),季文彬,李 慨,任永潮,賈 瑞
(1.河北工業(yè)大學(xué) 機(jī)械工程學(xué)院,天津 300130; 2.河北省機(jī)器人感知與融合重點(diǎn)實(shí)驗(yàn)室,天津 300130)
隨著計(jì)算機(jī)科學(xué)技術(shù)的迅速發(fā)展,物體表面的三維重構(gòu)技術(shù)被廣泛應(yīng)用于計(jì)算機(jī)輔助設(shè)計(jì)(CAD)建模、逆向工程、計(jì)算機(jī)圖形學(xué)以及計(jì)算機(jī)輔助工業(yè)設(shè)計(jì)等多個(gè)領(lǐng)域[1~3]。由于受測量設(shè)備自身缺陷和測量環(huán)境的影響使得測量得到的點(diǎn)云含有不同程度的噪聲。因此,對(duì)三維散亂點(diǎn)云模型的去噪研究已成為數(shù)字化模型重構(gòu)領(lǐng)域的熱點(diǎn)問題之一[4]。
現(xiàn)有的采樣模型去噪方法主要分為網(wǎng)格模型去噪和散亂點(diǎn)模型去噪。網(wǎng)格模型去噪需要先對(duì)采樣點(diǎn)網(wǎng)格化,而散亂點(diǎn)模型去噪是針對(duì)獲取的采樣點(diǎn)利用其位置信息直接進(jìn)行去噪處理,近年來逐步成為研究熱點(diǎn)[5]。郭進(jìn)等人[6]提出了采用密度K-means和改進(jìn)雙邊濾波的點(diǎn)云自適應(yīng)去噪算法,實(shí)現(xiàn)同時(shí)對(duì)大尺度和小尺度噪聲的去噪處理。徐高鵬等人[7]在進(jìn)行三維表面重建時(shí)利用Statistical Outlier Removal濾波器中的Kd-Tree算法進(jìn)行去噪處理。林洪彬等人[8]提出了一種基于參數(shù)自適應(yīng)各向異性高斯核的散亂點(diǎn)云保特征去噪,實(shí)現(xiàn)了散亂點(diǎn)云模型的各向異性保特征去噪。Fu Y等人[9]針對(duì)雙邊濾波算法不能同時(shí)對(duì)平坦區(qū)和尖銳區(qū)的噪聲點(diǎn)進(jìn)行光順處理,通過改進(jìn)K鄰域的搜索方式,提出了保特征的點(diǎn)云去噪算法。Liang X H等人[10]在已有濾波技術(shù)的基礎(chǔ)上,提出了基于自適應(yīng)最優(yōu)領(lǐng)域的散亂點(diǎn)云降噪算法,采用改進(jìn)的三邊濾波算法實(shí)現(xiàn)了法向矢量濾波和位置濾波。
散亂點(diǎn)模型去噪的基本原理是噪聲點(diǎn)沿法向方向進(jìn)行微小偏移,由于噪聲的干擾使得采樣點(diǎn)的法向估計(jì)存在較大誤差,并且位置濾波時(shí)濾波因子不能隨采樣點(diǎn)局部幾何特征自適應(yīng)變化,使得去噪后的模型特征失真。針對(duì)上述兩種問題,本文提出一種基于法向修正與位置濾波兩步法的點(diǎn)云保特征去噪算法。首先對(duì)采樣點(diǎn)的法向進(jìn)行雙邊濾波修正;通過對(duì)濾波參數(shù)進(jìn)行自適應(yīng)取值設(shè)置,構(gòu)建濾波參數(shù)自適應(yīng)的高斯核函數(shù);最后將修正后的法向與濾波參數(shù)自適應(yīng)的高斯核函數(shù)相結(jié)合構(gòu)建新的點(diǎn)云濾波模型。該算法在有效去除噪聲的同時(shí)能較好保留模型的特征細(xì)節(jié)。
散亂點(diǎn)云去噪的基本原理是點(diǎn)沿著法向方向進(jìn)行的微小偏移。如圖1所示。
圖1 去噪原理示意
圖1中,Ω(p)為由采樣點(diǎn)及其鄰域點(diǎn)擬合的曲面,pi為初始噪聲點(diǎn)的位置,ni為pi的法向,π為以ni為法向的切平面,p′i為沿法向偏移后的位置。
散亂點(diǎn)云濾波的數(shù)學(xué)模型為
pout=pi+ni·d
(1)
式中pout為濾波后的點(diǎn)云數(shù)據(jù),d為采樣點(diǎn)pi沿法向移動(dòng)的距離,其具體表達(dá)式如下
(2)
ξij=Wc(‖pi-pij‖)Ws(‖〈pi-pij,ni〉‖)
(3)
(4)
Ws(‖〈pi-pij,ni〉‖)=
(5)
式中N(pi)為點(diǎn)pi的最近鄰域,Wc為空間距離權(quán)重核函數(shù);Ws為特征保持權(quán)重核函數(shù)?!琾i-pij‖為點(diǎn)pi與鄰域點(diǎn)pij的歐氏距離,‖〈pi-pij,ni〉‖為采樣點(diǎn)pi與鄰域點(diǎn)pij的距離向量在該點(diǎn)法向上的投影。濾波參數(shù)σc和σs的取值決定著權(quán)重值的大小,σc越大,光滑效果越好;σs越大,特征保持效果越好,然而過大的σc值會(huì)產(chǎn)生過光順,影響模型的特征保持效果。
上述去噪方法主要存在2種缺陷:1)由于噪聲的干擾使得估計(jì)的采樣點(diǎn)的法向量存有較大誤差,去噪后易造成模型尖銳特征磨平失真,嚴(yán)重時(shí)會(huì)導(dǎo)致模型的缺損;2)濾波參數(shù)σc和σs的取值通常由用戶自定義設(shè)置,在去噪過程中濾波參數(shù)固定且不能最優(yōu)化選擇,使得濾波權(quán)重不能自適應(yīng)改變,導(dǎo)致模型的過光順或去噪不完全。
因此,本文從法向修正和構(gòu)建濾波參數(shù)自適應(yīng)取值的高斯核函數(shù)2個(gè)方面對(duì)上述濾波模型進(jìn)行改進(jìn),提出了基于法向修正與位置濾波的散亂點(diǎn)云去噪算法,實(shí)現(xiàn)了模型的保特征去噪,有效避免了模型特征細(xì)節(jié)失真。
高精準(zhǔn)的法向量是點(diǎn)云位置濾波的重要條件,為了快速得到精準(zhǔn)的點(diǎn)云法向,首先采用主成分分析法(PCA)[11,12]來粗估點(diǎn)云初始法向,作為點(diǎn)云修正的輸入法向,其具體步驟如下:
假定P=(pi,i=1,2,3,…,n)為原始點(diǎn)云數(shù)據(jù),pi∈R3,pi1,pi2,pi3,…,pik為采樣點(diǎn)pi的最近K鄰域,由PCA算法可知,pi的協(xié)方差矩陣C為
(6)
(7)
(8)
(9)
(10)
(11)
式中 參數(shù)σd和σn分別為距離偏差帶寬和法向偏差帶寬,在文獻(xiàn)[11]中,參數(shù)σd和σn的取值為固定值,在平滑區(qū)域法向精度較高,而尖銳區(qū)域法向存在偏差。為了得到更精準(zhǔn)的法向,根據(jù)采樣點(diǎn)的局部幾何特征自適應(yīng)控制參數(shù)σd和σn的取值。利用采樣點(diǎn)與鄰域點(diǎn)的平均距離來控制距離偏差帶寬σd,利用采樣點(diǎn)法向與鄰域點(diǎn)法向的標(biāo)準(zhǔn)偏差來控制法向偏差帶寬σn。通過對(duì)參數(shù)自適應(yīng)取值設(shè)置,不僅可以有效提高尖銳特征的法向精度,而且還對(duì)噪聲起到了一定的光順作用,參數(shù)σd和σn的具體表達(dá)式如下
(12)
(13)
(14)
(15)
在進(jìn)行散亂點(diǎn)云的位置濾波時(shí),利用采樣點(diǎn)與鄰域點(diǎn)的平均距離來控制平滑因子σc,利用采樣點(diǎn)與鄰域點(diǎn)的距離偏差在采樣點(diǎn)上投影的標(biāo)準(zhǔn)差來控制特征保持因子σs,通過對(duì)濾波參數(shù)自適應(yīng)取值設(shè)置,構(gòu)建了濾波參數(shù)自適應(yīng)的高斯核函數(shù),使得特征保持權(quán)重和光順權(quán)重能隨采樣點(diǎn)的幾何特征自適應(yīng)改變,有效避免了低頻區(qū)去噪不完全和高頻尖銳區(qū)特征失真,保留了原始點(diǎn)云模型的特征細(xì)節(jié)。濾波參數(shù)σc和σs的具體形式為
(16)
(17)
(18)
(19)
將修正后的法向作為散亂點(diǎn)云的位置迭代方向,并結(jié)合濾波參數(shù)自適應(yīng)的高斯核函數(shù)對(duì)式(1)進(jìn)行改進(jìn),構(gòu)建了新的點(diǎn)云濾波模型
(20)
(21)
(22)
(23)
(24)
本文所提基于法向修正與位置濾波兩步法的點(diǎn)云去噪算法的基本步驟簡述如下:
輸入:含噪聲的點(diǎn)云數(shù)據(jù)P。
步驟1 讀取含噪聲的點(diǎn)云數(shù)據(jù)P,設(shè)置領(lǐng)域點(diǎn)數(shù)k,法向?yàn)V波修正次數(shù)t和濾波次數(shù)γ的值。
輸出:去噪后的點(diǎn)云數(shù)據(jù)pout。
在VS2013編程環(huán)境下運(yùn)用Pcl1.8.0進(jìn)行算法的編寫與測試。通過對(duì)3種不同的點(diǎn)云模型(Fandisk模型、Head模型、Hand模型)加入30 dB的高斯白噪聲,然后利用不同的去噪算法進(jìn)行對(duì)比實(shí)驗(yàn)。本文從法向修正精度和去噪精度2個(gè)方面對(duì)所提算法的有效性進(jìn)行分析。
本文首先利用所提法向?yàn)V波修正算法對(duì)帶有30 dB高斯白噪聲的Fandisk模型進(jìn)行法向?yàn)V波修正實(shí)驗(yàn),其修正結(jié)果如圖2所示,圖2(a)為濾波修正前的初始法向,圖2(b)為利用本文算法迭代濾波5次后的法向修正結(jié)果。由圖2(a)可知,由于噪聲點(diǎn)的干擾,使得模型尖角和棱處的法向有較大偏差。若按此法向進(jìn)行點(diǎn)云的位置濾波則會(huì)造成模型的邊緣損壞。由圖2(b)可知,經(jīng)本文算法濾波修正后,模型的法向精度得到了提高,其尖角和棱上點(diǎn)的法向能與鄰域點(diǎn)法向保持一致,可為點(diǎn)的偏移提供精準(zhǔn)的法向。
圖2 Fandisk模型法向量修正對(duì)比
對(duì)Fandisk模型進(jìn)行多次迭代濾波,然后對(duì)修正后的法向誤差進(jìn)行分析,以無噪聲模型的法向?yàn)閰⒖挤ㄏ颍ㄟ^計(jì)算修正后的法向與參考法向的偏差,利用法向偏差均方根(root mean square,RMS)[11~14]定量分析本文算法的修正精度。其RMS值越小,修正后的法向精度越高。RMS的數(shù)學(xué)表達(dá)式如下
(25)
(26)
式中N為模型中點(diǎn)云個(gè)數(shù);nref為參考法向,nest為濾波修正后的法向;τ為閾值,當(dāng)修正后的法向與參考法向的點(diǎn)積大于閾值τ時(shí),認(rèn)為該法向與參考法向偏差90°。本文的τ值的選取與文獻(xiàn)[11~14]相同,法向夾角閾值均取10°,即τ=0.984 8。圖3為Fandisk模型經(jīng)3種不同法向修正算法的法向偏差均方根的統(tǒng)計(jì)結(jié)果,由圖3可以看出,3種方法的法向均方根誤差均能達(dá)到收斂狀態(tài),而本文算法的收斂速度最快,并且達(dá)到收斂時(shí)誤差最小,為0.624 rad。由此可以證明本文算法能較精準(zhǔn)地估計(jì)點(diǎn)云的法向量。
圖3 3種法向修正算法的法向偏差均方根
3種模型的去噪結(jié)果如圖4~圖6所示。對(duì)比圖4(c)~(f)可以看出,本文算法能較好地保留Fandisk模型的棱角,能同時(shí)實(shí)現(xiàn)低頻區(qū)平滑光順和高頻區(qū)保特征去噪;對(duì)比圖5(c)~(f)可知,本文算法能很好地保留Head模型中眼部、嘴部等細(xì)節(jié)特征,未發(fā)生細(xì)節(jié)失真;對(duì)比圖6(c)~(f)可以看出,本文算法能較好地保留著Hand模型的特征細(xì)節(jié),去噪后模型更接近原始模型。本文算法由于對(duì)點(diǎn)云法向量進(jìn)行了迭代濾波修正,使噪聲點(diǎn)光順迭代的方向更加精準(zhǔn),并且位置濾波時(shí)濾波參數(shù)可隨采樣點(diǎn)的幾何特征自適應(yīng)取值,使得高頻尖銳區(qū)和低頻平坦區(qū)能同時(shí)達(dá)到去噪的效果。
圖4 Fandisk模型的去噪結(jié)果
圖5 Head模型的去噪結(jié)果
圖6 Hand模型的去噪結(jié)果
在進(jìn)行誤差計(jì)算時(shí),將原始點(diǎn)云模型作為參考,把去噪后點(diǎn)云模型中的各點(diǎn)與參考點(diǎn)云模型中的最近點(diǎn)的距離作為去噪誤差。表1為對(duì)去噪后的平均誤差、均方根誤差和最大誤差的統(tǒng)計(jì)結(jié)果,由表1可知,本文算法與其他去噪算法相比較,去噪后點(diǎn)云模型的3種誤差均為最小,表明了本文算法能更好地保留原始模型的特征細(xì)節(jié),去噪結(jié)果更接近理想模型。
表1 不同去噪算法的誤差統(tǒng)計(jì)結(jié)果
本文算法中含有3個(gè)需要用戶指定的參數(shù):鄰域點(diǎn)數(shù)k、法向修正迭代次數(shù)t和噪聲點(diǎn)的迭代次數(shù)γ。鄰域點(diǎn)數(shù)k的取值不當(dāng)會(huì)嚴(yán)重影響去噪后模型的精度,過小的k值使得局部幾何特征估計(jì)不準(zhǔn),過大的k值可能會(huì)將跨特征的領(lǐng)域點(diǎn)包含在內(nèi),去噪時(shí)會(huì)導(dǎo)致模型特征被磨平。本文算法經(jīng)多次實(shí)驗(yàn)驗(yàn)證,當(dāng)k=18時(shí),模型的去噪效果最好;由圖3中不同法向修正算法的誤差分析可知,隨著迭代次數(shù)的增加,法向偏差均方根先快速減小后達(dá)到收斂狀態(tài)。本文算法的法向?yàn)V波修正迭代次數(shù)為5時(shí),模型的法向誤差達(dá)到收斂狀態(tài),故在本文中t=5;由圖7可知,3種點(diǎn)云模型的均方根誤差隨著去噪迭代次數(shù)的增加呈現(xiàn)先減小后增大的趨勢,當(dāng)?shù)螖?shù)為5時(shí),各模型的均方根誤差最小,最接近原始模型。故在本文中迭代次數(shù)γ=5。
圖7 不同模型的均方根誤差
針對(duì)傳統(tǒng)點(diǎn)云去噪算法易造成點(diǎn)云模型特征細(xì)節(jié)失真的問題,提出了一種基于法向修正與位置濾波的散亂點(diǎn)云去噪算法。該算法能夠?qū)︵徲螯c(diǎn)法向進(jìn)行雙邊加權(quán),利用鄰域法向加權(quán)之和更新采樣點(diǎn)的法向,提高了模型尖銳特征處的法向精度,為散亂點(diǎn)云模型的位置濾波提供了精準(zhǔn)的法向。構(gòu)建了能隨采樣點(diǎn)局部幾何特征自適應(yīng)取值的濾波參數(shù),使得位置濾波時(shí)模型的特征保持權(quán)重和光順權(quán)重均能自適應(yīng)改變。將修正后的法向和濾波參數(shù)自適應(yīng)的高斯核函數(shù)相結(jié)合構(gòu)建了新的點(diǎn)云濾波模型,實(shí)現(xiàn)了點(diǎn)云的各向異性保特征去噪。