红外光虚拟手术刀的研究与实现
来源:第三维度 作者:赵仕豪, 潘伟洲, 徐泽坤, 陈伟凯 单位:华南师范大学 计算机学院
摘要: 运用 OpenGL 与 3DMax 建模, 立体视觉与四元数旋转的技术, 实现红外光虚拟手术刀的应用。首先, 利用红外光追踪与立体视觉测距结合获得外部设备的空间坐标信息, 然后映射到计算机已构建的虚拟手术刀模型, 通过四元数实现模型的空间旋转, 最后实现虚拟手术刀在虚拟手术场景中的应用。实验表明, 该应用运用在虚拟医学外科手术切割中, 有效仿真手术刀进行人机交互手术切割操作。
1 前言
虚拟手术系统的研究是虚拟现实技术在当今数字医学领域内的重要应用[1]。虚拟手术系统通过对三维重建的医学模型和逼真的手术环境的实时操作, 实现可重复性的数字医疗仿真和训练。在虚拟手术仿真的过程中, 系统需要模仿真实手术环境中的手术切割操作, 虚拟手术刀无疑在系统中起到关键的作用。
目前, 在国外的虚拟手术系统的研究中, 斯坦福大学的 SRI 进行了的对组织和脉管缝台的虚拟手术仿真器技术的研究, 德国 Kuhn 等采用 Sensable 公司的PHANTOM 设备, 开发了虚拟腹腔镜手术训练系统KEST(Karlsruhe Endoscopic Surgery Trainer)[2], 等等。
国内的高校和科研机构在虚拟手术平台方面的研究工作正处在高速发展的阶段, 清华大学、上海交通大学和中科院等也对虚拟手术进行了深入研究, 都成立医学影像相关的实验室和研究院, 研究方向大多集中在三维仿真、三维绘制以及软组织模拟等[3]。
在虚拟手术系统研究中, 系统要有效和广泛地应用在医疗手术仿真的学习和训练中, 除系统的仿真度有待提高外, 成本低廉、实用简便的虚拟手术器械也对其推广具有重要的影响[4]。
本文主要实现的红外光虚拟手术刀通过图像识别和立体视觉对红外光外部设备进行实时追踪和获取其三维信息, 再由三轴加速传感器获得旋转角度, 然后将信息映射到计算机基于OpenGL和3DMax建立的虚拟手术刀模型, 结合四元数实现虚拟场景中的操作。
该方法应用在虚拟手术系统中, 可实现对以人体 CT图像数据为基础重建的医学器官模型的切割, 在空间中有效进行外科手术操作的仿真。
其中红外光虚拟手术刀外部人机交互设备主要由带有红外光源发射器、带有红外光滤波片的双目摄像机组成。整体架构如图 1 所示。
图 1 红外光虚拟手术刀整体结构图
2 红外设备追踪与空间信息获取
2.1 红外光源追踪与定位
实时追踪和定位由双目摄像机捕捉的红外光源图像, 是获取外部设备红外光源的空间信息的前提。
为滤去可见光源以及其他光源信息对追踪检测造成的干扰, 本文在双目摄像机镜头前设置相对应的红外光滤波片。手术操作具有较强的实时性和稳定性, 在图像识别技术上, 因虚拟手术刀红外光源的追踪要避免快速移动和物体遮挡对其追踪造成目标丢失等情况, 本文采用基于 Camshift 和 Kalman-Filter 滤波结合的目标检测跟踪算法[5]。
Camshift 算法的基本思想是对视频图像的所有帧作 MeanShift 运算, 并将上一帧的结果作为下一帧MeanShift 算法的搜索区域的初始值而后对此进行迭代计算, 它是一种基于颜色概率模型的跟踪方法, 通过不断改变搜索窗口的中心到达质心, 实现对物体的跟踪[6]。
Camshift 算法的基本步骤为:
① 确定初始目标及区域, 然后计算出目标的色度(Hue)分量的直方图;
② 利用直方图计算输入图像的反向投影图, 在反向投影图中迭代搜索直到其收敛或达到最大迭代数, 并保存零次矩;
③ 以获得搜索窗口的中心位置和计算出新的窗口大小为参数进行下一帧的目标跟踪。
Camshift 算法流程如图 2[7]。由于 Camshift 算法需要手动选定跟踪物体, 因此我们在此基础上加入Kalman-Filter, 达到自动检测运动红外光源的目的。
图 2 Camshift 算法流程图
Kalman-Filter 的基本思想是, 若有一组强而合理的假设, 给出系统的历史测量值, 则可以建立最大化这些早前测量值的后验概率的系统状态模型 。
Kalman-Filter 分为两个阶段。第一阶段是预测阶段, 用过去得到的信息进一步修正模型一取得物体的下一个将会出现的位置。第二阶段是校正阶段, 获得一个测量, 然后与基于前一次测量的预期值(即模型)进行调整[6]。过程如图 3:
图 3 Kalman-Filter 工作过程
因此整个检测跟踪过程具体分为:
① 利用 Kalman-Filter 根据上一帧图像中目标的位置信息预测当前图像中目标的位置;
② 利用 Camshift 算法根据目标的颜色分布特征在估计的领域内搜索与目标模板最相似的目标。
③ 以目标位置作为 Kalman-Filter 的观测值来更新 Kalman-Filter 的状态, 得到更准确的下一帧目标的预测值。
此时可有效预测和追踪红外光源点的移动轨迹与其位置, Camshift和Kalman-Filte预测运动轨迹的如图4所示。
图 4 追踪算法运动轨迹预测
2.2 立体视觉获取空间信息
在追踪和定位到红外光源位置的基础上, 采取立体视觉原理测量红外光源二维平面坐标位置和空间深度信息。立体视觉原理是根据仿真人体双目成像, 形成双目间视差信息, 由视差信息对现实世界中的坐标进行匹配和转换, 从而获得空间信息原理, 其原理图如图 5 所示[8]。
图 5 立体视觉原理图
其中基线距离 B 是指双目摄像机两摄像头主光轴之间的距离。如红外光源点实际位置为 , 对应在双目摄像机获得的左右图像上的像素点坐标为 。
接下来, 对摄像机左右摄像头分别进行标定, 获得空间中物体与图像之间坐标对应关系, 然后根据标定数据, 获取左右摄像头机内参数, 得到摄像机焦距f(左右摄像头焦距一致)。又因为红外光源点在左右图像上的视差可表示为 。
最后可根据视差原理, 计算出此时红外光源点在摄像机坐标系下的空间信息, 其中二维平面位置信息表示为[6]:
红外光源点深度信息表示为:
最后将红外光源点的空间信息对应到虚拟手术刀模型所在的虚拟场景的坐标。
2.3 空间旋转信息获取
红外光虚拟手术刀角度的变换的实现, 可在红外光设备配置三轴加速传感器, 利用加速度的瞬时变化, 检测手术刀转动角度, 通过 USB 将感应器上已封装的2.3 空间旋转信息获取红外光虚拟手术刀角度的变换的实现, 可在红外光设备配置三轴加速传感器, 利用加速度的瞬时变化, 检测手术刀转动角度, 通过 USB 将感应器上已封装的角度信息传送回计算机上, 并映射回虚拟模型中实现旋转操作。
图 6 三轴加速度感应器
3 红外光虚拟手术刀的控制
3.1 虚拟手术刀模型
虚拟手术刀模型是虚拟手术系统的一个重要组成部分, 通过空间定位能够使用户能够准确的进行虚拟手术刀操作练习。虚拟手术刀的几何建模步骤如下:
首先按照实际手术刀的外形特征, 测量真实手术刀的尺寸大小; 然后在三维图像软件 3D StudioMAX 中建立虚拟手术刀的几何模型[9]; 之后利用 3D StudioMAX的导出功能把模型存储为 3DS 或 OBJ 格式; 最后结合OpenGL 图形开发库读取模型并在界面中显示出来[10]。
如图给出一个虚拟手术刀模型。
OpenGL 图形开发库读取模型并在界面中显示出来[10]。
如图给出一个虚拟手术刀模型。
图 7 虚拟手术刀模型
3.2 四元数与空间转动
四元数[11]和欧拉角是计算机三维图像最常用的旋转表示方法。相对于欧拉角, 四元数具有运算效率高、平滑插值等优点, 而且四元数能避免万向节死锁(Gimbal Lock), 因此本文将使用四元数来实现虚拟手术刀模型的旋转。
3.2.1 四元数的定义及简单性质
四元数(Quaternion)是由实数和 i、j、k 三个元素组成, 且满足 。 四元数的一般形式可表示为:Q=w+xi+yj+zk. 四元数 Q 的共轭值定义为Q*=wxi-yj-zk。
四元数的乘法满足结合律而不满足交换律. 假设有两个四元数,四元数的乘法定义如下:
3.2.2 基于四元数的旋转
使用四元数可以令某一向量 绕任意旋转轴 旋转θ 度. 为达到此目的, 首先将向量 V转化成四元数, 然后定义旋转四元数, 最后将旋转四元数应用到 V 转化的四元数上[12]. 具体步骤如下:
向量 V 的四元数可表示为 , 旋转四元数 按如下公式转换:
最后, 旋转后的四元数 W 定义为: ,其中 R*为 R 的共轭四元数. 向量 V 旋转后的向量则为。
3.2.3 虚拟手术刀模型旋转的实现
虚拟手术刀模型在空间中的定位、定向可以通过三个三维向量表示, 分别是模型的位置 , 手术刀刀背的方向, 刀尖的方向。
根据前文所述, 通过三轴加速传感器可获得红外光手术刀的旋转信息, 按上述方法将其转换成旋转四元数, 再分别作用于上述虚拟手术模型的三个向量, 得到旋转后的虚拟手术刀模型的位置信息。
4 结论
本文提出基于OpenGl和3DMax建模, 利用立体视觉和三轴加速器获取空间信息, 并结合四元数实现转动的人机交互工具红外光虚拟手术刀。该模型能有效地应用在医学外科手术的虚拟切割操作中, 实现对医学人体器官模型解剖等的仿真效果, 有较好的仿真度和实时性, 同时该实现方法成本低廉, 在医疗仿真领域有良好的推广价值。红外光虚拟手术在基于立体视觉基础上获取信息, 在精确度上与真实世界坐标间存在微小误差, 今后需要改进的是在硬件技术上减少虚拟手术刀对应的坐标误差, 以及增加力反馈装置[14,15], 方便检测手术时碰撞效果。
参考文献
1 吕婷,刘桂林,杜海洲,刘鹏年.虚拟现实技术在生物医学领域中的应用.中国组织工程研究与临床康复,2010,14(43): 8099?8103。
2 Hubner M, Krumm HG, et al。The Karlsruhe endoscopic surgery trainer as an example for virtual reality in medical education。Informa UK Ltd UK,1997,6(2):122?125。
3 高永辉.虚拟手术系统关键技术研究[学位论文].上海:上海交通大学,2011。
4 Dev P, et al。Simulated medical learning environments on the Internet。Journal of the American Medical Informatics Association,2002,9(5):437?447。
5 Liu X, Chu HX, Li PJ。Research of the improved camshift tracking algorithm: International Conference on Mechatronics and Automation, 2007。ICMA, 2007: 968?972。
6 Bradski G, Adrian K。Learning OpenCV。Sebastopol, CA: O’Reilly Media,2012。
7 孙凯,刘士荣.多目标跟踪的改进 Camshift/卡尔曼滤波组合算法.信息与控制,2009,38(1):9?14。
8 王新波,朱维杰.基于OpenGL与3DS Max的三维场景建模.电子科技,2012,25(1):79?80。
9 Jin S, Cho J, Pham XD, Lee KM, Park SK, Kim M, Jeon JW。FPGA design and implementation of a real-time stereo Vision system.IEEE,2010,20(1):15?26。
10 Woo M, Neider J, Davis T, et al。OpenGL programming guide: the official guide to learning OpenGL, version 1.2。Addison-Wesley Longman Publishing Co., Inc., 1999。
11 Ginibre J。Statistical ensembles of complex, quaternion, and real matrices。Journal of Mathematical Physics, 1965, 6 (3):440。
12 Shoemake K.Animating rotation with quaternion curves。ACM SIGGRAPH computer graphics, 1985,19(3):245?254。
13 Wright RS, Haemel N, Sellers G, Lipchak B。OpenGL SuperBible: comprehensive tutorial and reference。5th。Boston: Addison-Wesley Professional, 2010。
14 潘家辉,鲍苏苏,朱志有,等.支持力反馈的肝脏外科虚拟手术仿真系统.计算机工程,2008,34(21):262?264。
15 武博,蔡萍,胡陟,等.虚拟手术力反馈装置反馈力内模控制。计算机工程与应用,2011,47(24):20?22。
上一篇:基于Unity3D的虚拟水流墙系统的设计研究[ 11-12 ]
下一篇:军用虚拟现实仿真技术发展设想[ 11-15 ]