《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 含噪點(diǎn)云預(yù)處理技術(shù)研究
含噪點(diǎn)云預(yù)處理技術(shù)研究
來(lái)源:微型機(jī)與應(yīng)用2012年第12期
郝慧麗,劉先勇
(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽(yáng)621000)
摘要: 用三維光學(xué)測(cè)量系統(tǒng)進(jìn)行測(cè)量時(shí),由于周圍環(huán)境、人、設(shè)備等各方面的影響,測(cè)量數(shù)據(jù)中常常會(huì)摻入噪聲。針對(duì)體外飛點(diǎn)和離群成簇噪聲分別采取基于K_近鄰搜索的平均距離去噪算法和改進(jìn)的基于近鄰點(diǎn)距傳播的去噪算法進(jìn)行處理,取得了較好的去噪效果。針對(duì)直接測(cè)量或者多次測(cè)量拼接獲取的點(diǎn)云存在“粗糙毛刺”和點(diǎn)云多層重疊的狀況,采用基于MLS的擬合平面投影光順?biāo)惴ㄟM(jìn)行光滑處理,去除“粗糙毛刺”和打薄重疊區(qū)域。該光順去噪預(yù)處理算法已經(jīng)成功運(yùn)用到三維測(cè)量系統(tǒng)的點(diǎn)云處理模塊中。
Abstract:
Key words :

摘  要: 用三維光學(xué)測(cè)量系統(tǒng)進(jìn)行測(cè)量時(shí),由于周圍環(huán)境、人、設(shè)備等各方面的影響,測(cè)量數(shù)據(jù)中常常會(huì)摻入噪聲。針對(duì)體外飛點(diǎn)和離群成簇噪聲分別采取基于K_近鄰搜索的平均距離去噪算法和改進(jìn)的基于近鄰點(diǎn)距傳播的去噪算法進(jìn)行處理,取得了較好的去噪效果。針對(duì)直接測(cè)量或者多次測(cè)量拼接獲取的點(diǎn)云存在“粗糙毛刺”和點(diǎn)云多層重疊的狀況,采用基于MLS的擬合平面投影光順算法進(jìn)行光滑處理,去除“粗糙毛刺”和打薄重疊區(qū)域。該光順去噪預(yù)處理算法已經(jīng)成功運(yùn)用到三維測(cè)量系統(tǒng)的點(diǎn)云處理模塊中。
關(guān)鍵詞: 去噪;光順;MLS;點(diǎn)云數(shù)據(jù);K_近鄰

    逆向工程是將現(xiàn)有實(shí)物產(chǎn)品利用數(shù)據(jù)采集設(shè)備獲取物體外表面三維信息,再將數(shù)據(jù)進(jìn)行處理及分析,最后實(shí)現(xiàn)產(chǎn)品的三維信息數(shù)字化,重建三維模型,對(duì)產(chǎn)品模型進(jìn)行二次設(shè)計(jì)、修改及優(yōu)化。物體三維數(shù)據(jù)采集設(shè)備從采集方式上可以分為兩種類型:接觸式和非接觸式。其中,基于結(jié)構(gòu)光的非接觸式測(cè)量是當(dāng)前及今后優(yōu)先發(fā)展的重點(diǎn),它具有快速、全面獲取物體三維外形數(shù)據(jù)且對(duì)物體無(wú)損傷、對(duì)自然環(huán)境無(wú)污染的優(yōu)點(diǎn)。但是由于測(cè)量環(huán)境、人、設(shè)備等因素的影響,采集到的點(diǎn)云中往往含有大量的噪聲,難以被直接應(yīng)用于物體三維模型的重建。為了使點(diǎn)云數(shù)據(jù)能夠運(yùn)用到后期的處理過(guò)程,滿足曲面擬合及造型設(shè)計(jì)等對(duì)數(shù)據(jù)高質(zhì)量的要求,必須先對(duì)原始數(shù)據(jù)進(jìn)行去噪、光順?lè)矫娴念A(yù)處理。逆向工程與三維測(cè)量技術(shù)的迅速發(fā)展也推動(dòng)了去噪光順研究的進(jìn)展,國(guó)內(nèi)外許多研究學(xué)者在這方面做了深入的研究,如基于局部曲面擬合的MLS方法[1],基于Scale-Space理論的拉普拉斯方法[2]等。近年來(lái),傳統(tǒng)的網(wǎng)格模型去噪和光順?biāo)惴ǖ玫搅碎L(zhǎng)足的發(fā)展。其中很多網(wǎng)格模型的去噪和光順?biāo)惴梢灾苯訑U(kuò)展到點(diǎn)模型上,比較經(jīng)典的有Fleishman的雙邊濾波去噪算法[3]。
    本文針對(duì)點(diǎn)云數(shù)據(jù)所含噪聲以及點(diǎn)云特點(diǎn)進(jìn)行分析,然后采用不同的算法進(jìn)行去噪和光順處理。
