王 娜,陳國棟,許少劍
1(福建師范大學(xué) 福清分校 電子與信息工程學(xué)院,福州 350300)
2(無損檢測技術(shù)福建省高等學(xué)校重點實驗室(福建師范大學(xué)福清分校),福州 350300)
3(非遺數(shù)字化與多源信息融合福建省高校工程研究中心,福州 350300)
4(福州大學(xué) 物理與信息工程學(xué)院,福州 350108)
虛擬現(xiàn)實技術(shù)作為仿真技術(shù)的重要方向之一,被廣泛地應(yīng)用在多個領(lǐng)域[1-3].隨著醫(yī)學(xué)和計算機技術(shù)的發(fā)展,虛擬手術(shù)成為了虛擬現(xiàn)實技術(shù)在醫(yī)學(xué)領(lǐng)域的重要應(yīng)用之一.虛擬手術(shù)具有可重復(fù)性的優(yōu)點,能夠在不依賴于尸源的情況下逼真地模擬臨床手術(shù)的全過程,為醫(yī)學(xué)培訓(xùn)和科研提供了一種可操作性強又經(jīng)濟有效的訓(xùn)練平臺.肝臟是人體內(nèi)最大的實質(zhì)性器官,由肝實質(zhì)和伴隨著一系列管道的間質(zhì)構(gòu)成[4].然而肝臟又是一個脆弱器官,一旦出現(xiàn)惡性腫瘤將會危及生命.肝外科手術(shù)仍然是治療大多數(shù)惡性原發(fā)性或繼發(fā)性肝損傷最有效的方法[5].
在虛擬肝臟手術(shù)的研發(fā)中,肝臟的可視化建模[6-8]與形變仿真[9-11]是關(guān)鍵技術(shù)之一,肝臟的形變?nèi)绨磯?、穿刺、縫合等操作的逼真程度直接影響到虛擬手術(shù)的質(zhì)量.無網(wǎng)格形變技術(shù)方法在手術(shù)直接操作大變形區(qū)域由于無需進行網(wǎng)格重構(gòu),不會產(chǎn)生網(wǎng)格畸變,同時又具有光滑過渡的形變優(yōu)點,因此適合于大變形區(qū)域仿真.然而無網(wǎng)格方法的計算量大,會影響運行速度,若在全局模型區(qū)域采用該方法會導(dǎo)致計算效率低,嚴重影響虛擬手術(shù)仿真的實時性.在肝臟軟組織物理形變方法中,軟組織在手術(shù)器械直接施壓作用力的局部范圍內(nèi)會發(fā)生大變形,基于網(wǎng)格形變的方法在這大變形區(qū)域內(nèi)會發(fā)生網(wǎng)格畸變,影響形變仿真的真實感.虛擬肝臟手術(shù)系統(tǒng)中的形變仿真盡可能在滿足真實感的前提下又同時滿足實時性要求,否則會影響手術(shù)訓(xùn)練或手術(shù)方案的制定,甚至給醫(yī)生造成誤導(dǎo).而實時性與真實感一直是研究此領(lǐng)域難以平衡的問題.虛擬肝臟形變仿真手術(shù)要體現(xiàn)視覺的逼真感,則需要根據(jù)肝臟組織真實的生物特性來建立形變模型,從而能夠精確模擬形變過程并反饋給用戶.
虛擬手術(shù)中肝臟形變仿真系統(tǒng)中涉及到的主要研究的內(nèi)容有:虛擬手術(shù)場景中的肝臟幾何建模、虛擬手術(shù)場景繪制及模型繪制、虛擬器械與肝臟模型的交互碰撞檢測、肝臟軟組織在器械操作下的形變仿真、力反饋的計算、數(shù)值積分計算.針對以上研究內(nèi)容,該虛擬形變仿真系統(tǒng)的開發(fā)分為3個模塊:數(shù)據(jù)預(yù)處理模塊、主程序模塊、反饋模塊.數(shù)據(jù)預(yù)處理模塊主要包括肝臟軟組織的幾何建模及虛擬手術(shù)場景的渲染;主程序模塊是系統(tǒng)的核心模塊,該模塊實現(xiàn)鼠標拾取碰撞檢測算法、反饋力計算、肝臟軟組織物理形變算法、形變動力學(xué)方程的數(shù)值積分計算;反饋模塊將虛擬手術(shù)形變過程以圖形視覺的方式反饋給用戶,并且將主程序中獲取的反饋力小、位移、碰撞最鄰近質(zhì)點信息輸出反饋給用戶,用戶可以對這些數(shù)據(jù)采集分析,如圖1所示.
圖1 虛擬手術(shù)中肝臟形變仿真系統(tǒng)架構(gòu)圖
為了使本設(shè)計能用于大多數(shù)科研實驗室常見的PC平臺,以提高程序代碼的可重用性和可移植性,操作系統(tǒng)采用Windows,開發(fā)環(huán)境為OpenGL開放工具庫,同時AutoCAD、3ds Max等3D圖形設(shè)計軟件制作的模型文件可以轉(zhuǎn)換成OpenGL的頂點數(shù)組及面片數(shù)組,OpenGL可以根據(jù)頂點數(shù)組及面片數(shù)組繪制模型.本論文采用OpenGL來渲染虛擬手術(shù)場景、繪制肝臟模型、并且將模型形變過程動態(tài)的顯示在屏幕上.計算機硬件采用Intel? CoreTMi7-2670QM 2.2 GHz 的CPU,8 GB內(nèi)存,NVIDIA GeForce GT 540 M 的顯卡及2 GB顯存.
在該系統(tǒng)的開發(fā)中,為了能提供友好、人性化、可視化的圖形交互界面,方便用戶使用.本系統(tǒng)在MFC上創(chuàng)建用戶界面,OpenGL完成圖形的繪制顯示,從而實現(xiàn)可視化交互系統(tǒng).
該系統(tǒng)的界面如圖2所示,系統(tǒng)界面設(shè)計分為3個區(qū)域:第1個區(qū)域為控制區(qū),用戶可以對實驗參數(shù)進行設(shè)置;第2個區(qū)域為對實驗數(shù)據(jù)輸出區(qū)域,用于輸出反饋力大小、位移等.第3個區(qū)域為視圖區(qū)域,用于對形變仿真結(jié)果的三維顯示.
根據(jù)虛擬手術(shù)形變的特征,結(jié)合上述網(wǎng)格與無網(wǎng)格的優(yōu)缺點,本文提出一種肝臟網(wǎng)格與無網(wǎng)格混合模型的構(gòu)建方法:將軟組織動態(tài)劃分3個區(qū)域,即手術(shù)大變形區(qū)域、非手術(shù)區(qū)域、交界區(qū)域.在手術(shù)大變形區(qū)域采用無網(wǎng)格法,非手術(shù)區(qū)域采用網(wǎng)格法.在手術(shù)區(qū)域采用無網(wǎng)格方法可以避免大形變中的網(wǎng)格畸變問題,有利于實現(xiàn)形變仿真的真實感,同時手術(shù)區(qū)域較小則區(qū)域模型節(jié)點數(shù)也較少,手術(shù)區(qū)域采用無網(wǎng)格法可以達到實時性要求;在非手術(shù)區(qū)域采用基于質(zhì)點彈簧的網(wǎng)格形變方法,充分發(fā)揮了質(zhì)點彈簧在實時性上的優(yōu)點,同時非手術(shù)區(qū)域形變較小采用質(zhì)點彈簧法也不會發(fā)生網(wǎng)格畸變,模擬形變效果也較好.本文提出的基于網(wǎng)格與無網(wǎng)格混合的形變方法發(fā)揮兩者在形變仿真中的優(yōu)勢,在真實感與實時性兩者之間進行折中,能夠適用于虛擬肝臟形變手術(shù)仿真.
圖2 系統(tǒng)界面圖
肝臟網(wǎng)格與無網(wǎng)格混合模型的構(gòu)建方法為:采用完全的質(zhì)點彈簧模型作為初始模型,手術(shù)中將大變形區(qū)域產(chǎn)生網(wǎng)格畸變的質(zhì)點彈簧模型能夠自適應(yīng)地轉(zhuǎn)換成無網(wǎng)格建模區(qū)域,而變形不顯著的區(qū)域仍然保留質(zhì)點彈簧模型,從而將這兩個區(qū)域混合起來.同時對混合模型中在無網(wǎng)格區(qū)域與質(zhì)點彈簧區(qū)域之間建立過渡單元.
為了研究可以自動依據(jù)手術(shù)器械操控區(qū)域及施力大小而動態(tài)轉(zhuǎn)換的混合模型,設(shè)計了一種區(qū)域可變的網(wǎng)格向無網(wǎng)格動態(tài)自適應(yīng)轉(zhuǎn)換算法,算法流程圖如圖3所示.
算法主要分為以下4個步驟:
步驟1.從VHP (Visible Human Dataset)數(shù)據(jù)集中提取肝臟輪廓.通過在HSV(Hue,Saturation,Value)顏色空間中大致的提取出肝臟輪廓,再加以簡單的人工交互曲線擬合的方法找到肝臟的輪廓.接下來選取面繪制的方式對肝臟進行三維重建,使用輪廓線上的點來構(gòu)建肝臟模型,再對所構(gòu)建的肝臟模型做表面的平滑處理,最終得到理想的肝臟模型.
步驟2.當手術(shù)器械作用于肝臟軟組織表面時,對質(zhì)點彈簧模型需要搜索與碰撞點位置最鄰近的質(zhì)點作為器械的施力點,該質(zhì)點受到作用力從而位移發(fā)生變化,與該質(zhì)點相連接的彈簧長度變化,從而產(chǎn)生彈簧力逐層帶動其他質(zhì)點運動產(chǎn)生形變.鼠標交互操控中根據(jù)拾取算法來檢測是否對模型進行手術(shù)施力,最后搜索與拾取點最鄰近的模型質(zhì)點作為實際施力點.
圖3 算法流程圖
步驟3.針對虛擬器械操作肝臟軟組織過程中可能發(fā)生的情況進行動態(tài)劃分:對手術(shù)區(qū)域產(chǎn)生的較大形變采用無網(wǎng)格法進行模擬;其余非手術(shù)區(qū)域受力較小產(chǎn)生的形變也較小,則采用基于質(zhì)點彈簧的網(wǎng)格形變方法來模擬;而兩者之間通過過渡節(jié)點完成信息的傳遞.該步驟分為3個子步驟:
步驟3.1.無網(wǎng)格模型動態(tài)形變可以利用牛頓第二定律對各個節(jié)點分析,從而肝臟模型的彈性變形可以用下式來模擬:
步驟3.2.在質(zhì)點彈簧系統(tǒng)中每個質(zhì)點由于受到總作用力而產(chǎn)生運動,總的作用力包含了內(nèi)力與外力兩部分,其中內(nèi)力是由質(zhì)點彈簧系統(tǒng)形變產(chǎn)生的彈簧力和阻尼力組成,外力主要為肝臟軟組織受到手術(shù)器械的拉力及壓力.而每一個質(zhì)點在力作用下的運動形變滿足牛頓第二定律,則質(zhì)點彈簧模型中任何一個質(zhì)點i的動力學(xué)方程為:
其中,Xi是質(zhì)點的位移矢量,質(zhì)點i受到的彈簧力、阻尼力、拉力及壓力分別用Fd、Fk、Ft、Fp表示,其他質(zhì)點受到器械作用力為零.
步驟3.3.對過渡單元節(jié)點受到無網(wǎng)格區(qū)域的作用力和質(zhì)點彈簧區(qū)域的作用力這兩者的合力,其形變方程為:
步驟4.質(zhì)點彈簧模型根據(jù)無網(wǎng)格模型傳遞過來的位移,計算質(zhì)點彈簧模型內(nèi)質(zhì)點受到的彈力,則質(zhì)點彈簧模型由于彈力作用,帶動了整體質(zhì)點彈簧模型質(zhì)點的位移運動.同時質(zhì)點彈簧模型將反作用的彈力通過過渡連接點傳遞給無網(wǎng)格模型,無網(wǎng)格模型由此也獲得了質(zhì)點彈簧模型的彈力作用,從而完成了肝臟的網(wǎng)格與無網(wǎng)格混合模型的構(gòu)建.
該算法結(jié)合了網(wǎng)格與無網(wǎng)格方法的優(yōu)缺點,本質(zhì)上是一種基于網(wǎng)格與無網(wǎng)格混合的物理模型的肝臟軟組織形變仿真算法,能夠滿足形變仿真的真實感與實時性要求.
數(shù)據(jù)預(yù)處理模塊完成肝臟軟組織幾何建模:根據(jù)真實肝臟軟組織的醫(yī)學(xué)影像信息建立肝臟的幾何模型,將建立好的肝臟模型載入到系統(tǒng)中,模型載入的過程不需要具有實時性,因此該模塊可以作為一個獨立模塊,數(shù)據(jù)預(yù)處理過程需要存儲模型頂點信息、面片信息、每個頂點相連接的拓撲信息,完成實驗前期預(yù)計算.
肝臟三維模型用三維建模軟件3ds Max完成文件格式轉(zhuǎn)換,針對于不規(guī)則部分進行細分,從而劃分出盡可能多的規(guī)則形狀,最后利用該軟件繪制出對應(yīng)的圖形.而一些無法進行再次劃分的形狀,采用分解的方法,對圖形的基本單元劃分成單個功能單元,再利用編輯器進行調(diào)整和設(shè)置.對于一些規(guī)則的圖形則只需要進行多次的裁剪、編輯、放大、縮小,就可以提高模型的精密度.三維肝臟模型是由頂點和三角面片組合而成的,通過頂點信息定義出邊的信息,接著通過邊的信息構(gòu)成面片的信息.頂點和三角形面片的數(shù)量越大,三維模型就越精細.為了提高形變仿真的真實感,所構(gòu)建的三維肝臟模型的頂點數(shù)設(shè)置為1527個,三角形面片數(shù)為3050個,由3ds Max建立的肝臟模型如圖4所示.在建立肝臟的幾何面模型的基礎(chǔ)上,結(jié)合肝臟的生物力學(xué)特性就可以對肝臟軟組織物理建模,因此肝臟幾何建模是是研究物理形變模型的前期準備工作.
圖4 由3ds Max建立的肝臟模型
在完成建立肝臟模型后,需要將模型載入系統(tǒng),并繪制模型及虛擬手術(shù)場景.肝臟軟組織模型繪制及虛擬手術(shù)器械繪制是在MFC環(huán)境中調(diào)用OpenGL函數(shù)實現(xiàn).將3ds Max所建肝臟模型導(dǎo)出為ASE的文件格式,保留了模型頂點及面的拓撲信息,該信息用于質(zhì)點彈簧模型的建立及無網(wǎng)格模型表示,ASE文件讀取用C++程序語言中ifstream類來實現(xiàn)的.并將其在MFC框架用OpenGL函數(shù)繪制該模型如圖5所示.
圖5 用OpenGL繪制的肝臟模型
主程序模塊是虛擬肝臟形變仿真的核心模塊,該模塊主要包括碰撞檢測子模塊、物理形變子模塊和數(shù)值計算子模塊.在虛擬主模擬程序中,首先調(diào)用數(shù)據(jù)預(yù)處理模塊,繪制肝臟組織模型及場景繪制,建立虛擬的手術(shù)環(huán)境;然后用戶通過鼠標拾取的操作實現(xiàn)交互操控肝臟軟組織,程序獲取鼠標交互的輸入信息,調(diào)用碰撞檢測模塊算法,檢測該虛擬器械是否與肝臟模型發(fā)生碰撞.若發(fā)生碰撞根據(jù)鼠標操作計算外力大小即反饋力計算,計算外力的同時進入形變計算模塊,根據(jù)實驗預(yù)先想要仿真何種物理形變模型,則調(diào)用相對應(yīng)的物理形變算法,物理形變算法有基于質(zhì)點彈簧的網(wǎng)格形變算法、無網(wǎng)格形變算法、兩者模型混合的形變算法,完成物理形變算法后需要對形變模型的動力學(xué)方程數(shù)值積分進行計算,并且計算形變過程中的位移大小.最后,更新形變后的模型幾何數(shù)據(jù)信息,調(diào)用圖形繪制模塊,將形變后的肝臟模型在顯示器上視覺反饋給用戶.
3.2.1 碰撞檢測子模塊
碰撞檢測子模塊是形變計算的前提準備步驟,當鼠標拾取操作作用在肝臟模型區(qū)域,需要檢測該操作位置在模型上的最鄰近質(zhì)點,同時搜索該質(zhì)點的局部區(qū)域為實現(xiàn)動態(tài)轉(zhuǎn)換的混合形變模型作前期工作,并把碰撞檢測到的質(zhì)點輸出到信息輸出區(qū)反饋給用戶.
3.2.2 物理形變子模塊
物理形變子模塊是在肝臟軟組織幾何建模的基礎(chǔ)上,根據(jù)肝臟軟組織的生物力學(xué)特性分別完成質(zhì)點彈簧、無網(wǎng)格、質(zhì)點彈簧與無網(wǎng)格混合的物理形變建模.該模塊將3種形變計算模型集成在一起,對這3個形變模型分別建立一個可交互操作界面.在各個形變模型界面對控制區(qū)的實驗參數(shù)進行初始化設(shè)置,用戶交互操作時檢測到鼠標拾取的模型碰撞點,則可以按照需要的形變仿真模型切換到相應(yīng)的形變模型算法中.系統(tǒng)通過模擬相應(yīng)的模型在操控力作用下產(chǎn)生的形變過程,將形變整體過程反饋給用戶.圖6、圖7、圖8分別為肝臟質(zhì)點彈簧模型形變界面、肝臟無網(wǎng)格模型形變界面、混合模型形變界面.首先用戶根據(jù)想要仿真的物理模型,鼠標點擊切換到相應(yīng)的形變界面,并載入肝臟模型,完成相對應(yīng)的物理形變模型繪制模型;其次根據(jù)實驗仿真可以在控制區(qū)對實驗參數(shù)進行重新設(shè)置,最后在鼠標交互操作下模擬肝臟軟組織的物理形變,系統(tǒng)在OpenGL視圖區(qū)將形變過程反饋給用戶.
圖6 肝臟質(zhì)點彈簧模型形變界面
圖7 肝臟無網(wǎng)格模型形變界面
圖8 混合模型形變界面
3.2.3 數(shù)值計算子模塊
數(shù)值計算子模塊是在對肝臟軟組織模型的各個質(zhì)點進行受力分析后,需要對模型質(zhì)點的運動方程進行求解,得到軟組織質(zhì)點在每個時間步長內(nèi)的位置,進而對肝臟軟組織形變進行實時仿真.用于模型運動方程求解的數(shù)值算法主要有顯示歐拉積分與隱式歐拉積分,它們將二階微分方程轉(zhuǎn)化為一階常微分方程,通過迭代求解一階常微分方程進而得到質(zhì)點的速度及位置.
一個良好的反饋模塊能夠加強虛擬形變手術(shù)系統(tǒng)的沉浸感和真實感.反饋模塊功能主要包括視覺反饋與力反饋.本系統(tǒng)的視覺反饋是在視圖區(qū)進行三維場景展示,其中實現(xiàn)肝臟模型對象的視覺可視化需要對模型圖形繪制,繪制方式以網(wǎng)格和點云表示,網(wǎng)格表示質(zhì)點彈簧模型,點云表示無網(wǎng)格模型.在肝臟軟組織模型的形變過程中,采用OpenGL完成虛擬場景渲染及在每隔一個時間步長繪制肝臟模型形變,用戶可以通過視圖區(qū)獲取在虛擬手術(shù)場景中器械操控肝臟軟組織的形變過程.同時,在力反饋方面,雖然該系統(tǒng)未引入力反饋裝置,但根據(jù)鼠標拾取操作來模擬虛擬器械操控肝臟模型.并且對因操控下形變過程的反饋力及節(jié)點位移進行計算,把形變位移及反饋力大小在信息輸出區(qū)反饋給用戶,從而提供了虛擬的力反饋環(huán)境.
本文以真實、實時模擬虛擬手術(shù)中肝臟軟組織的形變?yōu)槟繕?綜合了計算機圖形學(xué)、人機交互技術(shù)、彈性力學(xué)、數(shù)值計算等多門學(xué)科知識,結(jié)合了肝臟軟組織的生物力學(xué)特性,肝臟三維幾何建模和鼠標拾取的碰撞檢測方法,主要對虛擬肝臟軟組織形變手術(shù)中要同時達到真實感與實時性的要求進行研究.首先介紹了系統(tǒng)的整體架構(gòu)、實驗平臺和界面設(shè)計;然后給出系統(tǒng)的算法設(shè)計;繼而再分別介紹本系統(tǒng)的幾個主要模塊功能.通過對本系統(tǒng)在架構(gòu)、界面設(shè)計以及功能上的介紹,明確了本系統(tǒng)的工作完成目標和結(jié)果,并驗證了算法的可行性,實現(xiàn)了虛擬手術(shù)中肝臟形變仿真系統(tǒng).