一種點(diǎn)云去噪平滑方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)圖形學(xué)技術(shù)領(lǐng)域,涉及一種點(diǎn)云去噪平滑方法。
【背景技術(shù)】
[0002] 隨著模型多邊形復(fù)雜度的劇增,點(diǎn)云模型的優(yōu)勢越來越明顯,以點(diǎn)云為研究對(duì)象 的圖形學(xué)越來越受到關(guān)注。隨著數(shù)據(jù)測量技術(shù)的飛速發(fā)展,三維掃描儀的測量精度不斷提 高,采集到的點(diǎn)云越來越密集,而且包含了豐富的實(shí)物信息。但是由于掃描儀自身的適應(yīng) 性、人為因素、環(huán)境因素和測量方法等的影響,采集的數(shù)據(jù)總包含噪聲,不能精確地表現(xiàn)被 測農(nóng)作物的表面信息。噪聲點(diǎn)的存在會(huì)影響后續(xù)特征點(diǎn)提取的精度和重建三維模型的質(zhì) 量,導(dǎo)致重構(gòu)曲線、曲面不光滑,降低重構(gòu)模型的精度。
[0003] 傳統(tǒng)的點(diǎn)云去噪方法多采用三角網(wǎng)格模型和點(diǎn)云數(shù)據(jù)的去噪方法,在用拉普拉斯 算子對(duì)三角片法矢進(jìn)行調(diào)整時(shí),由于該方法是各向同性的,存在重要特征模糊現(xiàn)象;各向異 性網(wǎng)格光順?biāo)惴m然能保持幾何特征,但通常采用高階幾何流,算法復(fù)雜度較高,有些情況 下還會(huì)造成網(wǎng)格模型的變形和扭曲;在分步處理中,用于大尺度噪聲去除的模糊C均值方 法對(duì)噪聲敏感,可能會(huì)降低噪聲質(zhì)量。上述方法雖然能夠達(dá)到一定的效果,但是總存在特征 模糊、模型的變形和扭曲和對(duì)噪聲敏感的問題,影響后續(xù)特征提取的精度和重建模型的質(zhì) 量。
【發(fā)明內(nèi)容】
[0004] 針對(duì)上述現(xiàn)有技術(shù)中存在的問題和缺陷,本發(fā)明的目的在于,提供一種點(diǎn)云去噪 平滑方法。
[0005] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0006] 一種點(diǎn)云去噪平滑方法,具體包括以下步驟:
[0007] 步驟1 :對(duì)三維點(diǎn)云模型進(jìn)行自適應(yīng)密度聚類分析,得到去噪后的點(diǎn)云模型,其具 體實(shí)現(xiàn)方法如下:
[0008] 步驟I. 1 :將三維點(diǎn)云模型導(dǎo)入以x、y、z為坐標(biāo)軸的三維坐標(biāo)系,計(jì)算自適應(yīng)參數(shù) 初始半徑e和最小鄰域數(shù)目MinPts,并為類號(hào)ClusterID賦初值1 ;
[0009] 步驟1. 2 :將三維點(diǎn)云模型中的所有點(diǎn)作為一個(gè)集合D,從D中讀出一個(gè)未訪問過 的對(duì)象P,并查找D中關(guān)于e和MinPts的從P密度可達(dá)的所有對(duì)象;
[0010] 步驟1. 3 :若P是核心對(duì)象,即點(diǎn)P的e鄰域內(nèi)的樣本點(diǎn)數(shù)大于等于MinPts,則對(duì) 象P的類號(hào)賦值為ClusterID ;如果P不是核心對(duì)象,即為邊界對(duì)象,則對(duì)象P的類號(hào)賦值 為0,表示對(duì)象P為孤立的噪聲點(diǎn);
[0011] 步驟1. 4 :從步驟1. 2得到的對(duì)象P密度可達(dá)的對(duì)象開始繼續(xù)搜索,直至無對(duì)象為 止,將所有密度可達(dá)的對(duì)象賦值為ClusterlD,ClusterID自加1,并轉(zhuǎn)步驟1. 2,直到待分類 集合D中所有對(duì)象都被訪問過;
[0012] 步驟2 :對(duì)步驟1得到的去除噪聲之后的點(diǎn)云進(jìn)行雙邊濾波,得到平滑后的點(diǎn)云模 型;
[0013] 步驟3 :針對(duì)步驟2得到的點(diǎn)云模型,應(yīng)用Delaunay三角剖分方法生成重建后的 三維模型。
[0014] 具體地,所述步驟I. 1中:
[0015] 所述自適應(yīng)參數(shù)初始半徑e的計(jì)算方法如下:
[0016] 根據(jù)公式1計(jì)算三維點(diǎn)云模型中任意兩點(diǎn)?1和p ,之間的歐式距離dist(i,j):
[0017]
式 1
[0018] 其中,(Xi, y;,Zi)和Uj, y.j, Z.)分別表示點(diǎn)pjP p』的坐標(biāo);
[0019] 根據(jù)公式2和公式3計(jì)算dist(i, j)的最大值maxdist和最小值mindist,根據(jù) 公式4求得距離間隔di strange ;
[0020] max dist = Max {dist (i, j) | 0 i < η, 0 j < n} 式 2
[0021] min dist = Min {dist (i, j) | 0 i < η, 0 j < n} 式 3
[0022] di strange = max dist-min dist 式 4
[0023] 其中,n表示三維點(diǎn)云模型中點(diǎn)的數(shù)目;
[0024] 將距離間隔distrange等距分為十段,各分段的端點(diǎn)值從小到大分別用 d。,山,...,(I1。表示,統(tǒng)計(jì)dist (i, j)在每段范圍內(nèi)的次數(shù)p k,0彡k < 10,其中,下標(biāo)k表示 上述各分段的段號(hào),記次數(shù)Pk中的最大值為P ",〇彡m < 10,則根據(jù)公式5求得自適應(yīng)參數(shù) 初始半徑e :
[0025]
式 5
[0026] 所述最小鄰域數(shù)目MinPts的計(jì)算方法如下:
[0027] 自適應(yīng)參數(shù)初始半徑e確定之后,設(shè)置MinPts的初始值為1 ;根據(jù)公式6統(tǒng)計(jì)點(diǎn) 云模型中的任意點(diǎn)Pi的鄰域點(diǎn)數(shù)目PNumi, 0彡i〈n根據(jù)公式7統(tǒng)計(jì)點(diǎn)云模型中所有點(diǎn)的鄰 域點(diǎn)數(shù)目大于MinPts的點(diǎn)的個(gè)數(shù),即為pNum ;
[0028] pNum;= count {dist (i, j) < e | 0 j < η} 式 6
[0029] pNum = count (PNumi^ MinPts I 0 < i < η} 式 7
[0030] 逐步增大最小鄰域數(shù)目MinPts,每次遞增1,隨著最小鄰域數(shù)目MinPts的增加, pNum會(huì)逐漸減少并趨于穩(wěn)定,每次計(jì)算pNum之后與前一次計(jì)算的結(jié)果相比較,選擇pNum不 再變化時(shí)的最小鄰域數(shù)目作為MinPts。
[0031 ] 具體地,所述步驟2的具體實(shí)現(xiàn)方法如下:
[0032] 步驟2. 1 :對(duì)于步驟1得到的去除噪聲之后的點(diǎn)云的每一個(gè)數(shù)據(jù)點(diǎn)qi,求出它的m 個(gè)鄰近點(diǎn)kg,j = 1,2, · · ·,m,m個(gè)近鄰點(diǎn)的計(jì)算如下:
[0033] 根據(jù)公式1計(jì)算數(shù)據(jù)點(diǎn)Q1和點(diǎn)云中其他所有點(diǎn)的距離,然后將上述距離按從小到 大排序,截取前m個(gè)點(diǎn)作為m個(gè)近鄰點(diǎn)。
[0034] 步驟2. 2 :對(duì)于每個(gè)鄰近點(diǎn)求出平滑濾波函數(shù)的參數(shù)X = I I I I和特征保持權(quán) 重函數(shù)的參數(shù)y.=<?,其中X為點(diǎn)到鄰近點(diǎn)k ^的距離,y為點(diǎn)q ;與鄰近點(diǎn)的距 離向量Qrklj與該點(diǎn)法向^的內(nèi)積;
[0035] 步驟2. 3 :按照公式8和公式9計(jì)算出平滑濾波函數(shù)Wjx)和特征保持權(quán)重函數(shù) Ws(y);
[0036] 沙:(X)二(,' -y 式 8
[0037] ^V( V)=C '' 2<τ: 式 9
[0038] 其中:σ c-空間域權(quán)重;σ s -特征域權(quán)重;
[0039] 步驟2. 4 :將Wc(X)和Ws (y)代入公式10,計(jì)算出雙邊濾波因子α ;
[0040]
式 10
[0041] 其中:NQ1)為數(shù)據(jù)點(diǎn)鄰域。
[0042] 步驟2. 5 :根據(jù)公式11計(jì)算經(jīng)過濾波后的新數(shù)據(jù)點(diǎn);
[0043] H洳 +滅式 11
[0044] 其中:q_為濾波后的數(shù)據(jù)點(diǎn);為步驟1得到的去噪后的數(shù)據(jù)點(diǎn);α為雙邊濾 波加權(quán)因子;i ,為數(shù)據(jù)點(diǎn)Qcild的單位法矢。
[0045] 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下技術(shù)效果:
[0046] 1、本發(fā)明采用自適應(yīng)密度聚類分析方法對(duì)點(diǎn)云進(jìn)行去噪,采用雙邊濾波算法對(duì)去 噪后的模型進(jìn)行平滑,并對(duì)平滑后得到的點(diǎn)云模型進(jìn)行重建,得到重建后的三維模型,充分 利用密度聚類算法對(duì)噪聲不敏感,能發(fā)現(xiàn)任意形狀、大小類簇的特點(diǎn)和雙邊濾波保持點(diǎn)云 特征的特點(diǎn),實(shí)現(xiàn)了在原始數(shù)據(jù)中進(jìn)行去噪平滑同時(shí)保留點(diǎn)云數(shù)據(jù)更多的特征,通過對(duì)比 實(shí)驗(yàn)發(fā)現(xiàn),上述方法具有較好的去噪平滑效果。
[0047] 2、通過計(jì)算確定自適應(yīng)密度聚類分析方法中的初始半徑和最小鄰域數(shù)目的值,避 免了原始聚類方法根據(jù)聚類結(jié)果不斷調(diào)整參數(shù)的缺陷,從而提高了處理速度;同時(shí)使得三 維點(diǎn)云的去噪平滑效果更好。
[0048] 3、在進(jìn)行雙邊濾波平滑時(shí),考慮了鄰域點(diǎn)對(duì)當(dāng)前點(diǎn)的影響,避免了過光滑現(xiàn)象的 發(fā)生。
【附圖說明】
[0049] 圖1是規(guī)則物體的三維點(diǎn)云模型效果圖;圖I (a)是原始點(diǎn)云模型;圖I (b)是采用 本發(fā)明的方法得到的去噪光滑效果圖;圖1(c)是原始點(diǎn)云重建效果;圖1(d)是采用本發(fā) 明方法得到的重建效果圖。
[0050] 圖2是不規(guī)則物體的三維點(diǎn)云模型效果圖;圖2(a)是原始點(diǎn)云模型;圖2(b)是對(duì) 比實(shí)驗(yàn)得到的效果圖;圖2(c)是本發(fā)明方法得到的去噪光滑效果;圖2(d)是原始點(diǎn)云重 建效果圖;圖2(e)是對(duì)比實(shí)驗(yàn)得到的重建效果圖;圖2(f)是采用本發(fā)明方法得到的重建 效果。
[0051] 圖3是本發(fā)明的方法流程圖。
[0052] 下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明的方案進(jìn)一步詳細(xì)地解釋和說明。
【具體實(shí)施方式】
[0053] 遵從上述技術(shù)方案,參見圖3,本發(fā)明的點(diǎn)云去噪平滑方法,具體包括以下步驟:
[0054] 步驟1 :對(duì)三維點(diǎn)云模型進(jìn)行自適應(yīng)密度聚類分析,得到去噪后的點(diǎn)云模型。其具 體實(shí)現(xiàn)方法如下:
[0055] 步驟I. 1 :將徠卡scanstation2三維激光掃描儀獲取的三維點(diǎn)云模型導(dǎo)入以X、 y、z為坐標(biāo)軸的三維坐標(biāo)系,計(jì)算自適應(yīng)參數(shù)初始半徑e和最小鄰域數(shù)目MinPts,并為類號(hào) ClusterID賦初值1。其中,自適應(yīng)參數(shù)初始半徑e的計(jì)算方法如下:
[0056] 根據(jù)公式(1)計(jì)算三維點(diǎn)云模型中任意兩點(diǎn)間的歐式距離dist(i,j):
[0057]
⑴
[0058] 其中,(Xi, Yi, Zi)和Uj, Zj)分別表示點(diǎn)pjP p」的坐標(biāo)。
[0059] 根據(jù)公式(2)和(3)計(jì)算dist (i, j)的最大值maxdist和最小值mindist,
[0060] 根據(jù)公式(4)求得距離間隔distrange。
[0061] max dist = Max {dist (i, j) | 0 i < η, 0 j < η} (2)
[0062] min dist = Min {dist (i,j) I 0 < i < η, 0 < j < η} (3)
[0063] di strange = max dist-min dist (4)
[0064] 其中,n表示三維點(diǎn)云模型中點(diǎn)的數(shù)目。
[0065] 將距離間隔distrange等距分為十段,各分段的端點(diǎn)值從小到大分別用 d。,山,…,(I1。表示,統(tǒng)計(jì)dist (i, j)在每段范圍內(nèi)出現(xiàn)的次數(shù)p k(0彡k < 10),其中,下標(biāo) k表示上述各分段的段號(hào),記次數(shù)pk中的最大值為Ρηι(0彡m< 10),則根據(jù)公式(5)求得自 適應(yīng)參數(shù)初始半徑e :
[0066]
(5)
[0067] 最小鄰域數(shù)目MinPts的計(jì)算方法如下:
[0068] 自適應(yīng)參數(shù)初始半徑e確定之后,設(shè)置MinPts的初始值為1 ;根據(jù)公式(6)統(tǒng)計(jì) 點(diǎn)云模型中的任意點(diǎn)Pi的鄰域點(diǎn)數(shù)目PNumi, (0彡i < η