1 去噪光順?biāo)惴?/strong>
    三維測(cè)量系統(tǒng)獲取的點(diǎn)云數(shù)據(jù)中混雜的噪聲大致可以分為3種:(1)體外飛點(diǎn),偏離實(shí)測(cè)數(shù)據(jù)較遠(yuǎn),懸浮在主體點(diǎn)云外圍的孤立、稀疏點(diǎn);(2)離群成簇噪聲,偏離主體點(diǎn)云較遠(yuǎn),小而密集的噪聲簇;(3)混雜噪點(diǎn),噪聲點(diǎn)和真實(shí)點(diǎn)混雜在一起,該種點(diǎn)云的形態(tài)與實(shí)體中心點(diǎn)云成分層狀,直觀表現(xiàn)為點(diǎn)云表面很多“粗糙毛刺”。
1.1 體外飛點(diǎn)去除算法
    針對(duì)體外飛點(diǎn)無(wú)序、散亂的特性,本文采用空間單元柵格法[4]建立點(diǎn)云數(shù)據(jù)點(diǎn)之間的空間拓?fù)潢P(guān)系進(jìn)而搜索每個(gè)點(diǎn)的K_近鄰。首先讀入測(cè)量數(shù)據(jù)點(diǎn),將三維坐標(biāo)點(diǎn)存入一個(gè)一維數(shù)組Array[],同時(shí)得到其X、Y、Z坐標(biāo)的最大、最小值,這樣可以做一個(gè)與各個(gè)坐標(biāo)軸平行的大長(zhǎng)方體柵格,包圍所有的三維點(diǎn)。根據(jù)數(shù)據(jù)點(diǎn)的密度將長(zhǎng)方體柵格劃分為多個(gè)小立方體柵格,并判斷每個(gè)數(shù)據(jù)點(diǎn)所在的小立方體柵格,將數(shù)據(jù)點(diǎn)的序號(hào)追加到該立方體柵格對(duì)應(yīng)的線性鏈表中。

    確定好當(dāng)前點(diǎn)所在小立方體柵格的索引號(hào)后,對(duì)其所在小立方體及相鄰的上、下、左、右、前、后共27個(gè)小立方體柵格中查找K個(gè)最近鄰的點(diǎn),求取pi的K_近鄰。實(shí)驗(yàn)時(shí)K取20。
    建立好散亂點(diǎn)之間的拓?fù)潢P(guān)系,搜索到每個(gè)點(diǎn)的K_近鄰之后,采用平均距離法進(jìn)行噪聲點(diǎn)去除。算法如下:
    (1)讀入三維散亂點(diǎn)云數(shù)據(jù)P;
    (2)利用空間單元柵格法建立點(diǎn)云拓?fù)潢P(guān)系;
    (3)搜索點(diǎn)云中任意一點(diǎn)pi∈P的K_鄰域NB(pi);
    (4)計(jì)算當(dāng)前pi與其K_鄰域內(nèi)K個(gè)點(diǎn)之間的距離,取其平均值M(pi);
    (5)判斷該平均距離M(pi)是否超過(guò)設(shè)定的閾值M?滓,若超過(guò),則認(rèn)為該點(diǎn)是離群噪聲點(diǎn),將其刪除;
    (6)重復(fù)步驟(3)~步驟(5),直到處理完整體點(diǎn)云中所有的數(shù)據(jù)點(diǎn)。
