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