CN1996388A - 虚拟手术系统中形变物体的实时冲突检测方法 - Google Patents

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

Info

Publication number
CN1996388A
CN1996388A CN 200610147640 CN200610147640A CN1996388A CN 1996388 A CN1996388 A CN 1996388A CN 200610147640 CN200610147640 CN 200610147640 CN 200610147640 A CN200610147640 A CN 200610147640A CN 1996388 A CN1996388 A CN 1996388A
Authority
CN
China
Prior art keywords
grid
tetrahedron
collision
hash table
space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200610147640
Other languages
English (en)
Other versions
CN100481129C (zh
Inventor
顾力栩
张少霆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CNB2006101476400A priority Critical patent/CN100481129C/zh
Publication of CN1996388A publication Critical patent/CN1996388A/zh
Application granted granted Critical
Publication of CN100481129C publication Critical patent/CN100481129C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

虚拟手术系统中形变物体的实时冲突检测方法
技术领域
本发明涉及的是一种图像处理技术领域的检测方法,特别是一种虚拟手术系统中形变物体的实时冲突检测方法。
背景技术
随着科学技术的高速发展,高科技医疗设备的不断涌现为医疗的现代化提供了越来越多的帮助。虚拟手术平台的建立在医生的培训、手术导航等方面起到重要作用。在与用户的交互中,碰撞检测作用至关重要。所谓碰撞检测,是指检测物体是否碰到了其它物体。它包括两个不同物体之间的碰撞检测和物体自身的碰撞,并要检测出当物体碰撞发生后,物体的哪一部分被碰到了。在虚拟手术中,两个物体间的碰撞表现为手术器械与器官之间的碰撞,器官与器官间的碰撞;物体自身的碰撞指的是器官本身的碰撞,如血管等碰到自己其他的位置。在碰撞发生后,应该有相应的力施加到物体上被碰到的部分,物体受力产生形变,从而能模拟出真实的手术效果。碰撞检测主要分为静态物体的碰撞检测与动态物体的碰撞检测。其中静态物体的碰撞检测已经是显得较为成熟,而对于形变中物体间的动态碰撞检测技术还面临着很大的难题。这是由于形变中的物体的形状在每一个时间步都在改变,所以计算所需要的数据需要实时更新,故而在检测效率上有很大的局限。
经对现有技术的文献检索发现,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的网格大小k:
k = 2 [ log 2 ( s ) ] 公式1
这里的[log2 s]定义了空间网格的等级。
再次,分割等级:为了区分分割后空间网格,定义了分割等级(level)l(l为整数),定义如下:
l = [ log 2 s ]
l有如下特性:
l : = < 0 if s < 1 = 0 if s = 1 > 0 if s > 1
(2)映射
将空间分割成层次网格后,空间中的每一个点(x,y.z.)都属于唯一的网格。为了找到每一点属于的网格,需要计算出每一个点的地址,由于小的网格是嵌套在大的网格中的,需要给每个点计算出它唯一的地址。令k为网格的大小,l为分割等级,则可用如下方法计算出每一点(x,y.z.)的地址:
x y z = [ 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的计算机中实现,首先根据将物体表面点生成物体的体网格数据读入系统,再按照步骤进行,然后对碰撞发生的部分进行冲突响应的处理。具体参数情况如表1所示:
表1  实施例中各种参数情况
情况 物体数 四面体个数 顶点数
A 2 19082 14120
B 100 16200 6400
1、首先利用VTK(Visualization Toolkit,一个三维图形图像处理类库)中提供的函数vtkDelaunay3D()将表中各个物体的表面信息转化成体信息,即将各物体表面顶点连成相互关联的空间四面体。程序按图1的循环实现两物体的碰撞检测,循环的结束条件是所有空间四面体位置不再发生变化。
2、在映射模块中,对组成物体的所有空间四面体,根据公式1动态计算出每一四面体最适合的网格的大小,根据公式2计算出每一顶点的地址,根据公式3建立哈希表,例中分别取p1=73856093,p2=19349663,p3=83492791,p4=67867979,sH=67231,并根据计算出的网格大小和地址将这些顶点映射到相应的哈希表项中。
3、在碰撞检测模块中,对组成物体的所有四面体的每一顶点,将其映射到空间哈希表中,对有冲突的哈希表项采用上面提到的动态的碰撞检测算法进行检测,判断是否发生碰撞,如果碰撞发生,判断发生自碰撞还是一般碰撞,并返回发生碰撞的具体的三角片。
4、对于返回的具体三角片,处理碰撞后的函数。这里的碰撞主要指不同物体发生碰撞,碰撞发生后返回被碰到的具体三角片,接着进行碰撞响应的处理,例中的处理主要是形变处理,由于物体发生形变,组成物体的空间四面体的位置信息会发生改变,故而需要回到步骤1,继续执行。
在该环境下的动态碰撞检测能够达到实时的效果,所有磁撞都能有效地被检测出来,与传统方法相比,性能也有了很大的提高,分别对应于上述情况A和B,具体结果见表2。
表2  实施例结果及与传统方法的比较情况
情况 发明中方法响应时间(ms) 传统方法响应时间(ms) 性能提高率(%)
A 174 220 22.9
B 54 65 20.3

Claims (4)

1、一种虚拟手术系统中形变物体的实时冲突检测方法,其特征在于,采用空间层次哈希表的方式,通过映射模块和检测模块循环来实现,假设物体由m个四面体组成,m为正整数,映射模块对每个四面体进行动态空间分割,生成哈希表,计算各顶点地址,并将它们映射到相应的哈希表项中;在映射过程中,采用动态调整空间网格大小的形式,即根据各个四面体的大小生成边长不同的网格;碰撞检测模块利用映射模块的结果,检查哈希表项中是否出现冲突项,并利用动态碰撞检测算法检测碰撞是否发生;循环中,两模块交替进行,直到循环结束。
2、根据权利要求1所述的虚拟手术系统中形变物体的实时冲突检测方法,其特征是,所述的映射模块,完成以下的处理:
(1)分割空间
首先,定义网格:将空间分割成层次的网格,这些网格由一系列边长可变的轴向包围盒组成,把这些盒子称为网格,网格的边长定义为k,称之为网格大小;
其次,层次分割:网格的大小必须和四面体的大小相适应,定义s=size(t)为四面体t的轴向包围盒的得最大边长,则用以下公式定义映射四面体t的网格大小k:
k = 2 [ log 2 ( s ) ]
这里的[log2 s]定义了空间网格的等级;
再次,分割等级:为了区分分割后空间网格,定义了分割等级(level)l,l为整数,定义如下: l = [ log 2 s ] , l有如下特性:
l : = < 0 if s < 1 = 0 if s = 1 > 0 if s > 1 ;
(2)映射
将空间分割成层次网格后,空间中的每一个点(x,y.z.)都属于唯一的网格,令k为网格的大小,l为分割等级,计算出每一点(x,y.z.)的地址:
x y z = [ x / k ] [ y / k ] [ z / k ] l
(3)哈希函数
利用计算出的每点的地址(x,y.z.,l)通过哈希函数映射到哈希表项中,哈希函数定义如下:
hash(x,y,z,l)=(xp1yp2zp3lp4)mod  +sH
这里的p1,p2,p3,p4是大于108的质数,sH是哈希表的大小,表示异或。
3、根据权利要求1所述的虚拟手术系统中形变物体的实时冲突检测方法,其特征是,所述的碰撞检测模块,对物体A中的每一顶点v,做如下处理:
(1)将每一点映射到哈希表中;
(2)检测哈希表中有冲突的表项,即对每一索引i,做如下工作:
如果在i对应的哈希表项中不存在除A以外的实体,则没有碰撞发生;否则,有可能发生碰撞,这时,将物体中的顶点v与索引i对应的表项中所有的四面体t进行检测,看该顶点是否与四面体发生相交;
如果物体中的顶点v与四面体t相交,则可能出现如下三种情况:
①如果物体中的顶点v是四面体t的顶点之一,则没有发生碰撞;
②如果物体中的顶点v是同一物体中的除包含顶点v的四面体以外的四面体t中的点,则发生自碰撞;
③如果物体中的顶点v和四面体t分属于不同物体,则碰撞发生。
4、根据权利要求1所述的虚拟手术系统中形变物体的实时冲突检测方法,其特征是,直接在运行的计算机上进行,首先根据将物体表面点生成物体的体网格数据读入系统,再按照步骤进行,然后对碰撞发生的部分进行冲突响应的处理。
CNB2006101476400A 2006-12-21 2006-12-21 虚拟手术系统中形变物体的实时冲突检测方法 Expired - Fee Related CN100481129C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101476400A CN100481129C (zh) 2006-12-21 2006-12-21 虚拟手术系统中形变物体的实时冲突检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101476400A CN100481129C (zh) 2006-12-21 2006-12-21 虚拟手术系统中形变物体的实时冲突检测方法

Publications (2)

Publication Number Publication Date
CN1996388A true CN1996388A (zh) 2007-07-11
CN100481129C CN100481129C (zh) 2009-04-22

Family

ID=38251463

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101476400A Expired - Fee Related CN100481129C (zh) 2006-12-21 2006-12-21 虚拟手术系统中形变物体的实时冲突检测方法

Country Status (1)

Country Link
CN (1) CN100481129C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103065305A (zh) * 2012-12-25 2013-04-24 上海交通大学 虚拟手术训练系统中基于四面体的组织模型切割方法
CN104200031A (zh) * 2014-09-04 2014-12-10 大连大学 一种基于距离优先和时空相关性的碰撞检测方法
CN105498211A (zh) * 2015-12-11 2016-04-20 网易(杭州)网络有限公司 游戏中位置关系的处理方法和装置
CN110414042A (zh) * 2019-06-14 2019-11-05 青岛科技大学 一种冲突会遇局面下船舶集群态势分析方法
CN112802203A (zh) * 2021-01-18 2021-05-14 华中科技大学鄂州工业技术研究院 一种基于特征的空间哈希连续碰撞检测方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103065305A (zh) * 2012-12-25 2013-04-24 上海交通大学 虚拟手术训练系统中基于四面体的组织模型切割方法
CN103065305B (zh) * 2012-12-25 2015-09-09 上海交通大学 虚拟手术训练系统中基于四面体的组织模型切割方法
CN104200031A (zh) * 2014-09-04 2014-12-10 大连大学 一种基于距离优先和时空相关性的碰撞检测方法
CN104200031B (zh) * 2014-09-04 2017-11-24 大连大学 一种基于距离优先和时空相关性的碰撞检测方法
CN105498211A (zh) * 2015-12-11 2016-04-20 网易(杭州)网络有限公司 游戏中位置关系的处理方法和装置
CN105498211B (zh) * 2015-12-11 2019-04-23 网易(杭州)网络有限公司 游戏中位置关系的处理方法和装置
CN110414042A (zh) * 2019-06-14 2019-11-05 青岛科技大学 一种冲突会遇局面下船舶集群态势分析方法
CN110414042B (zh) * 2019-06-14 2023-05-05 青岛科技大学 一种冲突会遇局面下船舶集群态势分析方法
CN112802203A (zh) * 2021-01-18 2021-05-14 华中科技大学鄂州工业技术研究院 一种基于特征的空间哈希连续碰撞检测方法
CN112802203B (zh) * 2021-01-18 2023-02-28 华中科技大学鄂州工业技术研究院 一种基于特征的空间哈希连续碰撞检测方法

Also Published As

Publication number Publication date
CN100481129C (zh) 2009-04-22

Similar Documents

Publication Publication Date Title
Liu et al. Real-time collision culling of a million bodies on graphics processing units
CN100481129C (zh) 虚拟手术系统中形变物体的实时冲突检测方法
CN105389850B (zh) 一种大规模三维场景的可见性生成方法
CN102609992A (zh) 基于三角网格变形体的自碰撞检测方法
CN104504760B (zh) 实时更新三维图像的方法和系统
Gregory et al. Fast and accurate collision detection for haptic interaction using a three degree-of-freedom force-feedback device
EP2336977A1 (en) A Micro-architecture System and Method for ray tracing and collision detection
CN101561937A (zh) 基于普通微机的大数据量医学影像三维交互方法
US8717382B2 (en) Method of detecting collisions in graphics processing unit
Greß et al. Object-space interference detection on programmable graphics hardware
Li et al. Fast and robust GPU-based point-in-polyhedron determination
Hu et al. Optimization of collision detection algorithm based on OBB
Stocco et al. A novel approach for real-time tire-ground enveloping modeling
Echegaray et al. A methodology for optimal voxel size computation in collision detection algorithms for virtual reality
Cao et al. A fast and generalized broad-phase collision detection method based on kd-tree spatial subdivision and sweep-and-prune
CN107610231A (zh) 一种动态碰撞检测方法
CN104463940A (zh) 一种基于gpu的混合树并行构建方法
Wang et al. A prediction method for assembly surface contact considering form error
Ding et al. New collision detection method for simulating virtual plant populations
Salazar et al. Cloth simulation using AABB hierarchies and GPU parallelism
Yalçın et al. GPU algorithms for diamond-based multiresolution terrain processing
Dévai An optimal hidden-surface algorithm and its parallelization
Chan et al. Particle–mesh coupling in the interaction of fluid and deformable bodies with screen space refraction rendering
Zou et al. A GPGPU-based collision detection algorithm
Wang et al. Fast point based global illumination

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090422

Termination date: 20111221