專(zhuān)利名稱(chēng):三維掃描點(diǎn)云中基于神經(jīng)網(wǎng)絡(luò)的標(biāo)志點(diǎn)孔洞的填補(bǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對(duì)三維圖形的修補(bǔ)方法,尤其涉及一種三維掃描點(diǎn)云中基于神經(jīng)網(wǎng)絡(luò)的標(biāo)志點(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è)量,在滿(mǎn)足離散采樣速度和數(shù)據(jù)質(zhì)量的前提下,獲取產(chǎn)品的三維離散數(shù)據(jù),在多視拼接中,很多算法用到基于標(biāo)志點(diǎn)的拼接,而在物體表面粘貼標(biāo)志點(diǎn),必然導(dǎo)致被覆蓋的區(qū)域的數(shù)據(jù)的丟失,產(chǎn)生孔洞,此類(lèi)孔洞有其自身的特點(diǎn)必然產(chǎn)生、位置大小可以確定、數(shù)量較多,點(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)的標(biāo)志點(diǎn)孔洞的一種自動(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)格模型的各種孔洞填補(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.”(Gregory E.Fasshauer,LarryL.Schumarker.ComputerAided Geometric Design,1996,1345~79)通過(guò)求解以“變形能量函數(shù)”為基礎(chǔ)的優(yōu)化目標(biāo)函數(shù),實(shí)現(xiàn)對(duì)孔洞的填補(bǔ),保證了一定的光順性,然而這類(lèi)方法大多需要細(xì)分曲面,并且對(duì)多個(gè)子曲面片進(jìn)行拼接,因此對(duì)曲面邊界的連續(xù)性要求較高,通常很難達(dá)到曲面間的二階連續(xù)。由于現(xiàn)有的三角網(wǎng)格模型的相關(guān)算法比較成熟,現(xiàn)有的算法大多都是基于此模型的,例如文獻(xiàn)“Filling holes in meshes using a mechanical model to simulate thecurvature variation minimization.”(Jean-Philippe Pemot,George Moraru,Philippe Veron.Computer&Graphics,2006,30892~902)將孔洞填補(bǔ)歸結(jié)為一個(gè)空間多邊形的三角剖分問(wèn)題。通過(guò)三角化后,尋找三角網(wǎng)絡(luò)的邊界,來(lái)自動(dòng)檢測(cè)孔洞,在補(bǔ)孔之前,首先對(duì)邊界三角形進(jìn)行處理,去除方向不好和退化的三角形,最后用三角網(wǎng)絡(luò)補(bǔ)孔,但是此方法只能修補(bǔ)閉合的孔洞,并且這類(lèi)算法對(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ì)一類(lèi)多邊形孔洞的填充算法不適用于一般的點(diǎn)云模型。
對(duì)于一般曲面網(wǎng)格的填充算法均需要準(zhǔn)確的獲得孔洞邊界信息,難度大,不易實(shí)現(xiàn)。通過(guò)對(duì)點(diǎn)云孔洞周?chē)y點(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ì)其排序,難度也比較大。
基于神經(jīng)網(wǎng)絡(luò)補(bǔ)孔的算法現(xiàn)在也得到了較為廣泛的應(yīng)用,同時(shí)也獲得了較好的效果。例如文獻(xiàn)“基于神經(jīng)網(wǎng)絡(luò)的點(diǎn)云殘缺數(shù)據(jù)修補(bǔ)方法”(劉俊,何建英.機(jī)械工程師,2007(2)32~34)中提出了一種三維殘缺數(shù)據(jù)的BP數(shù)據(jù)網(wǎng)絡(luò)修補(bǔ)方法,框選出殘缺數(shù)據(jù)邊界附近的樣本點(diǎn)集,并加以訓(xùn)練,把訓(xùn)練后的BP網(wǎng)絡(luò)用于殘缺區(qū)域數(shù)據(jù)點(diǎn)的預(yù)測(cè),完成數(shù)據(jù)的修補(bǔ)。這類(lèi)方法適應(yīng)范圍比較廣,對(duì)于非線(xiàn)性數(shù)據(jù)、有噪聲的數(shù)據(jù)、模式特征不明確的數(shù)據(jù)都有比較好的效果,但有不足的地方操作多,每個(gè)孔洞,都要人為框選邊界樣本點(diǎn)集;修補(bǔ)區(qū)域點(diǎn)的密度與周?chē)灰恢?;?duì)于一些曲率變化大的特征區(qū)域,特征表現(xiàn)的不夠好。
在實(shí)際的應(yīng)用過(guò)程中,在三維掃描系統(tǒng)中為了點(diǎn)云的多視拼接而引入標(biāo)志點(diǎn),此時(shí)就不可避免的存在孔洞現(xiàn)象,對(duì)這些孔洞進(jìn)行及時(shí)的填補(bǔ)是關(guān)鍵。為此,本發(fā)明中使用一種新算法對(duì)標(biāo)志點(diǎn)孔洞進(jìn)行填補(bǔ)。如何保證填補(bǔ)的孔洞數(shù)據(jù)與周?chē)鷶?shù)據(jù)連續(xù)以及特征表示的更好是此類(lèi)算法的難點(diǎn)。本發(fā)明中提出的根據(jù)周?chē)c(diǎn)云數(shù)據(jù)密度選擇重采樣密度的方法以及對(duì)于修補(bǔ)的點(diǎn)云按曲率進(jìn)行調(diào)整能達(dá)到對(duì)孔洞的光滑填充。
發(fā)明內(nèi)容
本發(fā)明提供一種能夠保證填補(bǔ)的孔洞數(shù)據(jù)與周?chē)鷶?shù)據(jù)連續(xù)并且點(diǎn)云特征表示更好的基于神經(jīng)網(wǎng)絡(luò)的三維掃描的點(diǎn)云孔洞填補(bǔ)方法,本發(fā)明具有方法簡(jiǎn)單的優(yōu)點(diǎn)。
本發(fā)明采用如下技術(shù)方案 一種三維掃描點(diǎn)云中基于神經(jīng)網(wǎng)絡(luò)的標(biāo)志點(diǎn)孔洞的填補(bǔ)方法 第一步對(duì)于物體表面粘貼的標(biāo)志點(diǎn)形成的孔洞,在三維掃描點(diǎn)云中,獲取孔洞周?chē)臉颖军c(diǎn)集時(shí),根據(jù)標(biāo)志點(diǎn)的三維坐標(biāo)(xb,yb,zb),將以標(biāo)志點(diǎn)為中心的立方體內(nèi)的數(shù)據(jù)點(diǎn)作為補(bǔ)孔的樣本點(diǎn)Ps(s=0,1,…,t),立方體的8個(gè)頂點(diǎn)分別是(xb-r,yb-r,zb-r),(xb-r,yb-r,zb+r),(xb-r,yb+r,zb-r),(xb-r,yb+r,zb+r),(xb+r,yb-r,zb-r),(xb+r,yb-r,zb+r),(xb+r,yb+r,zb-r),(xb+r,yb+r,zb+r),其中r是所取的域值,為了獲取合適的樣本點(diǎn)集,取標(biāo)志點(diǎn)的半徑的1.2~1.5倍; 第二步根據(jù)樣本點(diǎn)數(shù)據(jù)Ps,訓(xùn)練補(bǔ)孔的神經(jīng)網(wǎng)絡(luò),用于填補(bǔ)孔洞的神經(jīng)網(wǎng)絡(luò)為三層的反向傳播神經(jīng)網(wǎng)絡(luò),其輸入層為2個(gè)神經(jīng)元,分別對(duì)應(yīng)樣本數(shù)據(jù)的x坐標(biāo)值和y坐標(biāo)值,隱層為m個(gè)神經(jīng)元,輸出層為1個(gè)神經(jīng)元且對(duì)應(yīng)樣本數(shù)據(jù)的z坐標(biāo)值,隱層和輸出層的激勵(lì)函數(shù)分別是雙曲正切S形函數(shù)和線(xiàn)性函數(shù)g(x)=x,并應(yīng)用Levenberg-Marquardt算法訓(xùn)練反向傳播網(wǎng)絡(luò),隱層神經(jīng)元數(shù)目m選取20,通過(guò)訓(xùn)練得到補(bǔ)孔的神經(jīng)網(wǎng)絡(luò)net; 第三步在得到神經(jīng)網(wǎng)絡(luò)net后,沿x和y方向等步長(zhǎng)選取重采樣點(diǎn),為了使殘缺區(qū)域重采的密度與其周?chē)鷶?shù)據(jù)保持一致,計(jì)算所有樣本點(diǎn)Ps,其中s=0,1,…,t,在xoy平面投影的點(diǎn)與周?chē)c(diǎn)的最小距離的平均距離作為重采樣的步長(zhǎng)L,重采樣的范圍是區(qū)間(xmin,xmax),(ymin,ymax),其中xmin、xmax是樣本點(diǎn)的坐標(biāo)x的最小值和最大值,ymin、ymax是樣本點(diǎn)的坐標(biāo)y的最小值和最大值,重采點(diǎn)的總數(shù)為
其中
表示向下取整,重采樣點(diǎn)的x坐標(biāo)值從xmin開(kāi)始以步長(zhǎng)L等距增加直至
重采樣點(diǎn)的y坐標(biāo)值從ymin開(kāi)始以步長(zhǎng)L等距增加直至
將重采樣的點(diǎn)的x坐標(biāo)值和y坐標(biāo)值作為神經(jīng)網(wǎng)絡(luò)的輸入,就可以得到重采樣點(diǎn)z坐標(biāo)值,進(jìn)而得到所有重采樣點(diǎn); 第四步根據(jù)重采樣點(diǎn)的曲率添加采樣點(diǎn),求取離散空間點(diǎn)曲率的時(shí)候,將所有重采樣點(diǎn)投影到xoy平面,由第三步可知,所有投影點(diǎn)沿x和y方向以間距L,等間距分布,取所求點(diǎn)在xoy平面上的5×5鄰域內(nèi)的點(diǎn)作為鄰域點(diǎn),除去本身共24個(gè)點(diǎn),作為所求點(diǎn)的k鄰域,根據(jù)已有方法求出所有重采樣點(diǎn)的曲率ρs(s=0,1,…,n-1),根據(jù)給定的曲率域值ρτ,ρτ取0.1,取曲率大于ρτ的重采樣點(diǎn),得到大曲率點(diǎn),然后在大曲率點(diǎn)的四周增加采樣點(diǎn),采取的策略是,將所有重采樣點(diǎn)投影到xoy平面上,假設(shè)有大曲率點(diǎn)在xoy平面上投影點(diǎn)的坐標(biāo)是(xρ,yρ),查看它沿x和y方向相鄰的四的投影點(diǎn)(xρ-L,yρ),(xρ+L,yρ),(xρ,yρ-L),(xρ,yρ+L),若其中也有大曲率點(diǎn),則在大曲率點(diǎn)之間等距增加兩個(gè)重采樣點(diǎn),不失一般性,假設(shè)投影到(xρ+L,yρ)坐標(biāo)的點(diǎn)為大曲率點(diǎn),則增加
兩點(diǎn),其余不是大曲率點(diǎn)的方向上,增加一點(diǎn),如上面所述的投影到(xρ-L,yρ),(xρ,yρ-L),(xρ,yρ+L)的三點(diǎn)不是大曲率點(diǎn),則增加
三點(diǎn),針對(duì)所有大曲率點(diǎn)采用以上策略補(bǔ)點(diǎn),最后將所有補(bǔ)的點(diǎn)的x和y坐標(biāo)值輸入第二步得到的神經(jīng)網(wǎng)絡(luò)net中,求的z坐標(biāo)值,這樣就得到了根據(jù)曲率增加的所有的重采樣點(diǎn),連同第三步中得到的重采樣點(diǎn),得到最終的重采樣點(diǎn); 第五步將最終的重采樣點(diǎn)中與三維掃描點(diǎn)云中最近點(diǎn)的距離小于0.5d3D的重采樣點(diǎn)舍棄,把剩余的采樣點(diǎn)加到三維掃描點(diǎn)云中,完成標(biāo)志點(diǎn)孔洞的填補(bǔ),其中d3D為三維掃描點(diǎn)云的密度,d3D設(shè)置為點(diǎn)云的各點(diǎn)與周?chē)c(diǎn)的最小距離的平均值。
本發(fā)明主要用于對(duì)三維掃描系統(tǒng)中由標(biāo)志點(diǎn)產(chǎn)生的各種復(fù)雜曲面形狀的孔洞進(jìn)行填補(bǔ)的應(yīng)用場(chǎng)合。利用本發(fā)明中的神經(jīng)網(wǎng)絡(luò)方法,可以得到填補(bǔ)孔洞的網(wǎng)絡(luò),隨后根據(jù)孔洞邊界點(diǎn)的密度,在孔洞區(qū)域取采樣點(diǎn),并根據(jù)點(diǎn)的曲率進(jìn)一步調(diào)整補(bǔ)孔的點(diǎn),達(dá)到對(duì)孔洞的光滑填充。該方法主要有以下優(yōu)點(diǎn) (1)相比較多數(shù)算法中的網(wǎng)格化處理,本發(fā)明主要針對(duì)三維掃描系統(tǒng)得到的原始點(diǎn)云模型,不需要任何的網(wǎng)格化處理,適用性廣,速度快。
(2)由于標(biāo)志點(diǎn)貼在物體的各個(gè)不同的位置,因此形成的孔洞也是各種不同的形狀,因此在用參數(shù)曲面擬合填補(bǔ)方法的時(shí)候,就無(wú)法選擇能適合所有孔洞的參數(shù)曲面,而神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的泛函逼近能力,三層網(wǎng)絡(luò)能以任意精度逼近任意連續(xù)函數(shù)以及其各階導(dǎo)數(shù),因此與基于各種參數(shù)曲面擬合的方法相比,基于神經(jīng)網(wǎng)絡(luò)的方法對(duì)標(biāo)志點(diǎn)形成的各種復(fù)雜曲面形狀的孔洞,能取得更好的填補(bǔ)精度。
(3)三角網(wǎng)絡(luò)補(bǔ)孔時(shí),所補(bǔ)的孔洞必須要求是閉合的,本方法對(duì)于標(biāo)志點(diǎn)形成的任意形狀的孔洞都能進(jìn)行填補(bǔ),適應(yīng)性廣。
(4)對(duì)于標(biāo)志點(diǎn)形成的孔洞,由于標(biāo)志點(diǎn)的三維坐標(biāo)值和大小是已知的,因此孔洞根據(jù)標(biāo)志點(diǎn)位置自動(dòng)識(shí)別,孔洞周?chē)鷺颖军c(diǎn)的獲取也是自動(dòng)完成的,無(wú)需任何人為操作,在得到三維掃描點(diǎn)云后,就能自動(dòng)完成所有標(biāo)志點(diǎn)孔洞的填補(bǔ)。
(5)可以根據(jù)實(shí)際需要,在網(wǎng)絡(luò)訓(xùn)練的時(shí)候可以人為控制訓(xùn)練的次數(shù)及精度,避免了不必要的計(jì)算冗余。
(6)在面上取點(diǎn)時(shí),本方法根據(jù)孔洞邊界點(diǎn)的密度對(duì)孔洞區(qū)域進(jìn)行重采樣,保證了孔洞填補(bǔ)區(qū)域與邊界的連續(xù)性。
(7)本方法對(duì)孔洞初步重采樣點(diǎn),根據(jù)重采樣點(diǎn)的曲率,在曲率大的點(diǎn)附近添加采樣點(diǎn),使得孔洞在曲率變化大的地方,填補(bǔ)的點(diǎn)更多,相比較一般的均勻填補(bǔ)算法,更能表現(xiàn)出點(diǎn)云的特征,所填補(bǔ)的孔洞更光滑。
圖1是逆向工程流程圖。
圖2是光柵式三維掃描系統(tǒng)組成圖。
圖3是算法整體流程圖。
圖4是含有標(biāo)志點(diǎn)孔洞的實(shí)物圖。
圖5是選取標(biāo)志點(diǎn)周?chē)鷺颖军c(diǎn)集的立方體示意圖。
圖6是選取k鄰域點(diǎn)集示意圖。
圖7是曲率函數(shù)求解圖。
圖8是根據(jù)曲率增加采樣點(diǎn)示意圖。
圖9是根據(jù)曲率增加采樣點(diǎn)的算法流程圖。
圖10是最終補(bǔ)孔的正面效果圖。
圖11是最終補(bǔ)孔的另一個(gè)角度的效果圖。
具體實(shí)施例方式 一種三維掃描點(diǎn)云中基于神經(jīng)網(wǎng)絡(luò)的標(biāo)志點(diǎn)孔洞的填補(bǔ)方法 第一步對(duì)于維納斯頭像表面粘貼的標(biāo)志點(diǎn)形成的孔洞,在三維掃描點(diǎn)云中,獲取孔洞周?chē)臉颖军c(diǎn)集時(shí),根據(jù)標(biāo)志點(diǎn)的三維坐標(biāo)(xb,yb,zb),將以標(biāo)志點(diǎn)為中心的立方體內(nèi)的數(shù)據(jù)點(diǎn)作為補(bǔ)孔的樣本點(diǎn)Ps(s=0,1,…,t),立方體的8個(gè)頂點(diǎn)分別是(xb-r,yb-r,zb-r),(xb-r,yb-r,zb+r),(xb-r,yb+r,zb-r),(xb-r,yb+r,zb+r),(xb+r,yb-r,zb-r),(xb+r,yb-r,zb+r),(xb+r,yb+r,zb-r),(xb+r,yb+r,zb+r),其中r是所取的域值,為了獲取合適的樣本點(diǎn)集,取標(biāo)志點(diǎn)的半徑的1.2~1.5倍; 第二步根據(jù)樣本點(diǎn)數(shù)據(jù)Ps,訓(xùn)練補(bǔ)孔的神經(jīng)網(wǎng)絡(luò),用于填補(bǔ)孔洞的神經(jīng)網(wǎng)絡(luò)為三層的反向傳播神經(jīng)網(wǎng)絡(luò),其輸入層為2個(gè)神經(jīng)元,分別對(duì)應(yīng)樣本數(shù)據(jù)的x坐標(biāo)值和y坐標(biāo)值,隱層為m個(gè)神經(jīng)元,輸出層為1個(gè)神經(jīng)元且對(duì)應(yīng)樣本數(shù)據(jù)的z坐標(biāo)值,隱層和輸出層的激勵(lì)函數(shù)分別是雙曲正切S形函數(shù)和線(xiàn)性函數(shù)g(x)=x,并應(yīng)用Levenberg-Marquardt算法訓(xùn)練反向傳播網(wǎng)絡(luò),隱層神經(jīng)元數(shù)目m選取20,網(wǎng)絡(luò)訓(xùn)練的步長(zhǎng)取2000,訓(xùn)練精度取0.001,通過(guò)訓(xùn)練得到補(bǔ)孔的神經(jīng)網(wǎng)絡(luò)net; 第三步在得到神經(jīng)網(wǎng)絡(luò)net后,沿x和y方向等步長(zhǎng)選取重采樣點(diǎn),為了使殘缺區(qū)域重采的密度與其周?chē)鷶?shù)據(jù)保持一致,先計(jì)算每個(gè)樣本點(diǎn)在xoy平面投影的點(diǎn)與其余點(diǎn)在xoy平面投影的點(diǎn)的最小距離di,再用所有最近距離的均值作為重采步長(zhǎng)L,重采樣的范圍是區(qū)間(xmin, xmax),(ymin,ymax),其中xmin、xmax是樣本點(diǎn)的坐標(biāo)x的最小值和最大值,ymin、ymax是樣本點(diǎn)的坐標(biāo)y的最小值和最大值,重采點(diǎn)的總數(shù)為
其中
表示向下取整,重采樣點(diǎn)的x坐標(biāo)值從xmin開(kāi)始以步長(zhǎng)L等距增加直至
重采樣點(diǎn)的y坐標(biāo)值從ymin開(kāi)始以步長(zhǎng)L等距增加直至
將重采樣的點(diǎn)的x坐標(biāo)值和y坐標(biāo)值作為神經(jīng)網(wǎng)絡(luò)的輸入,就可以得到重采樣點(diǎn)z坐標(biāo)值,進(jìn)而得到所有重采樣點(diǎn)Qs(s=0,1,…n-1); 第四步根據(jù)重采樣點(diǎn)Qs(s=0,1,…n-1)的曲率添加采樣點(diǎn),求取離散空間點(diǎn)曲率的時(shí)候,將所有重采樣點(diǎn)投影到xoy平面,由第三步可知,所有投影點(diǎn)沿x和y方向以間距L等間距分布,取所求點(diǎn)在xoy平面上的5×5鄰域內(nèi)的點(diǎn)作為鄰域點(diǎn),除去本身共24個(gè)點(diǎn),作為所求點(diǎn)的k鄰域K(Qs),S(Qs)為重采樣點(diǎn)Qs的k個(gè)鄰近點(diǎn)最小二乘擬合平面,令
為重采樣點(diǎn)Qs的k個(gè)鄰近點(diǎn)集合K(Qs)的形心,稱(chēng)為重采樣點(diǎn)Qs的中心點(diǎn),該中心點(diǎn)為 設(shè)重采樣點(diǎn)Qs的第j個(gè)鄰近點(diǎn)到最小二乘平面S(Qs)的距離為dj,到
的距離為λj,那么對(duì)重采樣點(diǎn)Qs的第j個(gè)點(diǎn)存在函數(shù)fj(Qs),該函數(shù)fj(Qs)為 那么重采樣點(diǎn)Qs的曲率函數(shù)可以表示為 根據(jù)曲率函數(shù)f(Qs)求出所有重采樣點(diǎn)的曲率ρs(s=0,1,…,n-1),根據(jù)給定的曲率域值ρτ,ρτ取0.1,取曲率大于ρτ的重采樣點(diǎn),得到大曲率點(diǎn),然后在大曲率點(diǎn)的四周增加采樣點(diǎn),采取的策略是,將所有重采樣點(diǎn)投影到xoy平面上,假設(shè)有大曲率點(diǎn)在xoy平面上投影點(diǎn)的坐標(biāo)是(xρ,yρ),查看它沿x和y方向相鄰的四的投影點(diǎn)(xρ-L,yρ),(xρ+L,yρ),(xρ,yρ-L),(xρ,yρ+L),若其中也有大曲率點(diǎn),則在大曲率點(diǎn)之間等距增加兩個(gè)重采樣點(diǎn),不失一般性,假設(shè)投影到(xρ+L,yρ)坐標(biāo)的點(diǎn)為大曲率點(diǎn),則增加
兩點(diǎn),其余不是大曲率點(diǎn)的方向上,增加一點(diǎn),如上面所述的投影到(xρ-L,yρ),(xρ,yρ-L),(xρ,yρ+L)的三點(diǎn)不是大曲率點(diǎn),則增加
三點(diǎn),針對(duì)所有大曲率點(diǎn)采用以上策略補(bǔ)點(diǎn),最后將所有補(bǔ)的點(diǎn)的x和y坐標(biāo)值輸入第二步得到的神經(jīng)網(wǎng)絡(luò)net中,求的z坐標(biāo)值,這樣就得到了根據(jù)曲率增加的所有的重采樣點(diǎn),連同第三步中得到的重采樣點(diǎn),得到最終的重采樣點(diǎn)Qs′(s=0,1,…,n-1,…,n+l-1); 第五步將最終的重采樣點(diǎn)中與三維掃描點(diǎn)云中最近點(diǎn)的距離小于0.5d3D的重采樣點(diǎn)舍棄,把剩余的采樣點(diǎn)加到三維掃描點(diǎn)云中,完成標(biāo)志點(diǎn)孔洞的填補(bǔ),其中d3D為三維掃描點(diǎn)云的密度,d3D設(shè)置為點(diǎn)云的各點(diǎn)與周?chē)c(diǎn)的最小距離的平均值。
下面參照附圖,對(duì)本發(fā)明加以詳細(xì)描述 在逆向工程中,考慮到測(cè)量數(shù)據(jù)量大而散亂,含噪聲非線(xiàn)性強(qiáng)的特點(diǎn)和神經(jīng)網(wǎng)絡(luò)技術(shù)對(duì)這類(lèi)數(shù)據(jù)處理上的優(yōu)勢(shì),對(duì)于標(biāo)志點(diǎn)形成的各種復(fù)雜曲面形狀的孔洞,我們引入神經(jīng)網(wǎng)絡(luò)(neural network)技術(shù)對(duì)測(cè)量中的孔洞進(jìn)行修補(bǔ),神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的泛函數(shù)逼近能力,三層前向網(wǎng)絡(luò)能以任意精度逼近任意連續(xù)函數(shù)及其各階導(dǎo)數(shù)。采用神經(jīng)網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)的基于樣條基函數(shù)的曲面擬合方法,將表示曲面的映射關(guān)系存儲(chǔ)于神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值中,這種全息式的信息存儲(chǔ)模式,使得模型具有較強(qiáng)的容錯(cuò)性能和聯(lián)想能力,不會(huì)因?yàn)椴糠稚窠?jīng)元受損而嚴(yán)重影響其總體性能;也不會(huì)因?yàn)檩斎胄盘?hào)受到一定程度噪聲的污染而嚴(yán)重歪曲輸出,具有魯棒性??傮w算法流程見(jiàn)圖3。
本發(fā)明主要涉及以下四方面的內(nèi)容 1)標(biāo)志點(diǎn)孔洞周?chē)臉颖军c(diǎn)集的獲取及神經(jīng)網(wǎng)絡(luò)的訓(xùn)練 對(duì)于維納斯頭像表面粘貼的標(biāo)志點(diǎn)形成的孔洞,見(jiàn)圖4,在三維掃描點(diǎn)云中,獲取孔洞周?chē)臉颖军c(diǎn)集時(shí),根據(jù)標(biāo)志點(diǎn)的三維坐標(biāo)(xb,yb,zb),將以標(biāo)志點(diǎn)為中心的立方體內(nèi)的數(shù)據(jù)點(diǎn)作為補(bǔ)孔的樣本點(diǎn)Ps,其中s=0,1,…,t,立方體的8個(gè)頂點(diǎn)的三維坐標(biāo)分別是(xb-r,yb-r,zb-r),(xb-r,yb-r,zb+r),(xb-r,yb+r,zb-r),(xb-r,yb+r,zb+r),(xb+r,yb-r,zb-r),(xb+r,yb-r,zb+r),(xb+r,yb+r,zb-r),(xb+r,yb+r,zb+r),其中r是所取的域值,取標(biāo)志點(diǎn)的半徑的1.2~1.5倍,見(jiàn)圖5。
根據(jù)樣本點(diǎn)集Ps,訓(xùn)練補(bǔ)孔的神經(jīng)網(wǎng)絡(luò),運(yùn)用matlab的神經(jīng)網(wǎng)絡(luò)工具箱建立BP神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)為三層,輸入層為2個(gè)神經(jīng)元,分別對(duì)應(yīng)樣本數(shù)據(jù)的x坐標(biāo)值和y坐標(biāo)值,隱層為m個(gè)神經(jīng)元,輸出層為1個(gè)神經(jīng)元,對(duì)應(yīng)樣本數(shù)據(jù)的z坐標(biāo)值,隱層和輸出層的激勵(lì)函數(shù)分別是雙曲正切S形函數(shù)和線(xiàn)性函數(shù)g(x)=x,并應(yīng)用Levenberg-Marquardt算法訓(xùn)練BP網(wǎng)絡(luò),隱層神經(jīng)元數(shù)目m取20,網(wǎng)絡(luò)訓(xùn)練的步長(zhǎng)取2000,訓(xùn)練精度取0.001,通過(guò)訓(xùn)練得到補(bǔ)孔的神經(jīng)網(wǎng)絡(luò)net。
2)補(bǔ)孔數(shù)據(jù)的重采樣以及按曲率調(diào)整 重采樣的策略是在得到神經(jīng)網(wǎng)絡(luò)net后,沿x和y方向等步長(zhǎng)選取重采樣點(diǎn),為了使殘缺區(qū)域重采樣的密度與其周?chē)鷶?shù)據(jù)保持一致,按照以下方法計(jì)算重采樣步長(zhǎng)先計(jì)算每個(gè)樣本點(diǎn)在xoy平面投影的點(diǎn)與其余點(diǎn)在xoy平面投影的點(diǎn)的最小距離di,再用所有最近距離的均值作為重采步長(zhǎng)L, 重采樣的范圍是區(qū)間(xmin,xmax),(ymin,ymax),其中xmin、xmax是樣本點(diǎn)的坐標(biāo)x的最小值和最大值,ymin、ymax是樣本點(diǎn)的坐標(biāo)y的最小值和最大值,根據(jù)重采樣范圍和重采樣步長(zhǎng),得重采樣點(diǎn)的總數(shù)為
其中
表示向下取整,重采樣點(diǎn)的x坐標(biāo)值從xmin開(kāi)始以步長(zhǎng)L等距增加直至
重采樣點(diǎn)的y坐標(biāo)值從ymin開(kāi)始以步長(zhǎng)L等距增加直至
將重采樣的點(diǎn)的x坐標(biāo)值和y坐標(biāo)值作為神經(jīng)網(wǎng)絡(luò)的輸入,就可以得到重采樣點(diǎn)z坐標(biāo)值,進(jìn)而得到所有重采樣點(diǎn)Qs(s=0,1,…n-1)。
對(duì)初步的重采樣點(diǎn),按照曲率進(jìn)行調(diào)整,在曲率變化比較大的地方,增加一些采樣點(diǎn),更光滑的填補(bǔ)孔洞。
重采樣點(diǎn)Qs曲率的計(jì)算,應(yīng)用求空間離散點(diǎn)曲率的方法,先求點(diǎn)的k鄰域K(Qs),由于重采樣的時(shí)候是沿x和y方向等距采樣的,因此所有重采樣點(diǎn)的投影點(diǎn)沿x和y方向以間距L等間距分布,取所求點(diǎn)在xoy平面上的5×5鄰域內(nèi)的點(diǎn)作為鄰域點(diǎn),見(jiàn)圖6,除去自身共24個(gè)點(diǎn),作為所求點(diǎn)的k個(gè)鄰近點(diǎn)集合K(Qs),再擬合重采樣點(diǎn)Qs的k鄰域最小二乘擬合平面S(Qs),令
為重采樣點(diǎn)Qs的k個(gè)鄰近點(diǎn)集合K(Qs)的形心,稱(chēng)為重采樣點(diǎn)Qs的中心點(diǎn),該中心點(diǎn)為 設(shè)重采樣點(diǎn)Qs的第j個(gè)鄰近點(diǎn)到最小二乘平面S(Qs)的距離為dj,到
的距離為λj,見(jiàn)圖7,那么對(duì)重采樣點(diǎn)Qs的第j個(gè)點(diǎn)存在函數(shù)fj(Qs),該函數(shù)fj(Qs)為 那么重采樣點(diǎn)Qs的曲率函數(shù)可以表示為 根據(jù)曲率函數(shù)f(Qs)求出所有重采樣點(diǎn)的曲率ρs(s=0,1,…,n-1)。
得到所有采樣點(diǎn)的曲率后,根據(jù)給定的曲率域值ρτ,ρτ取0.1,取曲率大于ρτ的重采樣點(diǎn),得到大曲率點(diǎn),然后在大曲率點(diǎn)的四周增加采樣點(diǎn),采取的策略是,將所有重采樣點(diǎn)投影到xoy平面上,假設(shè)有大曲率點(diǎn)在xoy平面上投影點(diǎn)的坐標(biāo)是(xρ,yρ),查看它沿x和y方向相鄰的四的投影點(diǎn)(xρ-L,yρ),(xρ+L,yρ),(xρ,yρ-L),(xρ,yρ+L),若其中也有大曲率點(diǎn),則在大曲率點(diǎn)之間等距增加兩個(gè)重采樣點(diǎn),不失一般性,假設(shè)投影到(xρ+L,yρ)坐標(biāo)的點(diǎn)為大曲率點(diǎn),則增加
兩點(diǎn),其余不是大曲率點(diǎn)的方向上,增加一點(diǎn),如上面所述的投影到(xρ-L,yρ),(xρ,yρ-L),(xρ,yρ+L)的三點(diǎn)不是大曲率點(diǎn),則增加
三點(diǎn),見(jiàn)圖8,針對(duì)所有大曲率點(diǎn)采用以上策略補(bǔ)點(diǎn),最后將所有補(bǔ)的點(diǎn)的x和y坐標(biāo)值輸入已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)net中,求得z坐標(biāo)值,這樣就得到了根據(jù)曲率增加的所有的重采樣點(diǎn),加上開(kāi)始求得的重采樣點(diǎn)集Qs,得到最終的重采樣點(diǎn)集Qs′(s=0,1,…,n-1,…,n+l-1),(其中前n個(gè)點(diǎn)即為初步的重采樣點(diǎn)集Qs,后面l個(gè)點(diǎn)為根據(jù)曲率自適應(yīng)增加的采樣點(diǎn))。根據(jù)曲率增加點(diǎn)的算法流程圖見(jiàn)圖9。
3)最終填補(bǔ)孔洞點(diǎn)的確定 由于重采樣的范圍是由樣本點(diǎn)集確定的,因此如果直接將最終的重采樣點(diǎn)加入原始的點(diǎn)云,在孔洞的邊界區(qū)域會(huì)有重疊區(qū),為了避免加入冗余點(diǎn),將最終的重采樣點(diǎn)中與三維掃描點(diǎn)云中最近點(diǎn)的距離小于0.5d3D的重采樣點(diǎn)舍棄,把剩余的重采樣點(diǎn)加到三維掃描點(diǎn)云中,完成標(biāo)志點(diǎn)孔洞的填補(bǔ),其中d3D為三維掃描點(diǎn)云的密度,d3D設(shè)置為點(diǎn)云的各點(diǎn)與周?chē)c(diǎn)的最小距離的平均值。最終補(bǔ)孔后的點(diǎn)云,圖10為正面效果圖,圖11為另一個(gè)角度的效果圖,兩副圖中的矩形框區(qū)域?yàn)檠a(bǔ)孔的區(qū)域。
權(quán)利要求
1.一種三維掃描點(diǎn)云中基于神經(jīng)網(wǎng)絡(luò)的標(biāo)志點(diǎn)孔洞的填補(bǔ)方法,其特征在于
第一步對(duì)于物體表面粘貼的標(biāo)志點(diǎn)形成的孔洞,在三維掃描點(diǎn)云中,獲取孔洞周?chē)臉颖军c(diǎn)集時(shí),根據(jù)標(biāo)志點(diǎn)的三維坐標(biāo)(xb,yb,zb),將以標(biāo)志點(diǎn)為中心的立方體內(nèi)的數(shù)據(jù)點(diǎn)作為補(bǔ)孔的樣本點(diǎn)Ps,其中s=0,1,…,t,立方體的8個(gè)頂點(diǎn)的三維坐標(biāo)分別是(xb-r,yb-r,zb-r),(xb-r,yb-r,zb+r),(xb-r,yb+r,zb-r),(xb-r,yb+r,zb+r),(xb+r,yb-r,zb-r),(xb+r,yb-r,zb+r),(xb+r,yb+r,zb-r),(xb+r,yb+r,zb+r),其中r是所取的域值,取標(biāo)志點(diǎn)的半徑的1.2~1.5倍
第二步根據(jù)樣本點(diǎn)數(shù)據(jù)Ps,訓(xùn)練補(bǔ)孔的神經(jīng)網(wǎng)絡(luò),用于填補(bǔ)孔洞的神經(jīng)網(wǎng)絡(luò)為三層的反向傳播神經(jīng)網(wǎng)絡(luò),其輸入層為2個(gè)神經(jīng)元,分別對(duì)應(yīng)樣本數(shù)據(jù)的x坐標(biāo)值和y坐標(biāo)值,隱層為m個(gè)神經(jīng)元,輸出層為1個(gè)神經(jīng)元且對(duì)應(yīng)樣本數(shù)據(jù)的z坐標(biāo)值,隱層和輸出層的激勵(lì)函數(shù)分別是雙曲正切S形函數(shù)和線(xiàn)性函數(shù)g(x)=x,并應(yīng)用Levenberg-Marquardt算法訓(xùn)練反向傳播網(wǎng)絡(luò),隱層神經(jīng)元數(shù)目m選取20,通過(guò)訓(xùn)練得到補(bǔ)孔的神經(jīng)網(wǎng)絡(luò)net;
第三步在得到神經(jīng)網(wǎng)絡(luò)net后,沿x和y方向等步長(zhǎng)選取重采樣點(diǎn),為了使殘缺區(qū)域重采的密度與其周?chē)鷶?shù)據(jù)保持一致,計(jì)算所有樣本點(diǎn)Ps,其中s=0,1,…,t,在xoy平面投影的點(diǎn)與周?chē)c(diǎn)的最小距離的平均距離作為重采樣的步長(zhǎng)L,重采樣的范圍是區(qū)間(xmin,xmax),(ymin,ymax),其中xmin、xmax是樣本點(diǎn)的坐標(biāo)x的最小值和最大值,ymin、ymax是樣本點(diǎn)的坐標(biāo)y的最小值和最大值,重采點(diǎn)的總數(shù)為
其中「·
表示向下取整,重采樣點(diǎn)的x坐標(biāo)值從xmin開(kāi)始以步長(zhǎng)L等距增加直至
重采樣點(diǎn)的y坐標(biāo)值從ymin開(kāi)始以步長(zhǎng)L等距增加直至
將重采樣的點(diǎn)的x坐標(biāo)值和y,坐標(biāo)值作為神經(jīng)網(wǎng)絡(luò)的輸入,就可以得到重采樣點(diǎn)z坐標(biāo)值,進(jìn)而得到所有重采樣點(diǎn);
第四步根據(jù)重采樣點(diǎn)的曲率添加采樣點(diǎn),求取離散空間點(diǎn)曲率的時(shí)候,將所有重采樣點(diǎn)投影到xoy平面,由第三步可知,所有投影點(diǎn)沿x和y方向以間距L,等間距分布,取所求點(diǎn)在xoy平面上的5×5鄰域內(nèi)的點(diǎn)作為鄰域點(diǎn),除去本身共24個(gè)點(diǎn),作為所求點(diǎn)的k鄰域,根據(jù)已有方法求出所有重采樣點(diǎn)的曲率ρs,其中s=0,1,…,n-1,根據(jù)給定的曲率域值ρτ,ρτ取0.1,取曲率大于ρτ的重采樣點(diǎn),得到大曲率點(diǎn),然后在大曲率點(diǎn)的四周增加采樣點(diǎn),采取的策略是,將所有重采樣點(diǎn)投影到xoy平面上,假設(shè)有大曲率點(diǎn)在xoy平面上投影點(diǎn)的坐標(biāo)是(xρ,yρ),查看它沿x和y方向相鄰的四個(gè)投影點(diǎn)(xρ-L,yρ),(xρ+L,yρ),(xρ,yρ-L),(xρ,yρ+L),若其中也有大曲率點(diǎn),則在大曲率點(diǎn)之間等距增加兩個(gè)重采樣點(diǎn),不失一般性,假設(shè)投影到(xρ+L,yρ)坐標(biāo)的點(diǎn)為大曲率點(diǎn),則增加
兩點(diǎn),其余不是大曲率點(diǎn)的方向上,增加一點(diǎn),如上面所述的投影到(xρ-L,yρ),(xρ,yρ-L),(xρ,yρ+L)的三點(diǎn)不是大曲率點(diǎn),則增加
三點(diǎn),針對(duì)所有大曲率點(diǎn)采用以上策略補(bǔ)點(diǎn),最后將所有補(bǔ)的點(diǎn)的x和y坐標(biāo)值輸入第二步得到的神經(jīng)網(wǎng)絡(luò)net中,求的z坐標(biāo)值,這樣就得到了根據(jù)曲率增加的所有的重采樣點(diǎn),連同第三步中得到的重采樣點(diǎn),得到最終的重采樣點(diǎn);
第五步將最終的重采樣點(diǎn)中與三維掃描點(diǎn)云中最近點(diǎn)的距離小于0.5d3D的重采樣點(diǎn)舍棄,把剩余的重采樣點(diǎn)加到三維掃描點(diǎn)云中,完成標(biāo)志點(diǎn)孔洞的填補(bǔ),其中d3D為三維掃描點(diǎn)云的密度,d3D設(shè)置為點(diǎn)云的各點(diǎn)與周?chē)c(diǎn)的最小距離的平均值。
全文摘要
本發(fā)明提供一種能夠保證填補(bǔ)的孔洞數(shù)據(jù)與周?chē)鷶?shù)據(jù)連續(xù)并且點(diǎn)云特征表示更好的基于神經(jīng)網(wǎng)絡(luò)的三維掃描的點(diǎn)云孔洞填補(bǔ)方法,本發(fā)明具有方法簡(jiǎn)單的優(yōu)點(diǎn)。本發(fā)明主要用于對(duì)三維掃描系統(tǒng)中由標(biāo)志點(diǎn)產(chǎn)生的各種復(fù)雜曲面形狀的孔洞進(jìn)行填補(bǔ)的應(yīng)用場(chǎng)合。利用本發(fā)明中的神經(jīng)網(wǎng)絡(luò)方法,可以得到填補(bǔ)孔洞的網(wǎng)絡(luò),隨后根據(jù)孔洞邊界點(diǎn)的密度,在孔洞區(qū)域取采樣點(diǎn),并根據(jù)點(diǎn)的曲率進(jìn)一步調(diào)整補(bǔ)孔的點(diǎn),達(dá)到對(duì)孔洞的光滑填充。
文檔編號(hào)G06N3/02GK101127123SQ20071013211
公開(kāi)日2008年2月20日 申請(qǐng)日期2007年9月11日 優(yōu)先權(quán)日2007年9月11日
發(fā)明者達(dá)飛鵬, 谷繼兵, 蓋紹彥, 朱正鍵, 楊偉光 申請(qǐng)人:東南大學(xué)