基于GPU加速的椎弓根钉置入手术虚拟仿真技术研究
2021-10-07薛保珊张峰峰闫晓剑陈军
薛保珊 张峰峰 闫晓剑 陈军
摘 要:椎弓根钉置钉虚拟手术仿真训练系统均有着计算复杂度高、视觉和触觉刷新率低、操作性差的问题进而导致手术训练效果差。针对该问题搭建了一套基于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.
(编辑:温泽宇)