鲁竹君等
摘要:基于Kinect的3D医学影像辅助诊疗系统在VTK(Visualization Toolkit)的基础上对二维DICOM序列医学影像进行了三维重建。利用Kinect设备作为3D影像控制器,摆脱了传统交互设备(鼠标、键盘) 操控3D影像的局限性、带菌性,医生可以在真实的3D空间进行无菌操作。利用Kinect对用户手掌进行跟踪,记录并分析不同动作的数据变化特征,重复记录并分析多人数据,验证特征的准确性。对伸展或并拢双手动作用最小二乘法进行线性拟合,即通过数据模型匹配来识别用户行为。在识别出正确的指令后,对响应程度值进行转换,最终确定3D医学影像变化,进而实现在无接触性操作情况下,用户能在真实3D空间对三维重建后的医学影像进行无菌控制。实验结果表明,所设计的方案能准确识别用户行为,且图像变换效果符合大多数用户的自然习惯。
关键词:Kinect; DICOM; 三维重建; 行为识别
DOIDOI:10.11907/rjdk.143764
中图分类号:TP319
文献标识码:A 文章编号文章编号:16727800(2015)001014303
0 引言
本文对基于Kinect的3D医学影像辅助诊疗系统进行了研究。本研究主要是基于Kinect设备,利用VTK三维图像处理类库,结合医学图像三维重建算法,对二维DICOM序列医学影像进行三维重建,实现无菌隔空操控3D医学影像辅助诊疗系统。本文提出了系统整体实现路线,并设计了系统涉及的主要算法。
1 研究背景及应用场合
目前,医学影像存档与通信系统(Picture Archiving and Communication Systems,PACS)已经在医院中普遍使用,为实现海量医学影像数据的存储、管理、计算作出了巨大贡献。然而,医生在PACS上查看的医学影像均为二维影像,欲得到病变部位的三维信息,需浏览一个序列的二维医学影像来进行推断[1,2],这种做法不能保证信息的准确性及完整性。而手术对无菌有严格要求,医生在手术期间不可能操作PACS,如若有此需求,只能求助他人。
随着计算机技术的发展和医学影像的进步,3D医学影像应用越来越广泛,其在医疗领域中的地位越来越重要。医学3D重建技术是计算机可视化领域的一部分,3D医学影像能够有效地提高医生的诊断效率和诊断水平,提高医疗服务水平 [3]。
基于Kinect实现人机交互的3D医学影像诊疗辅助系统,遵循DICOM标准,通过Internet与医院的PACS系统通讯[4,5],对二维DICOM(digital image and communication on medicine)序列医学影像进行三维重建,研究出只需显示器及Kinect便可通过手势及语音操作的3D医学影像医疗辅助系统。该系统可用于手术室、医生诊室以及各影像科、医学课堂等。在手术室应用不仅能提高手术成功率与手术实施率,还可以方便医生对实习生进行教学;在医生诊室,可以通过三维医学影像反馈病变部位三维信息,提高诊断准确率;在医学课堂上,绚丽的3D动画、人机交互效果可以大大提高学生的学习兴趣,使教学更形象化。
2 关键问题分析
针对医生不能快速准确地从二维DICOM序列医学影像中获得病变区的大小、位置、形状等三维信息问题,可以通过特定的重建算法,将二维DICOM序列医学图像重建为三维虚拟实体。结合Kinect for Windows技术,为进一步诊断病情、虚拟手术等提供丰富直观的信息与交互手段[6]。
3D医学影像辅助诊疗系统通过VTK读取DICOM标准医学影像序列[7],并用相关三维重建算法对其进行三维重建,三维重建采用体绘制法[8-10]。对于重建出来的3D模型,医生不再采用传统的鼠标或键盘操控,而是使用更为舒适且无菌的隔空操控。为使操控方式符合多数人的习惯,对各操控动作所产生的空间坐标信息进行追踪,如缩放、三维旋转等,然后分析数据变化特征,根据对应特征识别出对应行为。为使对应行为响应更为舒适,对3D模型变化的程度进行重复对比,得出使用者感到舒适的值。
3 系统交互相关算法设计
3.1 双手运动数据采集及分析
编写Kinect Depth Stream数据采集程序,以时间为横轴,分别以Hand Right、Hand Left关节点X、Y、Z分量为纵轴绘制图像。实验者做伸展和并拢双手动作时,3个方向数据变化情况如图1所示。
初步推断,实验者在进行伸展或并拢双手动作时,X方向的数据呈线性变化,变化系数与运动速度相关。采用最小二乘法对X方向的数据进行线性拟合。
利用Visual Studio 2013编写Kinect Skeleton Stream基本程序,在程序内用最小二乘法对Hand Left、Hand Right关节点X分量数据进行线性拟合并计算出拟合优度。结合Kinect Studio V1.8.0工具采集伸展双手及并拢双手的样本数据,分析所得数据。双手做自然伸展或并拢动作时,X坐标值用线性方程进行拟合,平均有88%的拟合优度,误差量仅12%。由此得出大多数人在自然伸展或并拢双手时,手部空间数据在Kinect空间坐标系X方向上是呈线性变化的,变化系数与运动速度相关。
图1 伸展和并拢双手动作深度数据在X、Y、Z分量随时间变化显示
3.2 动作识别与3D医学影像控制
为使用户更自然地控制3D医学图像模型,允许用户任意活动双手,将握拳的手作为操控点,以确保高效响应。系统对动作的识别流程如图2所示,其中左X极、左X始、右X极及 右X始均是Kinect视野内的原始空间坐标X值,并未转换至图像坐标系。左X极、右X极是双手空间坐标X值变化的极值,至于偏移量0.50是反复测试得出的交互效果较好的值。
系统识别出正确的指令后,再次设计移动、缩放、三维旋转操作响应程度的转换算法,把真实3D空间的数据变化转换至虚拟3D空间。
4 行为识别实验结果
为了测试系统运用Kinect控制3D模型的子功能,编写动作识别及响应效果测试程序。由实验者在Kinect面前分别做移动、三维旋转、缩放动作,分别由4名实验者进行多次测试,记录结果,实验数据如表1所示。
根据处于握拳状态并在运动的手的数量进行移动动作识别,握拳动作的识别调用Kinect for Windows SDK中封装在Microsoft.Kinect.Toolkit.Interaction.dll的相关API实现。此动作识别已经由Microsoft测试通过并正式发布。本文再次进行了微量测试,成功率100%。表1重点描述了系统自主设计算法的测试结果。
从表1中可以看出,经过多人测试,系统的动作识别准确率高,通过追踪双手的空间信息所转换出来的响应程度基本符合常理,变化也较为流畅,实验者有较好的交互体验。由于实验者数量限制,本测试并不能代表所有人的习惯,但能满足大多数人的习惯。
5 结语
基于Kinect的3D医学影像辅助诊疗系统主要由Visual Studio 2013集成开发,通过WPF编码。系统将二维DICOM序列医学影像进行三维重建,为医生提供患者病变信息,整合了第三代自然人机交互技术,满足了医院的无菌化要求。系统采用行为识别来判断用户的操作意向,是人工智能在医院的应用之一。对二维DICOM序列医学影像进行三维重建是难点之一,本文在VTK三维图像处理类库的基础上,采用体绘制法将医学图像三维重建。在生成医学3D模型后,为使医生能隔空对3D模型进行操作,系统通过对手部运动的数据变化特征进行模型匹配来识别动作。缩放指令是伸展或并拢双手动作,该动作的部分数据特征是线性变化的。通过最小二乘法进行曲线拟合,并设计实验验证特征的准确性。经过测试,系统能有效识别出对应的缩放、三维旋转、移动操作指令,同时,系统有较好的体验。
由于动作识别算法较为简单,本文系统的识别能力还有不足,这是下一步的研究方向。拟采用神经网络算法来实现动作识别,通过多组训练,最终生成合适的神经网络。另外,还可以考虑为系统加入隔空提取相关档案、3D打印等功能。