孔德明,黃紫雙,王書濤,史慧超
(1.燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島 066004;2.北京化工大學(xué) 信息科學(xué)與技術(shù)學(xué)院,北京 100029)
當(dāng)前現(xiàn)代化工業(yè)不斷發(fā)展,機(jī)械加工市場規(guī)模不斷擴(kuò)大,各種形狀的零件被加工和生產(chǎn)出來,自由曲面模型重建在逆向工程與加工業(yè)中充當(dāng)著重要角色,在產(chǎn)品的設(shè)計(jì)周期中,這種技術(shù)越來越重要[1]。隨著工藝技術(shù)的提高,由自由曲面構(gòu)建而成的物體廣泛存在于人們的日常生活中,由于絕大多數(shù)自由曲面模型的外部形狀無法用準(zhǔn)確的解析函數(shù)表達(dá)式來描述,在對這類物體進(jìn)行生產(chǎn)加工時(shí),需要將這些曲面以幾何參數(shù)模型的形式進(jìn)行精確表示[2]。因此,在智能化現(xiàn)代加工工業(yè)中,設(shè)計(jì)人員會(huì)對這類物體的原始模型進(jìn)行三維測量,得到其點(diǎn)云數(shù)據(jù),然后對點(diǎn)云數(shù)據(jù)進(jìn)行處理,對被測模型表面曲面上具有特征信息幾何參數(shù)進(jìn)行提取,并對被測模型曲面結(jié)構(gòu)進(jìn)行重建,也就是利用逆向工程技術(shù)實(shí)現(xiàn)對其進(jìn)行設(shè)計(jì)并大批量高精度加工制造的目的[3]。
一般情況下,在逆向工程中曲面重構(gòu)多采用傳統(tǒng)的非均勻有理B樣條(non-uniform rational B-splines,NURBS)曲面擬合方法[4],通過對數(shù)據(jù)點(diǎn)插值生成擬合曲面,再利用最小二乘法修改輸入數(shù)據(jù)項(xiàng)來逼近曲面的形狀達(dá)到改善曲面精度的目的。該方法適用于任何曲面的擬合,但最小二乘法得到的擬合結(jié)果往往在間斷和尖點(diǎn)處誤差較大,曲面精度改善效果不佳。
為了解決此問題,張翠翠等[5]提出了一種對點(diǎn)云數(shù)據(jù)進(jìn)行Delaunay三角剖分的曲面方法,通過三角域向矩形域的轉(zhuǎn)換來完成各矩形區(qū)域的Coons曲面重構(gòu),進(jìn)而插值Coons曲面得到光滑拼接的NURBS曲面,該方法將三角面重構(gòu)與四邊域曲面重構(gòu)將結(jié)合,可用改善擬合曲面的光順性,但在進(jìn)行Delaunay三角剖分時(shí),易產(chǎn)生局部大曲率部分劃分效果差的問題,導(dǎo)致重構(gòu)曲面擬合誤差大,進(jìn)而影響曲面重建結(jié)果;張娟等[6]提出一種基于中心減少的兩層隱式函數(shù)插值算法,通過對插值得到的粗層曲面和表面點(diǎn)擬合得到的細(xì)層曲面求和得到整個(gè)重建表面,該方法實(shí)現(xiàn)曲面快速重建的同時(shí)保持曲面的真實(shí)性,但當(dāng)點(diǎn)云數(shù)據(jù)較多時(shí),無數(shù)次的插值和逼近導(dǎo)致較大的計(jì)算量,降低曲面重建效率。
近年來,有關(guān)學(xué)者嘗試將借助小波變換時(shí)頻分析對點(diǎn)云數(shù)據(jù)進(jìn)行壓縮和提取的方法應(yīng)用到曲面重構(gòu)中,取得了較好的效果[7,8]。本文提出一種基于分?jǐn)?shù)階傅里葉變換的NURBS曲面擬合方法,相比于傳統(tǒng)的NURBS曲面擬合和小波分析方法,將傳統(tǒng)的多分辨率時(shí)頻域分析理論推廣至?xí)r域中,其對波形信號中包含的復(fù)雜特征分量具有更好的解析效果,借助分?jǐn)?shù)階傅里葉變換對自由曲面結(jié)構(gòu)點(diǎn)云數(shù)據(jù)的快速、高精度濾波、特征提取,進(jìn)而對自由曲面進(jìn)行NURBS擬合和形狀優(yōu)化,以得到自由曲面模型更高精度的重構(gòu)曲面,減少曲面調(diào)整次數(shù),簡化曲面擬合過程。
2.1.1 自由曲面結(jié)構(gòu)表面特征提取
利用高精度三維掃描儀對復(fù)雜曲面模型進(jìn)行掃描,獲取自由曲面模型表面各點(diǎn)在XYZ三維空間內(nèi)的位置信息形成點(diǎn)云數(shù)據(jù)。為了便于應(yīng)用離散分?jǐn)?shù)階傅里葉變換[9]對其處理分析,通常將這些無序分布點(diǎn)云數(shù)據(jù)進(jìn)行格網(wǎng)化處理。運(yùn)用數(shù)據(jù)插值方法對高程數(shù)據(jù)進(jìn)行插值處理,得到網(wǎng)格的高程值。將等間距網(wǎng)格作為一幅圖像中的像素點(diǎn),再將網(wǎng)格的高程值作為像素點(diǎn)所處位置的像素值,即獲得自由曲面模型沿x軸方向的第i條高程序列Nyi和沿y軸方向的高程序列Nxi,高程序列上像素點(diǎn)的像素值即為各點(diǎn)在XYZ空間內(nèi)的z軸坐標(biāo)值。
分?jǐn)?shù)階傅里葉變換作為傅里葉變換的廣義形式,隨著變換階數(shù)p從0連續(xù)增長到1,展示出信號從時(shí)域逐步變化到頻域的所有特征[10]。
如圖1所示,p階分?jǐn)?shù)階傅里葉變換就是時(shí)頻域旋轉(zhuǎn)角度p(π/2)構(gòu)成的新的(u,υ)域。利用離散分?jǐn)?shù)階傅里葉變換對自由曲面特征信息進(jìn)行提取,可以將自由曲面沿x軸方向上的高程序列Nyi和沿y軸方向上的高程序列看作Nxi是由m組正弦波疊加組成的信號[11],圖1中高程序列上的橫坐標(biāo)方向編號為時(shí)域的時(shí)間軸,縱坐標(biāo)的幅值即為高程序列上像素點(diǎn)的像素值。其分?jǐn)?shù)階傅里葉變換[12]為:
圖1 時(shí)域和頻域圖像Fig.1 Image of time-domain and frequency-domain
(1)
(2)
式中:x(h,t)=[h1,h2,…,ht]是作為原始信號的高程序列;Kp1,p2(h,t,u,v)是分?jǐn)?shù)階傅里葉變換的核函數(shù);α=p1·(π/2),β=p2·(π/2)表示二維分?jǐn)?shù)階傅里葉變換的旋轉(zhuǎn)角度。
由于分?jǐn)?shù)階傅里葉變換是線性變換[13],根據(jù)其性質(zhì)可知高程序列的特征信息包含于分?jǐn)?shù)階傅里葉變換序列中。為了更加準(zhǔn)確地獲取邊緣和曲率的特征信息,按照式(3)求解高程序列的特征信息曲線,其中i代表第i條高程序列。
Hi=Hi(u,v)-Hi-1(u,v)
(3)
2.1.2 曲面擬合的數(shù)據(jù)點(diǎn)提取
由于擬合曲線的形狀未知,僅通過得到的特征數(shù)據(jù)點(diǎn)的坐標(biāo)數(shù)據(jù)信息不能確定兩相鄰特征數(shù)據(jù)點(diǎn)之間的單調(diào)曲線的形狀,因此采用外切圓取點(diǎn)法在兩相鄰特征數(shù)據(jù)點(diǎn)之間的曲線上均勻選點(diǎn),將直線看作曲線中的特例。外切圓取點(diǎn)法根據(jù)3個(gè)共面的點(diǎn)確定一個(gè)圓的特性,按照x軸從左到右的順序選取3個(gè)相鄰的數(shù)據(jù)點(diǎn)作外切圓。設(shè)定外切圓的一般方程式見式(4),則圓心坐標(biāo)為(D/2,E/2)。
(4)
然后,求得特征數(shù)據(jù)點(diǎn)Qi(xdi,zdi)到圓心的角度θi:
Δzdi=zdi-E/2,Δxdi=xdi-D/2
(5)
(6)
設(shè)定在每段曲線上選取n個(gè)點(diǎn),則均勻選取數(shù)據(jù)點(diǎn)的圓心角度為
(7)
由式(5)得到的均分圓心角度求解均分直線的斜率:
kdi=tan(θi-nφi)
(8)
式中:kdi是第i個(gè)圓心角的角平分線斜率。
由于兩相鄰特征數(shù)據(jù)點(diǎn)之間的曲線方程未知,求解擬合曲線上的點(diǎn)到圓心的斜率:
(9)
將自由曲面模型和擬合曲面之間的差值序列作為被觀測信號x(t),利用離散分?jǐn)?shù)階傅里葉變換對信號進(jìn)行旋轉(zhuǎn)分離后信號表示[14]為
Xp(u)=Sp(u)+Np(u)
(10)
式中:Sp(u)為信號的分?jǐn)?shù)階傅里葉變換;Np(u)為噪聲的分?jǐn)?shù)階傅里葉變換。
在u域上進(jìn)行尖峰遮隔處理:
=Sp(u)Mp(u)+Np(u)Mp(u)
(11)
式中:Mp(u)是中心頻率為u0的帶通濾波器。
(12)
(13)
(14)
(15)
3.1.1 曲面表面特征提取
為驗(yàn)證本文方法的可行性,實(shí)驗(yàn)利用進(jìn)口高精度3D打印機(jī)制作出一個(gè)旋轉(zhuǎn)自由曲面結(jié)構(gòu)的真實(shí)模型,模型加工精度為全曲面范圍內(nèi)±0.15 mm。使用德國生產(chǎn)的ATOS(V7.5)SR2掃描儀對加工獲得的自由曲面模型進(jìn)行掃描,得到真實(shí)旋轉(zhuǎn)自由曲面的點(diǎn)云數(shù)據(jù),如圖2所示。
圖2 旋轉(zhuǎn)自由曲面點(diǎn)云數(shù)據(jù)Fig.2 Point cloud data of rotating free-form surface
對自由曲面的點(diǎn)云數(shù)據(jù)進(jìn)行格網(wǎng)化處理獲得其高程圖像,計(jì)算各條沿x軸方向和沿y軸方向上被測模型表面結(jié)構(gòu)的高程序列的高程值(即像素點(diǎn)的像素值)之和,計(jì)算得出沿x軸方向上被測模型表面結(jié)構(gòu)的高程序列的序列值之和最大的序列為Ny109,沿y軸方向上高程序列的序列值之和最大的序列為Nx52,則被測模型表面最高點(diǎn)對應(yīng)的像素點(diǎn)在xOy平面內(nèi)的坐標(biāo)為(52,109),其示意圖如圖3所示,紅色像素點(diǎn)對應(yīng)的是Nx52高程序列,藍(lán)色像素點(diǎn)對應(yīng)的是Ny109高程序列。
圖3 旋轉(zhuǎn)自由曲面的高程圖像Fig.3 Elevation image of rotating free-form surface
根據(jù)旋轉(zhuǎn)自由曲面最高點(diǎn)垂直對應(yīng)旋轉(zhuǎn)軸的特性,對得到的高程圖像進(jìn)行二維離散分?jǐn)?shù)階傅里葉變換,根據(jù)式(3)求解得到Nx52和Ny109高程序列對應(yīng)的特征信息曲線來提取用于重構(gòu)該旋轉(zhuǎn)自由曲面的旋轉(zhuǎn)軸和擬合曲線上的特征點(diǎn),如圖4所示。當(dāng)特征曲線出現(xiàn)尖峰時(shí),說明坐標(biāo)編號對應(yīng)的高程值發(fā)生突變,即該坐標(biāo)編號對應(yīng)的像素點(diǎn)位于旋轉(zhuǎn)軸和擬合曲線的邊緣位置或擬合曲線曲率較大的位置。圖4(a)中,Ny109高程序列的特征曲線上有3個(gè)尖峰,對應(yīng)的坐標(biāo)編號為11、66和153,故該序列不關(guān)于旋轉(zhuǎn)軸對稱。圖4(b)中,Nx52特征曲線尖峰對應(yīng)的坐標(biāo)編號分別為12和207,求解兩坐標(biāo)編號中間值為109,對應(yīng)于高程圖像最高點(diǎn)坐標(biāo)。計(jì)算沿y軸方向上Nxi(i=1,2,3,…,153)高程序列的序列值之和,得到沿y軸方向上自由曲面的高程序列的序列值之和最小的序列為Nx109,則自由曲面的擬合曲線最低點(diǎn)對應(yīng)的坐標(biāo)編號為(109,109)。
圖4 高程序列對應(yīng)的特征信息曲線Fig.4 Characteristic information curve of elevation sequence
綜合上述求解出特征點(diǎn)對應(yīng)的高程序列坐標(biāo)編號,高程圖像中這些坐標(biāo)編號對應(yīng)的像素點(diǎn)的高程值即為高,也是擬合曲線坐標(biāo)數(shù)據(jù)中的z值。將擬合曲線左端邊界點(diǎn)歸于零點(diǎn),由圖4(b)解析可知自由曲面的旋轉(zhuǎn)軸為y=98,選取Ny109高程序列作為用于擬合自由曲面模型NURBS曲面的擬合曲線,則選取的特征點(diǎn)Q1~Q5坐標(biāo)數(shù)據(jù)如表1所示。
表1 特征點(diǎn)坐標(biāo)數(shù)據(jù)Tab.1 Coordinate data of characteristic points mm
3.1.2 曲面表面數(shù)據(jù)點(diǎn)選取
結(jié)合表1中提取的5個(gè)特征數(shù)據(jù)點(diǎn),利用外切圓取點(diǎn)法在兩相鄰特征點(diǎn)之間選取用于曲面擬合的數(shù)據(jù)點(diǎn),其示意圖如圖5所示。
圖5 自由曲面的數(shù)據(jù)點(diǎn)選取示意圖Fig.5 Diagram of data points selection of free-form surface
按照x軸從左到右的順序?qū)⑻卣鼽c(diǎn)分為兩組,相鄰的3個(gè)特征點(diǎn)為一組。將兩組特征點(diǎn)的坐標(biāo)數(shù)據(jù)分別代入式(4)可求得兩個(gè)外切圓的一般方程式系數(shù)為
(15)
從而求得兩外切圓的圓心分別為O1(23.625,68.75)和O2(95.88,79.41)。將上述數(shù)據(jù)代入式(5)和式(6)中求得特征點(diǎn)到圓心的角度θi,
(16)
設(shè)定在每段曲線上選取n=1個(gè)點(diǎn),則均勻選取數(shù)據(jù)點(diǎn)的圓心角度為
(17)
結(jié)合式(16)~式(17)中的角度值計(jì)算得到角均分線的斜率kdi
(18)
繼續(xù)求解擬合曲線對應(yīng)的高程序列上各像素點(diǎn)到圓心的斜率,選取與式(18)得到的斜率相近的像素點(diǎn)作為用于擬合的數(shù)據(jù)點(diǎn),數(shù)據(jù)點(diǎn)位置見圖5中三角形標(biāo)記處,坐標(biāo)數(shù)據(jù)見表2所示。
利用表1、表2中的數(shù)據(jù)點(diǎn)對自由曲面進(jìn)行重建,得到的初始擬合曲面如圖6所示,對其進(jìn)行誤差分析[18,19],求解得到擬合曲面與點(diǎn)云模型之間的差值絕對值的平均值為1.386 8 mm,均方根誤差為0.710 5 mm。
表2 數(shù)據(jù)點(diǎn)坐標(biāo)數(shù)據(jù)Tab.2 Coordinate data of data points mm
圖6 旋轉(zhuǎn)自由曲面的擬合曲面Fig.6 Fitting surface of rotating free-form surface
為了獲得更高精度的NURBS擬合曲面,利用第2.2節(jié)中的方法對上節(jié)中得到的擬合曲面形狀進(jìn)行優(yōu)化,計(jì)算擬合曲面與實(shí)際模型曲面的高程值得到兩曲面之間的差值序列,對差值序列進(jìn)行濾波反變換,得到的擬合曲面的誤差分布曲線如圖7所示。
圖7 擬合曲面的誤差分布Fig.7 Error distribution of fitting surface
表3 數(shù)據(jù)點(diǎn)與節(jié)點(diǎn) mm
為了更加直觀的了解擬合效果,采用均方根誤差對本文方法與文獻(xiàn)[4]的傳統(tǒng)NURBS擬合方法的擬合結(jié)果進(jìn)行比較。由于本文方法每次曲面形狀優(yōu)化后會(huì)加入新的數(shù)據(jù)點(diǎn),為保證實(shí)驗(yàn)條件一定,使利用傳統(tǒng)NURBS方法選取的數(shù)據(jù)點(diǎn)數(shù)量與本文方法每次反插節(jié)點(diǎn)后的數(shù)據(jù)點(diǎn)數(shù)量保持一致。利用調(diào)整后的擬合曲線對整個(gè)旋轉(zhuǎn)自由曲面進(jìn)行擬合,分析求解獲得的擬合曲面與標(biāo)準(zhǔn)曲面之間的誤差結(jié)果,得到表4中的數(shù)據(jù)。
表4 兩種方法擬合誤差的對比結(jié)果Tab.4 Compare results of fitting error of two methods
通過對比表4中兩種方法對自由曲面模型在不同調(diào)整次數(shù)下進(jìn)行優(yōu)化的擬合結(jié)果可以看出,在相同的調(diào)節(jié)次數(shù)下,本文方法得到的擬合曲面的均方根誤差降低了約28%,說明基于分?jǐn)?shù)階傅里葉變換的NURBS擬合方法能夠?qū)崿F(xiàn)對自由曲面的高精度擬合。且本文方法1次調(diào)整后的誤差低于傳統(tǒng)NURBS擬合方法3次調(diào)整后的誤差,即對于同一曲面,利用本文方法進(jìn)行曲面形狀優(yōu)化可以減少調(diào)整次數(shù),簡化擬合過程。
圖8給出了利用兩種方法對擬合曲線進(jìn)行優(yōu)化后的擬合結(jié)果??梢钥闯鰣D8(b)中調(diào)整1次的擬合曲線擬合效果優(yōu)于圖8(a)中初始擬合曲線。本文方法的擬合曲線更貼近于實(shí)際點(diǎn)云數(shù)據(jù)曲線。
圖8 兩種方法的擬合結(jié)果Fig.8 Fitting results of two methods
本文提出了一種基于分?jǐn)?shù)階傅里葉變換的NURBS曲面擬合方法。利用分?jǐn)?shù)階傅里葉變換對自由曲面模型的點(diǎn)云數(shù)據(jù)進(jìn)行處理,能夠快速、高精度地從點(diǎn)云數(shù)據(jù)中提取出自由曲面模型的表面結(jié)構(gòu)特征。根據(jù)提取的特征信息選取合適的擬合參數(shù)對自由曲面模型的擬合曲面進(jìn)行曲面優(yōu)化,與傳統(tǒng)NURBS擬合方法相比,擬合曲面的均方根誤差降低了約28%,具有更優(yōu)的擬合效果,且能減少曲面優(yōu)化的調(diào)整次數(shù),簡化NURBS曲面擬合過程。