3D模型拾取

2024-05-03

3D模型拾取

3D模型拾取 篇1

随着虚拟现实技术的深入研究与应用,真实世界中的物体可以形象逼真的通过屏幕显示出来。为了能更好的对虚拟场景的物体进行操作,虚拟现实系统需要用户通过输入设备与系统进行交互,如对物体进行移动、旋转,其前提是通过拾取方法来定位场景中的操作对象。随着对人机交互系统实时性要求的提高,虚拟场景中模型也日益复杂,需要系统提供更加快速的拾取操作以及更高的拾取精度,以满足系统交互的实时性需求[1]。

目前拾取算法主要有传统的基于三维空间的射线拾取算法、Open GL选择机制拾取法、基于图像空间的拾取算法、以及基于视口空间的拾取算法等[2,3,4]。以上拾取方法在拾取速度、精度、人机交互便捷性等方面都存在一定程度的局限性[5],屏幕拾取点的获取需要通过鼠标点击操作完成,并且在拾取计算过程中常存在一系列矩阵求逆的问题。另外,为了加快拾取速度和提高拾取精度,很多算法都结合了包围体拾取方法。虚拟场景的3D模型一般是由很多特征小模块按照具体分布组合而成的,在拾取具体模块部位时,为提高拾取精度,应尽量减小相邻模块部位对本次拾取的干扰。目前常见方法中对于同一个3D模型的不同模块部位构造的拾取包围体过于单一,拾取精度不高[6,7]。

在人机交互系统中,交互工具有鼠标、键盘、交互笔等,而笔式交互技术作为一种重要的人机交互技术,近年来受到人们广泛的重视。目前已有体积小、精度好的MEMS惯性传感器被安装在交互笔上,为交互笔的运动跟踪和空间姿态解算提供了新的方法和思路[8]。在解算空间方位姿态的基础上,实体交互笔可以通过姿态传感器定位自身空间方位[9,10,11],可用于虚拟现实场景中实现物体拾取操作。作为新一代优秀的自然人机交互设备,人机交互笔在笔式交互软件开发平台、面向教学的笔式办公套件、面向文字输入的神笔马良系统的开发、医疗虚拟手术操作等领域都将得到更广泛的应用。

针对经典射线拾取方法的拾取速度不高及固有的局限性,同时为提高对虚拟场景中3D模型相邻模块的拾取精度,摒弃经典鼠标拾取算法,本文提出了一种基于空间方位向量与包围体策略结合的3D模型拾取算法,对3D模型的拾取速度和拾取精度都得到一定程度的提高。

1 三维拾取算法及其问题分析

1.1 三维拾取算法原理

虚拟场景中的三维模型需要经过一系列的变换才能从计算机屏幕中显示出来,如图1所示,物体通过模型矩阵、视图矩阵、透视投影矩阵、视口矩阵最终投影到屏幕中进行显示。

三维拾取是图1的逆过程,通过鼠标获取到的屏幕坐标点,通过一系列的透视投影逆变换,最终转化为虚拟场景世界坐标系中的点,进而控制三维物体[12]。

1.2 经典射线拾取法

射线拾取算法是一类3D拾取经典算法[13],其基本原理是获取屏幕坐标点A,通过视口矩阵逆变换转化为图形系统的视口坐标点A′。假设视图空间原点O与世界空间原点O重合,最终世界空间中的点P与鼠标在屏幕上的拾取点A之间的关系可以表示为P= M-1·E-1· P-1·V-1·A,其中M-1 为模型变换逆矩阵,E -1为视图变换逆矩阵,P -1为透视投影变换逆矩阵,V-1 为视口变换逆矩阵。从该表达式可知,世界空间射线OP的获取需要经过一系列的矩阵求逆运算,鼠标每次点击不同的点时,都要重新计算这些逆矩阵,实际上这些矩阵并非总是可以逆的,并且求解逆矩阵计算量较大。另外经典射线法与其他拾取算法的屏幕拾取点均通过点击鼠标获得,在对不同外形特征模块构造单一包围体时易导致误判。

2 基于空间方位向量射线法的 3D 模型拾取

2.1 空间方位向量射线法