1.2 離群成簇噪點(diǎn)的去除
    有些測(cè)量數(shù)據(jù)中會(huì)出現(xiàn)一部分離主體點(diǎn)云(即被測(cè)物體點(diǎn)云)較遠(yuǎn)的小片點(diǎn)云和離散點(diǎn),它們稱之為“離群點(diǎn)簇”。含有成簇噪聲的點(diǎn)云數(shù)據(jù),由于主體點(diǎn)云數(shù)據(jù)點(diǎn)的數(shù)量比離群點(diǎn)的數(shù)量大得多,所以計(jì)算每一片點(diǎn)云中數(shù)據(jù)點(diǎn)的數(shù)目,認(rèn)定數(shù)目最多的點(diǎn)云為主體點(diǎn)云,其余均為離群點(diǎn),可以進(jìn)行刪除處理。
    本文采用改進(jìn)的近鄰點(diǎn)距離傳播算法去除離群成簇噪聲。近鄰點(diǎn)距離傳播算法[5]主要用來(lái)計(jì)算每片點(diǎn)云的數(shù)量,其主要思想是:設(shè)定點(diǎn)與其近鄰點(diǎn)的距離閾值,并假設(shè)某一點(diǎn)為種子點(diǎn),向其K_近鄰中以點(diǎn)與點(diǎn)之間距離小于閾值的約束進(jìn)行傳播,獲取相對(duì)應(yīng)的K_近鄰的點(diǎn);接著以傳播得到的點(diǎn)作為新的種子點(diǎn),再向各自K_近鄰中距離小于設(shè)定閾值的點(diǎn)做傳播。注意,每個(gè)點(diǎn)只能被傳播一次,傳播的同時(shí)記錄點(diǎn)云數(shù)據(jù)中點(diǎn)的個(gè)數(shù)。當(dāng)傳播不能繼續(xù)時(shí),說(shuō)明此片點(diǎn)云數(shù)據(jù)已經(jīng)被傳播完畢,且點(diǎn)的數(shù)目計(jì)算完畢。再次重新尋求未被傳播到的點(diǎn)作為新的種子點(diǎn),繼續(xù)傳播。這樣一直到計(jì)算完每片點(diǎn)云點(diǎn)的數(shù)目。最后,點(diǎn)數(shù)多的即是主體點(diǎn)云,剩余的為離群點(diǎn),將要被刪除。具體算法流程如下:
    (1)創(chuàng)建一維數(shù)組mark[i]=-1,{i=1,2,3,…,N},記錄含點(diǎn)的柵格屬于哪片點(diǎn)云。其中N為全部點(diǎn)云中點(diǎn)的總個(gè)數(shù);
    創(chuàng)建兩個(gè)動(dòng)態(tài)存儲(chǔ)容器vec_1、vec_2分別記錄每個(gè)數(shù)據(jù)點(diǎn)對(duì)應(yīng)的序號(hào);
    創(chuàng)建int類型number,并賦初始值為0;
    設(shè)定點(diǎn)距離閾值為threshold_dist;
    設(shè)定K的取值,建立各點(diǎn)的K_近鄰;
    完成初始化。
    (2)依次檢查并記錄mark[i],如果mark[i]=-1,則number=number+1,mark[i]=number,然后把對(duì)應(yīng)的i值追加到vec_1并轉(zhuǎn)到步驟(3)執(zhí)行;對(duì)每個(gè)i值遍歷完以后,轉(zhuǎn)到步驟(4)。
    (3)分別以vec_1中的每個(gè)序號(hào)對(duì)應(yīng)的數(shù)據(jù)點(diǎn)作為種子點(diǎn),順序查看其K_近鄰數(shù)據(jù)點(diǎn),如果數(shù)據(jù)點(diǎn)與種子點(diǎn)的幾何距離dist<threshold_dist,并且該數(shù)據(jù)點(diǎn)對(duì)應(yīng)的mark[i]=-1,則使mark[j]=number,并把此數(shù)據(jù)點(diǎn)的序號(hào)j追加到vec_2,否則繼續(xù)查看K_近鄰的下一個(gè)數(shù)據(jù)點(diǎn)。當(dāng)vec_1中的序號(hào)對(duì)應(yīng)的數(shù)據(jù)點(diǎn)都做過(guò)了種子點(diǎn)后,刪除vec_1中的所有元素。然后,如果vec_2為空,轉(zhuǎn)到步驟(2);否則,以vec_2中的每個(gè)序號(hào)對(duì)應(yīng)的數(shù)據(jù)點(diǎn)為種子點(diǎn),順序查看其K_近鄰點(diǎn),如果數(shù)據(jù)點(diǎn)與種子點(diǎn)的幾何距離dist<threshold_dist,并且該數(shù)據(jù)點(diǎn)對(duì)應(yīng)的mark[i]=-1,則使mark[j]=number,并把此數(shù)據(jù)點(diǎn)的序號(hào)j追加到 vec_1,否則繼續(xù)查看K_鄰近的下一個(gè)數(shù)據(jù)點(diǎn)。當(dāng)vec_2中的序號(hào)對(duì)應(yīng)的數(shù)據(jù)點(diǎn)都做過(guò)了種子點(diǎn)后,刪除vec_2中的所有元素。如果vec_1為空,轉(zhuǎn)步驟(2),否則繼續(xù)步驟(4)。

