專利名稱:虛擬手術(shù)系統(tǒng)中形變物體的實(shí)時(shí)沖突檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種圖像處理技術(shù)領(lǐng)域的檢測方法,特別是一種虛擬手術(shù)系統(tǒng)中形變物體的實(shí)時(shí)沖突檢測方法。
背景技術(shù):
隨著科學(xué)技術(shù)的高速發(fā)展,高科技醫(yī)療設(shè)備的不斷涌現(xiàn)為醫(yī)療的現(xiàn)代化提供了越來越多的幫助。虛擬手術(shù)平臺(tái)的建立在醫(yī)生的培訓(xùn)、手術(shù)導(dǎo)航等方面起到重要作用。在與用戶的交互中,碰撞檢測作用至關(guān)重要。所謂碰撞檢測,是指檢測物體是否碰到了其它物體。它包括兩個(gè)不同物體之間的碰撞檢測和物體自身的碰撞,并要檢測出當(dāng)物體碰撞發(fā)生后,物體的哪一部分被碰到了。在虛擬手術(shù)中,兩個(gè)物體間的碰撞表現(xiàn)為手術(shù)器械與器官之間的碰撞,器官與器官間的碰撞;物體自身的碰撞指的是器官本身的碰撞,如血管等碰到自己其他的位置。在碰撞發(fā)生后,應(yīng)該有相應(yīng)的力施加到物體上被碰到的部分,物體受力產(chǎn)生形變,從而能模擬出真實(shí)的手術(shù)效果。碰撞檢測主要分為靜態(tài)物體的碰撞檢測與動(dòng)態(tài)物體的碰撞檢測。其中靜態(tài)物體的碰撞檢測已經(jīng)是顯得較為成熟,而對(duì)于形變中物體間的動(dòng)態(tài)碰撞檢測技術(shù)還面臨著很大的難題。這是由于形變中的物體的形狀在每一個(gè)時(shí)間步都在改變,所以計(jì)算所需要的數(shù)據(jù)需要實(shí)時(shí)更新,故而在檢測效率上有很大的局限。
經(jīng)對(duì)現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),M.Teschner等在Proceedings of Vision,Modeling,Visualization VMV’03(03年出版的視覺、建模、可視化會(huì)議的論文集),2003.pages 47-54,上發(fā)表的“Optimized spatial hashing for collisiondetection of deformable objects.”(《形變中物體的最優(yōu)化空間哈希表碰撞檢測方法》)中提出了一種利用基于哈希表的動(dòng)態(tài)檢測方法,他使形變中的物體的碰撞檢測效率大為提高。但這種方法在分割空間時(shí),采用的是規(guī)則的大小一致的網(wǎng)格進(jìn)行檢測,存在以下問題(1)網(wǎng)格的密度對(duì)實(shí)現(xiàn)的效率有很大的影響。
如果網(wǎng)格定義得過密,雖然檢測的精度會(huì)提高,但一個(gè)測試單元可能存在于多個(gè)網(wǎng)格中,這會(huì)導(dǎo)致計(jì)算量加大;如果網(wǎng)格密度過小,許多檢測單元會(huì)同是映射到一個(gè)哈希表項(xiàng)中,這降低了粗略碰撞檢測的效率,增加了精細(xì)碰撞檢測的時(shí)間,程序效率也會(huì)降低。(2)網(wǎng)格大小固定,在不同的場景下,對(duì)選取網(wǎng)格的大小有很高的要求,每次都要經(jīng)過很多次實(shí)驗(yàn)才能確定出合適的網(wǎng)格大小,方法的通用性受到限制。(3)如果待檢測的物體由無規(guī)律的四面體組成,確定網(wǎng)格的大小就變得很困難。
綜上所訴,對(duì)于龐大的數(shù)據(jù)集而言,現(xiàn)有的碰撞檢測方法依然存在著許多未決的難題,而在檢測方法的通用性上,現(xiàn)有的方法也面臨著很多問題,亟待解決。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種虛擬手術(shù)系統(tǒng)中形變物體的實(shí)時(shí)沖突檢測方法,使其對(duì)龐大數(shù)據(jù)集(組成物體的頂點(diǎn)數(shù)超過104,組成物體的空間四面體數(shù)通常為103~105),特別是虛擬手術(shù)系統(tǒng)中手術(shù)器械與軟組織交互變得更快速(平均響應(yīng)時(shí)間提高12.9%以上)。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明采用空間層次哈希表的方式,通過映射模塊和檢測模塊來實(shí)現(xiàn),假設(shè)物體由m個(gè)四面體組成(m為正整數(shù)),映射模塊對(duì)每個(gè)四面體進(jìn)行動(dòng)態(tài)空間分割,生成哈希表,計(jì)算各頂點(diǎn)地址,并將它們映射到相應(yīng)的哈希表項(xiàng)中;在映射過程中,本發(fā)明采用動(dòng)態(tài)調(diào)整空間網(wǎng)格大小的形式,即根據(jù)各個(gè)四面體的大小生成邊長不同的網(wǎng)格,而不是像現(xiàn)有方法那樣,每個(gè)網(wǎng)格的邊長是固定的,從而改進(jìn)了現(xiàn)有方法的不足。碰撞檢測模塊利用映射模塊的結(jié)果,檢查哈希表項(xiàng)中是否出現(xiàn)沖突項(xiàng),并利用動(dòng)態(tài)碰撞檢測算法檢測碰撞是否發(fā)生。循環(huán)中,兩模塊交替進(jìn)行,直到循環(huán)結(jié)束。
以下對(duì)本發(fā)明方法作進(jìn)一步的描述,具體內(nèi)容如下1、所述的映射模塊,完成以下的處理(1)分割空間首先,定義網(wǎng)格本發(fā)明將空間分割成層次的網(wǎng)格,這些網(wǎng)格由一系列邊長可變的軸向包圍盒組成,把這些盒子稱為網(wǎng)格,網(wǎng)格的邊長定義為k,稱之為網(wǎng)格大小。
其次,層次分割為了為每個(gè)四面體找到最適宜的網(wǎng)格,網(wǎng)格的大小必須和四面體的大小相適應(yīng)。定義s=size(t)為四面體t的軸向包圍盒的最大邊長,則用以下公式定義映射t的網(wǎng)格大小kk=2[log2(s)]]]>公式1這里的[log2s]定義了空間網(wǎng)格的等級(jí)。
再次,分割等級(jí)為了區(qū)分分割后空間網(wǎng)格,定義了分割等級(jí)(level)l(l為整數(shù)),定義如下l=[log2s]]]>l有如下特性l:=<0ifs<1=0ifs=1>0ifs>1]]>(2)映射將空間分割成層次網(wǎng)格后,空間中的每一個(gè)點(diǎn)(x,y.z.)都屬于唯一的網(wǎng)格。為了找到每一點(diǎn)屬于的網(wǎng)格,需要計(jì)算出每一個(gè)點(diǎn)的地址,由于小的網(wǎng)格是嵌套在大的網(wǎng)格中的,需要給每個(gè)點(diǎn)計(jì)算出它唯一的地址。令k為網(wǎng)格的大小,l為分割等級(jí),則可用如下方法計(jì)算出每一點(diǎn)(x,y.z.)的地址xyz=[x/k][y/k][z/k]l]]>公式2(3)哈希函數(shù)利用上述方法計(jì)算出的每點(diǎn)的地址(x,y.z.,l)通過哈希函數(shù)映射到哈希表項(xiàng)中,本發(fā)明中的哈希函數(shù)定義如下
hash(x,y,z,l)=(xp1yp2zp3lp4)mod sH公式3這里的p1,p2,p3,p4是大于108的質(zhì)數(shù),sH是哈希表的大小,表示異或。
2、碰撞檢測模塊,對(duì)物體A中的每一頂點(diǎn)v,做如下處理(1)通過上述方法將每一點(diǎn)映射到哈希表中(2)檢測哈希表中有沖突的表項(xiàng),即對(duì)每一索引i,做如下工作如果在i對(duì)應(yīng)的哈希表項(xiàng)中不存在除A以外實(shí)體,則沒有碰撞發(fā)生;否則,有可能發(fā)生碰撞,這時(shí),須將v與i對(duì)應(yīng)的表項(xiàng)中所有的四面體進(jìn)行檢測,看該頂點(diǎn)是否與四面體發(fā)生相交。
如果v與t相交,則可能出現(xiàn)如下三種情況i.如果v是t的頂點(diǎn)之一,則沒有發(fā)生碰撞;ii.如果v是同一物體中的其他四面體t中的點(diǎn),則發(fā)生自碰撞;iii.如果v和t分屬于不同物體,則碰撞發(fā)生。
本發(fā)明方法具體操作時(shí),首先根據(jù)將物體表面點(diǎn)生成物體的體網(wǎng)格數(shù)據(jù)讀入系統(tǒng),再按照上述步驟進(jìn)行,然后對(duì)碰撞發(fā)生的部分進(jìn)行沖突響應(yīng)的處理即可。
本發(fā)明采用一種基于空間層次哈希表的方式,汲取現(xiàn)有方法的優(yōu)點(diǎn),并改進(jìn)了現(xiàn)有技術(shù)中網(wǎng)格大小固定的不足,實(shí)現(xiàn)實(shí)時(shí)和適用范圍廣泛的三維形變中物體沖突檢測功能。利用本發(fā)明進(jìn)行碰撞檢測,有如下優(yōu)點(diǎn)(1)易于實(shí)現(xiàn),用到的都是基本的數(shù)據(jù)結(jié)構(gòu),分割、映射、判斷等也都十分簡單。(2)運(yùn)算速度快,本發(fā)明克服了既有方法因運(yùn)算繁雜、冗余度大所造成的執(zhí)行速度慢的問題,采用哈希表查找形式,時(shí)間復(fù)雜度只與空間中四面體的個(gè)數(shù)成線性關(guān)系,而與物體的數(shù)量無關(guān),在普通的計(jì)算機(jī)上就能完成。(3)由于分割空間后的盒子只是虛擬概念,故無需對(duì)每一個(gè)物體另行分配存儲(chǔ)空間。(4)檢測自碰撞的方法與物體間的碰撞的方法相同,雖然分了自碰撞和物體間碰撞兩種情況,但實(shí)際執(zhí)行過程只是判斷點(diǎn)與面的相交,不存在判斷物體的碰撞時(shí)自碰撞還是不同物體間碰撞的問題,故無需另行判斷是否發(fā)生自碰撞,從而解決了自碰撞和物體間碰撞方法不同的矛盾。
圖1本發(fā)明方法流程圖具體實(shí)施方式
下面對(duì)本發(fā)明的一實(shí)施例作詳細(xì)說明本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
本實(shí)施例在CPU為Pentuim M 1.5GHz內(nèi)存為1.0GB的計(jì)算機(jī)中實(shí)現(xiàn),首先根據(jù)將物體表面點(diǎn)生成物體的體網(wǎng)格數(shù)據(jù)讀入系統(tǒng),再按照步驟進(jìn)行,然后對(duì)碰撞發(fā)生的部分進(jìn)行沖突響應(yīng)的處理。具體參數(shù)情況如表1所示表1 實(shí)施例中各種參數(shù)情況
1、首先利用VTK(Visualization Toolkit,一個(gè)三維圖形圖像處理類庫)中提供的函數(shù)vtkDelaunay3D()將表中各個(gè)物體的表面信息轉(zhuǎn)化成體信息,即將各物體表面頂點(diǎn)連成相互關(guān)聯(lián)的空間四面體。程序按圖1的循環(huán)實(shí)現(xiàn)兩物體的碰撞檢測,循環(huán)的結(jié)束條件是所有空間四面體位置不再發(fā)生變化。
2、在映射模塊中,對(duì)組成物體的所有空間四面體,根據(jù)公式1動(dòng)態(tài)計(jì)算出每一四面體最適合的網(wǎng)格的大小,根據(jù)公式2計(jì)算出每一頂點(diǎn)的地址,根據(jù)公式3建立哈希表,例中分別取p1=73856093,p2=19349663,p3=83492791,p4=67867979,sH=67231,并根據(jù)計(jì)算出的網(wǎng)格大小和地址將這些頂點(diǎn)映射到相應(yīng)的哈希表項(xiàng)中。
3、在碰撞檢測模塊中,對(duì)組成物體的所有四面體的每一頂點(diǎn),將其映射到空間哈希表中,對(duì)有沖突的哈希表項(xiàng)采用上面提到的動(dòng)態(tài)的碰撞檢測算法進(jìn)行檢測,判斷是否發(fā)生碰撞,如果碰撞發(fā)生,判斷發(fā)生自碰撞還是一般碰撞,并返回發(fā)生碰撞的具體的三角片。
4、對(duì)于返回的具體三角片,處理碰撞后的函數(shù)。這里的碰撞主要指不同物體發(fā)生碰撞,碰撞發(fā)生后返回被碰到的具體三角片,接著進(jìn)行碰撞響應(yīng)的處理,例中的處理主要是形變處理,由于物體發(fā)生形變,組成物體的空間四面體的位置信息會(huì)發(fā)生改變,故而需要回到步驟1,繼續(xù)執(zhí)行。
在該環(huán)境下的動(dòng)態(tài)碰撞檢測能夠達(dá)到實(shí)時(shí)的效果,所有磁撞都能有效地被檢測出來,與傳統(tǒng)方法相比,性能也有了很大的提高,分別對(duì)應(yīng)于上述情況A和B,具體結(jié)果見表2。
表2 實(shí)施例結(jié)果及與傳統(tǒng)方法的比較情況
權(quán)利要求
1.一種虛擬手術(shù)系統(tǒng)中形變物體的實(shí)時(shí)沖突檢測方法,其特征在于,采用空間層次哈希表的方式,通過映射模塊和檢測模塊循環(huán)來實(shí)現(xiàn),假設(shè)物體由m個(gè)四面體組成,m為正整數(shù),映射模塊對(duì)每個(gè)四面體進(jìn)行動(dòng)態(tài)空間分割,生成哈希表,計(jì)算各頂點(diǎn)地址,并將它們映射到相應(yīng)的哈希表項(xiàng)中;在映射過程中,采用動(dòng)態(tài)調(diào)整空間網(wǎng)格大小的形式,即根據(jù)各個(gè)四面體的大小生成邊長不同的網(wǎng)格;碰撞檢測模塊利用映射模塊的結(jié)果,檢查哈希表項(xiàng)中是否出現(xiàn)沖突項(xiàng),并利用動(dòng)態(tài)碰撞檢測算法檢測碰撞是否發(fā)生;循環(huán)中,兩模塊交替進(jìn)行,直到循環(huán)結(jié)束。
2.根據(jù)權(quán)利要求1所述的虛擬手術(shù)系統(tǒng)中形變物體的實(shí)時(shí)沖突檢測方法,其特征是,所述的映射模塊,完成以下的處理(1)分割空間首先,定義網(wǎng)格將空間分割成層次的網(wǎng)格,這些網(wǎng)格由一系列邊長可變的軸向包圍盒組成,把這些盒子稱為網(wǎng)格,網(wǎng)格的邊長定義為k,稱之為網(wǎng)格大?。黄浯?,層次分割網(wǎng)格的大小必須和四面體的大小相適應(yīng),定義s=size(t)為四面體t的軸向包圍盒的得最大邊長,則用以下公式定義映射四面體t的網(wǎng)格大小kk=2[log2(s)]]]>這里的[log2s]定義了空間網(wǎng)格的等級(jí);再次,分割等級(jí)為了區(qū)分分割后空間網(wǎng)格,定義了分割等級(jí)(level)l,l為整數(shù),定義如下l=[log2s],]]>l有如下特性l:=<0ifs<1=0ifs=1>0ifs>1;]]>(2)映射將空間分割成層次網(wǎng)格后,空間中的每一個(gè)點(diǎn)(x,y.z.)都屬于唯一的網(wǎng)格,令k為網(wǎng)格的大小,l為分割等級(jí),計(jì)算出每一點(diǎn)(x,y.z.)的地址xyz=[x/k][y/k][z/k]l]]>(3)哈希函數(shù)利用計(jì)算出的每點(diǎn)的地址(x,y.z.,l)通過哈希函數(shù)映射到哈希表項(xiàng)中,哈希函數(shù)定義如下hash(x,y,z,l)=(xp1yp2zp3lp4)mod +sH這里的p1,p2,p3,p4是大于108的質(zhì)數(shù),sH是哈希表的大小,表示異或。
3.根據(jù)權(quán)利要求1所述的虛擬手術(shù)系統(tǒng)中形變物體的實(shí)時(shí)沖突檢測方法,其特征是,所述的碰撞檢測模塊,對(duì)物體A中的每一頂點(diǎn)v,做如下處理(1)將每一點(diǎn)映射到哈希表中;(2)檢測哈希表中有沖突的表項(xiàng),即對(duì)每一索引i,做如下工作如果在i對(duì)應(yīng)的哈希表項(xiàng)中不存在除A以外的實(shí)體,則沒有碰撞發(fā)生;否則,有可能發(fā)生碰撞,這時(shí),將物體中的頂點(diǎn)v與索引i對(duì)應(yīng)的表項(xiàng)中所有的四面體t進(jìn)行檢測,看該頂點(diǎn)是否與四面體發(fā)生相交;如果物體中的頂點(diǎn)v與四面體t相交,則可能出現(xiàn)如下三種情況①如果物體中的頂點(diǎn)v是四面體t的頂點(diǎn)之一,則沒有發(fā)生碰撞;②如果物體中的頂點(diǎn)v是同一物體中的除包含頂點(diǎn)v的四面體以外的四面體t中的點(diǎn),則發(fā)生自碰撞;③如果物體中的頂點(diǎn)v和四面體t分屬于不同物體,則碰撞發(fā)生。
4.根據(jù)權(quán)利要求1所述的虛擬手術(shù)系統(tǒng)中形變物體的實(shí)時(shí)沖突檢測方法,其特征是,直接在運(yùn)行的計(jì)算機(jī)上進(jìn)行,首先根據(jù)將物體表面點(diǎn)生成物體的體網(wǎng)格數(shù)據(jù)讀入系統(tǒng),再按照步驟進(jìn)行,然后對(duì)碰撞發(fā)生的部分進(jìn)行沖突響應(yīng)的處理。
全文摘要
一種虛擬手術(shù)系統(tǒng)中的形變中物體實(shí)時(shí)沖突檢測方法,屬于圖形處理技術(shù)領(lǐng)域。本發(fā)明采用空間層次哈希表的方式,通過映射模塊和檢測模塊循環(huán)來實(shí)現(xiàn)假設(shè)物體由m個(gè)四面體組成,m為正整數(shù),映射模塊對(duì)每個(gè)叫面體進(jìn)行動(dòng)態(tài)空間分割,生成哈希表,計(jì)算各頂點(diǎn)地址,并將它們映射到相應(yīng)的哈希表項(xiàng)中;在映射過程中,采用動(dòng)態(tài)調(diào)整空間網(wǎng)格大小的形式,即根據(jù)各個(gè)四面體的大小生成邊長不同的網(wǎng)格;碰撞檢測模塊利用映射模塊的結(jié)果,檢查哈希表項(xiàng)中是否出現(xiàn)沖突項(xiàng),并利用動(dòng)態(tài)碰撞檢測算法檢測碰撞是否發(fā)生;循環(huán)中,兩模塊交替進(jìn)行,直到循環(huán)結(jié)束。本發(fā)明實(shí)現(xiàn)高精度,對(duì)龐大數(shù)據(jù)集,特別是虛擬手術(shù)系統(tǒng)中手術(shù)器械與軟組織交互變得更有效,更快速。
文檔編號(hào)G01B21/32GK1996388SQ200610147640
公開日2007年7月11日 申請(qǐng)日期2006年12月21日 優(yōu)先權(quán)日2006年12月21日
發(fā)明者顧力栩, 張少霆 申請(qǐng)人:上海交通大學(xué)