对于经典射线拾取法,最终目的是要在与3D模型同一坐标空间中(世界坐标空间)生成一条有方向的射线OP ,射线方位向量通过鼠标拾取屏幕上的点,在不同空间变换后并通过一系列矩阵求逆运算得到。为了避免通过鼠标拾取时需要处理一系列的矩阵求逆运算,在实体交互笔的基础上,本方法提出一种基于空间方位向量射线法的3D模型拾取算法,算法流程图如图2所示。具体过程是在下位机中实时计算实体交互笔的空间方位向量,将空间方位向量实时映射到虚拟场景世界坐标空间中,由于传入的空间方位向量在世界坐标空间中,所以无需像鼠标拾取一样要把方位向量变换到世界坐标空间中。射线长度参数可以根据虚拟场景预设固定值和可变值[14],利用长度参数和传入的方位向量构造拾取射线。

实体交互笔由MEMS空间姿态传感器、解算空间姿态信息的下位机处理器组成。下位机计算交互笔方位向量与虚拟场景中拾取物体计算是并行的,因此下位机独立计算空间方位向量的时间对整体拾取时间并不影响。由于采用了实体交互笔的人机交互方式,整个拾取过程不涉及矩阵求逆运算,使得整个拾取过程快速、便捷、自如。

2.2 算法实现步骤

1) 下位机解算实体交互笔空间方位向量

本方法采用实体交互笔确定拾取射线的方向。在现实空间坐标与虚拟空间坐标一一映射下,假设交互笔绕z轴旋转的角度为α ,绕y轴旋转的角度为θ ,绕x轴旋转的角度为γ ,Rz(α)为绕z轴旋转α的旋转矩阵,Ry(θ)为绕y轴旋转θ的旋转矩阵,Rx(γ)为绕x轴旋转γ的旋转矩阵,则交互笔综合旋转矩阵R=Rx(γ)·Ry(θ)·Rz(α)。假设实体交互笔初始方位向量为Q(x,y,z),实体交互笔旋转后方位向量为H(x,y,z),则H(x,y,z)=R·Q(x,y,z)。更新后的方位向量H(x,y,z)可直接用于构建拾取射线,从而避免了拾取点在不同空间的一系列变换。

2) 构建虚拟场景拾取射线

在虚拟场景世界坐标系中定义一条射线OP ,以原点O(0,0,0)为射线的起点,该射线可表示为

其中: D(x,y,z)为射线的三维方位向量,由下位机实时解算确定,t为射线长度参数。实体交互笔开始工作时,以Q(x,y,z)初始方位向量为参考值,转过一定角度,此时虚拟场景世界空间中的点P可以表示为

式(2)表明,该算法只需要确定实体交互笔旋转的空间方位向量和一个预设的长度参数,就可以在虚拟场景世界空间构建拾取射线,与经典射线法对比,无需鼠标获取屏幕拾取点A,也完全避免了拾取过程中一系列的矩阵求逆运算。拾取过程中,用实体交互笔代替了鼠标,拾取射线的生成比经典射线法简单快速,并且下位机计算射线方位向量的时间并不包含在整个拾取时间之内,有效提高了拾取速度。

2.3 拾取速度和精度缺陷

3D模型由大量的三角形网格组成,虽然空间方位向量法与经典射线法相比,节省了计算矩阵求逆的时间,但是在射线与具体3D模块的拾取过程中,射线需要遍历虚拟场景中的每个模块,即遍历每个模块的每个三角形。为了避免射线在拾取具体模块时还需要依次对前面序列的模块一一遍历检测的缺陷,可以对具体的模块构造包围体,转化为射线与包围体的相交检测[15]。在3D模型中,对不同模块构造包围体会对射线的拾取精度造成不同程度的影响。本方法将对已有包围体策略进行改进,以提高拾取精度。

3 空间方位向量射线法与包围体策略的结合

3.1 拾取包围体策略

复杂3D模型中三角形数量庞大,遍历过程耗时长,严重影响射线拾取速度。包围体策略是一种基于射线拾取策略的、更加快速简便的拾取策略。常见包围体类型有spheres、DOPs、AABB,OBB等[16]。可以通过不同的方法构造包围体[17]。如图3为几种包围体示意图,其中图3(a)表示对3D模型构建AABB包围体,图3(b)表示对3D模型构建球状包围体,图3(c)表示对3D模型构建DOPs包围体。将空间方位射线拾取法与包围体策略相结合,只需判断射线的拾取点是否在包围体内部,即可判断是否拾取到具体物体。采用这种策略虽然会牺牲拾取的精度,但是在很大程度上提高了拾取速度。

