薛保珊 張峰峰 閆曉劍 陳軍



摘 要:椎弓根釘置釘虛擬手術仿真訓練系統均有著計算復雜度高、視覺和觸覺刷新率低、操作性差的問題進而導致手術訓練效果差。針對該問題搭建了一套基于Graphic Processing Unit(GPU)加速的椎弓根釘置入虛擬手術仿真系統。首先通過使用混合數據模型實現對脊柱的三維重建;其次利用碰撞檢測、力反饋計算和體素消除等技術完成手術虛擬仿真系統的搭建;最后將GPU的并行處理框架應用于系統仿真模擬中,提高系統的實時性。對比實驗結果表明:在未經GPU加速虛擬仿真系統中,視覺刷新率為10Hz左右,觸覺刷新率為50Hz左右,采用GPU加速技術,視覺刷新率基本穩定在80Hz左右,提升了70%,觸覺刷新率達到600Hz左右,性能得到極大的提升,即使用GPU加速的虛擬手術系統能夠大大縮短觸覺線程與視覺線程的計算時間,提高刷新率,進而提高系統的可操作性。
關鍵詞:虛擬現實;三維重建;鉆骨手術;GPU加速;MC算法
DOI:10.15938/j.jhust.2021.04.017
中圖分類號:TP391.9
文獻標志碼:A
文章編號:1007-2683(2021)04-0125-07
Abstract:The virtual surgery simulation training system of pedicle screw placement has the problems of high computational difficulty, low visual and tactile refresh rate and poor operability, which leads to poor effect of surgical training. In order to solve this problem, a virtual surgery simulation system of pedicle screw placement based on Graphic Processing Unit(GPU) acceleration is built in this paper. Firstly, the hybrid data model is used to reconstruct the spine. Secondly, collision detection, force feedback calculation and voxel elimination are used to build the virtual simulation system. Finally, the parallel processing framework of GPU is applied to the system simulation to improve the real-time performance of the system. The results of comparative experiments show that:In the conventional virtual simulation system, the visual refresh rate is about 10Hz, and the tactile refresh rate is about 50Hz. In this paper, GPU acceleration technology is used, the visual refresh rate is basically stable at 80Hz, which is increased by 70%, and the tactile refresh rate is about 600Hz, which greatly improves the performance, In other words, GPU accelerated virtual surgery system can greatly shorten the computing time of tactile and visual threads, improve the refresh rate, and then improve the operability of the system.
Keywords:virtual reality; three-dimensional reconstruction; bone drilling; GPU acceleration; MC algorithm
0 引 言
人口老齡化趨勢加深、物質水平不斷提升,人民的醫療需求也越來越多,醫療技術水平也逐步提高。虛擬手術仿真[1]是臨床醫學領域的一個重要研究方向,涉及計算機圖像學、圖像處理、生物醫學工程、人體解剖學等多種技術。傳統的診療手段僅僅依靠人體內部各個器官的二維數字圖像信息診斷病情,準確診斷和分析對沒有豐富經驗的醫學從業者有著很大挑戰[2]。因此,高性能的三維重建系統的研究有助于輔助診斷,對數字醫學領域具有重要意義[3]。
1959年椎弓根螺釘技術被Boucher[4]首先用到脊柱融合手術中,自此該方法在脊柱外科手術中發揮著舉足輕重的作用。虛擬手術在脊柱外科的應用始于20世紀90年代初[5],1992年著名的神經外科專家Kevin Foley將Stealthstalation導航系統應用于脊柱外科領域,自此虛擬手術系統在脊柱外科中廣泛應用于各節段的椎弓根螺釘固定的手術中,1995年Nolte等[6]應用計算機輔助微創導航手術系統實施了世界第一例腰椎椎弓釘內固定手術。Klein 等[7]開發的虛擬手術系統通過病患CT數據三維重建的模型進行椎弓根置釘虛擬手術訓練。何建榮等[8]通過 BioMxsf 虛擬手術系統,實現了椎弓根螺釘置釘手術的模擬訓練。但這些研究忽略了力反饋問題,進而操作者無法獲取有效的力學反饋信息,因此沒有虛擬手術場景所必須具備的沉浸感和真實性; Hamza-Lu等[9]、Coles等[10], 潘顯緯[2]開發了基于力反饋的虛擬手術系統。基于力反饋的虛擬手術系統不但模擬了真實的椎弓根釘植入過程,而且通過碰撞檢測以及力反饋計算等方法有效的實現了鉆骨操作的力學反饋,具有較好的視覺和觸覺感受,但是也因此產生了海量的計算成本,系統實時性受到極大影響,手術的沉浸感和真實性從而被降低。
傳統虛擬手術系統的運行都是基于CPU進行運算分析的,但是CPU的運算邏輯更適用于單個獨立任務的處理,對于計算工作量巨大,運行邏輯復雜的虛擬手術系統是不合適的。本文為提高觸覺、視覺呈現效果,圖像畫質,引入GPU加速的辦法搭建了一套基于力反饋的椎弓根釘置入虛擬手術仿真系統,在保證手術的沉浸感和真實性的前提下,有效提高系統的實時性,具有深遠的意義和優越的市場前景。
1 虛擬手術仿真框架
椎弓根釘置釘手術仿真框架如圖1所示,系統的主要運行邏輯被分為觸覺和視覺兩部分,通過觸覺和視覺的線程劃分有效避免了觸覺刷新率和視覺刷新率沖突的問題。其中視覺線程是為操作者提供真實有效實時的視覺畫面,而觸覺線程主要是實現操作者與虛擬仿真的力觸覺交互,從而實現觸覺和視覺的協調配合,提升沉浸感和真實性。
該框架包括預處理階段和實時仿真階段。在預處理階段,將患者的原始CT圖像輸入到預處理管道中,以構建體素模型。預處理管道將脊柱和其他組織利用圖形分割技術分開,從而降低了成像噪聲并平滑了分割結果。體素模型的外表面輪廓將使用Marching Cubes(MC)算法構建,將于第3節介紹。此階段要完成的另一項工作是創建椎弓根釘模型。其尺寸可以根據用戶輸入定義。切頭部分將被離散成小的切削元件,用于實時仿真過程中的力計算。實時仿真開始后,用戶可以通過操縱虛擬椎弓根釘的觸覺設備(Phantom Touch)的觸筆。在觸覺渲染循環(1000 Hz)中,CPU進程通過使用OpenHaptics API讀取觸覺筆的當前位置和方向,更新手術工具的轉換矩陣。然后,將轉換矩陣參數傳遞到GPU,將創建一個輕量級GPU線程塊,每個線程分配給一個特定的切割元素。每個GPU線程將并行計算切割元件的當前位置,并檢查其與脊柱模型部分的碰撞檢測。如果檢測到碰撞結果為“1”,將使用相應的力反饋模型進行力計算,并且相交的體素的密度將在同一線程中相應地更新。計算出的力值將傳遞到CPU,并使用OpenHaptics API輸出到觸覺設備。在圖形渲染循環中,指示體素存在的體素標記根據其密度的變化而更新。使用并行版本的MC算法在GPU上重建ROI(感興趣區域)內的等值面,向用戶提供實時的視覺反饋。
2 基于MC(Marching Cube)算法的三維模型可視化研究
進行虛擬手術仿真的前提是對病患的CT數據進行處理并通過重建算法完成脊柱三維模型的重建。目前,醫學圖像三維重建算法主要分為體繪制和面繪制兩類[11],其中體繪制是將空間中的體數據直接進行采集完成三維模型的合成,此類算法能夠精確的實現物體的內部以及外結構的重建。由于需要對數量極為龐大的數據進行實時的重采樣處理,雖然能夠具有高真實性但同時也存在實時性差的缺點,并且對計算機的要求也是極為苛刻,因此并不適合應用在對實時性要求較高的虛擬手術系統中。與效率低下的體繪制算法相比,面繪制只是針對物體的表面輪廓進行三維重建,具有數據量小、處理難度低、效率高的特點,能夠很好地滿足實時性的要求,并且后續的調整和操作都比較簡單。被廣泛的應用到對實時性要求極高的三維重建等系統中。
1987年Lorensen等提出了經典面繪制算法——MC算法[12]。該算法通過將每一個體素的等灰度值面提取出來再以拓撲方法重構成三角面片,進而重建得到三維模型。目前MC算法已經成為醫
學圖像三維重建的主流算法。其中,提取等值面需要首先確定一個等值面C,接著對數據中的每一個體素進行遍歷操作。在獲取到所有體素的參數之后,將值為C的體素連接構成等值面。等值面包含體素內所有像素值相等的頂點,其表達式為式(1):
其中,(i,j,k)為該曲面上某點的空間坐標,f(i,j,k)為表示函數。
基于windows平臺,以C++為主要的開發語言,通過OpenGL圖形庫進行虛擬手術仿真系統的開發,實驗的人體脊柱CT數據來自蘇州大學附屬第一醫院。本系統基于MC算法完成了對人體的脊柱三維重建,能夠通過調整等值面的參數實現對重建區域的選擇和修正,進而有效提高模型的精準度和真實度。如圖2(a~e)和圖3(a~e)所示,通過調節等值面的大小進行重建得到的基于不同等值面大小的脊柱三維模型,其中圖2是脊柱模型的正視圖,圖3則是脊柱模型的后視圖。實驗結果證明,等值面ISO=0.10時,能夠有效的重建出人體的皮膚組織,并且具有較強的真實性;而等值面ISO=0.45時,能夠完成對人體的脊柱部分進行三維重建。操作者能夠通過修改等值面的大小獲取感興趣區域的三維重建模型。系統支持模型旋轉、平移、縮放以及任意切片的模型裁剪,結果表明所開發的醫學圖像三維重建系統能夠高逼真的還原真實的人體組織,對后續的虛擬手術仿真與交互具有重要意義。
3 鉆骨過程原理
椎弓根釘鉆孔的過程會清除部分骨贅,本系統采用單元去除法完成虛擬脊柱組織的切割與去除等操作的模擬[13]。為了實現骨組織切除和骨贅清除后的切口效果,通過將手術器械和脊柱接觸交互區域的體素消除完成。如圖4所示:手術仿真器械和脊柱手術區域發生碰撞的體素被清除,并且之后的視覺反饋和觸覺反饋都不再包含該部分信息。
鉆骨手術過程中,體素消除的具體步驟如下:
步驟1:結合手術仿真器械即骨鉆模型的形狀特點,將其離散成一個多點終端。當通過力反饋設備操作系統中的手術仿真器械與脊柱模型發生碰撞時,需要時刻計算骨鉆終端和脊柱體素的空間位置關系,并實時記錄發生接觸區域的脊柱模型體素的位置。
步驟2:與此同時還需要實時記錄骨鉆模型的位置,通過力反饋算法,實時計算發生碰撞、切割等操作時的相互作用力,并將作用力通過力反饋設備實時的傳遞給操作者。
步驟3:使用單元去除法對發生碰撞交互區域的體素信息進行刪除,從而模擬出骨組織在鉆削過程中的形變過程。
4 基于GPU加速的體素去除仿真
虛擬手術操作系統的第一要素是虛擬手術的實時性。視覺刷新率要達到30Hz以上才能夠流暢的顯示手術仿真畫面,具有較好的視覺效果;而對于觸覺刷新率要達到1000Hz以上才能夠給操作者帶來較為連續有效的觸覺反饋[14],這就要求虛擬手術系統能夠在極短時間內完成龐大的數據處理。本系統為了在視覺上具有較好的顯示效果,采用了基于體素的三維模型,且體素數量較多,這就導致了較大的內存開銷,增大了計算機的計算量。此外,碰撞檢測[15,16]、基于等值面的三維重建、力反饋計算等都是基于人體脊柱模型的每一個體素的數據信息進行計算操作。因此,虛擬手術仿真系統的實時性難以得到很好的解決,并且CPU并不適處理于大數據量的并行計算任務,極易導致系統崩潰,本系統采用GPU加速技術去完成大數據量的并行計算任務。
4.1 GPU加速原理
與CPU相比,GPU擁有眾多簡單但節能的計算核心、數千個同時處于活動狀態的細粒度線程以及大的片外內存帶寬,因此其在處理巨大的數量的數據時具有獨一無二的優勢[17]。從架構上講,CPU 僅由幾個內核和緩存內存組成,一次只能處理幾個線程。而GPU由數百個內核組成,可以同時處理數千個線程。具有100多個內核的 GPU處理數千個線程的能力可以將虛擬仿真系統的運行速度提高 100倍于單獨的 CPU。更重要的是,GPU 實現了這種加速,同時比 CPU 更節能、更經濟。
GPU是圖形處理的基礎單元,主要應用于圖形圖像的渲染繪制等相關復雜度高且大量的運算任務[18]。如圖所示,CPU由專為連續序列處理設計的內核組成,GPU的設計采用并行架構,由更高效、更小的內核組成,可輕松同時處理多個任務。在CPU中執行順序計算,但在GPU中并行計算高度復雜的計算,二者相互協調工作,能夠有效提高系統的計算和運行速率。
CUDA[19]是一種通用的并行計算架構,用于使用GPU在CPU上執行的簡單程序。它基于自身的CUDA指令集和GPU內部的并行計算引擎[20],通過將CPU作為主控制機(host),GPU作為協處理器(co-processor)兩者相互協作,從而高效處理復雜且冗長的計算任務。
如圖5所示,基于CUDA開發的程序,GPU和CPU 不僅需要完成各自的任務,還需要相互協作,共同完成計算任務。CPU的主要任務是串行計算以及處理自上及下的事件,GPU則是處理復雜的具有巨大數據量的并行計算。兩者相互協作,能夠極為有效的提升系統的計算速率,大大提高虛擬仿真系統的實時性[21]。
4.2 實驗環境
本文實驗環境為Windows10 PC,處理器為Intel(R)Core(TM) i7-9700k 3.6GHz,內存為16GB,圖形處理器為NVIDIA GeForce RTX 2080,CUDA 核心數為2994個,核心頻率為1515Mega Hertz(MHz),顯存為8Gigabyte(GB)。
4.3 實驗及結果分析
程序的響應速度能夠很好的體現出系統的實時性能的優劣,為了驗證GPU加速技術對虛擬手術系統的計算性能和實時性的影響,本文通過分別在CPU架構以及CPU+GPU架構下進行鉆骨手術仿真實驗:即在脊柱模型上對一個固定的鉆孔位置采用固定的鉆孔方向進行鉆孔模擬,并實時統計每個觸覺循環所需要的力反饋計算時間。此外,記錄GPU加速前后視覺刷新率以及觸覺刷新率變化情況,并采用樣本鉆取的平均周期時間進行對比測試。
如圖6所示,通過對不同體積大小和不同切削單元數量的平均時間周期進行對比:力反饋的計算時間會隨著體素數量的增加而增加,對于CPU架構下的串行實現,時間成本增加幅度巨大,極易受到計算量的影響,且超過400個切割元素時將遠不能達到所需的時間要求,表明在CPU架構下進行這種復雜的龐大的計算任務不具有可行性。大量實驗表明,當使用超過300個128*128*128體素的單元,力反饋變得不再穩定。而CPU+GPU架構下,CPU進行復雜串行計算,GPU負責復雜且龐大的并行計算任務,鉆骨模擬仿真中力反饋計算可以獲得顯著的加速效果,即使在最大實驗數據情況,力反饋計算時間仍然處在很小的范圍內,并且完全滿足實時的視覺和觸覺渲染要求。
通過對GPU加速前后的視覺刷新率進行監測,如圖7所示;虛擬骨鉆與脊柱區域未發生碰撞交互時(A-B段)視覺刷新率在80Hz左右,在骨鉆與脊柱發生碰撞并進行切除時(B-C段),未使用GPU加速視覺刷新率則瞬間降低至5~10Hz之間,使用后則依舊保持在60~100Hz之間,平均達到80Hz左右,遠遠超過視覺刷新率大于30Hz的要求。
如圖8所示,當骨鉆與脊柱模型未進行交互操作時(A-B段),系統的觸覺刷新率能夠達到900Hz左右;當二者發生碰撞并進行切削操作時,未經GPU加速的觸覺刷新率則驟降至10Hz左右,此時力反饋會出現明顯的卡頓,完全無法形成有效的觸覺感受;經GPU加速后的觸覺刷新率基本穩定在600Hz以上,能夠基本滿足虛擬手術實時性的要求。
因此,通過GPU加速技術,CPU和GPU之間相互協作,使得虛擬手術仿真系統的觸覺和視覺的刷新率,以及虛擬手術操作中的力反饋計算的響應速度,都有了極為明顯的提升,進而提高了虛擬手術仿真系統的真實性和沉浸感。
5 結 論
本文提出了一個基于GPU加速的椎弓根釘置入手術虛擬仿真系統,來模擬椎弓根釘置入脊柱的過程。為此,首先開發了基于醫學影像(CT)的三維重建模塊,構建具有視覺吸引力的解剖學準確的脊柱模型,其次,針對鉆骨過程中的體素去除的高計算量問題,使用GPU加速技術進行優化。本文框架的核心以及主要優勢是通過采用基于CUDA的GPU加速技術對視覺線程與觸覺線程進行硬件加速,根據單元去除原理實現對鉆骨過程中骨贅的刪除。有效解決了傳統虛擬手術系統中無法同時對各個體素的節點信息進行碰撞檢測、三維重建、力觸覺計算等操作的問題,實現了基于體素的切削模擬,保證了椎弓根釘置入手術虛擬仿真視覺以及觸覺上的實時性、連貫性,為用戶提供更為真實的鉆骨效果。實驗結果表明,使用GPU加速方法的每個觸覺循環所需要的力計算時間均遠遠小于基于CPU的傳統方法,并且在大體積多切割單元的情況下優勢愈發明顯,視覺刷新率由7Hz提升到80Hz左右,觸覺刷新率也由10Hz提升到600Hz左右。能夠在保證手術的沉浸感和真實性的前提下,極大提高系統的實時性。并在此框架的基礎上搭建一個仿真平臺,以訓練新手醫生在進行椎弓根釘置入手術的觸覺感受,防止對脊柱造成不可逆轉的損傷。
參 考 文 獻:
[1] GALLAGHER A G, RITTER E M, CHAMPION H. et al. Virtual Reality Simulation for the Operating Room-Proficiency-based Training as a Paradigm Shift in Surgical Skills Training[J]. Annals of Surgery,2005,241(2):364.
[2] 潘顯緯. 基于力反饋與沉浸式虛擬現實技術的脊柱外科手術訓練系統研究[D].上海:第二軍醫大學, 2017.
[3] BADASH I, BURTT K, SOLORZANO C A. et al. Innovations in Surgery Simulation:a Review of Past, Current and Future Techniques[J]. Annals of Translational Medicine,2016,4(23):453.
[4] BOUCHER H H. A Method of Spinal Fusion[J].Bone Joint Surg Br, 1959:248.
[5] SCHLENZKA D, LAINE T, LUND T. Computer-assisted Spine Surgery[J]:Principles, Technique, Results and Perspectives. Orthopade, 2000,29:658.
[6] NOLTE L P, ZAMORANO L, VISARIUS H, et al.Clinical Evaluation of a Sys-tem for Precision Enhancement in Spine Surgery[J].Clin Biomech, 1995(10):293.
[7] KLEIN S, WHYNE C M, RUSH R, et al. CT-based Patientspecific Simulation Software for Pedicle Screw Insertion[J]. J Spinal Disord Tech, 2009, 22(7):502.
[8] 何建榮,李超,楊會武,等.虛擬手術系統支持下置入寰椎側塊螺釘的實驗研究[J].中國脊柱脊髓雜志, 2012, 22(2):156.
HE Jianrong, LI Chao, YANG Huiwu, et al. Atlas Lateral Mass Screw Insertion Under Virtual Surgical System[J]. Chinese Journal of Spine and Spinal Cord, 2012,22(2):156.
[9] HAMZA-LUP F G, BOGDAN M, POPOVICI D M, et al. A Survey of Visuo-haptic Simulation in Surgical Training[J].The Third International Conference on Mobile, Hybrid, and On-line Learning Wilmington:IARIA, 2019.
[10]COLES T R, MEGLAN D, JOHN N W. The Role of Haptics in Medicaltraining Simulators:a Survey of the State of the Art[J]. Haptics, IEEE Transactions on, 2011, 4(1):51.
[11]TIAN Z, JIA X, YUAN K, et al. GPU-based Low Dose CT Reconstruction via Edge-preserving Total Variation Regularization[J]. Physics in Medicine & Biology, 2011, 56(18):5949.
[12]LORENSEN W E, CLINE H E.Marching Cubes:A High Resoluton 3D Surface Construction Algorithm[C]// SIGGRAPH87 Proceedings,1987:163.
[13]DIASAMIDZE Y, MAKHARADZE S, ROKVA N, et al. Enhancements of the Voxmap-Point Shell Algorithm[J]. Soobshchenii Akademii Nauk Gruzinskoǐ Ssr, 2008, 2(2):17.
[14]廖登宏. 基于力反饋的個性化外科虛擬現實手術仿真培訓系統關鍵技術研究[D]. 上海:上海交通大學, 2017.
[15]王志強, 洪嘉振, 楊輝. 碰撞檢測問題研究綜述[J]. 軟件學報, 1999, 10(5):545.
WANG Zhiqiang, HONG Jiazhen, YANG Hui. A Survey of Collision Detection[J]. Journal of Software, 1999, 10(5):545.
[16]WANG Q, CHEN H, WU W, et al. Impulse-Based Rendering Methods for Haptic Simulation of Bone-Burring[J]. IEEE Transactions on Haptics, 2012, 5(4):344.
[17]ZHANG X, HU B, TANG L, et al. Fast Collision Detection for Rice Leaf Population Based on Improved Bounded Box Tree and GPU[J]. Transactions of the Chinese Society of Agricultural Engineering, 2018,34(1):171.
[18]陳倩,潘中良.一種基于GPU加速的三維分形實時渲染方法[J].激光雜志,2016,37(11):136.
CHEN Qian, PAN Zhongliang. A Real Time Drawing Method for Three-dimensional Fractal Image Based on GPU Acceleration[J]. Laser Journal, 2016,37(11):136.
[19]BERNASCHI M, BISSON M, MASTROSTEFANO E, et al. Multilevel Parallelism for the Exploration of Large-scale Graphs[J]. IEEE Transactions on Multi-Scale Computing Systems, 2018:1.
[20]羅中粟,潘一源,唐良甫,等.基于GPU加速的粒子流體動力學流血模擬算法[J].計算機應用與軟件,2018,35(2):242.
LUO Zhongsu, PAN Yiyuan, TANG Liangfu, et al.Research of Blood Simulationof Particle Hydrodynamics Based on GPU Acceleration[J]. Computer Applications and Software, 2018,35(2):242.
[21]閆華,汪貽生,王銳淇,等.基于GPU的大規模多階段任務系統可靠性并行計算方法[J].系統工程與電子技術,2019,41(1):215.
YAN Hua, WANG Yisheng, WANG Ruiqi, et al. Reliability Parallel Computing Method for Large Phased-mission System Based on GPU[J]. Systems Engineering and Electronics, 2019,41(1):215.
(編輯:溫澤宇)