潘家輝 朱玲利
1(華南師范大學軟件學院 廣東 南海 528225)2(洛陽師范學院信息技術學院 河南 洛陽 471002)
?
虛擬手術中表面網格模型的力反饋算法與仿真
潘家輝1朱玲利2
1(華南師范大學軟件學院廣東 南海 528225)2(洛陽師范學院信息技術學院河南 洛陽 471002)
摘要提出一個帶力反饋的虛擬腹部外科手術系統,并重點研究及實現了基于表面網格模型的力反饋算法。為了提高系統的穩定性,使用基于線段與表面三角網格的碰撞檢測方法;基于四階Runge-Kutta方法的表面網格mass-spring模型進行變形仿真;基于力的廣度優先傳播來解決變形仿真的局部性。通過仿真實驗驗證了該原型系統可以實現與可變形的三維模型的實時力覺交互。最后,把該方法應用到虛擬腹部外科手術系統中,并實現帶力反饋的手術仿真操作。
關鍵詞虛擬手術表面網格質點—彈簧模型四階Runge-Kutta算法廣度優先的力傳播模型
0引言
隨著虛擬現實領域研究的進展和外科手術方式的復雜化和精細化,虛擬手術漸漸成為熱門的研究課題。傳統的外科手術面臨如下困難:一方面,手術過程越來越復雜,需要詳細的手術規劃和術前預演。通過預計在實際手術中可能出現的復雜和險要情況,制定合理的個體化手術方案,提高手術成功率[2]。另一方面,醫學院醫生在手術室中的訓練計劃越來越少,需要通過計算機輔助技術或虛擬手術器械進行手術過程的仿真和模擬,來延長醫生的學習曲線。此外,虛擬手術還可以將熟練醫生的手術操作進行保存,用于解剖學和臨床手術的教學,這也有利于醫生重復訓練重要的手術操作[3]。總之,虛擬手術具有非常巨大的社會價值和經濟價值。本課題將建立一個用于手術訓練的虛擬腹部外科手術系統。
腹部外科手術一直被認為是難度高、風險大的手術,主要因為腹部器官內部結構的復雜性和變異性[4]。虛擬手術系統在計算機中建立一個虛擬3D環境,通過虛擬手術器械, 提供精確的視覺仿真和細膩的力覺反饋,仿真模擬手術過程。人體對觸覺相較視覺而言更加敏感,25Hz以上的視覺圖像看起來就是連續的,而力覺信息的頻率要達到250Hz以上才會平滑。也就是說,力覺繪制線程每4ms要運行1次以上,將耗費大量的CPU時間。在實現物理真實的形變模擬的同時,還要進行真實的力覺繪制,所以系統需要解決模擬的真實性和系統效率的問題。
對虛擬手術系統而言,力反饋具有特殊的價值,因為觸覺手感是外科醫生手術技巧的基礎。目前,虛擬手術的研究和開發己經有了很大的進展。法國的INRIA研究小組一直致力于肝臟切割模擬器的研究,并在此基礎上實現了對肝臟等軟組織的切割和撕裂等仿真操作[5]。德國Karlsruhe研究中心成功開發了用于婦科手術的內窺鏡虛擬手術系統,并能實現對軟組織進行切割、燒灼和捏等手術操作的仿真。與國外研究情況相比,我國的研究才剛剛起步。上海交通大學謝叻等開發了一種多功能的虛擬手術器械[7],可實現手術刀、手術剪和手術鉗等操作,但還不具備力反饋功能。國防科技大學與301醫院聯合開發了帶有力反饋的虛擬膝關節鏡手術系統[8]和虛擬心臟介入手術系統[9]。為了提高虛擬切割的性能,青島大學賈世宇等提出了一種先細分后分裂的新式交互切割方法[10]。針對虛擬軟組織形變多為大變形的特點,哈爾濱工程大學朱玲等提出了一種改進的質點積分無網格的力反饋技術[11]。
目前使用的基于物理的變形方法主要有mass-spring方法和FEM[12]。相較FEM模型,mass-spring模型的計算復雜度低,拓撲結構修改方便,所以目前我們使用mass-spring模型來模擬變形。但mass-spring模型基于連續物體離散化的理論,精度系數和阻尼系數不易確定,在模擬的真實性方面不如FEM模型。文獻[13]提出了使用模擬退火法參照FEM模型來調整mass-spring的勁度系數和阻尼系數的方法。用mass-spring模擬整體形變效果也是一個挑戰,文獻[14]實現了使用廣義彈簧保持幾何形狀和體積、使用形狀匹配實現整體形變、使用逆向動力學修正“超彈性”的mass-spring模型。而在實時力覺視覺交互的系統之中,即使易于求解的mass-spring模型的效率也有待提高。
1虛擬手術系統的設計
整個系統分為預處理和實時計算兩大部分,如圖1所示。