三维虚拟场景中3D模块形状各异,部分外形近似盒体,部分外形近似球体。目前很多方法在构造包围体时没有根据3D模块的具体外形特征,构造符合外形特征的包围体,只是对场景中所有的3D模块构造单一的盒状包围体或者球状包围体。过于单一化的构造方案导致相邻包围体之间存在重叠区域,最终导致射线拾取过程中存在误判干扰现象。如图4(a)3D人体模型、图4(b)拖车模型所示,利用传统方法对3D模型不同模块构造单一的包围体,相邻模块之间存在很大的重叠区域,当射线拾取模块边缘时,这些重叠区域对拾取精度会造成很大影响。

以下根据3D模型中不同模块形状判定阈值实时构建盒状包围体和球状包围体,以提高射线拾取精度。

3.2 形状判定阈值策略

假设3D模块在x轴方向上的半径为X,在y轴方向上的半径为Y,在z轴方向上的半径为Z。本方法通过设定一个合理的形状判定阈值T,对三个方向上的半径两两判断,如果同时满足|X-Y|≤T,|Y-Z|≤T,|Z-X|≤T,则表明三个方向上的半径长度相差较小,以此判定模块近似球体,为模块构建球状包围体,包围球的半径定义为三个方向上半径长度最长的半径,保证模块上所有点都在包围球内部。若上述式子中至少有一个条件不满足,则表明模块近似盒状,为模块构造盒状包围体。

如图5(a)、(b)所示,采用形状判定阈值法,根据模块外形特征构建符合其形状的包围体,相邻模块之间的重叠区域大大减少,有效降低了射线拾取过程中受相邻模块的干扰。

3.3 射线与包围体结合判断

本方法利用实体交互笔空间方位向量生成拾取射线,拾取射线可以绕O点自由转动。射线上的点P可以随着交互笔的空间方位变化实时生成射线OP。拾取射线与具体模块包围体相交检测时,如果射线上的点P落在包围体内部,则表明射线与包围体相交,也即表示拾取到该模块。在图5(a)的3D人体模型中,表明射线OP1拾取到模块1,射线OP2拾取到模块3,射线OP3拾取到模块5。在图5(b)的拖车模型中,表明射线OP4拾取到模块5,射线OP5拾取到模块7,射线OP6拾取到模块8。

4 实验结果

4.1 拾取速度对比

对3D模型随机抽取几个模块进行实验,采用鼠标经典射线拾取法和空间方位向量射线法拾取模块,分别对3D人体模型和拖车模型的部分模块拾取十次,求出在两种方法下的平均拾取时间及拾取速度提高率,如表1所示。

拾取时间以毫秒为单位,从表1可以得出采用本方法的拾取时间明显减少,对各模块拾取速度提高率求平均值,得出采用本方法拾取物体的速度提高了16.98%。

4.2 拾取精度效果

随机拾取3D模型的某个具体模块进行实验,拾取精度如表2和表3所示。

图5(a)、(b)与图4(a)、(b)相比,采用射线与形状判定阈值策略相结合的方法,相邻模块之间的重叠区域大大减少,拾取具体模块的误判干扰率大大降低。从表2可知,拾取3D人体模型模块7时,受相邻模块5的干扰大大降低。从表3可知,拾取拖车模型模块5时,受相邻模块8的干扰大大降低。采用本方法对3D模型相邻模块边缘的拾取误判率从单一包围体的71.26%降低到12.80%。

5 结 论

3D肺部模型 精准肺段切除 篇2

咳嗽数月 竟是肺癌

45岁的唐女士在一家企业担任高管,正处于事业鼎盛时期。今年春节,唐女士出现了反复咳嗽,由于工作繁忙,并未在意。4月中旬体检时,医生发现她的左上肺有个磨玻璃状结节影。唐女士非常焦虑,四处求医。

胸外科医生为唐女士做了详细检查。发现唐女士左上肺结节的直径有1.2厘米,就像一小片磨玻璃样,但中间夹着高密度阴影。初步判断是一个非常早期的肺癌,建议唐女士手术治疗。

从切口微创到组织微创

