虚拟手术系统中形变物体的实时冲突检测方法技术方案

技术编号:2952549 阅读:232 留言:0更新日期:2012-04-11 18:40
一种虚拟手术系统中的形变中物体实时冲突检测方法,属于图形处理技术领域。本发明专利技术采用空间层次哈希表的方式,通过映射模块和检测模块循环来实现:假设物体由m个四面体组成,m为正整数,映射模块对每个叫面体进行动态空间分割,生成哈希表,计算各顶点地址,并将它们映射到相应的哈希表项中;在映射过程中,采用动态调整空间网格大小的形式,即根据各个四面体的大小生成边长不同的网格;碰撞检测模块利用映射模块的结果,检查哈希表项中是否出现冲突项,并利用动态碰撞检测算法检测碰撞是否发生;循环中,两模块交替进行,直到循环结束。本发明专利技术实现高精度,对庞大数据集,特别是虚拟手术系统中手术器械与软组织交互变得更有效,更快速。

【技术实现步骤摘要】

本专利技术涉及的是一种图像处理
的检测方法,特别是一种。
技术介绍
随着科学技术的高速发展,高科技医疗设备的不断涌现为医疗的现代化提供了越来越多的帮助。虚拟手术平台的建立在医生的培训、手术导航等方面起到重要作用。在与用户的交互中,碰撞检测作用至关重要。所谓碰撞检测,是指检测物体是否碰到了其它物体。它包括两个不同物体之间的碰撞检测和物体自身的碰撞,并要检测出当物体碰撞发生后,物体的哪一部分被碰到了。在虚拟手术中,两个物体间的碰撞表现为手术器械与器官之间的碰撞,器官与器官间的碰撞;物体自身的碰撞指的是器官本身的碰撞,如血管等碰到自己其他的位置。在碰撞发生后,应该有相应的力施加到物体上被碰到的部分,物体受力产生形变,从而能模拟出真实的手术效果。碰撞检测主要分为静态物体的碰撞检测与动态物体的碰撞检测。其中静态物体的碰撞检测已经是显得较为成熟,而对于形变中物体间的动态碰撞检测技术还面临着很大的难题。这是由于形变中的物体的形状在每一个时间步都在改变,所以计算所需要的数据需要实时更新,故而在检测效率上有很大的局限。 经对现有技术的文献检索发现,M.Teschner等在Proceedings of Vision,Modeling,Visualization VMV’03(03年出版的视觉、建模、可视化会议的论文集),2003.pages 47-54,上发表的“Optimized spatial hashing for collisiondetection of deformable objects.”(《形变中物体的最优化空间哈希表碰撞检测方法》)中提出了一种利用基于哈希表的动态检测方法,他使形变中的物体的碰撞检测效率大为提高。但这种方法在分割空间时,采用的是规则的大小一致的网格进行检测,存在以下问题(1)网格的密度对实现的效率有很大的影响。 如果网格定义得过密,虽然检测的精度会提高,但一个测试单元可能存在于多个网格中,这会导致计算量加大;如果网格密度过小,许多检测单元会同是映射到一个哈希表项中,这降低了粗略碰撞检测的效率,增加了精细碰撞检测的时间,程序效率也会降低。(2)网格大小固定,在不同的场景下,对选取网格的大小有很高的要求,每次都要经过很多次实验才能确定出合适的网格大小,方法的通用性受到限制。(3)如果待检测的物体由无规律的四面体组成,确定网格的大小就变得很困难。 综上所诉,对于庞大的数据集而言,现有的碰撞检测方法依然存在着许多未决的难题,而在检测方法的通用性上,现有的方法也面临着很多问题,亟待解决。
技术实现思路
本专利技术的目的在于克服现有技术中的不足,提供一种,使其对庞大数据集(组成物体的顶点数超过104,组成物体的空间四面体数通常为103~105),特别是虚拟手术系统中手术器械与软组织交互变得更快速(平均响应时间提高12.9%以上)。 本专利技术是通过以下技术方案实现的,本专利技术采用空间层次哈希表的方式,通过映射模块和检测模块来实现,假设物体由m个四面体组成(m为正整数),映射模块对每个四面体进行动态空间分割,生成哈希表,计算各顶点地址,并将它们映射到相应的哈希表项中;在映射过程中,本专利技术采用动态调整空间网格大小的形式,即根据各个四面体的大小生成边长不同的网格,而不是像现有方法那样,每个网格的边长是固定的,从而改进了现有方法的不足。碰撞检测模块利用映射模块的结果,检查哈希表项中是否出现冲突项,并利用动态碰撞检测算法检测碰撞是否发生。循环中,两模块交替进行,直到循环结束。 以下对本专利技术方法作进一步的描述,具体内容如下1、所述的映射模块,完成以下的处理(1)分割空间首先,定义网格本专利技术将空间分割成层次的网格,这些网格由一系列边长可变的轴向包围盒组成,把这些盒子称为网格,网格的边长定义为k,称之为网格大小。 其次,层次分割为了为每个四面体找到最适宜的网格,网格的大小必须和四面体的大小相适应。定义s=size(t)为四面体t的轴向包围盒的最大边长,则用以下公式定义映射t的网格大小kk=2[log2(s)]]]>公式1这里的[log2s]定义了空间网格的等级。 再次,分割等级为了区分分割后空间网格,定义了分割等级(level)l(l为整数),定义如下l=[log2s]]]>l有如下特性l:=<0ifs<1=0ifs=1>0ifs>1]]>(2)映射将空间分割成层次网格后,空间中的每一个点(x,y.z.)都属于唯一的网格。为了找到每一点属于的网格,需要计算出每一个点的地址,由于小的网格是嵌套在大的网格中的,需要给每个点计算出它唯一的地址。令k为网格的大小,l为分割等级,则可用如下方法计算出每一点(x,y.z.)的地址xyz=[x/k][y/k][z/k]l]]>公式2(3)哈希函数利用上述方法计算出的每点的地址(x,y.z.,l)通过哈希函数映射到哈希表项中,本专利技术中的哈希函数定义如下 hash(x,y,z,l)=(xp1yp2zp3lp4)mod sH公式3这里的p1,p2,p3,p4是大于108的质数,sH是哈希表的大小,表示异或。 2、碰撞检测模块,对物体A中的每一顶点v,做如下处理(1)通过上述方法将每一点映射到哈希表中(2)检测哈希表中有冲突的表项,即对每一索引i,做如下工作如果在i对应的哈希表项中不存在除A以外实体,则没有碰撞发生;否则,有可能发生碰撞,这时,须将v与i对应的表项中所有的四面体进行检测,看该顶点是否与四面体发生相交。 如果v与t相交,则可能出现如下三种情况i.如果v是t的顶点之一,则没有发生碰撞;ii.如果v是同一物体中的其他四面体t中的点,则发生自碰撞;iii.如果v和t分属于不同物体,则碰撞发生。 本专利技术方法具体操作时,首先根据将物体表面点生成物体的体网格数据读入系统,再按照上述步骤进行,然后对碰撞发生的部分进行冲突响应的处理即可。 本专利技术采用一种基于空间层次哈希表的方式,汲取现有方法的优点,并改进了现有技术中网格大小固定的不足,实现实时和适用范围广泛的三维形变中物体冲突检测功能。利用本专利技术进行碰撞检测,有如下优点(1)易于实现,用到的都是基本的数据结构,分割、映射、判断等也都十分简单。(2)运算速度快,本专利技术克服了既有方法因运算繁杂、冗余度大所造成的执行速度慢的问题,采用哈希表查找形式,时间复杂度只与空间中四面体的个数成线性关系,而与物体的数量无关,在普通的计算机上就能完成。(3)由于分割空间后的盒子只是虚拟概念,故无需对每一个物体另行分配存储空间。(4)检测自碰撞的方法与物体间的碰撞的方法相同,虽然分了自碰撞和物体间碰撞两种情况,但实际执行过程只是判断点与面的相交,不存在判断物体的碰撞时自碰撞还是不同物体间碰撞的问题,故无需另行判断是否发生自碰撞,从而解决了自碰撞和物体间碰撞方法不同的矛盾。附图说明图1本专利技术方法流程图具体实施方式下面对本专利技术的一实施例作详细说明本实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。 本实施例在CPU为Pentuim M 1.5GHz内存为1.0GB的计算机中实现,首先根据将物本文档来自技高网
...