圖1 虛擬手術系統的系統框架
目前我們系統的基本架構已經基本完成[15]。系統可以讀入.obj格式的三維模型,使用線段來表示手術器械的形狀,并進行線段與表面三角網格的碰撞檢測;進行彈簧—振子的觸覺繪制;使用廣度優先的力傳播模型來實現局部變形,降低了系統的計算復雜度;使用基于四階Runge-Kutta方法的表面網格mass-spring模型進行變形仿真,從而在使用更大的仿真步長的同時還能得到更好的仿真效果,減少了單位時間的計算量;可以實現實時的視覺和力覺反饋。
2力反饋算法的設計
2.1手術器械表示

圖2 手術刀的形狀表示
在眾多的手術器械當中,手術刀和電刀無疑是應用最為廣泛的。它們是在腹部外科手術操作過程中,在組織或器官上造成切口的必備工具。本文分別采用線段來表示其幾何特征,其他筆桿狀器械也可采用該形式表示。如圖2所示,灰色區域代表外形;點P是手術器械的質點,對應著筆桿狀器械的尖點;點Q是器械的手柄代表點,對應著筆桿狀器械的末端;方向n是器械表面的法線方向;點R是手術器械的受力代理點。本文通過這樣的方式把筆桿狀的手術器械表示為線段PQ,進行有關碰撞檢測、力傳播模型、觸覺繪制方面的交互計算。
2.2碰撞檢測

圖3 線段與三角形的相交測試
由于本文用一條線段來表示筆桿狀的手術器械,用三角網格表示腹部外科組織表面,所以手術器械和臟器組織之間的碰撞檢測問題就可以簡化為線段與三角網格的相交檢測問題。如圖3所示,線段的兩個端點為P(Px,Py,Pz)和Q(Qx,Qy,Qz),三角形的三個頂點分別為P0(x0,y0,z0)、P1(x1,y1,z1)和P2(x2,y2,z2)。相交檢測的任務則是判斷線段有否與模型的三角片相交,若相交,則求出交點R(Rx,Ry,Rz)。關于線段和三角形的相交檢測方法分兩步:
第一步是判斷線段與包含三角形的平面是否相交,若相交,則求交點。
點R在線段PQ上,同時點R在三角形P0P1P2上,則有:
R=(1-t)P+tQR·n=d
(1)
其中t是比例系數,n為三角形的法向量,d為常量。可以求出:
(2)
若比例系數t滿足0≤t≤1,則線段與該平面相交,代入式(1),求出交點R。
第二步是判斷點R是否在三角形P0P1P2內。

圖4 三角形投影到某一平面
為了減少計算量,本文通過三角形投影,把3D問題轉化到2D中。通過降維操作,將三角形投影到某一個基本水平面上。為了避免垂直或者接近垂直的情況,一般挑選投影面積最大的投影面。這可以通過檢查三角形平面的法向量做到,去掉其絕對值最大的分量對應的坐標。如圖4所示,這里假設投影面為XOY平面,去掉z坐標。
此外,本文通過計算交點的重心坐標,來判斷它是否在三角形中。其中,重心坐標(α,β,γ)即是三角形所在平面的任意點都能表示為頂點的加權平均值。若滿足0<α<1,0<β<1,0<γ<1,則點R在三角形P0P1P2中。其具體計算公式如下:
Rx=αP0x+βP1x+γP2xRy=αP0y+βP1y+γP2yα+β+γ=1
(3)
解方程組可得 :
(4)
2.3觸覺繪制
在檢測出手術器械與物理模型碰撞之后,系統將構造反饋力并在力反饋設備Phantom上進行觸覺繪制。對于這類筆桿狀的手術器械,本文假定切割中的反饋力作用于尖端P上(如圖2所示)。軟組織對器械的約束力fh通過定義手術器械與接觸點的彈性約束kconstraint來實現觸覺繪制。kconstraint描述的是一個虛擬彈簧的約束力剛度,如圖5所示。虛擬彈簧的兩個端點分別是手術器械上的接觸點和物體上的接觸點。剛開始兩個接觸點重合,虛擬彈簧初始長度drelease= 0,當手術器械進入物體,手術器械上的接觸點移動,彈簧的長度變為d,那么反饋力是:
fh=-kconstraint(d-drelease)
(5)

