專利名稱:基于b樣條曲面的三維掃描的點(diǎn)云孔洞填補(bǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對(duì)三維圖形的修補(bǔ)方法,尤其涉及一種基于B樣條曲面的三維掃描的點(diǎn)云孔洞填補(bǔ)方法。
背景技術(shù):
逆向工程(Reverse Engineering,RE)技術(shù)是20世紀(jì)80年代后期出現(xiàn)在先進(jìn)制造領(lǐng)域里的新技術(shù),其一般包括四個(gè)基本環(huán)節(jié)三維形體檢測(cè)與轉(zhuǎn)換(物理數(shù)據(jù)的獲得)、數(shù)據(jù)預(yù)處理(點(diǎn)云處理、識(shí)別、多視拼接),CAD模型的建立(曲面重構(gòu))、CAM制件成型,其基本流程圖如圖1所示。在三維形體檢測(cè)與轉(zhuǎn)換的過(guò)程中,通過(guò)三維數(shù)字化掃描儀對(duì)實(shí)物模型表面進(jìn)行三維快速掃描測(cè)量,在滿足離散采樣速度和數(shù)據(jù)質(zhì)量的前提下,獲取產(chǎn)品的三維離散數(shù)據(jù),點(diǎn)云孔洞的出現(xiàn)造成了這些數(shù)據(jù)的不完整,因此對(duì)孔洞進(jìn)行補(bǔ)償即對(duì)數(shù)據(jù)進(jìn)行預(yù)處理是逆向工程中非常關(guān)鍵的承上啟下的一環(huán),直接影響重構(gòu)成功與否和CAD模型的質(zhì)量,對(duì)其后續(xù)環(huán)節(jié)起著非常關(guān)鍵的制約作用。本發(fā)明主要是涉及到在逆向工程的數(shù)字化過(guò)程中,用三維掃描系統(tǒng)(圖2)獲取產(chǎn)品點(diǎn)云模型出現(xiàn)孔洞時(shí)的一種自動(dòng)補(bǔ)償方法。
近年來(lái),點(diǎn)云孔洞的填補(bǔ)算法在國(guó)內(nèi)外均取得了很大的進(jìn)展,已發(fā)表了相當(dāng)數(shù)量的文獻(xiàn),其中一些算法獲得了較為廣泛的應(yīng)用,如基于能量?jī)?yōu)化和細(xì)分、三角網(wǎng)格模型、網(wǎng)格曲面模型中孔洞的填補(bǔ)算法。這些算法需先對(duì)三維掃描直接獲得的點(diǎn)云模型做一定的前期處理或者對(duì)點(diǎn)云孔洞進(jìn)行邊界識(shí)別,實(shí)時(shí)性不強(qiáng),復(fù)雜度也比較高。在實(shí)際的工程應(yīng)用中,對(duì)出現(xiàn)的問(wèn)題應(yīng)能及時(shí)解決。
文獻(xiàn)“Minimal energy surfaces using parametric splines.”(GregoryE.Fasshauer,Larry L.Schumarker.Computer Aided Geometric Design,1996,1345~79)通過(guò)求解以“變形能量函數(shù)”為基礎(chǔ)的優(yōu)化目標(biāo)函數(shù),實(shí)現(xiàn)對(duì)孔洞的填補(bǔ),保證了一定的光順性,然而這類方法大多需要細(xì)分曲面,并且對(duì)多個(gè)子曲面片進(jìn)行拼接,因此對(duì)曲面邊界的連續(xù)性要求較高,通常很難達(dá)到曲面間的二階連續(xù)。由于現(xiàn)有的三角網(wǎng)格模型的相關(guān)算法比較成熟,現(xiàn)有的算法大多都是基于此模型的,例如文獻(xiàn)“A study of stereolithography file errors and repair”(Leong K F,Chua CK,Ng Y M.International Journal of Advanced Manufacturing,1996,12415~422)將孔洞填補(bǔ)歸結(jié)為一個(gè)空間多邊形的三角剖分問(wèn)題。但大多在構(gòu)造新三角片時(shí)僅僅采用原有的孔洞多邊形頂點(diǎn),沒(méi)有增加新的三角片頂點(diǎn),因而難以獲得較好的用于填補(bǔ)孔洞的三角片形狀,填補(bǔ)效果不夠理想。并且這類算法對(duì)于復(fù)雜的點(diǎn)云數(shù)據(jù)編程建立三角網(wǎng)格模型運(yùn)算量較大,在填補(bǔ)孔洞的過(guò)程中還需要改變?nèi)蔷W(wǎng)格的拓?fù)浣Y(jié)構(gòu),因此具有對(duì)三角網(wǎng)格模型修改和再設(shè)計(jì)能力不足的缺點(diǎn),復(fù)雜度高,這些缺點(diǎn)都限制了它在實(shí)踐中的應(yīng)用。對(duì)一類多邊形孔洞的填充算法不適用于一般的點(diǎn)云模型。對(duì)于一般曲面網(wǎng)格的填充算法均需要準(zhǔn)確的獲得孔洞邊界信息,難度大,不易實(shí)現(xiàn)。通過(guò)對(duì)點(diǎn)云孔洞周圍散亂點(diǎn)集進(jìn)行曲面擬合補(bǔ)償孔洞的算法過(guò)程中,散亂點(diǎn)的參數(shù)化必不可少。通常有均勻參數(shù)化、向心參數(shù)化和累積弦長(zhǎng)參數(shù)化方法,而這些方法主要針對(duì)呈拓?fù)渚匦侮嚵械臄?shù)據(jù)點(diǎn),對(duì)無(wú)規(guī)則分布的點(diǎn)云數(shù)據(jù),需要對(duì)其排序,難度也比較大。
傳統(tǒng)的三角曲面插值算法也得到了較為廣泛的應(yīng)用,同時(shí)也獲得了較好的效果。例如文獻(xiàn)“An Adaptive Method for Smooth Surface Approximation to Scattered3D Points.”(Park H,Kim K.Computer Aided Design,1995,27(12)929~939)中提出的構(gòu)造光滑曲面擬合散亂點(diǎn)的自適應(yīng)插值算法。這類插值算法雖然速度比較快,但有其致命的缺點(diǎn),即1只能處理單值的非封閉曲面;2要假定偏導(dǎo)矢在域邊界曲線上呈線性分布;3重構(gòu)的曲面依賴于估算出的偏導(dǎo)矢,所以曲面插值方法對(duì)離散點(diǎn)的逼近效果并不好,并且計(jì)算量大效率低。
在實(shí)際的應(yīng)用過(guò)程中,用三維掃描系統(tǒng)得到的通常是具有海量散亂點(diǎn)的點(diǎn)云原始模型。此時(shí)就不可避免的存在孔洞現(xiàn)象,對(duì)這些孔洞進(jìn)行及時(shí)的填補(bǔ)是關(guān)鍵。為此,本發(fā)明中使用一種新算法對(duì)孔洞進(jìn)行補(bǔ)償。如何對(duì)散亂點(diǎn)參數(shù)化以及提高曲面的擬合精度是此類算法中的難點(diǎn)。本發(fā)明中提出的對(duì)散亂點(diǎn)進(jìn)行參數(shù)化的方法以及對(duì)曲面的迭代逼近優(yōu)化方法能達(dá)到對(duì)孔洞的光滑擬合填充。
發(fā)明內(nèi)容
本發(fā)明提供一種能夠提供曲面擬合精確度的基于B樣條曲面的三維掃描的點(diǎn)云孔洞填補(bǔ)方法,本發(fā)明具有方法簡(jiǎn)單的優(yōu)點(diǎn)。
本發(fā)明采用如下技術(shù)方案一種基于B樣條曲面的三維掃描的點(diǎn)云孔洞填補(bǔ)方法第一步在點(diǎn)云孔洞周圍且在屏幕坐標(biāo)平面內(nèi)設(shè)定一個(gè)四邊形ABCD,該四邊形ABCD的區(qū)域范圍能使點(diǎn)云孔洞及其周圍的點(diǎn)向屏幕坐標(biāo)平面的投影落入四邊形ABCD內(nèi),并將投影落入四邊形ABCD內(nèi)的點(diǎn)做為補(bǔ)孔時(shí)擬合曲面的點(diǎn)Ps(s=0,1,…,t),根據(jù)基面投影法計(jì)算擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs),該基面B(u,v)構(gòu)造為B(u,v)=(1-u)(1-v)P00+(1-u)vP01+u(1-v)P10+uvP11(u,v)∈
其中P00,P01,P10,P11分別為四邊形ABCD的四個(gè)頂點(diǎn)A,B,C,D的坐標(biāo),將擬合曲面的點(diǎn)Ps(s=0,1,…,t)向基面B(u,v)投影,該投影過(guò)程為設(shè)給定擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)初始值為(us,vs)(0≤us,vs≤1),定義修正量為(δus,δvs),那么擬合曲面的點(diǎn)Ps與基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)間的距離Ds為‖Ds‖=‖B(us+δus,vs+δvs)-Ps‖將基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處一階Taylor展開(kāi)后代入上式得‖Ds‖≈‖B(us,vs)+Buδus+Bvδvs-Ps‖式中,Bu,Bv是基面B(u,v)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處分別對(duì)u,v的一階偏導(dǎo)數(shù)。目標(biāo)函數(shù)為 欲使 最小,可以使 最小,那么∂Ds2/∂δus=0∂Ds2/∂δvs=0---(s=0,1,···,t)]]>
得到Bu·BuBv·BuBu·BvBv·Bvδusδvs=hs·Buhs·Bv---(s=0,1,···,t)]]>其中,符號(hào)″·″表示為向量之間的點(diǎn)積,符號(hào)″‖‖″表示為向量的模,hs=Ps-B(us,vs)。
根據(jù)推導(dǎo)出的公式,解出δus和δvs,然后將修改后的值us=us+δus和vs=vs+δvs代入此式,以δus、δvs為迭代步長(zhǎng)求解,直到|δus|和|δvs|均小于給定的迭代終值ε。一般經(jīng)過(guò)2~3次迭代即可求出擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)(us,vs)。將擬合曲面的點(diǎn)Ps(s=0,1,…,t)的坐標(biāo)及其曲面參數(shù)化坐標(biāo)(us,vs)代入B樣條曲面方程并用最小二乘法確定出曲面的控制頂點(diǎn),得到初步擬合的曲面S(u,v);第二步求出各個(gè)擬合曲面的點(diǎn)Ps(s=0,1,…,t)到曲面S(u,v)的距離向量d(u,v)=S(u,v)-Ps,及曲面分別對(duì)對(duì)應(yīng)點(diǎn)參數(shù)方向的偏微分Su(u,v),Sv(u,v),令f(u,v)=d(u,v)·Su(u,v)=0g(u,v)=d(u,v)·Sv(u,v)=0]]>擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)為(us,vs),以(us,vs)為初始估計(jì)值,根據(jù)牛頓迭代法求解以上方程組,有HσT=κT式中σ=(δu,δv),其中,δu,δv為曲面u,v兩個(gè)方向上的迭代步長(zhǎng)。
κ=-(f(us,vs),g(us,vs))H=fufvgugv=||Su||2+d·SuuSv·Su+d·SuvSu·Sv+d·Svu||Sv||2+d·Svv]]>式中,d=d(us,vs);fu,fv,gu,gv分別表示在點(diǎn)(us,vs)處相應(yīng)的向量對(duì)u,v的一階偏導(dǎo)數(shù);Suu,Suv,Svv,Svu是曲面S(u,v)在點(diǎn)(us,vs)處分別對(duì)u,v的二階偏導(dǎo)數(shù)。
則可得||Su||2+d·SuuSv·Su+d·SuvSu·Sv+d·Svu||Sv||2+d·Svvδuδv=-f(us,vs)g(us,vs)]]>其中,δu,δv為u,v兩個(gè)方向上的迭代步長(zhǎng),Suu,Suv,Svv,Svu,是曲面S(u,v)在點(diǎn)(us,vs)處分別對(duì)u,v的二階偏導(dǎo)數(shù),迭代求解直到1/tΣs=0t||d(us+δu,vs+δv)-d(us,vs)||≤γ,]]>γ為預(yù)置曲面擬合精度,從而得到最終確定的B樣條曲面S′(u,v);第三步在所述的B樣條曲面S′(u,v)上基于曲率的等參數(shù)取線,再在線上等參數(shù)取點(diǎn),用于填補(bǔ)點(diǎn)云孔洞,在求曲率的過(guò)程中首先需對(duì)三維點(diǎn)云進(jìn)行刪格劃分,該刪格劃分為構(gòu)造一個(gè)點(diǎn)云數(shù)據(jù)的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標(biāo)系的3個(gè)坐標(biāo)軸平行,沿三個(gè)坐標(biāo)軸方向劃分成邊長(zhǎng)為L(zhǎng)空間六面體立方刪格,其次在擬合曲面的點(diǎn)Ps的27個(gè)鄰近子包圍盒內(nèi)求出其k個(gè)鄰近點(diǎn),然后設(shè)擬合曲面的點(diǎn)Ps和其k個(gè)鄰近點(diǎn)組成集合K(Ps),S(Ps)為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)最小二乘擬合平面,令P為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)集合K(Ps)的形心,稱為擬合曲面的點(diǎn)Ps的中心點(diǎn),該中心點(diǎn)為P‾=1(k+1)ΣPs∈K(Ps)Ps]]>設(shè)擬合曲面的點(diǎn)Ps的第j個(gè)鄰近點(diǎn)到最小二乘平面S(Ps)的距離為dj,到P的距離為λj,那么對(duì)擬合曲面的點(diǎn)Ps的第j個(gè)點(diǎn)存在函數(shù)fj(Ps),該函數(shù)fj(Ps)為fj(Ps)=djλj]]>
那么擬合曲面的點(diǎn)Ps的曲率函數(shù)可以表示為f(Ps)=1kΣj=1kfj(Ps)]]>根據(jù)曲率函數(shù)f(Ps)求出,擬合曲面的點(diǎn)Ps的平均曲率 同理求出整個(gè)點(diǎn)云的平均曲率 令d為整個(gè)點(diǎn)云的平均點(diǎn)距,則取點(diǎn)間隔Δω=ρ0‾×d‾/ρs‾,]]>在B樣條曲面上取點(diǎn)時(shí),首先在曲面一個(gè)參數(shù)方向上以Δω等間隔取等參數(shù)曲線,再對(duì)每一條等參數(shù)曲線在另一個(gè)參數(shù)方向上以Δω等間隔取點(diǎn),得到填補(bǔ)孔洞的點(diǎn)。
本發(fā)明主要用于對(duì)三維掃描系統(tǒng)中各種具有復(fù)雜曲面形狀的點(diǎn)云原始模型中孔洞進(jìn)行填補(bǔ)的應(yīng)用場(chǎng)合。利用本發(fā)明中的曲面擬合算法,即可得到一張精確逼近孔洞周圍散亂點(diǎn)的曲面,隨后在面上根據(jù)曲率的變化取點(diǎn)可以即可實(shí)現(xiàn)對(duì)孔洞的光滑填補(bǔ)。該方法主要有以下優(yōu)點(diǎn)(1)由于傳統(tǒng)的曲面插值方法對(duì)離散點(diǎn)的逼近效果并不好,本發(fā)明采用曲面擬合的方法能得到一張精確擬合孔洞周圍散亂點(diǎn)集的曲面。
(2)相比較多數(shù)算法中的網(wǎng)格化處理,本發(fā)明主要針對(duì)三維掃描系統(tǒng)得到的原始點(diǎn)云模型,不需要任何的網(wǎng)格化處理,適用性廣,速度快。
(3)擬合曲面時(shí),交互選取孔洞周圍的散亂點(diǎn),所以當(dāng)孔洞邊界形狀比較復(fù)雜時(shí),也同樣適用。
(4)對(duì)選定的散亂點(diǎn)集進(jìn)行B樣條曲面的擬合過(guò)程中,需要研究的首要問(wèn)題是單一矩形域內(nèi)的曲面的散亂點(diǎn)的參數(shù)分布問(wèn)題,通常首先根據(jù)孔洞的邊界構(gòu)造一個(gè)基面,然后將散亂點(diǎn)投影到這個(gè)基面上,接著根據(jù)投影位置算出其參數(shù)分布,從而解決散亂點(diǎn)的參數(shù)分布問(wèn)題,構(gòu)造基面是關(guān)鍵,本發(fā)明中提出的算法在構(gòu)造基面時(shí)避免了對(duì)孔洞邊界的識(shí)別,簡(jiǎn)單易行。
(5)由于對(duì)散亂點(diǎn)進(jìn)行曲面擬合采用了初步擬合和迭代逼近優(yōu)化兩步方法,能夠使擬合的曲面獲得更高的精度。
(6)可以根據(jù)實(shí)際需要,在曲面擬合過(guò)程中人為控制曲面的次數(shù)及擬合的精度,避免了不必要的計(jì)算冗余。
(7)在面上取點(diǎn)時(shí),考慮曲率變化,能實(shí)現(xiàn)對(duì)孔洞的光滑補(bǔ)償,一般在點(diǎn)云中,點(diǎn)云密度大的地方,曲率變化也比較大,因此,基于曲率的等參數(shù)取點(diǎn)能光滑的填補(bǔ)孔洞。
(8)操作過(guò)程比較簡(jiǎn)單,只要交互選定孔洞周圍的離散點(diǎn),接下來(lái)的的步驟都可自動(dòng)完成,速度快。并且該方法具有很強(qiáng)的通用性。
此外要注意的是,選取散亂點(diǎn)時(shí),盡量在孔洞周圍大范圍內(nèi)選取,可以避免自適應(yīng)增加散亂點(diǎn)數(shù)量,以進(jìn)一步提高算法的效率。
圖1是逆向工程流程圖。
圖2是光柵式三維掃描系統(tǒng)組成圖。
圖3是算法整體流程圖。
圖4是選取球體點(diǎn)云中的孔洞附近的點(diǎn)集實(shí)例示意圖,圖中方框所示為四邊形ABCD。
圖5散亂點(diǎn)參數(shù)化流程圖。
圖6是曲面初步擬合流程圖。。
圖7是對(duì)球體點(diǎn)云中的孔洞附近的點(diǎn)集擬合曲面實(shí)例示意圖,方框內(nèi)所示為擬合曲面后的區(qū)域。
圖8是是曲面迭代逼近優(yōu)化流程9是對(duì)球體點(diǎn)云中的孔洞填補(bǔ)實(shí)例示意圖,方框內(nèi)所示為填補(bǔ)完畢后的區(qū)域。
圖10是刪格化圖。
圖11是曲率函數(shù)求解圖。
圖12是面上取點(diǎn)填補(bǔ)孔洞流程圖。
具體實(shí)施例方式
一種基于B樣條曲面的三維掃描的點(diǎn)云孔洞填補(bǔ)方法第一步在點(diǎn)云孔洞周圍且在屏幕坐標(biāo)平面內(nèi)設(shè)定一個(gè)四邊形ABCD,該四邊形ABCD的區(qū)域范圍能使點(diǎn)云孔洞及其周圍的點(diǎn)向屏幕坐標(biāo)平面的投影落入四邊形ABCD內(nèi),并將投影落入四邊形ABCD內(nèi)的點(diǎn)做為補(bǔ)孔時(shí)擬合曲面的點(diǎn)Ps(s=0,1,…,t),根據(jù)基面投影法計(jì)算擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs),該基面B(u,v)構(gòu)造為B(u,v)=(1-u)(1-v)P00+(1-u)vP01+u(1-v)P10+uvP11(u,v)∈
其中P00,P01,P10,P11分別為四邊形ABCD的四個(gè)頂點(diǎn)A,B,C,D的坐標(biāo),將擬合曲面的點(diǎn)Ps(s=0,1,…,t)向基面B(u,v)投影,該投影過(guò)程為設(shè)給定擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)初始值為(us,vs)(0≤us,vs≤1),定義修正量為(δus,δvs),那么擬合曲面的點(diǎn)Ps與基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)間的距離Ds為‖Ds‖=‖B(us+δus,vs+δvs)-Ps‖將基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處一階Taylor展開(kāi)后代入上式得‖Ds‖≈‖B(us,vs)+Buδus+Bvδvs-Ps‖式中,Bu,Bv是基面B(u,v)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處分別對(duì)u,v的一階偏導(dǎo)數(shù)。目標(biāo)函數(shù)為 欲使 最小,可以使 最小,那么∂Ds2/∂δus=0∂Ds2/∂δvs=0---(s=0,1,···,t)]]>得到Bu·BuBv·BuBu·BvBv·Bvδusδvs=hs·Buhs·Bv---(s=0,1,···,t)]]>其中,符號(hào)″·″表示為向量之間的點(diǎn)積,符號(hào)″‖‖″表示為向量的模,hs=Ps-B(us,vs)。
根據(jù)推導(dǎo)出的公式,解出δus和δvs,然后將修改后的值us=us+δus和vs=vs+δvs代入此式,以δus、δvs為迭代步長(zhǎng)求解,直到|δus|和|δvs|均小于給定的迭代終值ε。一般經(jīng)過(guò)2~3次迭代即可求出擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)(us,vs)。將擬合曲面的點(diǎn)Ps(s=0,1,…,t)的坐標(biāo)及其曲面參數(shù)化坐標(biāo)(us,vs)代入B樣條曲面方程并用最小二乘法確定出曲面的控制頂點(diǎn),得到初步擬合的曲面S(u,v);第二步求出各個(gè)擬合曲面的點(diǎn)Ps(s=0,1,…,t)到曲面S(u,v)的距離向量d(u,v)=S(u,v)-Ps,及曲面分別對(duì)對(duì)應(yīng)點(diǎn)參數(shù)方向的偏微分Su(u,v),Sv(u,v),令f(u,v)=d(u,v)·Su(u,v)=0g(u,v)=d(u,v)·Sv(u,v)=0]]>擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)為(us,vs),以(us,vs)為初始估計(jì)值,根據(jù)牛頓迭代法求解以上方程組,有HσT=κT式中σ=(δu,δv),其中,δu,δv為曲面u,v兩個(gè)方向上的迭代步長(zhǎng)。
κ=-(f(us,vs),g(us,vs))H=fufvgugv=||Su||2+d·SuuSv·Su+d·SuvSu·Sv+d·Svu||Sv||2+d·Svv]]>式中,d=d(us,vs);fu,fv,gu,gv分別表示在點(diǎn)(us,vs)處相應(yīng)的向量對(duì)u,v的一階偏導(dǎo)數(shù);Suu,Suv,Svv,Svu是曲面S(u,v)在點(diǎn)(us,vs)處分別對(duì)u,v的二階偏導(dǎo)數(shù)。
則可得||Su||2+d·SuuSv·Su+d·SuvSu·Sv+d·Svu||Sv||2+d·Svvδuδv=-f(us,vs)g(us,vs)]]>其中,δu,δv為u,v兩個(gè)方向上的迭代步長(zhǎng),Suu,Suv,Svv,Svu是曲面S(u,v)在點(diǎn)(us,vs)處分別對(duì)u,v的二階偏導(dǎo)數(shù),迭代求解直到1/tΣs=0t||d(us+δu,vs+δv)-d(us,vs)||≤γ,]]>γ為預(yù)置曲面擬合精度,從而得到最終確定的B樣條曲面S′(u,v);第三步在所述的B樣條曲面S′(u,v)上基于曲率的等參數(shù)取線,再在線上等參數(shù)取點(diǎn),用于填補(bǔ)點(diǎn)云孔洞,在求曲率的過(guò)程中首先需對(duì)三維點(diǎn)云進(jìn)行刪格劃分,該刪格劃分為構(gòu)造一個(gè)點(diǎn)云數(shù)據(jù)的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標(biāo)系的3個(gè)坐標(biāo)軸平行,沿三個(gè)坐標(biāo)軸方向劃分成邊長(zhǎng)為L(zhǎng)空間六面體立方刪格,其次在擬合曲面的點(diǎn)Ps的27個(gè)鄰近子包圍盒內(nèi)求出其k個(gè)鄰近點(diǎn),然后設(shè)擬合曲面的點(diǎn)Ps和其k個(gè)鄰近點(diǎn)組成集合K(Ps),S(Ps)為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)最小二乘擬合平面,令P為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)集合K(Ps)的形心,稱為擬合曲面的點(diǎn)Ps的中心點(diǎn),該中心點(diǎn)為P‾=1(k+1)ΣPs∈K(Ps)Ps]]>設(shè)擬合曲面的點(diǎn)Ps的第j個(gè)鄰近點(diǎn)到最小二乘平面S(Ps)的距離為dj,到P的距離為λj,那么對(duì)擬合曲面的點(diǎn)Ps的第j個(gè)點(diǎn)存在函數(shù)…fj(Ps),該函數(shù)fj(Ps)為fj(Ps)=djλj]]>那么擬合曲面的點(diǎn)Ps的曲率函數(shù)可以表示為f(Ps)=1kΣj=1kfj(Ps)]]>根據(jù)曲率函數(shù)f(Ps)求出,擬合曲面的點(diǎn)Ps的平均曲率 同理求出整個(gè)點(diǎn)云的平均曲率 令d為整個(gè)點(diǎn)云的平均點(diǎn)距,則取點(diǎn)間隔Δω=ρ0‾×d‾/ρs‾,]]>在B樣條曲面上取點(diǎn)時(shí),首先在曲面一個(gè)參數(shù)方向上以Δω等間隔取等參數(shù)曲線,再對(duì)每一條等參數(shù)曲線在另一個(gè)參數(shù)方向上以Δω等間隔取點(diǎn),得到填補(bǔ)孔洞的點(diǎn)。
在本實(shí)施例中,擬合曲面的點(diǎn)數(shù)少于曲面控制頂點(diǎn)數(shù)時(shí),擴(kuò)大所設(shè)定四邊形ABCD的面積,使擬合曲面的點(diǎn)數(shù)大于曲面控制頂點(diǎn)數(shù)。擬合曲面的點(diǎn)數(shù)少于迭代方程組的未知數(shù)個(gè)數(shù)時(shí),擴(kuò)大所設(shè)定四邊形ABCD的面積,使擬合曲面的點(diǎn)數(shù)大于或等于迭代方程組的未知數(shù)個(gè)數(shù)。
下面參照附圖,對(duì)本發(fā)明加以詳細(xì)描述在逆向工程中,面對(duì)的是密集的點(diǎn)云散亂數(shù)據(jù)。擬合曲面時(shí),如果曲面的對(duì)象邊界和形狀極其復(fù)雜時(shí),一般不便直接運(yùn)用常規(guī)的曲面構(gòu)造方法,由于B樣條曲面的擬合有其自身的特點(diǎn),到目前為止,它是研究最多的一類曲面擬合方法。這類方法的應(yīng)用對(duì)象是汽車,飛機(jī),輪船等曲面零件,特點(diǎn)是既不像單獨(dú)的二次曲面那樣簡(jiǎn)單,也不像人面模型那樣毫無(wú)規(guī)律。因此本專利采用B樣條曲面對(duì)孔洞部分進(jìn)行擬合填充??傮w算法流程見(jiàn)圖3。
本發(fā)明主要涉及以下四方面的內(nèi)容1)散亂點(diǎn)的選定及參數(shù)化過(guò)程在球體點(diǎn)云孔洞周圍且在屏幕坐標(biāo)平面內(nèi)設(shè)定一個(gè)四邊形ABCD,該四邊形ABCD的區(qū)域范圍能使點(diǎn)云孔洞及其周圍的點(diǎn)向屏幕坐標(biāo)平面的投影落入四邊形ABCD內(nèi),并將投影落入四邊形ABCD內(nèi)的點(diǎn)做為補(bǔ)孔時(shí)擬合曲面的點(diǎn)Ps(s=0,1,…,t),見(jiàn)圖4。
根據(jù)基面投影法計(jì)算擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs),該基面B(u,v)構(gòu)造為B(u,v)=(1-u)(1-v)P00+(1-u)vP01+u(1-v)P10+uvP11(u,v)∈
其中P00,P01,P10,P11分別為四邊形ABCD的四個(gè)頂點(diǎn)A,B,C,D的坐標(biāo),將擬合曲面的點(diǎn)Ps(s=0,1,…,t)向基面B(u,v)投影,該投影過(guò)程為設(shè)給定擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)初始值為(us,vs)(0≤us,vs≤1),定義修正量為(δus,δvs),那么擬合曲面的點(diǎn)Ps與基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)間的距離Ds為
‖Ds‖=‖B(us+δus,vs+δvs)-Ps‖將基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處一階Taylor展開(kāi)后代入上式得‖Ds‖≈‖B(us,vs)+Buδus+Bvδvs-Ps‖式中,Bu,Bv是基面B(u,v)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處分別對(duì)u,v的一階偏導(dǎo)數(shù)。目標(biāo)函數(shù)為 欲使 最小,可以使 最小,那么∂Ds2/∂δus=0∂Ds2/∂δvs=0---(s=0,1,···,t)]]>得到Bu·BuBv·BuBu·BvBv·Bvδusδvs=hs·Buhs·Bv---(s=0,1,···,t)]]>其中,符號(hào)″·″表示為向量之間的點(diǎn)積,符號(hào)″‖‖″表示為向量的模,hs=Ps-B(us,vs)。
根據(jù)推導(dǎo)出的公式,解出δus和δvs,然后將修改后的值us=us+δus和vs=vs+δvs代入此式,以δus、δvs為迭代步長(zhǎng)求解,直到|δus|和|δvs|均小于給定的迭代終值ε。一般經(jīng)過(guò)2~3次迭代即可求出擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)(us,vs)。
算法流程圖見(jiàn)圖5。
2)最小二乘自適應(yīng)初步擬合設(shè)給定(m+1)×(n+1)個(gè)控制頂點(diǎn)bij(i=0,1,…,m;j=0,1,…,n),以及兩列曲面節(jié)點(diǎn)u,v的取值u0≤u1≤…≤um+k+1和v0≤v1≤…≤vm+l+1,則可定義一個(gè)k×l階B樣條曲面S(u,v)=Σi=0mΣj=0nNik(u)Njl(v)bij]]>(u,v)∈[uk,um+1;vl,vn+1]
其中 分別是由兩列節(jié)點(diǎn)u,v定義的k階和l階B樣條曲線的基函數(shù)。而由(m+1)×(n+1)個(gè)控制頂點(diǎn)bij構(gòu)成的多面體稱為這個(gè)B樣條曲面的控制網(wǎng)格或稱控制多面體??刂贫嗝骟w的形狀大體上反映了B樣條曲面的形狀。把Ps(s=0,1,…,t)的坐標(biāo)代入B樣條曲面方程,構(gòu)成以(m+1)×(n+1)個(gè)未知控制頂點(diǎn)為未知量的t+1個(gè)線性方程組。在所選四邊形內(nèi)部的三維坐標(biāo)點(diǎn)數(shù)t+1一般大于(m+1)×(n+1),在不滿足此條件即待求方程組系數(shù)矩陣奇異時(shí),以四邊形ABCD的重心為基點(diǎn),自適應(yīng)擴(kuò)大四邊形ABCD的面積來(lái)增加選定的點(diǎn)的個(gè)數(shù)。最后采用最小二乘法求解此過(guò)約束方程組,確定出曲面其它的未知控制頂點(diǎn),得到初步擬合的曲面S(u,v)。算法流程圖見(jiàn)圖6。
3)曲面逼近優(yōu)化經(jīng)過(guò)最小二乘初步擬合后,散亂點(diǎn)集Ps與曲面S(u,v)的距離誤差還比較大,因此需要進(jìn)一步修正控制頂點(diǎn),改變控制多面體的形狀,從而改變曲面的形狀,使曲面逼近點(diǎn)集。本發(fā)明采用了以牛頓迭代法為基礎(chǔ)的迭代逼近算法,提高擬合精度,最終確定出曲面S′(u,v),見(jiàn)圖7。
具體步驟如下(1)求出各個(gè)散亂點(diǎn)到曲面的距離向量d(u,v)=S(u,v)-Ps及曲面分別對(duì)對(duì)應(yīng)點(diǎn)參數(shù)方向的偏微分Su(u,v),Sv(u,v),組成待求方程組如下f(u,v)=d(u,v)·Su(u,v)=0g(u,v)=d(u,v)·Sv(u,v)=0]]>
(2)采用基于牛頓迭代法的方法求解此方程組,最終可求得的迭代方程組為||Su||2+d·SuuSv·Su+d·SuvSu·Sv+d·Svu||Sv||2+d·Svvδuδv=-f(us,vs)g(us,vs)]]>(3)迭代求解以上方程組,當(dāng)擬合曲面的點(diǎn)數(shù)少于迭代方程組的未知數(shù)個(gè)數(shù)時(shí),即方程組系數(shù)奇異時(shí),同樣以四邊形ABCD的重心為基點(diǎn),自適應(yīng)擴(kuò)大四邊形ABCD的面積來(lái)增加選定的點(diǎn)的個(gè)數(shù),重復(fù)(2)。算法流程圖見(jiàn)圖8。
4)面上取點(diǎn)在所述的B樣條曲面S′(u,v)上基于曲率的等參數(shù)取線,再在線上等參數(shù)取點(diǎn),用于填補(bǔ)點(diǎn)云孔洞,見(jiàn)圖9,在求曲率的過(guò)程中首先需對(duì)三維點(diǎn)云進(jìn)行刪格劃分,見(jiàn)圖10,該刪格劃分為構(gòu)造一個(gè)點(diǎn)云數(shù)據(jù)的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標(biāo)系的3個(gè)坐標(biāo)軸平行,沿三個(gè)坐標(biāo)軸方向劃分成邊長(zhǎng)為L(zhǎng)空間六面體立方刪格,其次在擬合曲面的點(diǎn)Ps的27個(gè)鄰近子包圍盒內(nèi)求出其k個(gè)鄰近點(diǎn),然后設(shè)擬合曲面的點(diǎn)Ps和其k個(gè)鄰近點(diǎn)組成集合K(Ps),S(Ps)為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)最小二乘擬合平面,令P為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)集合K(Ps)的形心,稱為擬合曲面的點(diǎn)Ps的中心點(diǎn),該中心點(diǎn)為P‾=1(k+1)ΣPs∈K(Ps)Ps]]>設(shè)擬合曲面的點(diǎn)Ps的第j個(gè)鄰近點(diǎn)到最小二乘平面S(Ps)的距離為dj,到P的距離為λj,見(jiàn)圖11,那么對(duì)擬合曲面的點(diǎn)Ps的第j個(gè)點(diǎn)存在函數(shù)fj(Ps),該函數(shù)fj(Ps)為fj(Ps)=djλj]]>那么擬合曲面的點(diǎn)Ps的曲率函數(shù)可以表示為f(Ps)=1kΣj=1kfj(Ps)]]>
根據(jù)曲率函數(shù)f(Ps)求出,擬合曲面的點(diǎn)Ps的平均曲率 同理求出整個(gè)點(diǎn)云的平均曲率 令d為整個(gè)點(diǎn)云的平均點(diǎn)距,則取點(diǎn)間隔Δω=ρ0‾×d‾/ρs‾,]]>在B樣條曲面上取點(diǎn)時(shí),首先在曲面一個(gè)參數(shù)方向上以Δω等間隔取等參數(shù)曲線,再對(duì)每一條等參數(shù)曲線在另一個(gè)參數(shù)方向上以Δω等間隔取點(diǎn),得到填補(bǔ)孔洞的點(diǎn)。
算法流程圖見(jiàn)附12。
權(quán)利要求
1.一種基于B樣條曲面的三維掃描的點(diǎn)云孔洞填補(bǔ)方法,其特征在于第一步在點(diǎn)云孔洞周圍且在屏幕坐標(biāo)平面內(nèi)設(shè)定一個(gè)四邊形ABCD,該四邊形ABCD的區(qū)域范圍能使點(diǎn)云孔洞及其周圍的點(diǎn)向屏幕坐標(biāo)平面的投影落入四邊形ABCD內(nèi),并將投影落入四邊形ABCD內(nèi)的點(diǎn)做為補(bǔ)孔時(shí)擬合曲面的點(diǎn)Ps(s=0,1,…,t),根據(jù)基面投影法計(jì)算擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs),該基面B(u,v)構(gòu)造為B(u,v)=(1-u)(1-v)P00+(1-u)vP01+u(1-v)P10+uvP11(u,v)∈
其中P00,P01,P10,P11分別為四邊形ABCD的四個(gè)頂點(diǎn)A,B,C,D的坐標(biāo),將擬合曲面的點(diǎn)Ps(s=0,1,…,t)向基面B(u,v)投影,該投影過(guò)程為設(shè)給定擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)初始值為(us,vs)(0≤us,vs≤1),定義修正量為(δus,δvs),那么擬合曲面的點(diǎn)Ps與基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)間的距離Ds為‖Ds‖=‖B(us+δus,vs+δvs)-Ps‖將基面B(u,v)上的點(diǎn)B(us+δus,vs+δvs)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處一階Taylor展開(kāi)后代入上式得‖Ds‖≈‖B(us,vs)+Buδus+Bvδvs-Ps‖式中,Bu,Bv是基面B(u,v)在擬合曲面的點(diǎn)Ps的曲面參數(shù)化坐標(biāo)(us,vs)處分別對(duì)u,v的一階偏導(dǎo)數(shù),目標(biāo)函數(shù)為 欲使 最小,可以使 最小,那么∂Ds2/∂δus=0∂Ds2/∂δvs=0,(s=0,1,···,t)]]>得到Bu·BuBv·BuBu·BvBv·Bvδusδvs=hs·Buhs·Bv,(s=0,1,···,t)]]>其中,符號(hào)″·″表示為向量之間的點(diǎn)積,符號(hào)″‖‖″表示為向量的模,hs=Ps-B(us,vs)。根據(jù)推導(dǎo)出的公式,解出δus和δvs,然后將修改后的值us=us+δus和vs=vs+δvs代入此式,以δus、δvs為迭代步長(zhǎng)求解,直到|δus|和|δvs|均小于給定的迭代終值ε,一般經(jīng)過(guò)2~3次迭代即可求出擬合曲面的點(diǎn)Ps的參數(shù)化坐標(biāo)(us,vs),將擬合曲面的點(diǎn)Ps(s=0,1,…,t)的坐標(biāo)及其曲面參數(shù)化坐標(biāo)(us,vs)代入B樣條曲面方程并用最小二乘法確定出曲面的控制頂點(diǎn),得到初步擬合的B樣條曲面S(u,v);第二步求出各個(gè)擬合曲面的點(diǎn)Ps(s=0,1,…,t)到曲面S(u,v)的距離向量d(u,v)=S(u,v)-Ps,及曲面分別對(duì)對(duì)應(yīng)點(diǎn)參數(shù)方向的偏微分Su(u,v),Sv(u,v),令f(u,v)=d(u,v)·Su(u,v)=0g(u,v)=d(u,v)·Sv(u,v)=0]]>根據(jù)牛頓迭代法,得到如下迭代方程組||Su||2+d·SuuSv·Su+d·SuvSu·Sv+d·Svu||Sv||2+d·Svvδuδv=-f(us,vs)g(us,vs)]]>其中,δu,δv為u,v兩個(gè)方向上的迭代步長(zhǎng),Suu,Suv,Svv,Svu是曲面S(u,v)在點(diǎn)(us,vs)處分別對(duì)u,v的二階偏導(dǎo)數(shù),迭代求解直到1/tΣs=0t||d(us+δu,vs+δv)-d(us,vs)||≤γ]]>γ為預(yù)置曲面擬合精度,從而得到最終確定的B樣條曲面S′(u,v);第三步在所述的B樣條曲面S′(u,v)上基于曲率的等參數(shù)取線,再在線上等參數(shù)取點(diǎn),用于填補(bǔ)點(diǎn)云孔洞,在求曲率的過(guò)程中首先需對(duì)三維點(diǎn)云進(jìn)行刪格劃分,該刪格劃分為構(gòu)造一個(gè)點(diǎn)云數(shù)據(jù)的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標(biāo)系的3個(gè)坐標(biāo)軸平行,沿三個(gè)坐標(biāo)軸方向劃分成邊長(zhǎng)為L(zhǎng)空間六面體立方刪格,其次在擬合曲面的點(diǎn)Ps的27個(gè)鄰近子包圍盒內(nèi)求出其k個(gè)鄰近點(diǎn),然后設(shè)擬合曲面的點(diǎn)Ps和其k個(gè)鄰近點(diǎn)組成集合K(Ps),S(Ps)為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)最小二乘擬合平面,令P為擬合曲面的點(diǎn)Ps的k個(gè)鄰近點(diǎn)集合K(Ps)的形心,稱為擬合曲面的點(diǎn)Ps的中心點(diǎn),該中心點(diǎn)為P‾=1(k+1)ΣPs∈K(Ps)Ps]]>設(shè)擬合曲面的點(diǎn)Ps的第j個(gè)鄰近點(diǎn)到最小二乘平面S(Ps)的距離為dj,到P的距離為λj,那么對(duì)擬合曲面的點(diǎn)Ps的第j個(gè)點(diǎn)存在函數(shù)fj(Ps),該函數(shù)fj(Ps)為fj(Ps)=djλj]]>那么擬合曲面的點(diǎn)Ps的曲率函數(shù)可以表示為f(Ps)=1kΣj=1kfj(Ps)]]>根據(jù)曲率函數(shù)f(Ps)求出,擬合曲面的點(diǎn)Ps的平均曲率 同理求出整個(gè)點(diǎn)云的平均曲率 令d為整個(gè)點(diǎn)云的平均點(diǎn)距,則取點(diǎn)間隔Δω=ρ0‾×d‾/ρs‾,]]>在B樣條曲面上取點(diǎn)時(shí),首先在曲面一個(gè)參數(shù)方向上以Δω等間隔取等參數(shù)曲線,再對(duì)每一條等參數(shù)曲線在另一個(gè)參數(shù)方向上以Δω等間隔取點(diǎn),得到填補(bǔ)孔洞的點(diǎn)。
2.根據(jù)權(quán)利要求1所述的三維掃描的點(diǎn)云孔洞填補(bǔ)方法,其特征在于擬合曲面的點(diǎn)數(shù)少于曲面控制頂點(diǎn)數(shù)時(shí),擴(kuò)大所設(shè)定四邊形ABCD的面積,使擬合曲面的點(diǎn)數(shù)大于曲面控制頂點(diǎn)數(shù)。
3.根據(jù)權(quán)利要求1所述的三維掃描的點(diǎn)云孔洞填補(bǔ)方法,其特征在于擬合曲面的點(diǎn)數(shù)少于迭代方程組的未知數(shù)個(gè)數(shù)時(shí),擴(kuò)大所設(shè)定四邊形ABCD的面積,使擬合曲面的點(diǎn)數(shù)大于或等于迭代方程組的未知數(shù)個(gè)數(shù)。
全文摘要
一種能夠提供曲面擬合精確度的基于B樣條曲面的三維掃描的點(diǎn)云孔洞填補(bǔ)方法首先在點(diǎn)云孔洞周圍選擇做為初步擬合曲面時(shí)需要的坐標(biāo)點(diǎn)P
文檔編號(hào)G06T15/00GK1945626SQ200610041318
公開(kāi)日2007年4月11日 申請(qǐng)日期2006年8月14日 優(yōu)先權(quán)日2006年8月14日
發(fā)明者達(dá)飛鵬, 朱春紅 申請(qǐng)人:東南大學(xué)