專利名稱:三維掃描系統(tǒng)中截線云的曲線構(gòu)造方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用三維掃描系統(tǒng)對物體建立點云模型過程中由離散點構(gòu)造曲線的一種方法,尤其涉及一種三維掃描系統(tǒng)中截線云的曲線構(gòu)造方法。
背景技術(shù):
逆向工程在實踐中有著廣泛的應(yīng)用前景。主要是由于不少產(chǎn)品外形復(fù)雜,如汽車和飛機的覆蓋件、人造假肢、陶瓷產(chǎn)品、藝術(shù)雕塑品及各種復(fù)雜零部件等,其自由曲面的設(shè)計表達或數(shù)學(xué)模型的建立都十分困難,現(xiàn)有的CAD系統(tǒng)尚難以進行嚴格的幾何描述。特別是對于我們發(fā)展中國家,怎樣在國外的先進產(chǎn)品的基礎(chǔ)上進行適當(dāng)和必要的修改以便快速高效的得到有自主知識產(chǎn)權(quán)的產(chǎn)品投放市場,對于節(jié)省費用,縮短研發(fā)周期,提高競爭力和減少風(fēng)險有著非常重要的意義。
在逆向工程中,一般是通過三坐標測量機(CMM)、激光測量機、光柵掃描儀或工業(yè)CT等先進的快速測量系統(tǒng)獲取海量數(shù)據(jù)點(點云),然后對這些點云數(shù)據(jù)的過濾處理和無縫拼接,由拼接后的點云塊進行切割得到截線云,再在點或線的基礎(chǔ)上構(gòu)造面,從而獲得物體的數(shù)字模型。通過得到截線云構(gòu)造特征曲線,然后再由特征曲線構(gòu)造出曲面,以得到物體的數(shù)字模型。而曲線質(zhì)量的好壞及其對原始數(shù)據(jù)的還原程度將極大地影響所構(gòu)建曲面的質(zhì)量和對原始物體的還原程度。因此通過截線云離散點生成曲線是逆向工程中非常關(guān)鍵的承上啟下的一環(huán),直接影響重構(gòu)成功與否和CAD模型的質(zhì)量,對其后續(xù)環(huán)節(jié)起著非常關(guān)鍵的制約作用。
目前,關(guān)于點生成曲線在計算機上有力表示的算法理論方面取得了很大的進展,已發(fā)表了相當(dāng)數(shù)量的文獻,其中一些算法獲得了較為廣泛的應(yīng)用,主要有Bezier,均勻B樣條,NURBS等曲線算法。但這幾種方法是把已知點作為控制點,由這些點生成的樣條曲線是對它們的逼近而不是插值。而逆向工程的一個要求就是精確還原原始物體特征。因此我們應(yīng)讓生成的曲線插值于測量點,也就是說把這些測量得到的點作為型值點。另外由于快速測量系統(tǒng)實際測量獲得的是海量離散數(shù)據(jù)點,數(shù)據(jù)量非常大,因此如何快速的將大量的散亂點數(shù)據(jù)轉(zhuǎn)化為表達能力更強而數(shù)據(jù)量卻大大減少的線信息,且其對原始數(shù)據(jù)的還原程度和所構(gòu)建曲面的質(zhì)量和對原始物體的還原程度影響較小是關(guān)鍵。
發(fā)明內(nèi)容
本發(fā)明提供一種能夠保持精確度且能加快由散亂點數(shù)據(jù)轉(zhuǎn)化為表達能力更強而數(shù)據(jù)量卻大大減少的線信息的速度的三維掃描系統(tǒng)中截線云的曲線構(gòu)造方法。
本發(fā)明采用如下技術(shù)方案一種用于對預(yù)處理后的點云進行處理的三維掃描系統(tǒng)中截線云的曲線構(gòu)造方法(1)對預(yù)處理后的點云進行平行切割,得到N個平行截面,再在每個平行截面的上方和下方分別對點云實施平行切割,得到N個含有平行截面的截體,將各個截體內(nèi)的點云上的點向該截體內(nèi)的平行截面進行垂直投影,并將該截體內(nèi)平行截面點的垂直投影視為截體內(nèi)平行截面與點云的截點,由各個截體內(nèi)平行截面與點云的截點分別構(gòu)成N條鏈條,在各個截體內(nèi)的截點中分別選出一組處理點,該處理點是滿足以下條件的截點,該條件為兩處理點間的距離為點云內(nèi)相鄰兩點之間的間距或其整數(shù)倍,由此得到的N組處理點即為截線云;(2)以連續(xù)的4~5個型值點為一組,將n個型值點分成k組型值點,由第一組的型值點按照Bezier曲線的定義生成第一組的控制點并由控制點生成第一條曲線;以后各條曲線的第一個控制點由型值點按照Bezier曲線的定義生成,第二個控制點由前一條曲線的最后兩個控制點和當(dāng)前曲線的第一個控制點按照Bezier曲線的定義生成,其余控制點由型值點按照Bezier曲線的定義生成,連接點的切線由前一條曲線的最后兩個型值點和當(dāng)前曲線的前兩個型值點產(chǎn)生;(3)重復(fù)步驟(2)直到求出所有截線云的控制點,然后根據(jù)控制點構(gòu)造出曲線。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點本發(fā)明主要用于對三維掃描系統(tǒng)得到物體表面海量離散數(shù)據(jù)點數(shù)據(jù)轉(zhuǎn)化為表達能力更強而數(shù)據(jù)量卻大大減少的線信息的應(yīng)用場合。利用本發(fā)明中截線云的獲取方法,然后再逐條處理截線云數(shù)據(jù),利用本發(fā)明中的曲線構(gòu)造算法,構(gòu)建出被測物體的輪廓曲線模型。該方法主要有以下優(yōu)點(1)本發(fā)明主要針對三維掃描系統(tǒng)得到的原始點云模型,不需要任何的網(wǎng)格化處理,適應(yīng)性廣,速度快;(2)可以交互選擇平行切割點云的方向,能盡量使得其方向沿著某一方向的特征線,大大提高了還原原始物體的精確度;(3)平行切割獲取截線云不但使以后的截線云排序時間大大減少,而且通過取截線云使得三維空間的處理變成了共面的處理,為以后調(diào)節(jié)曲線處理提供巨大方便,避免三維調(diào)節(jié)曲線的復(fù)雜性;(4)由型值點反求控制點生成曲線的效率好壞主要取決于矩陣求逆。而本發(fā)明提出的反求算法大大降低了矩陣的階,因此也降低了算法的復(fù)雜性,使型值點反求控制點生成曲線呈現(xiàn)很高的效率;(5)操作過程比較簡單,平行截面的間距可采取默認值或者交互確定,接下來的的步驟都可自動完成,速度快,并且該方法具有很強的通用性。
圖1是逆向工程流程圖。
圖2光柵式三維掃描系統(tǒng)組成圖。
圖3是獲取截線云并構(gòu)造曲線算法的整體流程圖。
圖4是獲取截線云算法的流程圖。
圖5是構(gòu)造曲線的算法流程圖。
圖6是經(jīng)過預(yù)處理的小熊模型點云數(shù)據(jù)圖形。
圖7是給定平行面間距d=4.0情況下求得的截線云數(shù)據(jù)圖形。
圖8是從附圖7中的截線云數(shù)據(jù)抽取出的一段數(shù)據(jù)鏈條圖形。
圖9是從附圖8中的個點連接成一條圓滑的曲線。
具體實施例方式
實施例1一種用于對預(yù)處理后的點云進行處理的三維掃描系統(tǒng)中截線云的曲線構(gòu)造方法(1)對預(yù)處理后的點云進行平行切割,得到N個平行截面,再在每個平行截面的上方和下方分別對點云實施平行切割,得到N個含有平行截面的截體,將各個截體內(nèi)的點云上的點向該截體內(nèi)的平行截面進行垂直投影,并將該截體內(nèi)平行截面點的垂直投影視為截體內(nèi)平行截面與點云的截點,由各個截體內(nèi)平行截面與點云的截點分別構(gòu)成N條鏈條,在各個截體內(nèi)的截點中分別選出一組處理點,該處理點是滿足以下條件的截點,該條件為兩處理點間的距離為點云內(nèi)相鄰兩點之間的間距或其整數(shù)倍,由此得到的N組處理點即為截線云;(2)以連續(xù)的4~5個型值點為一組,將n個型值點分成k組型值點,由第一組的型值點按照Bezier曲線的定義生成第一組的控制點并由控制點生成第一條曲線;以后各條曲線的第一個控制點由型值點按照Bezier曲線的定義生成,第二個控制點由前一條曲線的最后兩個控制點和當(dāng)前曲線的第一個控制點按照Bezier曲線的定義生成,其余控制點由型值點按照Bezier曲線的定義生成,連接點的切線由前一條曲線的最后兩個型值點和當(dāng)前曲線的前兩個型值點產(chǎn)生;(3)重復(fù)步驟(2)直到求出所有截線云的控制點,然后根據(jù)控制點構(gòu)造出曲線。
實施例2為了能精確還原原始物體特征,在由截線云構(gòu)造曲線的過程中,根據(jù)Bezier曲線提出一種新的由型值點反求控制點的方法。它把由k個低階的Bezer曲線拼合產(chǎn)生的復(fù)合曲線來代替單一的高階Bezier曲線,避開高階矩陣的求逆問題。
因此,本發(fā)明主要涉及以下兩方面的內(nèi)容1)截線云的獲取在點云預(yù)處理之后,通過旋轉(zhuǎn)平移選好角度后,給定一系列平行面,求得物體(實際上是物體表面上的海量點)在這一截面上的數(shù)據(jù)點。但海量數(shù)據(jù)是離散的,給定某一任意平面,可能沒有(或者只有極個別點)在截面上,為此,我們只能在精度許可范圍內(nèi),盡可能地去接近真實世界,這樣也就產(chǎn)生了如下的算法(算法流程圖如附圖4所示)首先由海量數(shù)據(jù)中任意相鄰的一對點得到一個距離,而由這樣的M(M>100)個距離得到的平均值為d。
(1)對點云進行預(yù)處理,去除雜點之后,通過旋轉(zhuǎn)平移選好切割角度后,給定一系列垂直于特征線的等間距的平行面(間距默認為d的三倍);(2)在給定平行面上下各作一個平行于給定平行面的平行面(其間距均為d),這樣就由派生出來的兩個平行面構(gòu)成一個截體,而我們則把落入這個截體內(nèi)的點在給定平行面上的垂直投影近似作為真實物體上的點落在給定平行面上的點,這樣就得到給定平面與真實物體的交點(截點)。同理,我們也就得到物體在一組平行面上的截點;(3)對這一組平面中的每一個平行面,其上的截點構(gòu)成一條鏈條。設(shè)這組平行面共有N個,則得到N個鏈條;(4)對每一個鏈條進行處理由這些截點得到一組處理點,這些處理點滿足條件A)兩點間的距離為d或者d的整數(shù)倍;B)該點在給定截面(給定截體范圍內(nèi))上下都有臨近的離散點。
(5)對這N個鏈條處理就可以得到N個鏈條的處理點。即得到截線云2)特征曲線的構(gòu)造為了能精確還原原始物體特征,在由截線云構(gòu)造曲線的過程中,根據(jù)Bezier曲線提出一種新的由型值點反求控制點的方法。在逆向工程中由離散三維數(shù)據(jù)點得到的有序線上的型值點個數(shù)可能達到十個甚至幾十個,這樣,求逆的運算量會非常大,對于操作的響應(yīng)時間就很長。根據(jù)Bezier曲線的性質(zhì),我們提出一種把n個型值點按序分成k組型值點(每組4~5個點),由這k組型值點分別求控制點,并加入一定的約束使求出的控制點生成的各條曲線連成的復(fù)合曲線滿足C1的連續(xù)要求。具體如下(1)先把n個型值點按序分成連續(xù)的k組型值點(每組4~5個點);(2)第一組的控制點直接由第一組的型值點按照Bezier曲線的定義生成;具體做法如下根據(jù)如下公式求出第一組型值點的控制點Q0MQiMQn=10Λ0MCn0(1-i/n)nCn1(1-i/n)n-1(i/n)ΛCnn(i-n)nM0Λ01*P0MPiMPn]]>(3)在求第N(N>1)條曲線控制點時,加入約束條件第N(N>1)條曲線的第二個控制點由前一條曲線的最后兩個控制點和當(dāng)前曲線的第一個控制點得到;連接點的切線由前一條曲線的最后兩個型值點和當(dāng)前曲線的前兩個型值點決定。
具體做法如下假設(shè)前一組型值點有s+1個,為Q1i(i=0,1,...,s),第二組型值點有t+1個,為Q2i(i=0,1,...,t),Q1s=Q20。結(jié)合Bezier曲線的定義和性質(zhì),根據(jù)加入的約束條件,對Bezier曲線進行升階,t1=t+1。則有
P1(s-1)Q20MQ2iMQ2tP2(t1-1)=2-10Λ10Λ0Ct10(1-i/t)t1Ct11(1-i/t)t1-1(i/t)ΛCt1t1(i/t)t10Λ01Λ010*P20P21MP2iMP2(t1-1)P2t1]]>根據(jù)上面給出的公式即可求出第N(N>1)條曲線的控制點,其中P1j(j=0,1,...,s)為前一組型值點的控制點,P2j(j=0,1,...,t1)為第二組型值點的控制點。
(4)重復(fù)(2)直到求出所有截線云的控制點,然后根據(jù)控制點構(gòu)造出曲線。
曲線構(gòu)造流程圖如附圖5所示。
根據(jù)上述方法,通過VC++6.0平臺用C++編程實現(xiàn)了對點云平行切割獲取截線云并構(gòu)造曲線的操作。圖6是經(jīng)過預(yù)處理的小熊模型點云數(shù)據(jù)。圖7是默認給定平行面間距為相鄰點間距的三倍情況下求得的截線云數(shù)據(jù)。圖8是從附圖7中的截線云數(shù)據(jù)抽取出的一段數(shù)據(jù)鏈條。圖8是根據(jù)抽取出鏈條數(shù)據(jù)構(gòu)造出的曲線。
權(quán)利要求
1.一種用于對預(yù)處理后的點云進行處理的三維掃描系統(tǒng)中截線云的曲線構(gòu)造方法,其特征在于(1)對預(yù)處理后的點云進行平行切割,得到N個平行截面,再在每個平行截面的上方和下方分別對點云實施平行切割,得到N個含有平行截面的截體,將各個截體內(nèi)的點云上的點向該截體內(nèi)的平行截面進行垂直投影,并將該截體內(nèi)平行截面點的垂直投影視為截體內(nèi)平行截面與點云的截點,由各個截體內(nèi)平行截面與點云的截點分別構(gòu)成N條鏈條,在各個截體內(nèi)的截點中分別選出一組處理點,該處理點是滿足以下條件的截點,該條件為兩處理點間的距離為點云內(nèi)相鄰兩點之間的間距或其整數(shù)倍,由此得到的N組處理點即為截線云;(2)以連續(xù)的4~5個型值點為一組,將n個型值點分成k組型值點,由第一組的型值點按照Bezier曲線的定義生成第一組的控制點并由控制點生成第一條曲線;以后各條曲線的第一個控制點由型值點按照Bezier曲線的定義生成,第二個控制點由前一條曲線的最后兩個控制點和當(dāng)前曲線的第一個控制點按照Bezier曲線的定義生成,其余控制點由型值點按照Bezier曲線的定義生成,連接點的切線由前一條曲線的最后兩個型值點和當(dāng)前曲線的前兩個型值點產(chǎn)生;(3)重復(fù)步驟(2)直到求出所有截線云的控制點,然后根據(jù)控制點構(gòu)造出曲線。
全文摘要
本發(fā)明提出了一種用三維掃描系統(tǒng)對物體建立點云模型過程中獲取截線云并由截線云中離散點構(gòu)造曲線的方法。首先,通過一系列平行面切割預(yù)處理后的點云,通過這些平面與點云數(shù)據(jù)求交得到一系列平行截面數(shù)據(jù),再對這些截面數(shù)據(jù)處理,則得到截線云數(shù)據(jù)。然后根據(jù)獲得的截線云數(shù)據(jù),以連續(xù)的4~5個型值點為一組,將每條截線云上n個型值點分成k組型值點,通過對這k組型值點在加入約束條件的基礎(chǔ)上反求出相應(yīng)的控制點,分別構(gòu)造曲線,再由這k條曲線拼接成一條曲線。最終,通過本發(fā)明提出的方法直接將三維掃描系統(tǒng)得到物體表面海量離散數(shù)據(jù)點數(shù)據(jù)轉(zhuǎn)化為表達能力更強而數(shù)據(jù)量卻大大減少的線信息,不需要進行網(wǎng)格化處理,適應(yīng)性廣,速度快。
文檔編號G06T11/20GK1845176SQ20061003930
公開日2006年10月11日 申請日期2006年4月5日 優(yōu)先權(quán)日2006年4月5日
發(fā)明者達飛鵬, 沈海平, 鄭君立 申請人:東南大學(xué)