圖5 力反饋模型示意圖
2.4廣度優先的力傳播模型
很多手術操作并不會引起組織的全局變形,例如手術刀在膽囊上切割一道入口、止血鉗鉗住血管等。我們假設以線段表示的手術器械和物體只有一個接觸點R,當這個接觸點在外力的作用下發生運動時,此接觸點就成為受激發的節點,在該中心受力節點上產生的應力通過與其相連接的彈簧作用在其他相鄰質點上,從而把力向周圍傳遞,帶動相鄰的節點運動。這樣,物體的變形就由于節點的運動而產生了。廣度優先的力傳播模型如圖6所示。

圖6 廣度優先的力傳播模型
圖6中,接觸點R是廣度優先搜索的第一層變形頂點,它的相鄰點形成第二層變形頂點,第二層變形頂點的沒有被訪問過的相鄰點形成第三層變形頂點。
本文使用廣度優先力傳播模型來實現變形的局部性[16,17],其基本思想是外力先作用于該接觸點,然后以廣度優先遍歷的順序,先傳播到接觸點的最近鄰點,然后是最近鄰點的未被訪問的相鄰點,這樣傳播直到最大的遍歷深度為止。如圖6所示,在最大深度為2的情況下,按照廣度優先的方法,接觸點的反饋力在第一層傳播中更新與該節點相連接的6個鄰接節點的位置信息,在第二層傳播中則依次更新這6個節點的鄰接節點(12個鄰接節點)的位置信息。具體步驟描述如下:(1) 確定遍歷深度n,一般遍歷深度取值越大,形變仿真的逼真程度則越高,這需要在計算復雜度和虛擬仿真度之間做出平衡,本文設定n=3。(2) 建立一個空集L0,將接觸點集V0中的初始接觸點加入L0,其中,在初始狀態下,V0只有一個接觸點R(手術器械的受力代理點)。(3) 依次創建Li={Li| i = 1,2,…,n},并將接觸點集V={Vi| i = 1,2,…,n}中所有的點加入L0,對每一個在Li中的頂點,訪問其相鄰點,如果該相鄰點已經被訪問過,不做任何工作,否則置該相鄰點的狀態為被訪問并將該相鄰點加入Li+1。(4) 當達到最大的遍歷深度n時,輸出變形頂點集合{L0,L1,…,Ln}。
對于手術工具和物體有多個接觸點的情況,則獨立地以各個接觸點為樹根做廣度優先的遍歷。若遍歷到的頂點沒有被訪問過(可能是來自任何接觸點的遍歷的訪問),則將頂點狀態置為已訪問并將之加入變形頂點集合,否則不做任何工作。
2.5基于四階Runge-Kutta方法的表面網格mass-spring模型
本文采用四階Runge-Kutta方法來求解mass-spring網絡,以容忍較大的仿真步長,從而減輕系統單位時間內的計算負載。Euler和Runge-Kutta方法都是求解離散差分問題的經典方法。其中,Euler方法計算簡單,但精確性和穩定性不夠強,而且要求較小的時間步長;而四階Runge-Kutta方法在提高精確度的同時增加了計算量,但仍不失為一個平衡了精確度和計算量之后較好的選擇[18]。
在系統中,我們定義tn表示第n+1次仿真迭代開始時的系統時間,那么自變量:
xn=tn
(6)
定義yn表示mass-spring系統的狀態集合:
(7)
其中Xn是質點空間坐標的集合,Vn是質點速度的集合。
那么,對于每一質點,作用力是:
(8)