1.3 光順?biāo)惴?/strong>
    在三維光學(xué)測(cè)量過(guò)程中,由于人為、環(huán)境等因素干擾,會(huì)出現(xiàn)“粗糙”點(diǎn)云數(shù)據(jù),再者多次測(cè)量結(jié)果拼接后會(huì)出現(xiàn)點(diǎn)云疊層的情況。為了減少“粗糙毛刺”和疊層對(duì)測(cè)量數(shù)據(jù)后期處理和造型造成影響,本文采用基于移動(dòng)最小二乘擬合平面投影法對(duì)測(cè)量數(shù)據(jù)中的“粗糙毛刺”和重疊層進(jìn)行光滑處理。

 

 

    隨著逆向工程的廣泛應(yīng)用和三維測(cè)量技術(shù)的發(fā)展,人們對(duì)曲面造型設(shè)計(jì)的技術(shù)要求越來(lái)越高,對(duì)點(diǎn)云數(shù)據(jù)預(yù)處理效果的要求也越來(lái)越高。本文對(duì)三維光學(xué)測(cè)量系統(tǒng)獲取的含噪點(diǎn)云進(jìn)行分析,對(duì)不同的噪聲類型采取不同的去噪光順預(yù)處理方法來(lái)獲取高質(zhì)量的點(diǎn)云。實(shí)驗(yàn)結(jié)果表明,本文的算法去噪光順?biāo)俣雀?、穩(wěn)健性強(qiáng),具有較高的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] ALEXA M,BEHR J,F(xiàn)LEISHMAN S,et al.Point set surfaces[C].Processing of IEEE Visualization 2001,San Diego,California,21-26 October 2001,IEEE,Piscataway,New Jersey,2001:21-28,537.
[2] LANCASTER P,SALKAUSKAS K.Surfaces generated by  moving least squares methods[J].Mathematics of Computation,1981,37(155):141-159.
[3] FLEISHMAN S,DRORI I,COHEN-Or D.Bilateral mesh denoising[J].ACM Transactions on Graphics(TOG),2003,22(3):950-953.
[4] 張毅,劉旭敏,隋穎,等.基于K-近鄰點(diǎn)云去噪算法的研究與改進(jìn)[J].計(jì)算機(jī)應(yīng)用,2009,29(4):1011-1014.
[5] 王雪英.離群點(diǎn)預(yù)處理及檢測(cè)算法研究[D].成都:西南交通大學(xué),2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。