matlab 点云曲率,点云数据的主曲率和主方向估计方法
專利名稱:點云數(shù)據(jù)的主曲率和主方向估計方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微分幾何、計算數(shù)學、計算機圖形學和計算機視覺技術(shù)領(lǐng)域的一種利
用三維激光掃描儀進行實物測量得到點云數(shù)據(jù),并根據(jù)點云數(shù)據(jù)來進行主曲率和主方向計算的方法。在虛擬現(xiàn)實、電腦游戲、自然場景模擬、城市景觀設(shè)計、數(shù)據(jù)壓縮、特征提取、實物
3D重建等領(lǐng)域具有重要的應(yīng)用價值。
背景技術(shù):
隨著激光掃描儀精度的提高,掃描得到的信息越來越豐富,掃描得到的模型數(shù)據(jù)越來越龐大。人們利用這些龐大的數(shù)據(jù)進行特征提取、數(shù)據(jù)壓縮或者進行三維重建。但是,這些工作的實現(xiàn),往往需要對一些微分幾何量進行估計,其中最重要的估計包括主曲率和主方向的估計。
目前主曲率和主方向的估計方法大致可以分為三大類 第一類是進行局部曲面擬合,求出二次或者三次曲面,再根據(jù)微分幾何理論求出主曲率和主方向,如2004年Goldfeather提出的三次曲面擬合方法; 第二類是先對點云數(shù)據(jù)進行網(wǎng)格化,再取一個或者二個環(huán)內(nèi)的近鄰點進行主曲率或者主方向的估計,如1995年Taubin提出的基于網(wǎng)格數(shù)據(jù)的方法; 第三大類是直接對點云數(shù)據(jù)進行微分幾何特征量的計算。前兩類方法在過去的一些應(yīng)用中效果很好,但是隨著掃描儀精度的提高,數(shù)據(jù)規(guī)模的日益增大,這兩類方法的時間空間開銷較大,他們的應(yīng)用就受到了制約。于是人們試圖直接從點云數(shù)據(jù)進行微分幾何特征的計算,也就是第三類方法。對于目前的成果來說,直接從點云進行計算時,有些方法只是利用點的位置信息,沒有利用各個點的法向量信息,這樣會使得方法的魯棒性較差;也有一些方法用了法向量信息,但是他們往往結(jié)合第一類方法,把法向量作為一個約束條件加以利用,增加了主曲率和主方向模型求解的計算時間和存儲空間的開銷。
發(fā)明內(nèi)容
本發(fā)明欲解決的技術(shù)問題是離散點云數(shù)據(jù)的主曲率和主方向的準確計算,本發(fā)明的目的在于,針對現(xiàn)實世界中由激光掃描得到的離散點云數(shù)據(jù),提供一個對主曲率和主方向進行準確、快速計算的、魯棒的點云數(shù)據(jù)的主曲率和主方向估計方法。 為實現(xiàn)上述目的,本發(fā)明的技術(shù)解決方案是提供一種點云數(shù)據(jù)的主曲率和主方向的估計方法,稱為法截線擬合法,該主曲率和主方向估計步驟包括 步驟1 :利用激光掃描儀掃描直接采集點云數(shù)據(jù)并對點云數(shù)據(jù)預(yù)處理,按照點云
數(shù)據(jù)中每個點的坐標進行空間劃分,實現(xiàn)三維空間的二分查找樹的數(shù)據(jù)存儲結(jié)構(gòu)稱為kd樹(k-dimensional tree);所述每個點的坐標,都是采用激光掃描儀產(chǎn)生的原始坐標。
步驟2 :對于點云數(shù)據(jù)的每一個點,利用點云數(shù)據(jù)的kd樹查找15個或30個近鄰點,根據(jù)最小二乘方法把這些近鄰點擬合出一個平面,以這個平面的法向量作為點云法向量的初始估計值,然后通過加權(quán)平均算法修正點云數(shù)據(jù)的各個點的法向量估計,是以點云
4數(shù)據(jù)中每一個點與近鄰點的歐式距離的倒數(shù)作為權(quán)值,所述歐式距離的倒數(shù),若距離值為O,則不計算這個近鄰點。所述根據(jù)最小二乘方法把這些近鄰點擬合出一個平面,其中擬合平面時需要構(gòu)造帶權(quán)最小二乘問題,這個最小二乘問題是這些近鄰點到擬合平面的殘差的絕對值,再乘以權(quán)系數(shù)的積的和的最小值問題。所述權(quán)系數(shù),是以點云數(shù)據(jù)中每一個點與近鄰點的歐式距離的倒數(shù)作為權(quán)值。 步驟3 :對于點云數(shù)據(jù)的每一個點,利用其法向量、切平面構(gòu)造局部三維直角坐標系;所述局部三維直角坐標系,其構(gòu)造方法是,對于點云數(shù)據(jù)中一個點P,若點P的法向量為N = (nx,p, ny,p, nz,p),則這個點p就是局部坐標系的原點,X, Y, Z三個坐標軸分別為X = (—sin p, cos p, 0) ,y = (cos y cos p, cos —n p, _ sin ,z = N= (nx,p,ny,p,nz,p),其
中p-arctan("^/"w)表示法向量N的第一方向角,v = arccos (nz,p)表示法向量的第三方向角的余角。 步驟4 :對于點云數(shù)據(jù)的每一個點,利用點云數(shù)據(jù)的kd樹查找15個或30個近鄰點; 步驟5 :對于查找到的近鄰點,通過三維坐標變換,把這些近鄰點的原始坐標和這些近鄰點的法向量都轉(zhuǎn)化為局部坐標系的坐標,是把這些近鄰點的坐標減去局部坐標系原點的坐標就是這些近鄰點在局部坐標系中的坐標,這些近鄰點的法向量坐標與局部坐標系的三個坐標軸分別作數(shù)量積,算出這些近鄰點的法向量在局部坐標系中的坐標。
步驟6 :利用點云數(shù)據(jù)的每一個點及其法向量、一個近鄰點、近鄰點的法向量構(gòu)造近似三角形,根據(jù)正弦定理給出點云的法截線的法曲率的近似表達式;所述構(gòu)造近似三角形,該三角形由角角邊定理確定設(shè)點云中的待計算法曲率的點為P,它的一個近鄰點為點P和的法向量分別為N和Mi,向量N和Mi的夾角為13 ,向量N和向量^J,.的夾角為
a,線段|pq」為邊,則角P,角a,邊|pq」確定了這個三角形。所述用正弦定理給出點云的法截線的法曲率的近似表達式為《=-sin/ + (l /^Isino;),其中C表示第i近鄰點所對應(yīng)的法截線的法曲率,P為近鄰點法向量與局部坐標系Z軸的夾角,a為近鄰點的定位向量與Z軸夾角的補角,局部坐標系的原點為p,近鄰點為qi, |pqi|表示點A與點p的歐式距離。所述^=-sin/ + (l/^,lsinoO,這個表達式在實際計算中采用近似計算形式
*二 = —"v + M:2 + "W),其中,/^ = (x, + +V^ +凡2 ,nz = nz,i,近令卩點
qi的局部坐標為(Xi,yi,Zi),近鄰點qi的法向量的局部坐標為(r^,i,ny,i,r^i)。 步驟7 :在局部坐標系中,利用法曲率,根據(jù)歐拉公式(Euler Equation)構(gòu)造
非線性最優(yōu)化問題,通過三角形公式進行恒等變換,把這個非線性最優(yōu)化問題轉(zhuǎn)化為線
性擬合,求出韋恩伽汀矩陣(Weingarten矩陣)的各個元素;所述根據(jù)歐拉公式(Euler
Equation)構(gòu)造非線性最優(yōu)化問題,設(shè)需要求點云數(shù)據(jù)中一個點的主曲率和主方向,則
4J^。
g[M。s2^") + Min^ + e)-A:f是構(gòu)造的非線性最優(yōu)化問題,其中、,k2是待求的主曲
率,未知數(shù)e為局部坐標系中X軸與最大主曲率對應(yīng)的主方向的夾角,9i為近鄰點qi在局部坐標系中xOy面的投影點的定位向量與局部坐標系中X軸的夾角。所述把這個非線性最優(yōu)化問題轉(zhuǎn)化為線性擬合,就是把所有近鄰點的法曲率作為因變量觀測值,所有近鄰點與局部坐標系的x軸的方向角的余弦值的平方、方向角的2倍的正弦值、方向角的正弦值的平方作為自變量的觀測值,作三元線性擬合。三個擬合系數(shù)值依次作為二階對稱矩陣Weingarten矩陣的上三角的三個元素。 步驟8 :利用矩陣的奇異值分解(SVD分解)求出Weingarten矩陣的特征值和特征向量; 步驟9 :利用Weingarten矩陣的特征值和特征向量求出主曲率和主方向。所述求出Weingarten矩陣的特征值和特征向量,若兩個特征值相等,則該點為臍點,特征向量取為(l,O)和(O,l)。所述利用Weingarten矩陣的特征值求出主曲率,是用兩個特征值作為主曲率。所述利用Weingarten矩陣的特征向量求主方向,是分別用兩個特征向量的兩個分量作為組合系數(shù),作局部坐標系的X軸和Y軸的線性組合,作為兩個主方向。
本發(fā)明的有益效果是提出對第三類技術(shù)改進的新方法,是在點云數(shù)據(jù)上直接計算主曲率和主方向。利用點云的坐標信息和點云的法向量信息。本發(fā)明與前人方法的區(qū)別主要體現(xiàn)在,法向量被直接用確定法截線,通過法截線的法曲率來進行主曲率估計,而不是作為非線性規(guī)劃問題的約束條件,此外本發(fā)明還把非線性最優(yōu)化問題歸結(jié)為求解一個線性系統(tǒng)。因此,本發(fā)明計算的時間和空間性能也較以往方法優(yōu)越,實驗表明,主方向的計算結(jié)果也比其他方法準確。我們利用三維激光掃描儀獲取實物的表面信息,并根據(jù)掃描數(shù)據(jù)利用常規(guī)方法計算出各個點的法向量,再給出法截線的法曲率估計式,最后經(jīng)過線性擬合和韋恩伽汀(Weingarten)矩陣計算求出主曲率和主方向。本發(fā)明所獲得的計算結(jié)果能用于計算機圖形學各應(yīng)用領(lǐng)域,包括特征增強、表面簡化、網(wǎng)格優(yōu)化、特征提取、數(shù)據(jù)壓縮、骨架提取和3D實物重建、虛擬現(xiàn)實、電腦游戲、自然場景模擬、城市景觀設(shè)計、數(shù)據(jù)壓縮等領(lǐng)域具有重要的應(yīng)用價值。利用本發(fā)明,可以快速、方便、準確地計算出點云數(shù)據(jù)的主曲率和主方向。
圖1算法流程2近鄰點及其法向量所確定的三角形圖3局部空間直角坐標系和法截線示意4圓環(huán)面圖及其添加噪聲之后的效果5圓環(huán)面主曲率估計結(jié)果的誤差比較圖6無噪聲手模型的主方向估計結(jié)果圖7有噪聲手模型的主方向估計結(jié)果圖8無噪聲大象模型的主方向估計結(jié)果圖9有噪聲大象模型的主方向估計結(jié)果圖io樹枝模型點云數(shù)據(jù)圖11樹枝模型點云數(shù)據(jù)的主方向圖12樹枝模型點云數(shù)據(jù)樹干表面的主方向圖13樹枝模型點云數(shù)據(jù)樹干分叉處的主方向圖14樹枝模型點云數(shù)據(jù)樹干凹陷處的主方向
具體實施例方式
下面結(jié)合附圖詳細說明本發(fā)明技術(shù)方案中所涉及的各個細節(jié)問題。應(yīng)指出的是,
6所描述的實施例僅旨在便于對本發(fā)明的理解,而對其不起任何限定作用。
1、方法概述(overview of approach) 如圖1示出本發(fā)明整個算法的流程,本發(fā)明算法的主要步驟包括
1)、數(shù)據(jù)預(yù)處理,創(chuàng)建kd樹,計算點云數(shù)據(jù)各個點的法向量; 2)、逐點計算主曲率和主方向,包括7個子步驟(a)建立局部坐標系、(b)搜索近鄰點、(c)近鄰點坐標局部化、(d)計算每個近鄰點的對應(yīng)的法截線的法曲率、(e)線性擬合出韋恩伽汀(Weingarten)矩陣的元素、(f)求出Weingarten矩陣的特征值和特征向量、(g)求出主曲率和主方向。 3)、輸出計算結(jié)果,存儲點的主曲率和主方向,顯示點的主方向。
2、數(shù)據(jù)預(yù)處理 三維點云數(shù)據(jù)一般只有點的坐標信息。要估計主曲率和主方向,應(yīng)該先估計各個點的法向量。而求法向量和主曲率、主方向都需要用到近鄰點,從計算幾何理論可以得知,查找近鄰點的最快捷方法之一就是建立點云數(shù)據(jù)的3維空間的二分查找樹,簡稱為kd樹(k-dimensional tree),這是查找效率很高的數(shù)據(jù)存儲結(jié)構(gòu)。于是,預(yù)處理階段需要完成kd樹的建立和法向量的計算。 首先,建立kd樹。在計算幾何中,kd樹是已經(jīng)被證明的查找近鄰的最快捷的數(shù)據(jù)結(jié)構(gòu)之一。kd樹基于點的空間位置信息,通過二分法迭代劃分三維空間,實現(xiàn)最優(yōu)存儲。在kd樹上,進行k近鄰查找的時間復(fù)雜度為0 (log2n),這里n為點云數(shù)據(jù)的點的個數(shù)。
其次,計算各個點的法向量。對于點云數(shù)據(jù)的每一個點,利用點云數(shù)據(jù)的kd樹查找15個或30個近鄰點,假設(shè)這些近鄰點來自于同一個平面,于是可以用這些近鄰點到擬合平面的殘差的絕對值,再乘以權(quán)系數(shù)的積的和構(gòu)造最小二乘問題,其中的權(quán)的確定是以點云數(shù)據(jù)中每一個點與近鄰點的歐式距離的倒數(shù)作為權(quán)值。利用最小二乘方法擬合出這個平面,以這個平面的法向量作為點云的法向量的初始估計值,然后通過加權(quán)平均算法修正點云的法向量估計,權(quán)值等于以點云數(shù)據(jù)中每一個點與近鄰點的歐式距離的倒數(shù)。
3逐點計算主曲率和主方向 快速而且準確地計算出掃描得到的點云數(shù)據(jù)中各個點的主曲率和主方向是本發(fā)
明中的主要目標。計算的方法是逐點迭代進行的。計算一個點(記為P)的主曲率和主方
向包括以下七個步驟 3. 1建立局部坐標系 建立局部坐標系,如圖3顯示了這個局部空間直角坐標系局部三維直角坐標系,設(shè)點P的法向量為N = (nx,p, riy,p, nz,p),則這個p點就是局部坐標系的原點,X, Y, Z三個坐標軸分別為夂=(—sinP,cosp,0) ,F = (cosy cos p, cosy sin p, —sin y),Z = N = (nx,p,ny,p,nz,p),其中V = arccos(nz,p) ,p = arctan("w/"w)。
3. 2搜索近鄰點 由于預(yù)處理階段建立了 kd樹,以點p為查詢點,基于歐式距離查找k近鄰,比如k=15近鄰或k = 30近鄰,根據(jù)數(shù)據(jù)掃描精度確定近鄰點的個數(shù),掃描精度較低則取15個近鄰點,否則取30個近鄰點,設(shè)定查找近鄰的誤差閾值為0. O,這里記qi(i = 1,2, , m)為查詢得到的m個近鄰點。
3. 3近鄰點坐標局部化
7
求出所有近鄰點在局部坐標系的坐標。本發(fā)明的方法可以描述為下面幾個步驟。假設(shè)待求主曲率的點為P,近鄰點為qi,以定位向量^J,.的坐標作為點&的局部坐標,這里坐標轉(zhuǎn)化的實質(zhì)是對近鄰點做了 一個點的平移變換。 把近鄰點的法向量轉(zhuǎn)化為局部坐標系的坐標。本發(fā)明的方法是預(yù)處理階段求出的各個近鄰點的法向量(記為Mi)在局部坐標系中的方向余弦作為法向量的在局部坐標系中的坐標。 3. 4計算各個近鄰點對應(yīng)的法截線的法曲率 假定待求主曲率和主方向的點、近鄰點以及他們的法向量確定了一條法截線,現(xiàn)在估計這條法截線在點P的法曲率。 待求主曲率和主方向的點p、近鄰點Qi以及他們的法向量N和Mi確定一個近似三角形,由圖2示出的近鄰點0、p、qi及其法向量N和Mi所確定的三角形。確定的方法是依據(jù)角角邊定理,P為近鄰點法向量與局部坐標系Z軸的夾角,a為近鄰點的定位向量pqi與Z軸夾角的補角,線段pqi為邊。在這個近似三角形,依據(jù)正弦定理取法曲率為
= - sin 〃 + (| /;仏| sin a), 其中&表示第i近鄰點所對應(yīng)的法截線的法曲率,I pQi I表示點Qi與點p的歐式距離。為了便于計算,把坐標代入上面式子A! =-sin" + (l/^,.lsina),運用三角公式可以把這個式子轉(zhuǎn)化為下面的式子,作為法曲率的估計式
A:=-氣+ + :2 . 7< +凡2 ) 其中,、=(A +凡 + V< +凡2 ,=,近鄰點的局部坐標為(Xi, yi,Zi),近鄰點&的法向量的局部坐標為(nx,i, riy,i, nz,i)。
3. 5線性回歸求出Weingarten矩陣 根據(jù)歐拉公式(Euler Equation)構(gòu)造非線性最優(yōu)化問題,設(shè)需要求點云數(shù)據(jù)中一個點P的主曲率和主方向g,^ ,則^';n。
g[M。S2W") + *2Sin2(《+ 。-^是構(gòu)造非線性最優(yōu)化
問題,其中、,k2是待求的與主方向^,^對應(yīng)的主曲率,e為未知數(shù),是局部坐標系中X軸與最大主曲率對應(yīng)的主方向ei的夾角,點Qi是近鄰點&的在切平面S上的投影點,9 i為向量pQi與局部坐標系中X軸的夾角。圖3示出法截線和主方向和qi、 Qi、 p這些點、角度9 .、 9 。
1 、 o 本發(fā)明把上述非線性規(guī)劃問題々n。 咖2(《+ 0+ ft2 sii2(《+ 。-《f轉(zhuǎn)化為求解下
面的最小二乘問題, min -/ ||
cos2《2cos《sin《sin 《、r 其中,Mmx3 =cos2《2cos《sin《sin 《《
cos2 <9W;Zcos sin
k丄cos2 9 +k2sin2 9 , B = (k廠k》cos 9 sin 9 , C = k^sin2 9 +k2cos2 9 這一步的求解可以轉(zhuǎn)化為求解超定線性方程組Mii =R。然后,用求出來的A,B,C的值來構(gòu)造Weingarten矩陣
8
formula see original document page 9
3. 6計算Weingarten矩陣的特征值和特征向量 求出上一步的Weingarten矩陣的特征值和特征向量,對特征值的大小進行排序, 把大的特征值記為、,它也是該點的最大曲率,對應(yīng)的單位長度的特征向量稱為較大特征 值對應(yīng)的特征向量,另一個較小的特征向量記為IV其值為該點的最小曲率,對應(yīng)的單位長 度的特征向量稱為較小特征值對應(yīng)的特征向量。 假如該點的兩個特征值相等,即表示該點為臍點,而臍點的主方向是平行于切平 面的任意方向,方向不是惟一的。本發(fā)明對這種特殊點的處理方法是取標準正交基(i,o) 和(O,l)作為特征向量。 3. 7利用特征值和特征向量求出主曲率和主方向 上一步計算出的特征向量是二維的,是相對于局部坐標系中xOy面上的向量。需 要把它們轉(zhuǎn)化到全局坐標系。轉(zhuǎn)化的方法是把最大曲率對應(yīng)的特征向量的各個分量作為組 合系數(shù),求出局部坐標系的X軸和Y軸的線性組合作為最大曲率對應(yīng)的主方向,即為主方向 ei ;同樣地,把最小曲率對應(yīng)的特征向量的各個分量作為組合系數(shù),求出局部坐標系的X軸 和Y軸的線性組合作為最小曲率對應(yīng)的主方向,即為e" 主曲率的值與坐標系的選取無關(guān),不需要轉(zhuǎn)化,即為上一步計算出來的特征值、 和k2。 4結(jié)果輸出 對于計算的結(jié)果,本發(fā)明提供兩種形式輸出。第一種方式為把點的坐標、法向量、 主方向、主曲率以文件形式存儲,再由專業(yè)軟件進行顯示。第二種方式為把主方向、主曲率 信息轉(zhuǎn)化為矢量信息或者顏色信息,結(jié)合點云數(shù)據(jù)顯示出來。
5實驗結(jié)果與結(jié)論 我們將此方法應(yīng)用于解析數(shù)據(jù)和實際掃描得到的不同復(fù)雜度的數(shù)據(jù),與之前的兩
種主要的主曲率主方向估計方法進行了比較。通過實驗證明,本發(fā)明對主曲率和主方向的
估計更加準確可靠,魯棒性也更強。 5. 1解析曲面模擬數(shù)據(jù)的對比實驗 解析數(shù)據(jù)的實驗用來說明本發(fā)明提出的新方法比之前的各種方法更加準確可靠。
解析數(shù)據(jù)來自一個圓環(huán)解析曲面,它的解析式是已知的,本發(fā)明用的圓環(huán)面方程為
r(u,v) = ((R+rcosu) cos v, (R+rcosu)sin v, rsi皿)
(0《u《2ji,0《v《2ji) 其中參數(shù)R = 2,r = 1。從這個解析曲面,按照二維均勻分布獲取5000個隨機采 樣點,根據(jù)微分幾何公式可以計算出各個點的主曲率和主方向(稱為采樣點的實際主曲率 和實際主方向)。然后,把這5000個采樣點視作掃描得到的點云數(shù)據(jù)。對每一個點p,沿著 法向量方向添加噪聲(p +^ ),這里^為點p的法向量,a服從[-mh, mh]的均勻分布,m是 任意兩點之間的距離的中位數(shù),h為噪聲水平,實驗中用過的噪聲水平為h二O. 1,0.2,..., 1.0。圖4顯示了圓環(huán)面圖及其添加噪聲之后的效果圖,其中圖4(a)為初始圓環(huán),圖4(b) 為添加噪聲的圓環(huán)面。 與本發(fā)明進行對比實驗的方法是Goldfeather立方曲面擬合方法和Taubin方法。2004年公開發(fā)表的Goldfeather立方曲面擬合方法是目前公布的最準確方法,這種方 法與本發(fā)明的法截線擬合方法在機理上是不同的,它實際上是對待求主曲率的點的局部進 行三次曲面擬合,然后根據(jù)解析方法求出主曲率和主方向,這種方法把法向量作為約束條 件加以考慮,因此比以往的所有估計方法都更加準確,魯棒性也更好。1995年公開發(fā)布的 Taubin方法則利用近鄰點構(gòu)造多邊形計算曲率張量,求出主曲率和主方向。這種方法是曲 率估計的典型算法,其效果并不比2003年之前公布的改進算法或者新算法差多少,這些算 法不用法向量進行曲率估計,計算結(jié)果的準確性較差。因此,本發(fā)明以Taubin方法作為這 些算法的一個代表。 對比實驗在個人臺式電腦上執(zhí)行,電腦的配置為Intel (R) Core (TM) 2CPU, 4400@2G, 1. 99GHz, 2. 0G內(nèi)存。編程語言為C++和Opengl glut3. 7。 實驗顯示的是兩個主曲率構(gòu)造的幾何量,即平均曲率和高斯曲率。圖5顯示了曲 率高斯曲率和平均曲率估計結(jié)果的誤差比較。 從圖5(a)高斯曲率估計誤差和圖5(b)平均曲率估計誤差可以看出,本發(fā)明的估 計結(jié)果比Taubin方法誤差要小許多,噪聲水平越高,優(yōu)越性越顯著。從圖形上看本發(fā)明的 方法的估計結(jié)果與Goldfeath方法的估計結(jié)果比較接近,因此把實驗結(jié)果的數(shù)據(jù)列表如 下。 表1平均曲率估計絕對誤差對比表
噪聲 水平高斯曲率誤差平均曲率誤差Goldfeath方法本發(fā)明的方法Goldfeath方法本發(fā)明的方法
0. 20.0971380.0883880. 1416800.192398
0,40. 1224850. 1085300.1794230. 206980
0.60. 1591270.1395150. 2469970.238619
0.80.1970230.1673080. 3033470.272985
1.00.2644660. 2156750. 4522470.343714 從表1可以看出,本發(fā)明與Go 1 df eath方法相比,除了在噪聲水平較低時平均曲率 誤差略大以外,其余情況誤差更小,說明計算更加準確。對于噪聲較大的情況,本發(fā)明優(yōu)勢 更加明顯。 5. 2點云數(shù)據(jù)的對比實驗 把本發(fā)明與Goldfeath方法應(yīng)用于實際掃描數(shù)據(jù),用了兩個模型進行測試。
第一個模型是一個"手"的數(shù)據(jù)。該模型的高度為202個長度單位,有6258個隨機 采樣點,數(shù)據(jù)本身帶有較準確的法向量。圖6為無噪聲手模型的主方向估計結(jié)果,顯示初始 數(shù)據(jù)圖以及本發(fā)明與Goldfeath方法的主方向估計結(jié)果。給數(shù)據(jù)點沿著法向量方向加入噪 聲,噪聲水平為2.0個單位,則法向量與點的位置信息不是完全正確,求出的主方向顯示在 圖7為有噪聲手模型的主方向估計結(jié)果。圖6(a)為原始數(shù)據(jù),圖6(b)為本發(fā)明的實驗計算 結(jié)果,圖6 (c)為Goldfeath方法的計算結(jié)果;圖7(a)為原始數(shù)據(jù);圖7(b)為本發(fā)明的計算
10結(jié)果,圖7(c)為Goldfeath方法的計算結(jié)果數(shù)據(jù)。從這些圖可以看出,在噪聲水平較低時, 本發(fā)明的方法與Goldfeath方法都有較好的結(jié)果,本發(fā)明的方法比Goldfeath方法的優(yōu)勢 沒有特別顯著,但是當噪聲水平加大時,Goldfeath方法估計的主方向明顯變得零亂。比如 圖7中,拇指的背部,本發(fā)明的方法同圖6中的相差不大,依舊體現(xiàn)原有次序,而Goldfeath 方法卻較凌亂。這個實驗說明本發(fā)明比Goldfeath方法更加準確,魯棒性也更好。
另一個模型數(shù)據(jù)為"大象"。這個點云模型高度為75個長度單位,包含6859個隨機 采樣點。實驗方法同"手"模型。圖8是無噪聲大象模型及其在不同方法下得到的主方向估 計結(jié)果,圖9是有噪聲大象模型及其在不同方法下得到的主方向估計結(jié)果,其為噪聲水平 為2.0的數(shù)據(jù)。觀察圖9中大象的背部,可以看出,本發(fā)明的方法同無噪聲的情況相差不大, 依舊體現(xiàn)原有方向,而Goldfeath方法比較凌亂。這個實驗進一步說明本發(fā)明比Goldfeath 方法更加準確,更魯棒。圖8(a)為原始數(shù)據(jù);圖8(b)為本發(fā)明的數(shù)據(jù),圖8(c)為Goldfeath 方法的數(shù)據(jù),圖9(a)為原始數(shù)據(jù);圖9(b)為本發(fā)明的數(shù)據(jù),圖9(c)為Goldfeath方法的數(shù) 據(jù)。 5. 3本發(fā)明在復(fù)雜點云數(shù)據(jù)(樹枝模型)中的應(yīng)用 樹的結(jié)構(gòu)比一般的點云模型復(fù)雜許多,主要體現(xiàn)在以下三點由于遮擋,點的分布 不均勻,有時成團,有時成線,有時成簇;表面變化較大,樹干的粗細變化較大;枝的生長變 化豐富,導(dǎo)致連接關(guān)系復(fù)雜。因此,樹枝的主方向估計很有難度。 本發(fā)明用到的樹枝點云模型是樹高12米,除了主枝外還有四個分枝。該點云模型 數(shù)據(jù)有6950個點。實驗效果如圖10至圖14。圖10為樹枝模型原始的點云數(shù)據(jù)。圖ll為 樹枝模型點云數(shù)據(jù)各個點的主方向圖。圖12顯示了樹枝模型點云數(shù)據(jù)樹干表面各個點的 主方向,其特征是主曲率較大者對應(yīng)的主方向體現(xiàn)了樹干的橫截面方向,而主曲率較小者 對應(yīng)的主方向刻畫了樹干的生長方向。圖13顯示了樹枝模型點云數(shù)據(jù)樹枝分叉點處的主 方向特征。圖14顯示了樹枝模型點云數(shù)據(jù)樹干表面凹陷處的主方向特征,這些主曲率較大 者對應(yīng)的主方向指向凹陷的中心。 本發(fā)明提出的主曲率和主方向計算方法的特征在于利用點云數(shù)據(jù)和各個點的法 向量計算點的主曲率和主方向。 上述實驗結(jié)果和利用點云數(shù)據(jù)求取主方向和主曲率的方法,可以用于計算機圖形 學各應(yīng)用領(lǐng)域,具有高可信度、操作簡單、應(yīng)用前景廣的特點。 以上所述,僅為本發(fā)明中的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任 何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可理解想到的變換或替換,都應(yīng)涵蓋在 本發(fā)明的包含范圍之內(nèi),因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范圍為準。
權(quán)利要求
一種點云數(shù)據(jù)的主曲率和主方向估計方法,其特征在于,該主曲率和主方向估計步驟包括步驟1利用激光掃描儀掃描直接采集點云數(shù)據(jù)并對點云數(shù)據(jù)預(yù)處理,按照點云數(shù)據(jù)中每個點的坐標進行空間劃分,實現(xiàn)三維空間的二分查找樹的數(shù)據(jù)存儲結(jié)構(gòu)稱為kd樹(k-dimensional tree);步驟2對于點云數(shù)據(jù)的每一個點,利用點云數(shù)據(jù)的kd樹查找15個或30個近鄰點,根據(jù)最小二乘方法把這些近鄰點擬合出一個平面,以這個平面的法向量作為點云法向量的初始估計值,然后通過加權(quán)平均算法修正點云數(shù)據(jù)的各個點的法向量估計;步驟3對于點云數(shù)據(jù)的每一個點,利用其法向量、切平面構(gòu)造局部三維直角坐標系;步驟4對于點云數(shù)據(jù)的每一個點,利用點云數(shù)據(jù)的kd樹查找15個或30個近鄰點;步驟5對于查找到的近鄰點,通過三維坐標變換,把這些近鄰點的原始坐標和這些近鄰點的法向量都轉(zhuǎn)化為局部坐標系的坐標;步驟6利用點云數(shù)據(jù)的每一個點及其法向量、一個近鄰點、近鄰點的法向量構(gòu)造近似三角形,根據(jù)正弦定理給出點云的法截線的法曲率的近似表達式;步驟7在局部坐標系中,利用法曲率,根據(jù)歐拉公式(Euler Equation)構(gòu)造非線性最優(yōu)化問題。通過三角形公式進行恒等變換,把這個非線性最優(yōu)化問題轉(zhuǎn)化為線性擬合,求出韋恩伽汀矩陣(Weingarten矩陣)的各個元素;步驟8利用矩陣的奇異值分解(SVD分解)求出Weingarten矩陣的特征值和特征向量;步驟9利用Weingarten矩陣的特征值和特征向量求出主曲率和主方向。
2. 按權(quán)利要求1所述的方法,其特征在于,所述每個點的坐標,都是采用激光掃描儀產(chǎn)生的原始坐標。
3. 按權(quán)利要求1所述的方法,其特征在于,所述加權(quán)平均算法修正點云數(shù)據(jù)的各個點的法向量估計,是以點云數(shù)據(jù)中每一個點與近鄰點的歐式距離的倒數(shù)作為權(quán)值,所述歐式距離的倒數(shù),若距離值為0,則不計算這個近鄰點。
4. 按權(quán)利要求1所述的方法,其特征在于,所述根據(jù)最小二乘方法把這些近鄰點擬合出一個平面,其中擬合平面時需要構(gòu)造帶權(quán)最小二乘問題,這個最小二乘問題是這些近鄰點到擬合平面的殘差的絕對值,再乘以權(quán)系數(shù)的積的和的最小值問題。
5. 按權(quán)利要求4所述的方法,其特征在于,所述權(quán)系數(shù),是以點云數(shù)據(jù)中每一個點與近鄰點的歐式距離的倒數(shù)作為權(quán)值。
6. 按權(quán)利要求l所述的方法,其特征在于,所述局部三維直角坐標系,其構(gòu)造方法是,對于點云數(shù)據(jù)中一個點P,若點P的法向量為N二 (nx,p, riy,p, n,.p),則這個點P就是局部坐標系的原點,X, Y, Z三個坐標軸分別為X = (-sinp, cosp, 0),y = (cosy cos p, cos"—,-sin y) ,Z = N = (nx,p, ny,p, nz, p),其中p = arcta—J"")表示法向量N的第一方向角,v = arccos(nz,p)表示法向量的第三方向角的余角。
7. 按權(quán)利要求1所述的方法,其特征在于,所述把這些近鄰點的原始坐標和這些近鄰點的法向量都轉(zhuǎn)化為局部坐標系的坐標,是把這些近鄰點的坐標減去局部坐標系原點的坐標就是這些近鄰點在局部坐標系中的坐標,這些近鄰點的法向量坐標與局部坐標系的三個坐標軸分別作數(shù)量積,算出這些近鄰點的法向量在局部坐標系中的坐標。
8. 按權(quán)利要求1所述的方法,其特征在于,所述構(gòu)造近似三角形,該三角形由角角邊定理確定設(shè)點云中的待計算法曲率的點為P,它的一個近鄰點為qi點P和qi的法向量分別為N和Mi,向量N和Mi的夾角為13 ,向量N和向量^,.的夾角為a ,線段|pq」為邊,則角|3 ,角a ,邊|pq」確定了這個三角形。
9. 按權(quán)利要求1所述的方法,其特征在于,所述用正弦定理給出點云的法截線的法曲率的近似表達式為formula see original document page 3其中表示第i近鄰點所對應(yīng)的法截線的法曲率,P為近鄰點法向量與局部坐標系Z軸的夾角,a為近鄰點的定位向量與Z軸夾角的補角,局部坐標系的原點為P,近鄰點為qi, |pq」表示點qi與點P的歐式距離。
10. 按權(quán)利要求9所述的方法,其特征在于,所述近似表達式formula see original document page 3在實際計算中采用近似計算形式formula see original document page 3其中,formula see original document page 3近令卩點qi的局部坐標為(Xi,yi,Zi),近鄰點qi的法向量的局部坐標為(r^,i,ny,i,r^i)。
11. 按權(quán)利要求1所述的方法,其特征在于,所述根據(jù)歐拉公式(EulerEquation)構(gòu)造非線性最優(yōu)化問題,設(shè)需要求點云數(shù)據(jù)中 一 個點的主曲率和主方向,則formula see original document page 3是構(gòu)造的非線性最優(yōu)化問題,其中、,k2是待求的主曲 率,未知數(shù)e為局部坐標系中x軸與最大主曲率對應(yīng)的主方向的夾角,9i為近鄰點qi在局部坐標系中x0y面的投影點的定位向量與局部坐標系中X軸的夾角。
12. 按權(quán)利要求1所述的方法,其特征在于,所述把這個非線性最優(yōu)化問題轉(zhuǎn)化為線性擬合,就是把所有近鄰點的法曲率作為因變量觀測值,所有近鄰點與局部坐標系的x軸的方向角的余弦值的平方、方向角的2倍的正弦值、方向角的正弦值的平方作為自變量的觀測值,作三元線性擬合。三個擬合系數(shù)值依次作為二階對稱矩陣Weingarten矩陣的上三角的三個元素。
13. 按權(quán)利要求1所述的方法,其特征在于,所述求出Weingarten矩陣的特征值和特征向量,若兩個特征值相等,則該點為臍點,特征向量取為(l,O)和(O,l)。
14. 按權(quán)利要求l所述的方法,其特征在于,所述利用Weingarten矩陣的特征值求出主曲率,是用兩個特征值作為主曲率。
15. 按權(quán)利要求l所述的方法,其特征在于,所述利用Weingarten矩陣的特征向量求主方向,是分別用兩個特征向量的兩個分量作為組合系數(shù),作局部坐標系的X軸和Y軸的線性組合,作為兩個主方向。
全文摘要
本發(fā)明涉及一種點云數(shù)據(jù)的主曲率和主方向估計方法步驟包括預(yù)處理,法截線曲率估計,擬合出Weingarten矩陣,求出Weingarten矩陣的特征值和特征向量,求出主曲率和主方向。本發(fā)明僅利用激光掃描儀的掃描數(shù)據(jù)和估計的法向量,得到忠實于原始實物的主曲率和主方向。該方法通過最小二乘線性擬合和矩陣的特征值特征向量求出主曲率和主方向,算法簡單,計算結(jié)果準確,時間復(fù)雜度是高效的。該方法稱為法截線擬合法,其計算結(jié)果在虛擬現(xiàn)實、電腦游戲、自然場景模擬、城市景觀設(shè)計、數(shù)據(jù)壓縮、特征提取、實物3D重建等領(lǐng)域具有重要的應(yīng)用價值。
文檔編號G01B11/24GK101751695SQ20081023932
公開日2010年6月23日 申請日期2008年12月10日 優(yōu)先權(quán)日2008年12月10日
發(fā)明者張曉鵬, 李紅軍, 程章林 申請人:中國科學院自動化研究所
總結(jié)
以上是生活随笔為你收集整理的matlab 点云曲率,点云数据的主曲率和主方向估计方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1006实验一实验报告
- 下一篇: 【Head First Java 读书