(9)
式中,ks表示彈簧的勁度系數。Δdij表示彈簧的彈性形變:
Δdij=d-drelease
(10)
式中,d表示彈簧當前長度,drelease表示零張量長度。
由式(1),得到質點的加速度,即速度的差分:
ΔVn=f/m
(11)
式中,m是質點的質量。
而位置的差分:
ΔXn=V
(12)
式中,V是質點的當前速度。
故f函數計算差分的表達式是:
(13)
使用四階Runge-Kutta方法求解,系統在h=40ms的步長下,得到了較為真實的模擬效果。
3實驗與結果
在虛擬手術框架(如圖1所示)下,本文利用力反饋設備PHANToM和圖形工作站(CPU:Xeon2.80GHz,內存:4GB,顯卡:NVIDIAQuadroFX5500)的平臺,使用VC++和OpenHaptic開發包開發了帶力反饋的虛擬手術系統MIPS,實現了實時力覺和視覺交互的物理變形。為了驗證本文方法的有效性,本文進行了力反饋的物理變形仿真、帶力反饋的虛擬手術兩方面的實驗。
3.1力反饋的物理變形仿真
由于力反饋在精度和實時性方面的要求較高,數據計算量比較大。因此,本實驗目的在于測試本文力反饋算法在不同模型規模下的性能。如圖7所示,系統可以實時模擬外力作用下的三維形變。如表1所示,對不同規模三角面片數的obj文件,使用廣度優先的力傳播模型后,依次求解mass-spring網絡的時間大致相同。此外,圖像繪制和觸覺繪制的幀頻與模型結點數是呈線性關系的。可以推算當表面網格的結點數為2500以內的模型,其圖像繪制的頻率可達30FPS,力反饋頻率可達300FPS。此算法的運算速度基本能滿足虛擬手術的需求,具有滿足交互的實時性。

圖7 力的滲透深度為2時的變形效果圖

模型結點數面片數力的滲透深度彈簧質點網格求解耗時(ms)圖像繪制幀頻(FPS)觸覺繪制幀頻(FPS)689135531638.17325.902703496831627.65246.7871201433931612.11125.46
3.2帶力反饋的虛擬手術
為驗證所開發的虛擬手術系統的可操作性和變形效果,設計了左半肝切除的實驗任務,由一名外科醫生進行力反饋的手術仿真操作。由于PHANToM(虛擬手術刀)操縱桿也是筆桿狀,因此手持操縱桿的方式可以模仿真實手術,采用指壓式、握持式或執筆式。醫生首先把肝臟模型導入系統,并把組成表面網格的三角面皮可視化,如圖8所示。然后,通過操縱PHANToM手柄來操作虛擬手術刀,進行帶有力反饋的切割操作,效果如圖9所示。

圖8 基于表面網格的肝臟 圖9 手術刀切割肝臟的切口
醫生操縱虛擬手術刀進行左半肝切除的一系列操作。在操作過程中,醫生可明顯感受到來自PHANToM的作用力。圖10把操作過程中虛擬手術刀的三維力反饋信息顯示出來。其中,x軸為仿真手術的時間,y軸為力反饋的大小。從圖10中可以看到,在左半肝切除的200秒仿真手術過程中,虛擬手術刀產生的作用力在三個維度的分量(x方向、y方向和z方向)的變化呈現一定的規律。例如,在78秒和176秒,虛擬手術刀在x、y、z方向上均呈現出一個反方向的反饋力。此外,反饋力在x、y、z方向的大小在200秒虛擬手術過程中均保持在[-1.5,1.5]的范圍內。這表明反饋力分量的變化基本符合醫生在左半肝切除手術過程中的運動期望,表現出穩定而連續的力覺交互效果。對于本仿真過程,醫生認為雖然只是粗略模擬了仿真手術的過程,但他始終能感受到連續變化的反饋力,并在這種牽引力的引導下操縱虛擬手術刀完成模擬操作。虛擬手術中臟器的形變、手術刀的力反饋、以及整個交互操作等效果已達到仿真訓練的最簡單要求。

