基于曲面變化的點(diǎn)云精簡方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)視覺、測繪科學(xué)及逆向工程領(lǐng)域,特別涉及了基于曲面變化的 點(diǎn)云精簡方法。
【背景技術(shù)】
[0002] 隨著三維掃描技術(shù)的快速發(fā)展,其廣泛應(yīng)用在逆向工程、工業(yè)產(chǎn)品創(chuàng)新設(shè)計(jì)、物理 模擬、文物保護(hù)與修復(fù)等領(lǐng)域中,且產(chǎn)生了越來越深遠(yuǎn)的影響。因三維掃描設(shè)備可快速采集 到被測物體表面的大量三維數(shù)據(jù),獲得的數(shù)據(jù)密度大、數(shù)量多,稱為海量數(shù)據(jù)。海量數(shù)據(jù)為 數(shù)據(jù)間的傳輸、存儲以及后續(xù)的數(shù)據(jù)建模帶來的制約,因此有必要對海量的三維點(diǎn)云數(shù)據(jù) 進(jìn)行精簡。
[0003]目前點(diǎn)云數(shù)據(jù)的簡化主要分為基于三角網(wǎng)格法和基于散亂點(diǎn)本身的兩類方法。其 中基于散亂點(diǎn)本身的精簡方法省去了三角網(wǎng)格化的操作,無需計(jì)算和存儲復(fù)雜的三角網(wǎng)格 結(jié)構(gòu),使得其精簡的效率相對較高,時(shí)間復(fù)雜度也更低。基于散亂數(shù)據(jù)點(diǎn)本身的數(shù)據(jù)精簡方 法主要有基于空間分割的精簡方法和基于曲率的精簡方法?;诳臻g分割的精簡方法不適 應(yīng)具有復(fù)雜特征和多樣曲率的高散亂點(diǎn)云數(shù)據(jù)的精簡。曲率是反映曲面彎曲程度的幾何特 征量,是曲面的重要幾何特征信息。也就是說要了解一曲面的特性,主要考察其曲率即可。 基于曲率的精簡方法是在曲率變化大的區(qū)域少精簡保留更多點(diǎn),曲率變化小的區(qū)域相對就 多精簡可以少保留些點(diǎn),才可以保留更多的曲面信息。基于曲率的精簡算法主要包括最小 距離法、角度偏差法和弦高偏差法等?;谇实狞c(diǎn)云精簡的方法中精簡準(zhǔn)則以曲率為基 礎(chǔ),有學(xué)者在計(jì)算了點(diǎn)云曲率后,將曲率按照從大到小排序,根據(jù)被測物體的實(shí)際情況和精 簡結(jié)果要求設(shè)定閾值,將計(jì)算出曲率分為不同等級,不同等級壓縮比不同;因?yàn)槠骄?〃 表現(xiàn)了曲面彎曲程度,有學(xué)者則采用平均曲率作為點(diǎn)云數(shù)據(jù)的精簡準(zhǔn)則;還有 學(xué)者采用網(wǎng)格內(nèi)點(diǎn)集的平均法矢與點(diǎn)法的夾角的大小作為網(wǎng)格是否再分的條件,依據(jù)對網(wǎng) 格內(nèi)點(diǎn)集的法向一致性的要求給出的點(diǎn)云數(shù)據(jù)精簡原則,最終實(shí)現(xiàn)精簡。基于點(diǎn)云曲率的 精簡方法雖然能夠很好地保留散亂點(diǎn)云數(shù)據(jù)的表面特征,但是計(jì)算量較大,精簡效率較低, 不適應(yīng)表面特征簡單、具有較小曲率的散亂點(diǎn)云數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004] 為了解決上述【背景技術(shù)】提到的技術(shù)問題,本發(fā)明旨在提供基于曲面變化的點(diǎn)云精 簡方法,該方法計(jì)算量小、速度快,且能保持特征邊界和曲面細(xì)節(jié)。
[0005] 為了實(shí)現(xiàn)上述技術(shù)目的,本發(fā)明的技術(shù)方案為:
[0006] 基于曲面變化的點(diǎn)云精簡方法,包括以下步驟:
[0007] (1)對散亂點(diǎn)云進(jìn)行空間柵格化,確定每個(gè)柵格中點(diǎn)云的個(gè)數(shù)和每個(gè)點(diǎn)所屬的 柵格位置,并在每個(gè)柵格中搜索某點(diǎn)P1的最近k鄰點(diǎn),從而建立空間領(lǐng)域關(guān)系,其中,i= 1,2,…,N,N為總的點(diǎn)數(shù);
[0008] ⑵計(jì)算點(diǎn)P1的曲面變化s(P1);
[0009] (3)將點(diǎn)云分成特征不同的三個(gè)特征區(qū)域,分別為平面鄰域類型點(diǎn)集Q1、次特征鄰 域類型點(diǎn)集02和富特征鄰域類型點(diǎn)集Q3,Q1、Q2、03的特征依次增強(qiáng),對模型的影響程度也依 次增強(qiáng);將所有點(diǎn)按照其S(P1)值分在三個(gè)集合Q2、Q3中,并使每個(gè)集合的點(diǎn)的數(shù)目大 致相等;按照點(diǎn)集中的點(diǎn)的影響力程度設(shè)置yPy2、y3,分別為三類點(diǎn)集的權(quán)重系數(shù),使得 整體點(diǎn)云保持更多的特征;
[0010] (4)根據(jù)點(diǎn)的曲面變化定義近似特征點(diǎn)閾值,曲面變化大于近似特征點(diǎn)閾值的 點(diǎn)保留,曲面變化小于近似特征點(diǎn)閾值的點(diǎn),按照該點(diǎn)屬于的特征區(qū)域計(jì)算精簡其精簡比 率;
[0011] (5)根據(jù)精簡比率定義精簡距離閾值dP,遍歷某點(diǎn)P的k鄰域,計(jì)算每個(gè)鄰點(diǎn)與該 點(diǎn)的距離dp」,j= 1,2,…,k,刪除(^=dp的點(diǎn)。
[0012] 進(jìn)一步地,在步驟(1)中,確定每個(gè)柵格中點(diǎn)云的個(gè)數(shù)、每個(gè)點(diǎn)所屬的柵格位置以 及建立空間領(lǐng)域關(guān)系的方法:
[0013] 設(shè)所有點(diǎn)的三維坐標(biāo)中最小坐標(biāo)為xmin,ymin,Zmin,最大坐標(biāo)為x_,ymax,Zmax,按長度 為L劃分出立方體柵格的,則小立方體柵格在X,Y,Z三個(gè)方向的個(gè)數(shù)分別為:
[0014] M= (int) {[ (xmax+e) - (xmin_e) ] /L} +1
[0015] N= (int) {[ (ymax+e) - (ymin_e) ] /L} +1
[0016] T= (int) {[(zmax+e)-(zmin-e)]/L}+l
[0017] 設(shè)某確定點(diǎn)的三維坐標(biāo)值為Px,Py,Pz,則其所在小立方體柵格的哈希函數(shù):
[0018] I= (int) (Px-Xmin)/L
[0019] J= (int) (Pyymin)/L
[0020] K= (int) (Pz-Zmin)/L
[0021] 上式中,e為自然常數(shù),I,J,K分別是某點(diǎn)所屬的立方體柵格在X,Y,Z軸三個(gè)方向 的索引號,由一個(gè)一維存貯指針的數(shù)組來記錄包圍盒中每個(gè)柵格中所有數(shù)據(jù)點(diǎn)的索引號, 數(shù)組中元素個(gè)數(shù)為MXNXT,在當(dāng)前柵格搜索該點(diǎn)的最近k鄰點(diǎn),并按距離增序排列,如果 在當(dāng)前柵格內(nèi)該點(diǎn)的k鄰點(diǎn)已找到,并且距離都小于該點(diǎn)到柵格六個(gè)面的最短距離,則該 點(diǎn)的k鄰域搜索結(jié)束,否則柵格向外擴(kuò)張一圈,繼續(xù)按上述規(guī)則搜索。
[0022] 進(jìn)一步地,步驟(2)中計(jì)算曲面變化的方法:
[0026] 上式中,M3x3為某點(diǎn)Pi及其k鄰近點(diǎn)所構(gòu)成的3X3的協(xié)方差矩陣,PP1^P滿 k個(gè)鄰近點(diǎn),M3x3協(xié)方差矩陣的特征值從小到大依次為A。,A1,A2,A。,A1,A2表示點(diǎn)云數(shù) 據(jù)分別在三個(gè)主方向的變化程度。
[0027] 進(jìn)一步地,步驟(4)中所述近似特征點(diǎn)閾值的計(jì)算公式:
[0032] 式(5)中,R為精簡比率,分別為某點(diǎn)k鄰域中屬于區(qū)域(^為為的 點(diǎn)的數(shù)目。
[0033] 進(jìn)一步地,步驟(5)中所述精簡距離閾值dP的計(jì)算公式:
[0035] 式(6)中,d為初始設(shè)定距離,預(yù)先根據(jù)點(diǎn)云的密度估算。
[0036] 采用上述技術(shù)方案帶來的有益效果:
[0037] (1)精度:點(diǎn)云數(shù)據(jù)精簡的前提是,保證精簡后點(diǎn)云的精度構(gòu)建的曲面要和真實(shí) 曲面之間的誤差最小,曲面上的原始特征點(diǎn)盡可能的保留。與常用的基于曲率的精簡方法 相比,本發(fā)明在保留特征點(diǎn)方面效果相當(dāng)。
[0038] (2)簡度:點(diǎn)云數(shù)據(jù)精簡的目的是,要在保留精度的基礎(chǔ)上根據(jù)情況進(jìn)行精簡,盡 量減少數(shù)據(jù)點(diǎn),并不是減少的越多越好,過多的減少數(shù)據(jù)點(diǎn),會給后續(xù)的建模帶來麻煩,損 失了精度。與基于曲率的精簡方法相比,本發(fā)明在相同的精簡率下精度相當(dāng)。
[0039] (3)速度:精簡的時(shí)間要盡可能的短,,在滿足精度與簡度的條件下再追求速度; 本發(fā)明相較于傳統(tǒng)的基于曲率的精簡方法計(jì)算量小,速度上有明顯提高。
【附圖說明】
[0040] 圖1是本發(fā)明的流程圖;
[0041] 圖2是某工業(yè)零件點(diǎn)云示意圖;
[0042] 圖3是米用本發(fā)明對工業(yè)零件精簡后的點(diǎn)75:不意圖;
[0043] 圖4是采用傳統(tǒng)基于曲率精簡方法對工業(yè)零件精簡后的點(diǎn)云示意圖。
【具體實(shí)施方式】
[0044] 以下將結(jié)合附圖,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。
[0045] 如圖1所示本發(fā)明的流程圖,基于曲面變化的點(diǎn)云精簡方法,包括以下步驟:
[0046] (1)對散亂點(diǎn)云進(jìn)行空間柵格化,確定每個(gè)柵格中點(diǎn)云的個(gè)數(shù)和每個(gè)點(diǎn)所屬的 柵格位置,并在每個(gè)柵格中搜索某點(diǎn)P1的最近k鄰點(diǎn),從而建立空間領(lǐng)域關(guān)系,其中,i= 1,2,…,N,N為總的點(diǎn)數(shù);
[0047] (2)計(jì)算點(diǎn)P1的曲面變化S(PJ;
[0048] (3)將點(diǎn)云分成特征不同的三個(gè)特征區(qū)域,分別為平面鄰域類型點(diǎn)集Q1、次特征鄰 域類型點(diǎn)集02和富特征鄰域類型點(diǎn)集Q3,Q1、Q2、03的特征依次增強(qiáng),對模型的影響程度也依 次增強(qiáng);將所有點(diǎn)按照其S(P1)值分在三個(gè)集合Q2、Q3中,并使每個(gè)集合的點(diǎn)的數(shù)目大 致相等;按照點(diǎn)集中的點(diǎn)的影響力程度設(shè)置y2、y3,分別為三類點(diǎn)集的權(quán)重系數(shù),權(quán)重 系數(shù)值可根據(jù)精簡情況自行調(diào)整,目的就是在