王琬琪,周 淦,張世軒,徐志剛,王軍義
(1.中國科學(xué)院沈陽自動(dòng)化研究所,沈陽 110016;2.中國科學(xué)院機(jī)器人與智能制造創(chuàng)新研究院,沈陽 110169;3.華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083;4.中國科學(xué)院大學(xué),北京 100049)
隨著數(shù)字孿生、三維測(cè)量技術(shù)的迅速發(fā)展,三維重建已成為產(chǎn)品開發(fā)、人工智能和虛擬現(xiàn)實(shí)等領(lǐng)域的研究熱點(diǎn)[1]。伴隨而來的問題是如何獲得三維重建所需的點(diǎn)云數(shù)據(jù)。三維激光掃描技術(shù)的發(fā)展使得三維重建變得更具可能性,操作簡(jiǎn)單有效的同時(shí)精準(zhǔn)度較高。然而由于掃描過程中的其他因素,點(diǎn)云往往包含大量噪聲點(diǎn)[2-4]。因此,如何有效去除噪聲點(diǎn)成為三維研究的重要組成部分。
近年來,國內(nèi)外點(diǎn)云數(shù)據(jù)的研究集中在模型的平滑去噪上。魏碩等[5]提出一種針對(duì)單光子的去噪算法,該算法用k維樹計(jì)算的點(diǎn)云密度為基礎(chǔ)進(jìn)行粗去噪,然后采用DBSCAN算法和統(tǒng)計(jì)濾波算法進(jìn)行進(jìn)一步的精去噪,該算法具有較高的準(zhǔn)確性;王曉輝等[6]提出一種通過計(jì)算法向量距離進(jìn)行點(diǎn)云劃分的去噪算法,該算法既可以保持點(diǎn)云的尖銳點(diǎn),也可以很好地光順平滑區(qū)域;吳玉泉等[7]提出一種基于鄰域平均法的去噪算法,提高算法效率的同時(shí)保留了點(diǎn)云的特征點(diǎn);郭寧博等[8]將RANSAC用于點(diǎn)云分割,實(shí)現(xiàn)了散亂點(diǎn)云的快速去噪;廖昌粟等[9]將張量投票和最小二乘平面投影應(yīng)用到特征檢測(cè)中,該算法對(duì)點(diǎn)云的輪廓特征保留效果好,解決了過光順的問題。趙凱等[10]針對(duì)基于密度的噪聲空間聚類算法進(jìn)行改進(jìn),實(shí)現(xiàn)了大場(chǎng)景散亂點(diǎn)云的去噪;DINESH等[11]用一個(gè)通用的′p-范數(shù)保真度項(xiàng)來表達(dá)一個(gè)優(yōu)化問題,顯式地去平衡兩種類型的加性噪聲,將其轉(zhuǎn)化為一種無約束二次規(guī)劃問題;IRFAN等[12]則利用了幾何圖形和顏色之間的相關(guān)性,從幾何和顏色構(gòu)造合適的k-NN圖,并應(yīng)用基于圖的凸優(yōu)化來獲得去噪點(diǎn)云,并表明所提出方式要優(yōu)于使用主觀質(zhì)量指標(biāo)降噪的方式;RAKOTOSAONA等[13]開發(fā)了一種簡(jiǎn)單的數(shù)據(jù)驅(qū)動(dòng)方法來消除異常值并減少無序點(diǎn)云中的噪聲。
本文針對(duì)傳統(tǒng)點(diǎn)云去噪算法在去除噪聲的同時(shí),很難保持點(diǎn)云特征的問題,提出一種由粗到精的點(diǎn)云去噪算法。先引入張量投票算法,來計(jì)算點(diǎn)云中采樣點(diǎn)的張量投票矩陣。再基于采樣點(diǎn)的擴(kuò)散張量來調(diào)整各向異性擴(kuò)散濾波在不同方向的速率,實(shí)現(xiàn)點(diǎn)云的大尺度去噪。然后通過基于點(diǎn)云半徑和標(biāo)準(zhǔn)差實(shí)現(xiàn)雙邊濾波的自適應(yīng)調(diào)參,實(shí)現(xiàn)小尺度噪聲去噪。
由于三維點(diǎn)云中的每個(gè)點(diǎn)都可以表示為一個(gè)3×3的對(duì)稱半正定矩陣,設(shè)點(diǎn)云P={p1,p2,…pn},pa(a∈[1,n])為掃描出的采樣點(diǎn),Na={pa1,pa2,pa3,…,pab},b≤n為pa的b個(gè)鄰近點(diǎn)。有采樣點(diǎn)pa和鄰近點(diǎn)的集合Na的張量投票矩陣。
(1)
(2)
(1)當(dāng)λ1?λ2≈λ3≈0時(shí),點(diǎn)pa為點(diǎn)云中的點(diǎn);
(2)當(dāng)λ1≈λ2?λ3≈0時(shí),點(diǎn)pa為點(diǎn)云邊界上的點(diǎn);
(3)當(dāng)λ1≈λ2≈λ3?0時(shí),點(diǎn)pa為角點(diǎn)或孤立點(diǎn)。
基于張量投票的大尺度去噪算法的步驟如下:
步驟1:對(duì)于點(diǎn)云,首先利用KD tree算法得到采樣點(diǎn)pa的b個(gè)鄰域點(diǎn)集合Na;
步驟2:依據(jù)采樣點(diǎn)及鄰域點(diǎn)的張量投票矩陣得到矩陣的特征值λ1、λ2、λ3和特征向量e1、e2、e3;
步驟3:根據(jù)λ1、λ2、λ3和e1、e2、e3設(shè)計(jì)擴(kuò)散張量矩陣D,定義為3×3的對(duì)稱矩陣:
(3)
(4)
擴(kuò)散張量和結(jié)構(gòu)張量矩陣的特征向量相等,特征值ε1、ε2、ε3可以參照點(diǎn)云的方向和結(jié)構(gòu)調(diào)整。由于εi∈[0,1](i=1,2,3),所以我們能夠運(yùn)用點(diǎn)云的特征值和結(jié)構(gòu)特征向量來定義擴(kuò)散張量D,即:
(5)
擴(kuò)散張量的特征值在一定程度上代表著濾波沿各個(gè)特征方向的擴(kuò)散速率,在坡度起伏較為強(qiáng)烈的方向擴(kuò)散較慢,在坡度起伏較為平穩(wěn)的方向擴(kuò)散較快。為了更好地區(qū)分采樣點(diǎn)在不同方向的變化,我們通過結(jié)構(gòu)張量的特征值來構(gòu)造擴(kuò)散張量。
ε1=α
(6)
(7)
(8)
其中,α是用于控制擴(kuò)散濾波強(qiáng)度的因子。
步驟4:通過擴(kuò)散張量D設(shè)計(jì)不同方向的濾波的去噪速度,再通過各向異性擴(kuò)散方程控制濾波的去噪情況,對(duì)點(diǎn)云模型進(jìn)行濾波去噪,直到濾波次數(shù)大于給定閾值。各向異性濾波方程的定義式為:
(9)
其中,Jp為點(diǎn)云的結(jié)構(gòu)張量,其體現(xiàn)點(diǎn)云的局部信息特征;D是依據(jù)結(jié)構(gòu)張量和特征向量設(shè)計(jì)的擴(kuò)散張量,其特征值代表濾波在3個(gè)主特征方向上的擴(kuò)散速率;I0(x,y,z)為初始的點(diǎn)云數(shù)據(jù)。
在點(diǎn)云模型深度去噪過程中,需要針對(duì)大尺度去噪中忽略的小尺度噪聲。傳統(tǒng)算法中,雙邊濾波算法對(duì)混雜在點(diǎn)云內(nèi)部的噪聲去噪效果較好,因此本文通過調(diào)整雙邊濾波的參數(shù),來對(duì)點(diǎn)云進(jìn)行精確去噪。雙邊濾波算法主要作用為光順濾除點(diǎn)云中起伏噪點(diǎn),同時(shí)可平滑柔順接口邊界,不但可以盡可能的減少數(shù)據(jù)中的噪聲點(diǎn),而且能保留原始3D幾何特征并防止過度光順。
(10)
(11)
(12)
(13)
(14)
(15)
基于雙邊濾波的小尺度去噪算法的步驟如下:
步驟3:由式(11)、式(12)計(jì)算Wc(x)和Ws(y)的值。
步驟4:由式(10)得到雙邊濾波參數(shù);
步驟5:對(duì)點(diǎn)云進(jìn)行雙邊濾波去噪,統(tǒng)計(jì)得出去噪后的數(shù)據(jù)點(diǎn)。
為了客觀評(píng)價(jià)濾波效果的優(yōu)劣,本文引入信噪比SNRs[14]作為評(píng)價(jià)指標(biāo):
(16)
為了實(shí)驗(yàn)證明本文算法的準(zhǔn)確性和實(shí)用性,通過線激光傳感器發(fā)射高精密線結(jié)構(gòu)光,照射在定位接口上,采集接口的三維數(shù)據(jù)。實(shí)驗(yàn)平臺(tái)Intel(R)Core(TM)i7-6700CPU@3.40 GHz,8 GB隨機(jī)存取存儲(chǔ)器(RAM),開發(fā)環(huán)境為Visual Studio 2015,基于PCL1.7實(shí)現(xiàn)。為了對(duì)比證明去噪效果,對(duì)polyworks采集得到的發(fā)動(dòng)機(jī)艙段點(diǎn)云疊加不同噪聲。首先,采用本文提出的基于張量投票的各向異性擴(kuò)散濾波算法對(duì)點(diǎn)云進(jìn)行大尺度去噪,如圖1所示為加噪后的艙段接口點(diǎn)云。如圖2所示為初始去噪后的結(jié)果。然后對(duì)雙邊濾波進(jìn)行自適應(yīng)參數(shù)調(diào)整,再對(duì)模型小尺度去噪,最終去噪結(jié)果如圖3所示。
(a)接口區(qū)域 (b)接口區(qū)域 (c)艙段表面
(a)接口區(qū)域 (b)接口區(qū)域 (c)接口內(nèi)部
(a)艙段表面 (b)接口內(nèi)部 (c)接口內(nèi)部
從圖2的去噪結(jié)果可見,本文提出的基于張量投票的大尺度去噪算法可以有效去除點(diǎn)云模型中的大尺度噪聲和部分混在點(diǎn)云中間的小尺度噪聲,初步完成發(fā)動(dòng)機(jī)艙段接口點(diǎn)云的去噪。從圖3的去噪結(jié)果可見,本文提出的基于雙邊濾波的小尺度去噪算法對(duì)小尺度噪聲非常有效,進(jìn)一步實(shí)現(xiàn)點(diǎn)云的精確去噪。本文提出的算法在去除點(diǎn)云噪聲的同時(shí),盡可能的保留了艙段接口點(diǎn)云模型的幾何特征,避免了過度光滑,為接下來的三維重建等操作奠定了良好的基礎(chǔ)。
為了進(jìn)一步證明本文算法的高效性,選取傳統(tǒng)的雙邊濾波算法和中值濾波算法對(duì)艙段接口點(diǎn)云模型進(jìn)行去噪。圖4和表1分別為雙邊濾波、中值濾波和本文算法的去噪結(jié)果及對(duì)比。
表1 不同算法對(duì)航天發(fā)動(dòng)機(jī)艙段點(diǎn)云的去噪結(jié)果
(a)雙邊濾波 (b)中值濾波
圖4顯示,雙邊濾波算法對(duì)大尺度噪聲的剔除效果不好,去噪結(jié)果包含遠(yuǎn)離點(diǎn)云內(nèi)部的噪聲。中值濾波去噪后的點(diǎn)云雖然不包含大尺度噪聲,但是對(duì)接口附近小尺度噪聲的去噪效果不好,容易丟失點(diǎn)云的尖銳特征。本文算法的結(jié)果不但可以更好的消去點(diǎn)云包含的噪聲,還可以保留點(diǎn)云的尖銳特征。
由表1可知,在航天發(fā)動(dòng)機(jī)艙段接口點(diǎn)云模型的去噪中,本文算法相較于其他兩種算法而言,去噪快的同時(shí)保證了算法的質(zhì)量,在算法耗時(shí)方面僅為雙邊濾波的81.3%、中值濾波的86.5%。
本文針對(duì)傳統(tǒng)點(diǎn)云去噪算法在去除噪聲的同時(shí),很難保持點(diǎn)云特征的問題,提出一種基于噪聲特征分類的點(diǎn)云去噪算法。經(jīng)實(shí)驗(yàn)驗(yàn)證,結(jié)論如下:
(1)提出了一種由粗到精的層次化點(diǎn)云模型去噪算法,可有效對(duì)三維點(diǎn)云數(shù)據(jù)去噪。所提方法將各向異性擴(kuò)散濾波和雙邊濾波結(jié)合,各向異性濾波實(shí)現(xiàn)點(diǎn)云的大尺度去噪,雙邊濾波實(shí)現(xiàn)小尺度噪聲去噪。
(2)利用發(fā)動(dòng)機(jī)艙段實(shí)測(cè)數(shù)據(jù),實(shí)現(xiàn)了發(fā)動(dòng)機(jī)艙段的模型優(yōu)化。通過對(duì)測(cè)量得到的發(fā)動(dòng)機(jī)艙段數(shù)據(jù)進(jìn)行算法設(shè)計(jì),實(shí)現(xiàn)了復(fù)雜內(nèi)嵌式三維模型的精度優(yōu)化。為后續(xù)對(duì)接過程數(shù)字孿生提供支持。
(3)文章所提出的基于噪聲特征分類的點(diǎn)云去噪算法具有一般性及魯棒性。該方法對(duì)具有多層級(jí)的內(nèi)嵌式艙段模型的成功優(yōu)化,為下一步的點(diǎn)云精簡(jiǎn)及曲面重建提供了新的思路,同時(shí)也適用于其他復(fù)雜點(diǎn)云模型的高精度去噪優(yōu)化。