【技术保护点】
一种虚拟手术系统中形变物体的实时冲突检测方法,其特征在于,采用空间层次哈希表的方式,通过映射模块和检测模块循环来实现,假设物体由m个四面体组成,m为正整数,映射模块对每个四面体进行动态空间分割,生成哈希表,计算各顶点地址,并将它们映射到相应的哈希表项中;在映射过程中,采用动态调整空间网格大小的形式,即根据各个四面体的大小生成边长不同的网格;碰撞检测模块利用映射模块的结果,检查哈希表项中是否出现冲突项,并利用动态碰撞检测算法检测碰撞是否发生;循环中,两模块交替进行,直到循环结束。

【技术特征摘要】
1.一种虚拟手术系统中形变物体的实时冲突检测方法,其特征在于,采用空间层次哈希表的方式,通过映射模块和检测模块循环来实现,假设物体由m个四面体组成,m为正整数,映射模块对每个四面体进行动态空间分割,生成哈希表,计算各顶点地址,并将它们映射到相应的哈希表项中;在映射过程中,采用动态调整空间网格大小的形式,即根据各个四面体的大小生成边长不同的网格;碰撞检测模块利用映射模块的结果,检查哈希表项中是否出现冲突项,并利用动态碰撞检测算法检测碰撞是否发生;循环中,两模块交替进行,直到循环结束。2.根据权利要求1所述的虚拟手术系统中形变物体的实时冲突检测方法,其特征是,所述的映射模块,完成以下的处理(1)分割空间首先,定义网格将空间分割成层次的网格,这些网格由一系列边长可变的轴向包围盒组成,把这些盒子称为网格,网格的边长定义为k,称之为网格大小;其次,层次分割网格的大小必须和四面体的大小相适应,定义s=size(t)为四面体t的轴向包围盒的得最大边长,则用以下公式定义映射四面体t的网格大小kk=2[log2(s)]]]>这里的[log2s]定义了空间网格的等级;再次,分割等级为了区分分割后空间网格,定义了分割等级(level)l,l为整数,定义如下l=[log2s],]]>l有如下特性l:=<0ifs<1=0ifs=1>0ifs>1;]]>(2)映射将空间分割成层次网格后,空间中的每一个点(x,y.z....

【专利技术属性】
技术研发人员:顾力栩张少霆
申请(专利权)人:上海交通大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利