要做肺切除手术?唐女士认为这是一个很大的手术,非常畏惧。医师向她解释说,现在做肺手术,绝大多数都采取微创方式,即胸腔镜手术,只在胸部打数个钥匙孔大小的切口,进行部分肺切除。相对传统的开胸手术,微创手术切口小,创伤小,术后疼痛轻,并发症少,恢复快,手术的效果同开胸手术一样。

但唐女士的情况比较特别,她的肺部病变靠近肺门深处,采用常规的楔形切除手术非常困难,甚至可能对肺造成较大的损伤。如果简单地将有病灶的肺叶切除,唐女士的病变又属于非常早期,切除整个一叶肺对她的损伤相对较大。

随着胸腔镜技术、医学影像技术的发展,微创精准肺段切除术突显优势,该技术是采用胸腔镜对肺癌病变部位进行精准的肺段切除。人的左右两肺共有5个肺叶,又可再细分为18个肺段。精准的肺段切除手术对于早期肺癌病变的手术效果等同于肺叶切除,还可以尽最大可能保留其余肺的功能,使手术做到组织微创。

但是精准肺段切除最大的难点在于每个人解剖的不确定性,因为肺血管、支气管细枝末节就像一棵树,每个人长得都不一样。要做到精确切除,首先要确定病变在哪一肺段,其次需要精确判断该肺段的动脉、静脉和支气管有没有畸形,需要切断哪一个。如果切错了支气管,肺远端呈空泡样改变,失去功能;如果切错了血管,就会导致患者持续性咯血。

多科联手 建成3D图像

对于肺部病变,一般CT的图像都是平面的,医生看了肺部CT片以后,在自己的脑海中把它还原成立体的,再对患者肺部肿瘤进行定位,精确定位有很大难度。于是,胸外科医生联合影像科具有多年心脏冠脉成像经验的主任医师,共同努力,反复探索,终于圆满实现了肺血管、支气管三维模型的重建。随着影像技术的发展,已有医院将CT图像数据导入计算机工作站,建立起三维立体模型。利于医生对病变进行精确定位。

三维立体模型真实地还原了患者的动脉、静脉、支气管形态,既可以旋转观察,还可以做成三维立体动画,拷入手提电脑中带到手术室,在手术中可以通过查看手提电脑中的图像,帮助手术准确定位。

3D模型 助力精准手术

尽管成功地将CT二维图像改进成可以三维动态观察的图像,但医生进行复杂的肺段手术时,希望能有更加直观的模型进行参考。医生找到一家南京本地的3D打印公司,在众人的合作努力下,成功地将唐女士的肺及肿瘤的三维立体模型,转化成了3D打印的数据,用了一个晚上时间,打印出了唐女士的肺血管和支气管的3D模型。

在3D模型的帮助下,以胸外科主任为首的手术团队顺利地为唐女士进行了精准肺段切除手术,手术时间也比以往的类似手术缩短了近一半时间。术后病理检查显示,唐女士确实为非常早期的肺癌,幸运的是采取了及时根治性手术,唐女士手术后就可以恢复健康,不用再做其他治疗。

3D打印病人肺模型的优点在于:一是让医生对于不同患者肺部解剖结构有一个更加直观的了解;二是在手术前就可发现患者肺的血管、支气管有无畸形,提高手术的安全性;三是手术前,医生可以针对每一位患者的模型规划手术过程,进行模拟手术;四是提高了手术的精确性,缩短了手术时间。

精准手术 让患者免忧

当患者体检发现肺部提示有小结节或者肺部有磨玻璃影时,通常都非常紧张。究竟是此时手术还是再继续观察,也是让很多人纠结的问题。

随着医学技术的发展,目前对于早期非小细胞肺癌的准确诊断和分期水平有了很大的提高,越来越多的“肺小结节”在体检中被发现。小结节有良性的,也有恶性的,有经验的医生会根据结节形态及变化来判断哪种可能性大,从而建议患者采用最合适的诊断治疗方法。

目前,外科手术仍然是肺癌或疑似肺癌首选的治疗方法。早期肺癌完全切除术后5年生存率可以达70%以上,其中原位腺癌、微浸润癌术后的5年生存率可以达到100%,但中晚期肺癌外科治疗的5年生存率仅为20%左右。如果怀疑是肺肿瘤早期,采用3D打印技术联合精准胸腔镜下的肺段切除术,能在术中明确结节是否为恶性,同时实现“诊”和“治”一次性解决,从而消除患者及家人的恐惧心理。

上一篇:河南项城下一篇:规则可信度