圖10 手術刀切割時的三個維度的反饋力變化
4結語
本文從虛擬手術仿真系統的設計與實現出發,圍繞著表面網格的力反饋算法,對手術器械表示、碰撞檢測、觸覺繪制、力反饋傳播模型以及mass-spring模型的求解等方面進行深入的研究。下一步的工作是構造手術鉗、剪刀等手術器械的幾何模型和物理模型,并實現相應的手術操作。在觸覺繪制方面,構造虛平面來產生更細膩、更真實、更復雜的反饋力。
參考文獻
[1]SatavaRM.MedicalVirtualReality:TheCurrentstatusofthefuture[J].InProc.4thConf.MedicineMeetVirtualReality(MMVRIV),SanDiego,CA,1996,29(1):100-106.
[2]SatavaRM.Historicalreviewofsurgicalsimulation—apersonalperspective[J].Plasticandreconstructivesurgery,2004,32(2):141-148.
[3]AiKadiAS,DonnonT,PaolucciEO,etal.Theeffectofsimulationinimprovingstudents’performanceinlaparoscopicsurgery:ameta-analysis[J].Surgicalendoscopy,2012,26(11):3215-3224.
[4] 李忠廉,崔乃強,苗彬,等.腹部外科再手術原因分析:附828例報告[J].中國普通外科雜志,2007,16(2):148-150.
[5]CourtecuisseH,AllardJ,KerfridenP,etal.Real-timesimulationofcontactandcuttingofheterogeneoussoft-tissues[J].Medicalimageanalysis,2014,18(2):394-410.
[6]ColesTR,MeglanD,JohnN.Theroleofhapticsinmedicaltrainingsimulators:asurveyofthestateoftheart[J].Haptics,IEEETransactionson,2011,4(1):51-66.
[7] 謝叻,張艷,張天宇,等.虛擬手術中的力學變形和力覺感知[J].醫用生物力學,2006,21(3):241-245.
[8] 徐凱.基于力反饋的虛擬膝關節鏡手術系統的研究與實現[D].長沙:國防科技大學,2005.
[9] 任巨.虛擬心臟介入手術中的血流模擬和特效場景處理[D].長沙:國防科學技術大學,2005.
[10] 賈世宇,潘振寬.先細分后分裂的新式四面體網格交互切割方法[J].系統仿真學報,2012,23(12):2704-2708.
[11] 朱玲.虛擬手術中軟組織形變與切割技術研究[D].哈爾濱工程大學,2012.
[12] 劉秀玲,陳棟,董亞龍,等.真實軟組織特性的肝臟組織物理建模及受力分析優化[J].計算機輔助設計與圖形學學報,2013,25(7):1029-1035.
[13] 蔡及時,孫漢秋,王平安.應用于網上虛擬手術的自適應變形模型[J].軟件學報,2002,13(9):1893-1898.
[14] 王彥臻,熊岳山,徐凱,等.改進的采用表面網格的彈簧振子模型[J].計算機輔助設計與圖形學學報,2007,19(2):168-171.
[15] 潘家輝,鮑蘇蘇.一種腹部外科虛擬手術仿真系統[J].計算機應用研究,2010,27(2):566-568.
[16]ChoiKS,SunH,HengPA.Anefficientandscalabledeformablemodelforvirtualreality-basedmedicalapplications[J].Artificialintelligenceinmedicine,2004,32(1):51-69.
[17]ZhongY,ShirinzadehB,SmithJ,etal.Softtissuedeformationwithreaction-diffusionprocessforsurgerysimulation[J].JournalofVisualLanguages&Computing,2012,23(1):1-12.
[18] 劉利斌,王偉.四階Runge-Kutta算法的優化分析[J].成都大學學報:自然科學版,2007,26(1):19-21.
SURFACE GRID MODEL-BASED FORCE FEEDBACK ALGORITHM ANDSIMULATIONINVIRTUALSURGERY
Pan Jiahui1Zhu lingli2
1(School of Software,South China Normal University,Nanhai 528225,Guangdong,China)2(School of Information Technology,Luoyang Normal University,Luoyang 471002,Henan,China)
AbstractIn this paper we introduce a virtual abdominal surgery system with force feedback, and emphatically study and realise the surface grid model-based force feedback algorithm. To improve the stability of the system, we used the collision detection which is based on line and surface triangular grid, the surface grid mass-spring model which is based on fourth-order Runge-Kutta algorithm to carry out deformation simulation, and the force-based breadth-first propagation to solve the locality of deformation simulation. Through simulation experiment we verified that the prototype system was able to achieve real-time force interaction with deformable 3D model. Finally, we applied the method to virtual abdominal surgery system, and realised the surgery simulation operation with force feedback.
KeywordsVirtual surgerySurface gridMass-spring modelFourth-order Runge-Kutta algorithmBreadth-first force propagation model
收稿日期:2015-01-31。國家高技術研究發展計劃項目(2012AA 021105);廣東省中科院產學研合作研究項目(2010A090100032)。潘家輝,講師,主研領域:模式識別與智能系統,數字醫學,腦機接口。朱玲利,講師。
中圖分類號TP3
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.06.062