閆國棟 戴 寧* 張長東 廖文和 孫玉春 王 勇 呂培軍(南京航空航天大學(xué),南京 006)
2(北京大學(xué)口腔醫(yī)學(xué)院,北京 100081)
隨著計算機技術(shù)的發(fā)展,CAD/CAM系統(tǒng)開始應(yīng)用到口腔修復(fù)領(lǐng)域[1],取得了良好效果。目前,市場上已經(jīng)推出了很多口腔CAD/CAM系統(tǒng),著名的有德國Sirona公司的CEREC 3D系統(tǒng)、丹麥3Shape A/S公司的3SHAPE系統(tǒng)、德國Kavo公司的Everest系統(tǒng)等。在這些系統(tǒng)中,牙齒修復(fù)體曲面局部變形是關(guān)鍵技術(shù)之一,決定了修復(fù)體表面形態(tài)能否滿足患者口內(nèi)特定的約束條件,恢復(fù)正常的咀嚼功能。修復(fù)體CAD的局部變形應(yīng)遵循以下幾個基本要求:一是能夠?qū)ρ兰?、脊、窩等特征進(jìn)行修改;二是操作靈活,且具有良好的實時性;三是修改后的修復(fù)體表面自然、光順,避免出現(xiàn)皺褶或裂痕。
目前,國外商業(yè)口腔CADCAM軟件中修復(fù)體曲面局部變形算法比較成熟。比如在CEREC 3D中,醫(yī)生能動態(tài)編輯修復(fù)體的特征曲線,實時改變修復(fù)體牙溝區(qū)域或者邊緣輪廓的形態(tài);當(dāng)變形范圍較小且近似圓形時,可通過滴蠟技術(shù),根據(jù)變形半徑在局部區(qū)域產(chǎn)生微小的凸起或者凹下。3SHAPE系統(tǒng)使用的變形技術(shù)和CEREC 3D類似,也是通過特征曲線或中心控制點驅(qū)動修復(fù)體的曲面局部變形。國內(nèi)關(guān)于口腔修復(fù)體數(shù)字化設(shè)計的研究起步較晚[2-4],在修復(fù)體曲面局部變形設(shè)計方面,戴寧等提出了一種基于細(xì)分變形空間的局部變形算法。首先,構(gòu)造修復(fù)體模型的細(xì)分變形空間,并將數(shù)據(jù)映射到空間中;然后,通過改變細(xì)分空間,間接改變修復(fù)體的局部形態(tài)[5]。這種算法變形不直觀,而且變形范圍難以確定。張翔等和李曉燕分別用B樣條曲線插值修復(fù)體模型,然后通過改變B樣條曲線的控制點實現(xiàn)局部變形。[6-7]。這種算法計算量大,難以實現(xiàn)實時變形。針對這一問題,本研究提出了基于特征曲線驅(qū)動的修復(fù)體曲面局部變形技術(shù),直接在修復(fù)體曲面上選擇控制點來構(gòu)造特征曲線,通過編輯特征曲線來實現(xiàn)局部變形。實驗證明,這種算法操作簡便,計算效率高,可以實時進(jìn)行。
通過曲線驅(qū)動曲面變形,是由Singh等在Wires變形技術(shù)中提出的[8]。變形過程被分解為縮放、平移、旋轉(zhuǎn)3個步驟,同時結(jié)合變形半徑定位技術(shù),可以實現(xiàn)精準(zhǔn)的局部變形。但是,建立模型頂點和曲線映射的計算比較復(fù)雜,導(dǎo)致在數(shù)據(jù)較多時無法達(dá)到實時變形。在Wires變形技術(shù)的基礎(chǔ)上,本研究優(yōu)化了該算法,使之適應(yīng)牙齒修復(fù)體曲面局部變形,并提出了“離散投影點算法”,可以快速地建立模型上點和曲線的映射關(guān)系。為達(dá)到更好的局部變形效果,用B樣條曲線代替了Wires變形技術(shù)中使用的Bezier曲線。
通過特征曲線驅(qū)動曲面局部變形,首先要在曲面上選擇控制點構(gòu)建特征曲線;接著是定義變形半徑R,確定變形區(qū)域并建立曲線和曲面的映射關(guān)系,這一步主要是通過計算曲面頂點到曲線對應(yīng)的最近點完成的。映射關(guān)系建立后,移動特征曲線的控制點修改特征曲線,即可驅(qū)動曲面頂點根據(jù)定義的密度函數(shù)F(x)移動到新的位置,從而實現(xiàn)曲面變形。密度函數(shù)F(x)表示變形時頂點隨最近點移動的比例因子,參數(shù)x表示頂點與最近點之間的距離L和變形半徑R之間的比值,定義為距離半徑比,有
為保證變形邊界處C1階連續(xù),密度函數(shù)定義為
函數(shù)如圖1所示。圖2表示特征曲線驅(qū)動曲面局部變形的原理:設(shè)原始曲面為S1,在上面構(gòu)造特征曲線C1(見圖2(a));定義變形半徑R=10并計算變形區(qū)域,pt1是S1上的一個頂點,在C1上對應(yīng)的最近點為vtnear,兩者距離L=6小于變形半徑,則pt1在C1的變形區(qū)域內(nèi)且與之對應(yīng)的映射點是vtnear(見圖2(b)),距離半徑比是0.6;當(dāng)編輯C1的控制點變形到C2,vtnear也隨之移動到vt’near,驅(qū)動pt1變形到新的位置pt2。通過這種方式驅(qū)動變形區(qū)域內(nèi)的所有頂點變形,從而使曲面S1變形到曲面S2(見圖2(c)),具體的算法將在后面詳細(xì)描述。
圖1 密度函數(shù)曲線Fig.1 Density function curve
特征曲線可以有多種形式,比如Bezier曲線、均勻B樣條曲線和NURBS曲線等。采用通過控制點的3次準(zhǔn)均勻B樣條曲線作為特征曲線,因為它具備良好的端點性質(zhì)和局部性質(zhì),支持曲線局部編輯,便于實現(xiàn)修復(fù)體曲面的局部變形。生成通過控制點的3次準(zhǔn)均勻B樣條曲線,一般有兩個步驟。
步驟1:先由選取的控制點求特征曲線的控制頂點[9],有
式中,P=(p1,p2,…,pn)T為選擇的控制點組成的列向量,V=(v2,v3,…,vn+1)T為待求的控制頂點列向量,M為計算矩陣(詳見文獻(xiàn)[9])。根據(jù)準(zhǔn)均勻B樣條曲線的端點性質(zhì),有v1=p1,vn+2=pn,從而求得曲線所有的控制頂點。
步驟2:求出控制頂點后,生成B樣條特征曲線,有
圖2 曲線驅(qū)動變形。(a)曲面S1和特征曲線C1;(b)變形區(qū)域;(c)變形曲面S2Fig.2 The deformation illustration driven by curves.(a)surfaceS1and feature lineC1;(b)deformed region;(c)deformed surfaceS2
式中,u∈[0,1],mi為每段B樣條曲線對應(yīng)的矩陣,vi為式(3)中求得的控制頂點。如果對特征曲線不滿意,可通過重新拾取、添加、刪除控制點的方式,重新構(gòu)造特征曲線。在后續(xù)“離散投影點算法”中,使用的是特征曲線上的離散點,因此要將特征曲線均勻離散化;為提高算法精度,特征曲線離散化的采樣密度一般小于0.005。
通過曲線驅(qū)動曲面局部變形的關(guān)鍵是建立兩者之間的映射關(guān)系,可歸納為如下形式[10],即
G:R3→U→R3
變形過程G由參數(shù)映射U和變形操作D兩部分組成。將模型頂點pt先映射到變形空間U,完成變形后再映射回三維空間得到新的頂點pt’。也就是說,建立曲線和曲面映射,實質(zhì)是建立模型頂點和曲線的映射。將上述映射關(guān)系具體化,可寫為
1.3.1 生成投影曲線
因為牙齒修復(fù)體表面形態(tài)比較復(fù)雜,拾取的控制點構(gòu)建的特征曲線和修復(fù)體表面并不完全貼合,會出現(xiàn)“穿越”或“漂浮”的現(xiàn)象(見圖3)。如果直接建立特征曲線和模型頂點的映射,會導(dǎo)致變形區(qū)域不均勻,影響變形效果。因此,在建立映射之前,將特征曲線投影到修復(fù)體曲面上,生成和修復(fù)體曲面完全貼合的投影曲線(見圖4)。為提高計算速度,使用基于KD樹的光線追蹤技術(shù),將特征曲線上采樣得到的離散點沿該點的法矢方向投影到修復(fù)體曲面上,得到投影節(jié)點,把這些節(jié)點按順序連接起來就是投影曲線。在實際操作中,不需要將其顯示出來。
圖3 漂浮和穿越現(xiàn)象Fig.3 Floating and passing phenomenon
圖4 投影曲線Fig.4 Projective lines
1.3.2 建立映射關(guān)系
建立曲線和曲面頂點的映射,常用的方法是最近投影點法[11],即求頂點pt到特征曲線C(u)的最短距離Dis,有
式中,u*為pt在曲線上對應(yīng)的最近點參數(shù)。
如果這個問題轉(zhuǎn)化為多項式根的問題進(jìn)行求解,計算效率很低,數(shù)據(jù)量較大時無法在工程上達(dá)到實時應(yīng)用。為突破計算瓶頸,提出“離散投影點算法”,先定義變形半徑R,然后構(gòu)造投影節(jié)點的KD樹結(jié)構(gòu),通過KD樹查找和模型頂點距離最近的投影節(jié)點,計算兩者之間的距離L。若L≤R,那么模型頂點就是變形點,這樣修復(fù)體模型被分成兩部分,即
因為投影節(jié)點和特征曲線的離散點是一一對應(yīng)的,在建立投影節(jié)點和模型頂點映射關(guān)系的同時,也建立了特征曲線離散點和模型頂點的映射關(guān)系。如果特征曲線離散點的密度足夠大,則與最近投影點算法相比,“離散投影點算法”的精度損失很小,顯著提高了計算效率。
建立映射關(guān)系之后,移動控制點編輯修改特征曲線,會使特征曲線上的采樣離散點發(fā)生變化,從而驅(qū)動修復(fù)體曲面局部變形。為便于表述,定義變形之前的特征曲線為Cold,記錄下它的均勻離散點組Cold(vt);定義移動控制點后新生成的特征曲線為Cnew,同時記錄下它的均勻離散點組Cnew(vt)。在控制點移動后,特征曲線的均勻離散點移動向量為
變形后新的頂點坐標(biāo)為
式中,ptik是曲線離散點vti對應(yīng)的變形頂點,F(xiàn)(x)是密度函數(shù),xik是ptik對應(yīng)的距離半徑比。
開發(fā)實現(xiàn)平臺:Windows XP系統(tǒng),Visual C++.net,Hoops圖形顯示包。先通過前牙牙尖的局部變形說明文算法的應(yīng)用及變形結(jié)果,然后在鄰牙約束條件下對前牙的側(cè)面干涉區(qū)域進(jìn)行變形設(shè)計,實驗結(jié)果如圖5和圖6所示。
圖5顯示了前牙牙尖的局部變形設(shè)計實例。圖5(a)為前牙修復(fù)體和構(gòu)造的特征曲線;圖5(b)、5(c)分別抬高特征曲線左邊和右邊的兩個控制點,改變特征曲線驅(qū)動牙尖部位發(fā)生變形;圖5(d)是在中間部位增加兩個控制點;圖5(e)將中間3個控制點向下平移,降低牙模曲面的中間區(qū)域;圖5(f)在圖5(e)的基礎(chǔ)上,將中間3個控制點上移,抬高牙模曲面的中間區(qū)域。從圖5中的實驗結(jié)果可以看出,應(yīng)用本文提出的算法,只需在牙模曲面上拾取控制點,就可以方便快捷地在修復(fù)體模型上構(gòu)造特征曲線,并能在特征曲線上根據(jù)需要添加或刪除控制點;通過移動特征曲線的控制點,即可驅(qū)動修復(fù)體曲面局部變形,而且修改后的曲面光順自然,符合變形設(shè)計的要求。
圖5 前牙牙尖變形設(shè)計結(jié)果。(a)初始牙模;(b)抬高左牙尖;(c)抬高右牙尖;(d)增加控制點;(e)降低中間部位;(f)抬高中間部位Fig.5 The cusp designed result of anterior tooth.(a)initial tooth model;(b)raise left cusp;(c)raise right cusp;(d)add control points;(e)descend middle region;(f)raise middle region
圖6是前牙修復(fù)體和鄰牙發(fā)生碰撞干涉時修復(fù)體曲面在鄰牙約束下變形的實例。圖6(a)中箭頭所指部位即是前牙修復(fù)體和鄰牙的碰撞干涉區(qū)域,需要對此區(qū)域進(jìn)行變形才能得到正確的修復(fù)體形態(tài),所以要在干涉區(qū)域構(gòu)造特征曲線,如圖6(b)所示;為突出變形效果,將視圖調(diào)整到正方向(見圖6(c)),并將干涉部位局部放大,得到圖6(d)的結(jié)果。圖6(d)和圖6(e)顯示了移動特征曲線的中間控制點驅(qū)動修復(fù)體曲面變形的過程,圖6(f)是最后的變形結(jié)果。從變形結(jié)果可以看出,修復(fù)體曲面在曲線驅(qū)動下形狀發(fā)生改變,圖6(d)中標(biāo)注的干涉區(qū)域已經(jīng)消失,修復(fù)體和鄰牙之間的接觸符合約束要求。在修復(fù)體形態(tài)設(shè)計過程中,當(dāng)修復(fù)體和鄰牙或?qū)︻M牙出現(xiàn)干涉時,都可以通過這種方法驅(qū)動修復(fù)體曲面局部變形,從而消除干涉部位。
圖6 前牙干涉區(qū)域變形設(shè)計結(jié)果。(a)鄰牙干涉區(qū)域;(b)構(gòu)造特征曲線;(c)正面視圖;(d)干涉區(qū)域局部放大;(e)移動中間控制點;(f)變形結(jié)果Fig.6 The deformation result of anterior tooth under the constraint.(a)the collision between the tooth;(b)construct the feature line;(c)front view;(d)local magnified image;(e)translate middle control point;(f)the deformed result
在牙齒缺損或缺失之后,牙齒表面形態(tài)特征也會不可避免地丟失。現(xiàn)在,利用口腔CAD/CAM軟件進(jìn)行缺損牙齒修復(fù),一般是從標(biāo)準(zhǔn)牙冠數(shù)據(jù)庫中調(diào)用匹配的標(biāo)準(zhǔn)牙冠作為修復(fù)體。標(biāo)準(zhǔn)牙冠是統(tǒng)計模型數(shù)據(jù),在各個患者的牙齒形態(tài)特征之間存在差異。要恢復(fù)患者牙齒的表面形態(tài)特征,需要用到局部變形技術(shù)。提出基于特征曲線驅(qū)動的局部變形技術(shù),可以讓用戶通過計算機輔助設(shè)計,簡便高效地對修復(fù)體曲面進(jìn)行設(shè)計。
1)達(dá)到了牙齒修復(fù)體曲面局部變形所要遵循的基本要求,設(shè)計方法簡便靈活,變形曲面光順自然,不會出現(xiàn)褶皺或裂痕。
2)與文獻(xiàn)[6-7]中曲線驅(qū)動的局部變形算法相比,不需要用B樣條曲線插值擬合整個修復(fù)體曲面,只需在干涉區(qū)域構(gòu)造特征曲線,避免了大量冗余計算,而且通過“離散投影點算法”快速建立特征曲線和修復(fù)體曲面的映射關(guān)系,顯著提高了計算效率。
3)與商用口腔CAD/CAM軟件CEREC 3D和3SHAPE相比,用戶直接在修復(fù)體上選擇控制點生成特征曲線的方式,以及控制點可隨意增加、刪除、清空的功能,提高了操作的交互性。這種方式的不利因素在于增加了用戶的操作,不如CEREC 3D和3SHAPE中特征曲線內(nèi)置的方式簡便直接。
牙齒修復(fù)體表面形態(tài)設(shè)計是口腔CAD/CAM修復(fù)工藝中的關(guān)鍵環(huán)節(jié)之一,直接決定了牙齒修復(fù)的質(zhì)量。只有具備強大的變形設(shè)計功能,才能設(shè)計出滿足患者需求的牙齒,達(dá)到實用、高效、美觀的目的。為此,提出基于特征曲線驅(qū)動的修復(fù)體局部變形方法,通過編輯特征曲線,即可實現(xiàn)修復(fù)體曲面的局部變形,而且變形曲面光順自然,符合變形設(shè)計要求,這為國產(chǎn)口腔CAD/CAM軟件核心技術(shù)的研發(fā)打下了堅實的基礎(chǔ)。但是,還有一些問題需要解決,比如在用戶自定義特征曲線的基礎(chǔ)上,像CEREC 3D和3SHAPE一樣也提供特征曲線內(nèi)置的方式,這將是下一步研究的目標(biāo)。
[1]Christensen GJ.Computerized restorative dentistry:state of the art[J].Journal of the American Dental Association,2001,132(9):1301-1303.
[2]呂培軍,李彥生,王勇,等.國產(chǎn)口腔修復(fù)CAD-CAM系統(tǒng)的研究與開發(fā)[J].中華口腔醫(yī)學(xué)雜志,2002,37(5):367-370.
[3]金樹人,姚月玲,高勃,等.應(yīng)用快速成型法制作磨牙樹脂全冠[J].第四軍醫(yī)大大學(xué)學(xué)報,2003,24(8):700-702.
[4]韓景蕓,費仁元,李彥生,等.基于逆向工程技術(shù)的后牙嵌體的數(shù)字化個性設(shè)計[J].機械科學(xué)與技術(shù),2005,24(3):315-318.
[5]戴寧,周永耀,廖文和,等.口腔修復(fù)體模型曲面局部變形設(shè)計研究與實現(xiàn)[J].中國生物醫(yī)學(xué)工程學(xué)報,2008,27(3):379-388.
[6]張翔,廖文和,俞青,等.口腔修復(fù)體咬合面虛擬調(diào)整[J].中國機械工程,2006,17(20):2130-2135.
[7]李曉燕.B樣條曲線在口腔修復(fù)體局部修改中的應(yīng)用[J].上海理工大學(xué)學(xué)報,2005,27(4):357-362.
[8]Singh K,F(xiàn)iume E.Wires:A geometric deformation technique[C].Cunningham S,Brans ford W,Cohen MF,eds SIGGRAPH’98 Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques.New York:ACM,1998:405-414.
[9]朱心雄.自由曲線曲面造型技術(shù)[M].北京:科學(xué)出版社,2003.
[10]James G,Dominique B.A survey of spatial deformation from a user-centered perspective[J].ACM Transactions on Graphics,2008,27(4):1-21.
[11]Zhou Jinfang,Sherbrooke EC,Patrikalakis N.Computation of stationary points of distance functions[J].Engineering with Computers,1993,9(4):231-246.