趙歡喜,初小宇
中南大學 信息科學與工程學院,長沙 410083
基于截面數(shù)據(jù)的曲面重建是指根據(jù)已知的三維物體的若干截面上的數(shù)據(jù)點或者曲線數(shù)據(jù),重新構建其立體數(shù)字化模型的過程。目前,曲面重建技術被大量應用到船體表面重建、工業(yè)產(chǎn)品樣品制造以及CT切面模型重構等重要領域中,一個還原精確、數(shù)據(jù)冗余量小的重建模型對實現(xiàn)設計目標至關重要。
在曲面重建過程中,基于截面數(shù)據(jù)進行擬合并重建曲面是經(jīng)常遇到的問題,這類數(shù)據(jù)由一組有序的截面輪廓線組成,每條截面線上有若干個有序排列的三維數(shù)據(jù)點。對于這類問題,目前常用的方法步驟如下:(1)分別對每行截面數(shù)據(jù)點進行擬合,構成一組有序的截面曲線;(2)對這組截面線通過蒙皮、拉伸等方法構造待建曲面。NURBS曲面由于其優(yōu)秀的幾何性質(zhì)和在自由曲面造型和規(guī)則曲面造型中良好的表現(xiàn)力,目前被大量應用于曲面重建中;然而NURBS方法進行曲面重建面臨著如何獲取一組節(jié)點矢量相同的截面曲線的問題。這個問題可以通過直接的節(jié)點插入解決,但這使控制頂點反求的計算過程變得非常復雜,最后重建的曲面上將產(chǎn)生大量的控制頂點,造成了數(shù)據(jù)量膨脹,并且隨著截面數(shù)目的增加,該問題變得更加顯著。
針對這個問題,國內(nèi)外學者對于如何在不犧牲曲面精度的條件下減少截面線上的控制頂點數(shù),做了大量的研究[1-12]。文獻[1]將其轉(zhuǎn)化為帶約束的能量最小化問題,使用法向量的梯度作為能量值,用水平集函數(shù)表示曲面,通過求該問題的解來得到曲面;文獻[2]提出一種基于預制模板的曲面重建方法,通過放縮和變換進行原始輪廓與模板之間的匹配,隨后通過重新參數(shù)化來得到控制頂點;文獻[3]中Piegl和Tiller通過直接尋找一條理想的節(jié)點矢量來減少控制頂點的數(shù)量,該方法在減少數(shù)據(jù)冗余上效果顯著,但得到的曲面形狀是否精確非常依賴于節(jié)點矢量的設置是否理想;文獻[4]中Liu等引入了細分方法來改善截面上數(shù)據(jù)點大量增加的問題;文獻[5]中,Shamsuddin在上文的基礎上提出了一種改良的向心參數(shù)化方法,先尋找控制頂點數(shù)最多的截面線,在誤差容忍的范圍內(nèi)來減少曲線上的控制頂點數(shù),用求得的節(jié)點矢量調(diào)整剩余的截面線,達到減少控制頂點數(shù)的目的;文獻[6]中,曲學軍等基于統(tǒng)計的方法對數(shù)據(jù)點的分布規(guī)律進行了分析,從而確定初始節(jié)點向量,合理地控制了生成的曲面上的控制頂點數(shù)目;文獻[7-8]提出一種可調(diào)節(jié)區(qū)間的方法來調(diào)整控制頂點,在彈性區(qū)間內(nèi)尋找盡量相近的節(jié)點并合并,能夠有效地減少數(shù)據(jù)冗余,也能獲得較為滿意的參數(shù)化結果,但該方法受噪聲的影響較大;文獻[9-11]通過重采樣重新取點,并進行重新參數(shù)化,從而求得一系列匹配點對,減少了節(jié)點矢量相容過程中的大量節(jié)點插入;文獻[12]先構造低階的插值曲線和曲面來擬合數(shù)據(jù)點,隨后逐漸升階來逼近待建曲面,避免了數(shù)據(jù)的參數(shù)化和節(jié)點向量選取不當造成的形狀扭曲問題,但缺乏擬合復雜曲面的能力。以上方法都是通過構造合適的公共節(jié)點向量來實現(xiàn)曲線的相容性擬合,雖然相對之前的方法能夠有效地減少控制頂點的數(shù)目,曲面得到了壓縮,但是NURBS曲面需使用矩形網(wǎng)格的控制點這一缺點沒有得到根本解決,這使得很多的控制點存在的意義只是為了滿足拓撲上的限制,而并沒有提供實際有意義的幾何信息,最后構造出的曲面依然存在大量的冗余控制點。目前針對這種情況的研究較少,文獻[13-16]采用T樣條曲面來構造曲面,控制網(wǎng)格中可以存在T型的控制頂點,從而可以基于節(jié)點向量不同的截面線直接進行曲面擬合,有效地改善節(jié)點插入帶來的數(shù)據(jù)量增大問題,同時保留了良好的局部控制能力,不過T樣條曲面在進行網(wǎng)格化和處理曲面拼接上更加麻煩。
為了避免NURBS方法中構建曲面需要進行的節(jié)點矢量相容的過程,同時能夠直接通過對原始數(shù)據(jù)插值來構造更精確的待建曲面,本文提出了一種雙方向融合插值的C1參數(shù)曲面重建方法,利用融合的思想來構造截面曲線并處理曲面拼接,取得了較好的冗余量減少的效果。
本文提出的雙方向融合插值的C1參數(shù)曲面重建方法共分兩步,第一步插值截面上相鄰的數(shù)據(jù)點構造曲線段,然后引入融合算法[17-18]將曲線段進行拼接,以得到光滑的截面輪廓曲線;第二步,插值相鄰截面的輪廓曲線構建一系列曲面片,再次使用融合算法將所有曲面片進行拼接,從而得到一個光滑的待建曲面。該方法可以基于原始數(shù)據(jù)點數(shù)目不同的截面進行分段插值曲面重建,不會產(chǎn)生由于節(jié)點插入帶來的大量的數(shù)據(jù)冗余以及復雜的計算過程;本方法同時采用了融合的思想來處理分段曲線、曲面的拼接,改良了傳統(tǒng)參數(shù)曲線、曲面拼接方法需要邊界條件的缺陷。
給出一個物體的一組截面數(shù)據(jù),表示為Ci,(i=1,2,…,n-1,n),第i個截面Ci上的數(shù)據(jù)點表示為Pi,j,(i=1,2,…,n-1,n;j=1,2,…,mi);根據(jù)這組截面數(shù)據(jù)插值構建截面曲線Fi(u),(i=1,2,…,n-1,n),然后構建一個參數(shù)曲面S(u,v),(u∈[0,1],v∈[0,1]),S(u,v)通過所有截面曲線,并且達到C1光滑。
對于給定的截面數(shù)據(jù),本方法構造截面曲線的過程為首先將每個截面上的數(shù)據(jù)點進行弦長參數(shù)化,然后將同一截面上每三個相鄰的數(shù)據(jù)點進行插值,構造若干條待融合的曲線段;最后將相鄰的曲線段兩兩融合,并把最終產(chǎn)生的融合曲線段首尾相接,產(chǎn)生光滑的截面曲線。
2.2.1 截面數(shù)據(jù)點參數(shù)化
本方法使用弦長參數(shù)化的方法進行數(shù)據(jù)點參數(shù)化,確定截面上各個數(shù)據(jù)點的參數(shù)值。取沿截面線的參數(shù)方向為u向,沿各截面排列的參數(shù)方向為v向。則Pi,j的參數(shù)值為:
2.2.2 局部插值構造曲線段
隨著插值數(shù)據(jù)點數(shù)的增加,高階的多項式插值會出現(xiàn)龍格現(xiàn)象,產(chǎn)生劇烈的震蕩。為了保證更精確的還原待建曲面上的自然形狀,減少曲面上的扭曲和形變,本方法先對截面數(shù)據(jù)點進行局部插值構造曲線段,然后將其拼接得到截面線。依次將截面上所有相鄰的三個數(shù)據(jù)點Pi,j,Pi,j+1,Pi,j+2進行插值,用Pi,j(u)表示得到的曲線段。公式如下:
其中,i=1,2,…,n,j=1,2,…,mi-2,u∈[ui,j,ui,j+2]。
傳統(tǒng)方法中的曲線拼接需要獲得待拼接曲線的切矢、導矢等微分信息,計算相當麻煩;基于融合思想的曲線拼接是指將起點與終點相同的若干曲線段直接通過融合函數(shù)進行融合,不需要邊界的微分信息即可完成曲線的光滑拼接。本方法采用的融合函數(shù)如下:
其中,F(xiàn)(t)和G(t)為待融合曲線,H(t)為融合后的曲線,t∈[t0,t1]。
使用公式(2)對上一步求得曲線段Pi,j(u)、Pi,j+1(u)的參數(shù)u方向上的公共部分進行融合,公式如下:
其中,i=1,2,…,n,j=1,2,…,mi-3,u∈[ui,j+1,ui,j+2]。
將公式(3)中得到的曲線段與Pi,1(u)上u∈[0,ui,2]的部分和Pi,mi-2(u)上u∈[umi-1,1]的部分首尾拼接,即可得到一條C1光滑的截面曲線,表達式為:
其中,i=1,2,…,n。
對于封閉的截面曲線同樣可以使用該方法進行構造,只需在首尾相接的位置再插值一條曲線,然后按以上步驟進行融合即可。
NURBS曲面的構造方法為先將各截面曲線的節(jié)點矢量合并,得到公共節(jié)點矢量;然后通過反求控制頂點得到曲面的矩形網(wǎng)格,從而得到待建曲面。為避免節(jié)點矢量相容的過程,本方法先將相鄰的三條截面曲線進行插值來構造曲面片,隨后將相鄰曲面片參數(shù)上的公共部分進行融合以完成拼接,從而得到待建曲面。
2.4.1 插值截面曲線構造曲面片
將各截面曲線進行v方向上的參數(shù)化,確定各截面曲線的參數(shù)值。公式如下:
依次將每三條相鄰的截面樣條曲線進行插值,用Si(u,v)表示初步得到的曲面片。公式如下:
其中,i=1,2,…,n-2,v∈[vi,vi+2],u∈[0,1]。
2.4.2 構造融合曲面
傳統(tǒng)的曲面拼接需要曲面的拼接部分切平面相同才能達到C1的連續(xù),但是融合曲面的構造只需要兩個曲面在參數(shù)域存在公共部分即可,而不需要考慮邊界的信息,融合后得到的曲面根據(jù)融合函數(shù)的不同可以達到不同階數(shù)的連續(xù)。將公式(5)中得到的曲面片的公共部分進行融合,然后將得到的融合曲面拼接,從而得到最終的待建曲面。本方法采用的融合函數(shù)如下:
其中,F(xiàn)(s,t)和G(s,t)為待融合曲面,H(s,t)為融合后的曲面,t∈[t0,t1]。
使用公式(6)將公式(5)中求得的曲面片進行融合,公式如下:
其中,i=1,2,…,n-3,v∈[vi+1,vi+2],u∈[0,1]。
融合過程如圖1所示,圖1(a)中為用公式(5)插值相鄰的截面曲線后得到的兩個參數(shù)上存在公共部分的曲面片,圖1(b)為施加公式(6)中的融合函數(shù)后得到的曲面片。
圖1 曲面片的融合過程
為驗證本算法的有效性,建立實驗對一系列實物模型進行了曲面重建。圖2為經(jīng)過坐標測量機測量后得到的截面數(shù)據(jù)點,圖3為經(jīng)過本算法實現(xiàn)的應用實例。圖3(a)、圖3(b)為國際象棋的棋子的重建模型,圖3(a)中的模型上有29行,共約1.22×103個數(shù)據(jù)點,圖3(b)中的模型上有24行,共約1.08×103個數(shù)據(jù)點。從結果可以看出重建后的曲面光滑,原始模型的局部特征得以保留;圖3(c)為一個花瓶的重建模型,該原始數(shù)據(jù)包含0.82×103個數(shù)據(jù)點,存在一定的噪音,重建完成后的曲面雖然存在些微形變,但是整體依然反映了原始模型的外形;圖3(d)為一根彎管的重建模型,采樣后得到約1.04×103個數(shù)據(jù)點,從實例可以看出該重建曲面形狀得到了較好的控制,并且保證了曲面的光滑,沒有出現(xiàn)明顯的曲面形變和扭曲。
圖4為一個箕型曲面的原始數(shù)據(jù)和通過本方法得到的重建結果,該原始數(shù)據(jù)有約2.29×103個數(shù)據(jù)點。如圖4(a)所示,該原始數(shù)據(jù)的采樣點數(shù)在各個輪廓上并不相等,并且分布很不均勻;從圖4(b)中的融合曲面重建結果可以看到曲面表面光滑,并且沒有出現(xiàn)明顯的扭曲,從而證明了本方法在針對每行原始數(shù)據(jù)點數(shù)差距較大且分布不均勻時,能達到較好的重建效果。
圖2 原始數(shù)據(jù)
圖3 一組算法應用實例
圖4 箕型曲面重建實例
表1至表5顯示的數(shù)據(jù)為基于幾種方法將圖2(a)~(d)、圖4(a)中的原始數(shù)據(jù)進行曲面重建后得到的曲面上的數(shù)據(jù)點數(shù)的對比。本文以Piegl方法得到的曲面數(shù)據(jù)點數(shù)作為基準來判斷各方法進行曲面重建后數(shù)據(jù)點數(shù)的冗余量減少效果。表中數(shù)據(jù)顯示,當原始掃描數(shù)據(jù)點在每個截面上點數(shù)并不相同并且分布不太均勻時,本方法與Piegl等傳統(tǒng)方法對比,數(shù)據(jù)量增長相對更少,而傳統(tǒng)方法因為節(jié)點的大量增加導致了控制點數(shù)的膨脹,帶來了較多的數(shù)據(jù)冗余。
表1 圖2(a)與幾種方法數(shù)據(jù)冗余量減少的對比
表2 圖2(b)與幾種方法數(shù)據(jù)冗余量減少的對比
表3 圖2(c)與幾種方法數(shù)據(jù)冗余量減少的對比
表4 圖2(d)與幾種方法數(shù)據(jù)冗余量減少的對比
表5 圖4(a)與幾種方法數(shù)據(jù)冗余量減少的對比
表6為在實現(xiàn)了圖2(a)~(d)、圖4(a)中的曲面重建的基礎上,使用Geomagic Studio軟件提供的曲面偏差分析,將原物體的表面曲面模型與幾種方法重建曲面的比較結果。從表中數(shù)據(jù)可以看出,融合曲面重建方法在大大減少了控制頂點冗余的同時,保證了待建曲面的重建精度,與已有方法相比并沒有出現(xiàn)明顯的誤差量增加。
表6 曲面重建結果的重建精度對比
為了避免NURBS曲面構建過程中的節(jié)點矢量相容的過程,改善NURBS曲面控制點必須位于矩形網(wǎng)格上的缺陷,提出了一種雙參數(shù)方向上融合插值的C1曲面重建方法,先后分段插值以構造曲線段、曲面片,采用了融合的思想進行曲線、曲面拼接,最后得到光滑的待建曲面。本方法雖然目前限于沒有分支結構的曲面重建,但是依然可以用于擬合大量的實物模型。融合曲面的構造不需要考慮邊界信息,可以直接進行曲面拼接,不僅能得到光滑的待建曲面,而且能夠有效地減小計算量。
在將來的工作中,針對單個截面數(shù)據(jù)點列參數(shù)化時,如果數(shù)據(jù)點個數(shù)較少可能會引起截面線扭曲變形的問題,本方法將尋求一種更佳的參數(shù)化方法來提高精度;同時如何將本方法延伸到C2以至Cn精度的曲面重建,也是下一步值得探討和研究的。
[1]Kim S U,Lee C O.Accurate surface reconstruction in 3D using two-dimensional parallel cross sections[J].Journal of Mathematical Imaging and Vision,2015,53(2):182-195.
[2]Holloway M,Grimm C,Tao J.Template-based surface reconstruction from cross-sections[J].Computer&Graphics,2016,58(1):84-91.
[3]Piegl L A,Tiller W.Surface skinning revisited[J].Visual Computer,2002,18(4):273-283.
[4]Liu S,Jacobson A,Gingold Y.Skinning cubic Bezier splines and Catmull-Clark subdivision surfaces[J].ACM Transactions on Graphics,2014,33(6):1-9.
[5]Shamsuddin S M,Ahmed M A,Samian Y.NURBS skinning surface for ship hull design based on new parameterization method[J].InternationalJournalofAdvanced Manufacturing Technology,2006,28(9):936-941.
[6]曲學軍,寧濤,席平.逆向工程中平面輪廓線數(shù)據(jù)的B樣條曲面擬合[J].計算機工程,2004,30(10):14-19.
[7]Wu Xiaogang,Chen Dan,Zheng Chunying.Flexible skinning research in reverse engineering based on cross-sectional fitting[C]//Proceedings 3rd International Symposium Computer Science&Computational Technology,2010:373-375.
[8]郭偉青,李際軍,吳小剛.逆向工程中掃描數(shù)據(jù)點的曲面重構[J].計算機集成制造系統(tǒng),2004,10(9):1160-1164.
[9]Park H,Kim K,Lee S C.A method for approximate NURBS curve compatibility based on multiple curve refitting[J].Computer-Aided Design,2000,32(7):237-252.
[10]Park H.Lofted B-spline surface interpolation by linearly constrained energy minimization[J].Computer-Aided Desigh,2003,35(14):1261-1268.
[11]Zhang Xia,Zhao Jibin,Liu Weijun,et al.Skinning surface algorithm of B-spline for scattered point cloud[C]//2011 International Conference on Consumer Electronics,Communications and Networks,2011:2617-2620.
[12]林子植,潘日晶.基于輪廓數(shù)據(jù)的B樣條曲面重建[J].計算機工程與應用,2008,44(19):59-62.
[13]Sederberg T,Zheng J,Bakenov A,et al.T-splines and T-NURCCS[J].ACM Transactions on Graphics,2003,22(3):477-484.
[14]李新.T樣條和T網(wǎng)格上的樣條[D].合肥:中國科學技術大學,2008.
[15]Yang Xunnian,Zheng Jianmin.Approximate T-spline surface skinning[J].Computer-Aided Design,2012,44(12):1269-1276.
[16]Li Yusha,Chen Wenyu,Cai Yiyu,et al.Surface skinning using periodic T-spline in semi-NURBS form[J].Journal of Computational and Applied Mathematics,2015,273(1):116-131.
[17]Wenz R.Interpolation of curve data by blended generalized circles[J].Computer Aided Geometric Design,1996,13(8):673-680.
[18]Majeed A,Mt Piah A R,Ridzuan Y Z.Surface reconstruction from parallel curves with application to parietal bone fracture reconstruction[J].Plos One,2016,11(3).