田小強(qiáng),孔令富,孔德明,崔永強(qiáng)
(1.燕山大學(xué) 信息科學(xué)與工程學(xué)院,河北 秦皇島 066004;2.燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島 066004;3.根特大學(xué) 通信與信息處理系,比利時(shí) 根特 B-9000)
近年來,隨著現(xiàn)代工業(yè)的不斷發(fā)展,逆向工程在機(jī)械零件加工和復(fù)雜形狀模型構(gòu)建等相關(guān)領(lǐng)域得到了廣泛應(yīng)用。曲面的高精度擬合是逆向工程與加工業(yè)中的核心技術(shù),擬合精度的高低決定產(chǎn)品質(zhì)量好壞,因此在產(chǎn)品制造中,這種技術(shù)顯得愈發(fā)重要。通常情況下絕大多數(shù)機(jī)械零件的外部形狀都可用平面、圓錐面、球面和圓柱面等一些標(biāo)準(zhǔn)面組合加以描述,也就是說由二次曲面構(gòu)建而成的零部件廣泛存在于機(jī)械加工中。在對(duì)這些零部件進(jìn)行生產(chǎn)加工時(shí),如何準(zhǔn)確重構(gòu)二次曲面模型是逆向工程中急需解決的重要問題。王慧等提出了采用B樣條方法中的Bézier方法對(duì)二次曲面模型進(jìn)行擬合,但是該方法只能對(duì)拋物面進(jìn)行精確的擬合,對(duì)其他的二次曲面擬合只能給出近似的結(jié)果,存在較大誤差[1,2]。為了解決上述問題,非均勻有理B樣條(non-uniform rational B-spline,NURBS)方法被提出。NURBS方法是利用非均勻節(jié)點(diǎn)向量表達(dá)式構(gòu)造有理B樣條函數(shù),能夠?qū)?biāo)準(zhǔn)的解析結(jié)構(gòu)和自由型曲面提供統(tǒng)一的數(shù)學(xué)表示,適用于各種自由型曲面及組合式曲面模型的構(gòu)建。NURBS方法在擬合過程中通過調(diào)節(jié)控制點(diǎn)和權(quán)因子來實(shí)現(xiàn)對(duì)各種不同形狀模型的高精度擬合[3]。NURBS方法作為國(guó)際標(biāo)準(zhǔn)化組織ISO頒布的工業(yè)產(chǎn)品幾何定義的STEP標(biāo)準(zhǔn)中自由型曲線曲面的唯一表示方法,在逆向工程中得到了廣泛應(yīng)用[4]。施法中等提出采用二階周期NURBS曲面精確表示球面或橢球面[5,6],該方法通過對(duì)周期曲線進(jìn)行平移、旋轉(zhuǎn)和縮放得到目標(biāo)曲面,所用數(shù)據(jù)量少,擬合過程簡(jiǎn)單,但該方法擬合的精度較低。離散平穩(wěn)小波變換(discrete stationary wavelet transform,DSWT)是一種時(shí)頻分析方法[7,8],具有冗余性和平移不變性的特點(diǎn),目前,在物體邊界的提取上得到了廣泛應(yīng)用[9,10],但在逆向工程的NURBS二次曲面擬合中尚未見研究。因此,本研究引入DSWT方法對(duì)NURBS二次曲面擬合模型的高程序列進(jìn)行處理,得到二次曲面模型高程序列對(duì)應(yīng)的一系列小波細(xì)節(jié)系數(shù)序列并提取出二次曲面的特征點(diǎn);利用提取的特征點(diǎn)實(shí)現(xiàn)高精度NURBS二次曲面擬合。
利用高精度三維掃描儀對(duì)二次曲面模型進(jìn)行掃描,獲取二次曲面模型表面各點(diǎn)在XYZ三維空間內(nèi)的位置信息形成點(diǎn)云數(shù)據(jù)。所形成的這些點(diǎn)云數(shù)據(jù)是不規(guī)則和無序分布。為了便于應(yīng)用離散平穩(wěn)小波變換對(duì)其處理分析,通常將點(diǎn)云數(shù)據(jù)進(jìn)行格網(wǎng)化處理[11]。
首先,對(duì)二次曲面模型點(diǎn)云數(shù)據(jù)搜索在X、Y兩個(gè)方向上的最大值和最小值xmax、xmin、ymax、ymin,從而確定點(diǎn)云數(shù)據(jù)在XY平面上的邊界大小,也就是在XY平面上最大的長(zhǎng)方形或者正方形;然后在對(duì)此區(qū)域沿著X、Y方向進(jìn)行細(xì)化使其劃分為Vm×Vn個(gè)更小的長(zhǎng)方形或者正方形網(wǎng)格。設(shè)長(zhǎng)方形或正方向的長(zhǎng)、寬為Qx、Qy,這樣就可以得到:
Vm=(xmax-xmin)/Qx
(1)
Vn=(ymax-ymin)/Qy
(2)
為使生成的高程圖像分辨率滿足分析要求,構(gòu)建出的網(wǎng)格總數(shù)應(yīng)大于或等于該被分割的二次曲面點(diǎn)云數(shù)據(jù)中所包含的點(diǎn)的總數(shù)。運(yùn)用數(shù)據(jù)插值方法對(duì)高程數(shù)據(jù)進(jìn)行插值處理,得到網(wǎng)格的高程值。將等間距網(wǎng)格作為一幅圖像中的像素點(diǎn),再將網(wǎng)格的高程值作為像素點(diǎn)所處位置的高程值,即獲得二次曲面模型的點(diǎn)云數(shù)據(jù)在XY平面內(nèi)的高程圖像。
圓錐面是二次曲面模型中的一種典型模型,具有相對(duì)規(guī)則的二次曲面與空間軸對(duì)稱特征。因此,本文以圓錐面為例開展離散平穩(wěn)小波變換NURBS二次曲面擬合研究。圓錐面在三維空間的方程為:
(x-64)2+(y-64)2=(40-z)2
(3)
根據(jù)此方程,在三維空間生成的圓錐面仿真點(diǎn)云數(shù)據(jù)如圖1所示。
圖1 圓錐面的仿真點(diǎn)云數(shù)據(jù)
利用2.1節(jié)所述的格網(wǎng)化處理方法,將圓錐面的點(diǎn)云數(shù)據(jù)轉(zhuǎn)化為規(guī)則的離散序列,得到圓錐面點(diǎn)云數(shù)據(jù)在XY平面內(nèi)的高程圖像如圖2所示。
圖2 圓錐面的高程圖像
選取一組規(guī)則的離散序列E[α],其數(shù)學(xué)表達(dá)式為:
(4)
式中:δ[α]表示單位脈沖信號(hào),α∈[0,128];N1=25,N2=65,N3=105。該離散序列所對(duì)應(yīng)的波形如圖3所示。
圖3 離散序列的高程值
本文采用DSWT方法對(duì)圓錐面的離散序列進(jìn)行分析,提取出所包含的高程變化信息。為提取出圓錐面波形中的高程變化信息,采用db1函數(shù)作為DSWT變換的基函數(shù),并選用合適的低通濾波器h和高通濾波器g對(duì)離散序列進(jìn)行平穩(wěn)離散小波變換:
(5)
式中:A和D分別表示通過DSWT變換獲取的一級(jí)小波近似系數(shù)和細(xì)節(jié)系數(shù);?表示卷積運(yùn)算;E為高程值。由離散小波變換的性質(zhì)可知,離散序列E[α]中所包含的高程變化信息存在于其小波細(xì)節(jié)系數(shù)中,數(shù)學(xué)表達(dá)式表示為:
(6)
其波形如圖4所示。
圖4 離散序列的小波細(xì)節(jié)系數(shù)
為了能夠更加準(zhǔn)確地獲取圓錐面邊緣位置信息,按照式(7)對(duì)相鄰兩個(gè)小波細(xì)節(jié)系數(shù)求差值DV[α],其差值分布如圖5所示。
DV[α]=D[α]-D[α-1]
(7)
圖5 相鄰兩個(gè)小波細(xì)節(jié)系數(shù)的差值分布
DSWT變換除具有離散小波變換的快速運(yùn)算能力外,相對(duì)于其它離散小波變換,其還具有冗余和平移不變性。DSWT變換所得的各級(jí)尺度的小波細(xì)節(jié)系數(shù)的信號(hào)長(zhǎng)度均等于原始數(shù)據(jù)的信號(hào)長(zhǎng)度,因此可以通過其相應(yīng)的時(shí)移參數(shù)快速、準(zhǔn)確地確定出其在原始離散序列中所處的位置。對(duì)圖5中圓錐面的相鄰小波細(xì)節(jié)系數(shù)差值分布進(jìn)行分析,圓錐面邊界位置處小波細(xì)節(jié)系數(shù)差值的波形顯示為沖擊信號(hào)。由于DSWT變換采用的是線性濾波器,因此,可根據(jù)沖擊信號(hào)幅值反向解算出圓錐面的高程值。圖5中的沖擊信號(hào)位置M1,M2和M3與圖3中圓錐面的邊界點(diǎn)N1,N2和N3相吻合,因此,可以利用沖擊信號(hào)的位置判斷圓錐面的邊界點(diǎn),并將圓錐面的邊界點(diǎn)作為圓錐面的特征點(diǎn)。
為了使得NURBS二次曲面擬合達(dá)到最佳效果,在離散序列上等間距選取一定量的點(diǎn),然后與2.2節(jié)提取的特征點(diǎn)組成NURBS二次曲面擬合的數(shù)據(jù)點(diǎn),將數(shù)據(jù)點(diǎn)的坐標(biāo)信息反算結(jié)果作為NURBS擬合的控制點(diǎn)。在NURBS擬合過程中通過控制點(diǎn)改變二次曲面的形狀,每個(gè)控制點(diǎn)的位置都會(huì)影響到二次曲面的擬合效果。
一個(gè)(p,q)次的NURBS二次曲面是由多條NURBS曲線在u、v方向上多次構(gòu)建而成的,是由(m+1)×(n+1)個(gè)控制點(diǎn)構(gòu)成的控制網(wǎng)格。NURBS二次曲面的表達(dá)式為[12]:
(8)
式中:CPi,j是二次曲面模型擬合所需要的控制點(diǎn);wi,j為權(quán)因子。Ni,p(u)和Nj,q(v)分別為u向p階和v向q階B樣條基函數(shù),分別由u向和v向的節(jié)點(diǎn)矢量U、V按照德布爾遞推公式計(jì)算。相應(yīng)的節(jié)點(diǎn)矢量為:
(9)
式中:節(jié)點(diǎn)矢量U和節(jié)點(diǎn)矢量V中包含的節(jié)點(diǎn)總個(gè)數(shù)分別為(r+1)和(s+1),r=p+m+1,s=q+n+1。
NURBS二次曲面反算就是指構(gòu)造一張p×q次NURBS二次曲面,使其插值于給定的呈拓?fù)渚匦侮嚵械臄?shù)據(jù)點(diǎn)Qk,l,k=0,1,…,m;l=0,1,…,n。二次曲面反算問題也能像曲線反算那樣,表示成求解未知控制點(diǎn)CPi,j(i=0,1,…,m+p-1;j=0,1,…,n+q-1)的一個(gè)線性方程組。二次曲面反算時(shí)一般使兩個(gè)參數(shù)化方向上曲線的首末端點(diǎn)分別與首末數(shù)據(jù)點(diǎn)一致,且數(shù)據(jù)點(diǎn)將分別依次與二次曲面的節(jié)點(diǎn)一一對(duì)應(yīng)[13]。為確定與數(shù)據(jù)點(diǎn)相對(duì)應(yīng)的節(jié)點(diǎn)值,需要先對(duì)數(shù)據(jù)點(diǎn)進(jìn)行參數(shù)化處理。使用積累弦長(zhǎng)參數(shù)化法選定合適的節(jié)點(diǎn)矢量,數(shù)據(jù)點(diǎn)的弦長(zhǎng)參數(shù)化如式(10)、式(11),以u(píng)方向?yàn)槔齕14,15]。
(10)
(11)
式中:d為總弦長(zhǎng);u′k為Qk決定的節(jié)點(diǎn)參數(shù)值。接著采用式(11)取平均值的方法選定合適的節(jié)點(diǎn)矢量U,這樣就可以建立一個(gè)系數(shù)矩陣的線性方程組:
(12)
待求的非均勻有理B樣條二次插值二次曲面的線性方程組可寫為:
(13)
(14)
式中:
首先將式(11)和式(12)計(jì)算得到的節(jié)點(diǎn)參數(shù)值u′k和ui依次代入式(14)計(jì)算出節(jié)點(diǎn)矢量U上的B樣條基函數(shù),然后同已知的數(shù)據(jù)點(diǎn)Qk,l一起代入式(13),通過式(14)求得節(jié)點(diǎn)矢量V上的B樣條基函數(shù),這樣就反算出二次曲面上數(shù)據(jù)點(diǎn)對(duì)應(yīng)的控制點(diǎn)CPi,j[16]。最后利用控制點(diǎn)、節(jié)點(diǎn)矢量U和節(jié)點(diǎn)矢量V可實(shí)現(xiàn)對(duì)二次曲面的NURBS高精度擬合。
利用進(jìn)口高精度三軸數(shù)控加工車床,設(shè)計(jì)、制作出一個(gè)二次曲面結(jié)構(gòu)的真實(shí)模型,模型加工精度為全曲面范圍內(nèi)±0.15 mm。利用德國(guó)ATOS(V7.5)SR2掃描儀對(duì)加工獲得的二次曲面模型進(jìn)行掃描,得到二次曲面模型的點(diǎn)云數(shù)據(jù)。本實(shí)驗(yàn)以球面作為研究對(duì)象,但在實(shí)驗(yàn)的最后,考慮本文方法的普遍性,文中對(duì)方法推導(dǎo)中用到的圓錐面和球面的實(shí)驗(yàn)結(jié)果一并給出,由于與前面方法推導(dǎo)過程有很大的重復(fù)性,因此,對(duì)圓錐面的具體實(shí)驗(yàn)過程不再列出。而球面的標(biāo)準(zhǔn)方程如式(15):
(x-56)2+(y-125)2+z2=502
(15)
其點(diǎn)云數(shù)據(jù)如圖6所示。
夏國(guó)忠?guī)撞娇缟蠎?zhàn)壕,舉起望遠(yuǎn)鏡,向山下望去。他看見,山腳下的鬼子正在集合。不過,看樣子,他們不像在組織進(jìn)攻,而是在準(zhǔn)備逃跑。他趕緊讓電話兵接通營(yíng)部電話,向營(yíng)長(zhǎng)報(bào)告:“鬼子好像要撤退,怎么辦?”營(yíng)長(zhǎng)在電話里興奮地說:“我也剛接到電話,上峰說鬼子在宜昌的飛機(jī)場(chǎng)被炸了。同時(shí),各路向我進(jìn)攻的小鬼子都受到了頑強(qiáng)抵抗,小鬼子的進(jìn)攻失敗了,我們勝利了。夏國(guó)忠,你們打得好,守住了陣地。我要給你們請(qǐng)功!”
圖6 球面點(diǎn)云數(shù)據(jù)
根據(jù)2.1節(jié)中的方法對(duì)球面的點(diǎn)云數(shù)據(jù)進(jìn)行格網(wǎng)化處理,結(jié)果如圖7所示。
圖7 球面云數(shù)據(jù)格網(wǎng)化結(jié)果
根據(jù)格網(wǎng)化處理結(jié)果,將數(shù)據(jù)點(diǎn)分為沿x軸和y軸方向的高程序列。計(jì)算各條沿x軸方向上高程序列的序列值之和,得到序列值之和最大的序列,記為Nxα。計(jì)算各條沿y軸方向上高程序列的序列值之和,記為Nyα,分布如圖8所示。
圖8 球面y軸方向序列的高程值
對(duì)球面沿y軸方向上Nyα的高程序列進(jìn)行DSWT變換,得到其高程序列對(duì)應(yīng)的小波細(xì)節(jié)系數(shù)序列如圖9所示。
圖9 球面y軸方向序列對(duì)應(yīng)的小波細(xì)節(jié)系數(shù)
為了能夠更加準(zhǔn)確獲取球面邊緣位置信息,對(duì)相鄰的小波細(xì)節(jié)系數(shù)求差值,其分布如圖10所示。
圖10 球面相鄰兩個(gè)小波細(xì)節(jié)系數(shù)的差值分布
由圖10中球面沖擊信號(hào)所對(duì)應(yīng)的離散序列為α=75和α=175;同理計(jì)算x軸方向上的序列值,球面沿x軸方向上Nxα沖擊信號(hào)所對(duì)應(yīng)的離散序列為α=6和α=106。根據(jù)2.2節(jié)中的沖擊信號(hào)的位置與表面邊界點(diǎn)對(duì)應(yīng)關(guān)系,將球面的沖擊信號(hào)所對(duì)應(yīng)的離散序列所在的點(diǎn)作為其表面的特征點(diǎn)。在離散序列Nxα和Nyα上等間距選取一定數(shù)量的點(diǎn),然后與提取的特征點(diǎn)組成NURBS球面擬合的數(shù)據(jù)點(diǎn)。使用式(11)和式(14)對(duì)球面數(shù)據(jù)點(diǎn)進(jìn)行計(jì)算,得到NURBS擬合所需要的控制點(diǎn)。通過式(9)計(jì)算球面節(jié)點(diǎn)向量U、V,利用球面控制點(diǎn)以及節(jié)點(diǎn)矢量U、V對(duì)球面進(jìn)行NURBS擬合。NURBS擬合方法和本文方法對(duì)球面的擬合結(jié)果如圖11所示。另外,按此方式對(duì)圓錐面進(jìn)行擬合的結(jié)果如圖12所示。
圖11 兩種方法球面擬合結(jié)果
圖12 兩種方法圓錐面擬合結(jié)果
為了更直觀了解擬合效果,采用均方根誤差對(duì)兩種方法的擬合結(jié)果進(jìn)行比較。選取x=56時(shí),球面的標(biāo)準(zhǔn)方程如式(16);x=174時(shí),圓錐面的標(biāo)準(zhǔn)方程如式(17):
(16)
(45-z)2/92=(y-125)2/102
(17)
當(dāng)x=56時(shí),NURBS擬合方法和本文方法對(duì)球面擬合結(jié)果中,不同的y坐標(biāo)值所對(duì)應(yīng)的z坐標(biāo)大小與標(biāo)準(zhǔn)值如圖13(a)所示;當(dāng)x=174時(shí),圓錐面擬合前后不同的y坐標(biāo)值所對(duì)應(yīng)的z坐標(biāo)大小與標(biāo)準(zhǔn)值如圖13(b)所示。使用式(18)對(duì)上述球面在x=56時(shí)和圓錐面在x=174時(shí)的均方根誤差值進(jìn)行計(jì)算,得到其均方根誤差σ分布如圖14所示。
(18)
式中:Ei為誤差值。
表1 兩種方法擬合效果的對(duì)比
圖13 兩種方法球面擬合結(jié)果
圖14 兩種方法均方根誤差值分布
對(duì)比兩種方法對(duì)球面NURBS擬合的結(jié)果,能夠得到本文方法擬合球面均方根誤差降低了55.79%;對(duì)比兩種方法對(duì)圓錐面NURBS擬合的結(jié)果,得到本文方法圓錐面擬合均方根誤差降低了50.47%。說明利用離散平穩(wěn)小波變換改進(jìn)NURBS二次曲面擬合方法能夠?qū)崿F(xiàn)對(duì)球面和圓錐面的高精度擬合。由于其他類型的二次曲面具有球面和圓錐面相同的結(jié)構(gòu)特征,因此,本文方法能夠?qū)崿F(xiàn)對(duì)二次曲面的高精度擬合。
本文提出了一種利用離散平穩(wěn)小波變換改進(jìn)NURBS二次曲面擬合方法。利用離散平穩(wěn)小波對(duì)二次曲面表面結(jié)構(gòu)的高程序列對(duì)應(yīng)的小波細(xì)節(jié)系數(shù)序列分析,提取出二次曲面表面的特征點(diǎn),利用提取的特征點(diǎn)來提高了二次曲面的擬合精度。將本文方法與NURBS擬合方法進(jìn)行比較,結(jié)果表明本文方法對(duì)二次曲面的擬合具有更高的精度,為后續(xù)的物體加工及重建奠定了良好的基礎(chǔ)。