亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法與流程

文檔序號(hào):12722810閱讀:173來源:國知局
一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法與流程
本發(fā)明涉及一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,屬于虛擬手術(shù)
技術(shù)領(lǐng)域
,也可以應(yīng)用于相關(guān)的領(lǐng)域,包括動(dòng)畫和游戲等。
背景技術(shù)
:腹腔鏡手術(shù)是現(xiàn)代醫(yī)療常用的方法之一,在救治病人方面有著極其重要的意義。然而很多新手醫(yī)師都需要經(jīng)過很多的訓(xùn)練才能熟練操作,現(xiàn)在國內(nèi)醫(yī)院的手術(shù)訓(xùn)練多數(shù)是使用替代品,使用替代品存在著不準(zhǔn)確和來源較少的缺點(diǎn)。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,虛擬現(xiàn)實(shí)技術(shù)慢慢的出現(xiàn)在大眾的視野中,也為醫(yī)療手術(shù)的訓(xùn)練帶來了新的方法,這就是虛擬腹腔鏡手術(shù)。現(xiàn)實(shí)中手術(shù)包括很多操作,比如碰觸,切割,止血,縫合等操作。虛擬手術(shù)中,人們也希望盡量實(shí)現(xiàn)所有的這些交互。一般對(duì)虛擬手術(shù)的建立過程包括建模,變形驅(qū)動(dòng),切割,縫合等,不同部位的器官根據(jù)其特征再添加一些更多的真實(shí)感的內(nèi)容,比如血液,血管等。在掃描得到器官的表皮模型后,將為其建模一個(gè)體模型,常用的體模型有四面體模型,六面體模型,元球模型,粒子模型等;驅(qū)動(dòng)則是在模型上添加物理或者幾何驅(qū)動(dòng)方法,常用的有質(zhì)點(diǎn)彈簧方法,有限元方法,無網(wǎng)格方法等;切割和縫合則是拓?fù)渖细淖兊囊恍┨幚怼T诂F(xiàn)有的切割方法中,多數(shù)使用的模型是四面體模型或六面體模型。四面體模型在切割時(shí)分裂邊界會(huì)比較準(zhǔn)確,但是計(jì)算量巨大,容易產(chǎn)生異常的四面體,后續(xù)工作處理比較麻煩。六面體模型則是通過不斷的細(xì)分來確定切割邊界,需要較多的平滑操作。本發(fā)明選擇使用的元球模型實(shí)際上和六面體模型類似,但是本發(fā)明的模型更加平滑,通過可以交疊的特性,間接的構(gòu)造其運(yùn)動(dòng)拓?fù)?,使用元球模型的另一個(gè)好處是模型填充量小,收斂速度快。傳統(tǒng)的元球模型切割方法通常利用八叉樹來進(jìn)行元球細(xì)分,細(xì)分過后容易產(chǎn)生過多小元球,降低迭代速度和迭代速度的同時(shí),邊界情況也會(huì)明顯增多,給處理帶來許多困難。技術(shù)實(shí)現(xiàn)要素:本發(fā)明解決的技術(shù)問題是:傳統(tǒng)模型收斂速度不夠,細(xì)分時(shí)容易產(chǎn)生太多碎片模型,提供一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法。在該方法中,利用元球模型做變形和切割,提供一個(gè)收斂速度真實(shí)快速的變形解決方案;在切割上,可以提供一個(gè)準(zhǔn)確快速的分裂合并方法,滿足虛擬手術(shù)系統(tǒng)的實(shí)時(shí)性和真實(shí)性要求。本發(fā)明采用的技術(shù)方案為:一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,以元球模型為基礎(chǔ),在切割過程中,同時(shí)使用了位置動(dòng)力學(xué)和無網(wǎng)格方法驅(qū)動(dòng)模型,為了解決元球在切割過程中需要頻繁分裂和合并的問題,采用了一種元球到點(diǎn)集再到元球的切割模式,在該模式中,使用位置動(dòng)力學(xué)方法驅(qū)動(dòng)元球,使用無網(wǎng)格方法驅(qū)動(dòng)元球生成的點(diǎn)集。該方法包含四個(gè)步驟,第一,預(yù)處理過程,讀取模型文件的同時(shí)要進(jìn)行一些初始化操作;第二,變形過程,通過基于位置動(dòng)力學(xué)的方法進(jìn)行模型驅(qū)動(dòng);第三,切割過程,使用混合驅(qū)動(dòng)的方法驅(qū)動(dòng)模型,利用元球到點(diǎn)集再回歸元球的方法進(jìn)行切割;第四,渲染過程,對(duì)第二和第三過程中的模型進(jìn)行渲染。本發(fā)明可真實(shí)模擬虛擬手術(shù)中切割軟組織的過程,并具有較高的可控性和實(shí)時(shí)性。本發(fā)明具體包括以下四個(gè)步驟。第一步,預(yù)處理過程,讀取需處理的模型,所述模型包括元球模型和表面模型,元球模型是基礎(chǔ)模型,用來做驅(qū)動(dòng),表面模型是渲染模型;同時(shí)預(yù)處理過程還要進(jìn)行渲染環(huán)境和驅(qū)動(dòng)方法的初始化;第二步,變形過程,根據(jù)第一步讀取模型中的數(shù)據(jù)做位置動(dòng)力學(xué)方法驅(qū)動(dòng),該變形過程為循環(huán)過程,即處理完后,若不進(jìn)入第三步切割過程或發(fā)生結(jié)束事件,則重復(fù)該變形過程;第三步,切割過程,該過程的產(chǎn)生決定于第二步執(zhí)行完后產(chǎn)生切割事件,切割事件的產(chǎn)生決定于手術(shù)刀和模型產(chǎn)生碰撞,切割過程后若不結(jié)束,將進(jìn)入第二步變形過程;在切割過程中,需要一個(gè)混合驅(qū)動(dòng)處理過程,混合驅(qū)動(dòng)處理過程為使用一種從元球到點(diǎn)集再到元球的切割模式,元球切割分為四個(gè)部分,首先碰撞元球轉(zhuǎn)化為點(diǎn)集,然后點(diǎn)集構(gòu)建無網(wǎng)格系統(tǒng),同時(shí)進(jìn)行剩余元球系統(tǒng)和無網(wǎng)格系統(tǒng)的耦合運(yùn)動(dòng),最后點(diǎn)集轉(zhuǎn)化為元球;表面切割伴隨元球切割發(fā)生,分為表面分裂,裂隙生成和重新綁定;第四步,渲染過程,從第一步開始已經(jīng)準(zhǔn)備就緒,伴隨第二步和第三步發(fā)生,需要輸入變形過程或切割過程的數(shù)據(jù),不斷進(jìn)行渲染,最后輸出模型對(duì)應(yīng)的顯示圖像。所述第一步,預(yù)處理過程,具體實(shí)現(xiàn)如下:(1)讀入三種類型的文件,所述三種類型的文件為標(biāo)準(zhǔn)三角面片OBJ文件,標(biāo)準(zhǔn)紋理圖片TGA文件和自定義元球SPH文件,其中SPH文件是通過OBJ文件生成的,SPH文件提供元球信息,所述元球信息包括元球球心位置和半徑信息;OBJ文件按照通用方式存儲(chǔ)了三角面片的頂點(diǎn)信息和面片信息;TGA文件存放紋理信息;所述三種文件中的數(shù)據(jù)讀取后分別用相應(yīng)的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ);(2)渲染環(huán)境初始化,包括搭建OpenGL渲染環(huán)境和3D觸覺設(shè)備PhantomDevice的渲染環(huán)境初始化;(3)驅(qū)動(dòng)方法初始化,包括基于位置的動(dòng)力學(xué)方法和無網(wǎng)格方法的參數(shù)和依賴變量的初始化。所述第二步,變形過程,具體實(shí)現(xiàn)如下:(1)變形過程,根據(jù)第一步讀取的模型的數(shù)據(jù),采用基于位置的動(dòng)力學(xué)(PBD)方法進(jìn)行驅(qū)動(dòng)元球,在位置動(dòng)力學(xué)方法中,添加拉伸約束,單元約束和能量約束,設(shè)置好固定元球,以達(dá)成收斂效果;(2)表面三角面片的頂點(diǎn)與元球做高斯綁定,即該頂點(diǎn)的運(yùn)動(dòng)由周圍元球的運(yùn)動(dòng)情況決定,影響元球數(shù)最多為3個(gè),影響方式為該元球球心到頂點(diǎn)的距離與半徑的比率的高斯值加權(quán)作用在該頂點(diǎn)上。所述第三步,切割過程,具體實(shí)現(xiàn)如下:(1)當(dāng)手術(shù)刀碰到元球時(shí),將元球轉(zhuǎn)化為點(diǎn)集,采樣越密集結(jié)果越準(zhǔn)確;同時(shí)移除碰撞的元球,產(chǎn)生一個(gè)剩余元球系統(tǒng);(2)利用步驟(1)產(chǎn)生的點(diǎn)集構(gòu)建無網(wǎng)格系統(tǒng),使用無網(wǎng)格方法進(jìn)行驅(qū)動(dòng),使用的無網(wǎng)格方法為簡(jiǎn)化的無網(wǎng)格方法,計(jì)算速度較快;(3)利用步驟(1)產(chǎn)生的剩余元球系統(tǒng)與步驟(2)產(chǎn)生的無網(wǎng)格系統(tǒng)進(jìn)行混合驅(qū)動(dòng),兩個(gè)系統(tǒng)存在耦合運(yùn)動(dòng),一個(gè)系統(tǒng)產(chǎn)生運(yùn)動(dòng)時(shí)將運(yùn)動(dòng)信息反饋給另一個(gè)系統(tǒng);(4)當(dāng)手術(shù)刀離開元球模型時(shí),需要將點(diǎn)集恢復(fù)為元球,恢復(fù)方法為采集表面無網(wǎng)格點(diǎn),利用維諾圖方法對(duì)該頂點(diǎn)進(jìn)行分析得到中心骨架,在骨架上進(jìn)行元球填充;(5)表面分裂,處理三角形與線段相交的幾種不同的情況,分別分裂為分別分裂為更合適的三角形,分裂遵循基本原則,即分裂后的表面依然使用三角形填充,并將切割線段兩邊的多邊形分別分割為三角形,同時(shí)需要在裂隙處采集無網(wǎng)格點(diǎn),對(duì)這些無網(wǎng)格點(diǎn)進(jìn)行三角化處理,形成裂隙網(wǎng)格,最后更新所有三角形的綁定情況,需要更新的三角形包括新生成的三角形和裂隙附近的三角形;(6)本發(fā)明第三步的時(shí)間邏輯:步驟(1)執(zhí)行的時(shí)間點(diǎn)為手術(shù)刀和元球發(fā)生碰撞,可能會(huì)被執(zhí)行多次,每當(dāng)一次步驟(1)執(zhí)行完后立即持續(xù)執(zhí)行步驟(2)和(3),當(dāng)手術(shù)刀不再和元球發(fā)生碰撞,即切割完畢,執(zhí)行步驟(4);而步驟(5)和其余4個(gè)步驟為并行關(guān)系,手術(shù)刀與表面發(fā)生碰撞時(shí)需要進(jìn)行分裂處理,步驟(4)恢復(fù)元球時(shí),同時(shí)處理裂隙生成,在步驟(4)和裂隙生成都執(zhí)行完后進(jìn)行重新綁定處理。所述第四步,渲染過程,具體實(shí)現(xiàn)如下:(1)繪制模型表面信息,表面信息包括三部分,紋理信息,頂點(diǎn)信息和面片信息,模型讀取時(shí)已經(jīng)給定了表面的初始信息,紋理信息是固定不變的,而頂點(diǎn)信息是隨著變形過程和切割過程不斷做改變,面片信息也會(huì)隨著切割過程的步驟做改變,渲染過程為變形過程和切割過程共同的伴隨步驟;表面信息需要繪制兩遍,一遍用OpenGL繪制在屏幕上,一遍用Phantom庫繪制進(jìn)力反饋設(shè)備中;(2)選擇性繪制體信息,提供體繪制開關(guān),在查看切割效果時(shí)打開體信息繪制,體信息包括元球信息以及元球拓?fù)湫畔?,元球信息也在預(yù)處理過程中模型讀取時(shí)給定,之后隨著變形過程和切割過程的步驟不斷做改變,元球拓?fù)湫畔樵虻慕化B情況,在有交疊的元球之間,會(huì)在它們球心連接一條線段表示它們存在拓?fù)湫畔?。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:就模型層面而言,在傳統(tǒng)的切割方法中,常使用一些有棱角的四面體或六面體填充器官內(nèi)部,由于器官的復(fù)雜性已經(jīng)建模的統(tǒng)一性,通常會(huì)填充大量體積相差不大的相同模型,導(dǎo)致在變形過程中收斂不及時(shí),真實(shí)效果差。使用元球填充可以達(dá)到填充量小收斂快速的優(yōu)點(diǎn),另外元球特別適合做碰撞檢測(cè),大大降低計(jì)算時(shí)間,提高幀速,切割過程就顯得更加流暢。就驅(qū)動(dòng)方法而言,位置動(dòng)力學(xué)模型是一個(gè)非物理準(zhǔn)確的變形方法,但是非常接近物理變形方法,該方法的優(yōu)勢(shì)是計(jì)算量小和變形速度快。而無網(wǎng)格模型是一種物理準(zhǔn)確的模型,在細(xì)節(jié)保持方面有不錯(cuò)的表現(xiàn),使用無網(wǎng)格方法在做微小形變的情況下,既有穩(wěn)定性,又可以保持較好的模型細(xì)節(jié)。本發(fā)明選擇使用位置動(dòng)力學(xué)方法驅(qū)動(dòng)元球,使用無網(wǎng)格方法驅(qū)動(dòng)元球生成的中間模型,這樣做可以在準(zhǔn)確性和計(jì)算量有較好的平衡,切割快速且準(zhǔn)確。此外,本發(fā)明還集成了3D觸覺設(shè)備,將該設(shè)備與實(shí)際手術(shù)中使用的手術(shù)鉗和手術(shù)刀等進(jìn)行綁定之后,能夠較為真實(shí)的還原醫(yī)生手術(shù)環(huán)境。附圖說明圖1為本發(fā)明一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法的處理流程圖;圖2為切割模式的示意圖,a.切割前b.元球轉(zhuǎn)化為點(diǎn)集c.點(diǎn)集和元球耦合運(yùn)動(dòng)d.點(diǎn)集恢復(fù)為元球e.表面變化;圖3為元球和點(diǎn)集的耦合運(yùn)動(dòng);圖4為元球生成示意圖;圖5為三角形與折平面相交示意圖;圖6為內(nèi)點(diǎn)三角化示意圖(a)全邊界(b)半邊界;圖7為肝臟切割結(jié)果(上行體模型,下行表面模型);圖8為膽囊切割結(jié)果(上行體模型,下行表面模型);圖9為脾臟切割結(jié)果(上行體模型,下行表面模型);圖10為牛排切割結(jié)果(上行體模型,下行表面模型)。具體實(shí)施方式如圖1所示,本發(fā)明一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法的處理流程圖,分為四個(gè)步驟,預(yù)處理過程,變形過程,切割過程,渲染過程。四個(gè)步驟并非順序執(zhí)行,預(yù)處理過程為該方法的起始步驟,之后進(jìn)入變形過程,當(dāng)發(fā)生切割事件時(shí),進(jìn)入切割過程,切割過程完后返回變形過程,渲染過程為變形和切割過程的伴隨過程,每次變形和切割都需要渲染。變形過程并非傳統(tǒng)意義的死循環(huán),可以隨時(shí)打斷變形過程結(jié)束程序。步驟一,預(yù)處理過程:(1)模型讀取。系統(tǒng)使用3種類型的模型,包括標(biāo)準(zhǔn)三角面片OBJ文件,標(biāo)準(zhǔn)紋理圖片TGA文件和自定義元球SPH文件,他們作為外部文件輸入到系統(tǒng)中,系統(tǒng)有設(shè)計(jì)專門的數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)。需要使用模型的有器官,手術(shù)刀和手術(shù)鉗,使用模型的好處是可以初始化系統(tǒng)的初始狀態(tài)。這里使用的SPH文件為本發(fā)明自定義擴(kuò)展名的文件,文件里按行存儲(chǔ)了每個(gè)元球的圓心位置和半徑,該文件是由外部維諾圖分析程序?qū)BJ文件的分析生成。OBJ文件則是三角面片通用存儲(chǔ)的文件,每行放置一條信息,用不同的字母做索引,包括了頂點(diǎn)信息和面片信息,其中頂點(diǎn)信息又分為三種,一是頂點(diǎn)位置信息,二是頂點(diǎn)法向信息,三是頂點(diǎn)紋理坐標(biāo)信息。TGA文件則給出了紋理像素的具體顏色。(2)渲染初始化該階段需要搭配好OpenGL的渲染框架,將各種需要渲染的模型放入渲染管線的列表中。同時(shí)要啟用PhantomDevice的設(shè)備環(huán)境,添加設(shè)備的反饋力等。(3)驅(qū)動(dòng)方法初始化驅(qū)動(dòng)方法主要有位置動(dòng)力學(xué)方法和無網(wǎng)格方法,位置動(dòng)力學(xué)方法需要依賴輸入元球的位置和大小做初始化。初始化的對(duì)象主要有拉伸約束依賴的拓?fù)湫畔?,在本發(fā)明中,元球是允許存在交疊的,兩個(gè)交疊的元球具有空間連續(xù)性,因此認(rèn)為他們之間存在拓?fù)溥B接。單元約束的添加可以使系統(tǒng)更快速的收斂,單元約束通過分析每個(gè)元球的位置和半徑得到。每種約束需要初始化相應(yīng)的參數(shù)。無網(wǎng)格方法的初始化包括材質(zhì)參數(shù)的初始化和物理變形參數(shù)的初始化,材質(zhì)參數(shù)初始化的主要是楊氏模量Y和泊松比nu,該參數(shù)是胡克定律的參數(shù),決定了應(yīng)變到應(yīng)力過程中的變化大小。步驟二,變形過程:(1)體模型驅(qū)動(dòng)器官變形指的是器官在受到外力作用時(shí)會(huì)發(fā)生一定形變,移除外力作用時(shí)模型也會(huì)逐漸的恢復(fù)收斂到某種狀態(tài),為了達(dá)成收斂效果,需要設(shè)置部分元球?yàn)楣潭ǖ?,在這種情況下,當(dāng)模型發(fā)生變形時(shí),模型會(huì)向固定元球收斂。元球模型的驅(qū)動(dòng)使用的是基于位置的動(dòng)力學(xué)方法,與傳統(tǒng)的物理方法相比,該方法省去了加速度計(jì)算過程,外力產(chǎn)生后直接更新頂點(diǎn)的速度和位置,通過一系列約束對(duì)預(yù)測(cè)的位置進(jìn)行修正,最終確定運(yùn)動(dòng)位置。本發(fā)明中使用的約束包括單元約束,拉伸約束,能量約束。拉伸約束可以產(chǎn)生快速收斂效果,單元約束可以確保完全收斂時(shí)狀態(tài)復(fù)原,能量約束和無網(wǎng)格系統(tǒng)進(jìn)行耦合運(yùn)動(dòng)。(2)表面綁定表面綁定指的是點(diǎn)集與元球的綁定,由于耦合運(yùn)動(dòng)階段時(shí)間比較短,因此本發(fā)明中的表面綁定僅針對(duì)與元球的綁定。對(duì)于每個(gè)表面頂點(diǎn),需要將該頂點(diǎn)的運(yùn)動(dòng)綁定都周圍的球上,使用高斯綁定可以增強(qiáng)綁定的平滑性。高斯綁定的具體步驟為對(duì)于每個(gè)頂點(diǎn),在所有元球中選擇滿足條件的元球,選擇方法是求該頂點(diǎn)到圓心距離d,元球半徑為r,距離與半徑的比率k=d/r,當(dāng)k值在一個(gè)合適的范圍內(nèi)時(shí),該元球入選,此處使用的入選條件是1<=k<=2。在所有滿足條件的元球中,選擇k值最小的3個(gè)元球,3個(gè)不同的k值,可以對(duì)應(yīng)3個(gè)不同的高斯值,三個(gè)高斯值的比率就是三個(gè)元球影響該頂點(diǎn)的比率,分別按照比例將元球運(yùn)動(dòng)作用在頂點(diǎn)上即可。步驟三,切割過程:切割過程是本發(fā)明整個(gè)發(fā)明的重點(diǎn),圖2是整個(gè)切割過程的示意圖,圖中(a)表示手術(shù)刀與模型發(fā)生碰撞,即切割開始,(b)表示被碰撞的元球轉(zhuǎn)化為點(diǎn)集,并移除被碰撞元球,(c)表示元球和點(diǎn)集做耦合運(yùn)動(dòng),(d)表示點(diǎn)集還原為元球,(e)表示表面切割情況。(1)元球轉(zhuǎn)化為點(diǎn)集一旦元球與手術(shù)刀發(fā)生碰撞,元球需要轉(zhuǎn)化為點(diǎn)集。本發(fā)明提供兩種方法進(jìn)行點(diǎn)集轉(zhuǎn)化,一種是均勻采樣,以所有元球最小的元球半徑的一定比例作為填充間隔,沿三個(gè)坐標(biāo)軸均勻取點(diǎn)。通常均勻采樣適用于元球最大半徑和最小半徑差距不大的情況,當(dāng)差距很大的時(shí)候,較大元球內(nèi)會(huì)填充較多點(diǎn),可能會(huì)出現(xiàn)實(shí)時(shí)性無法保證的情況。為了保證這種情況的切割流暢性,需要在較大元球內(nèi)采取大間距采樣,在較小元球內(nèi)采取小間距采樣,該間隔可以根據(jù)元球半徑分段取值,或者每個(gè)元球根據(jù)其半徑確定間隔,也就是每個(gè)元球內(nèi)填充固定數(shù)量的點(diǎn)。使用第二種填充方法時(shí),元球的重疊區(qū)域需要特殊考慮,以保證無網(wǎng)格系統(tǒng)中的點(diǎn)距離不低于某個(gè)設(shè)定的最小值。在實(shí)際切割中,切割刀掃成的平面通常是一個(gè)比較平滑的曲面,曲面的隨機(jī)性比較大,比較難參數(shù)化,所以選擇了將曲面離散化成一系列折平面,也就是邊界相連的一系列平面。所以碰撞檢測(cè)在本發(fā)明的系統(tǒng)中就是折平面與元球的碰撞和折平面與三角面片的碰撞。為了方便元球切割生成點(diǎn)集,先在模型包圍盒內(nèi)進(jìn)行空間劃分,劃分為一些網(wǎng)格點(diǎn),三個(gè)坐標(biāo)軸的間隔都是相同的,這些網(wǎng)格點(diǎn)就是采樣網(wǎng)格點(diǎn)。當(dāng)元球與手術(shù)平面發(fā)生碰撞,他就需要將他內(nèi)部的網(wǎng)格點(diǎn)取出,這些點(diǎn)就構(gòu)成了屬于該元球的點(diǎn)集。元球被切割而轉(zhuǎn)化為無網(wǎng)格粒子以后,需要從原先的區(qū)域中移除。由于元球的約束在初始化時(shí)會(huì)建立拓?fù)潢P(guān)系,保存了其他鄰居的下標(biāo),所以對(duì)該元球采取物理刪除的方法會(huì)需要改變這些下標(biāo)。采取邏輯移除的方法,刪除該球?qū)ζ渌蚝推渌驅(qū)υ撉虻募s束信息,積分時(shí),保證該球不再影響其他球,其他的球也不會(huì)影響該球。(2)點(diǎn)集驅(qū)動(dòng)對(duì)于點(diǎn)集,使用簡(jiǎn)化的無網(wǎng)格模型驅(qū)動(dòng),該模型不計(jì)算任意位置的能量,而是計(jì)算每個(gè)網(wǎng)格點(diǎn)的能量,并且認(rèn)為在網(wǎng)本格點(diǎn)所作用的體積范圍內(nèi),該能量均為該網(wǎng)格點(diǎn)處的能量,與傳統(tǒng)無網(wǎng)格方法相比,該方法簡(jiǎn)化了能量積分模型,在準(zhǔn)確度上略有下降,但在積分求解速度上卻有大大提升。該方法使用的核函數(shù)為,該核函數(shù)是一個(gè)三次B樣條函數(shù),描述的是某個(gè)無網(wǎng)格點(diǎn)的影響范圍呈球形分布,并且在該范圍內(nèi),離球心越近的范圍影響越大。該式中r表示受影響的點(diǎn)到該無網(wǎng)格點(diǎn)的距離,為非負(fù)值,ωh(r)表示核函數(shù)取值為與r有關(guān)的函數(shù),h則表示每個(gè)粒子的支撐半徑,對(duì)于給定的無網(wǎng)格點(diǎn),h是一個(gè)常量,表示該粒子最大可影響距離,通過點(diǎn)集的位置分布,可以初始化每個(gè)點(diǎn)的鄰居點(diǎn),通過鄰居點(diǎn)確定每個(gè)點(diǎn)的支撐半徑,通常選取所有鄰居點(diǎn)的平均距離的兩倍作為支撐半徑。ωh(r)使用無網(wǎng)格點(diǎn)的初始狀態(tài)做計(jì)算,因此對(duì)于每一對(duì)點(diǎn),ωh(r)是一個(gè)固定值,所以可以表示為ωij,i下標(biāo)表示被計(jì)算的無網(wǎng)格點(diǎn),j下標(biāo)表示該點(diǎn)的鄰居點(diǎn)。下一幀位置的計(jì)算方法是首先計(jì)算變形梯度,通過梯度計(jì)算應(yīng)變,再通過胡克定律計(jì)算出應(yīng)力,通過應(yīng)力和應(yīng)變可以得出能量密度,能量密度乘以體積系數(shù)獲得能量。能量對(duì)位移積分即可獲得該點(diǎn)的受力。通過顯示積分或者隱式積分的方式,可以將受力轉(zhuǎn)變?yōu)槲灰?。梯度?jì)算公式為,其中,u表示位移,而表示該次位移的梯度矩陣,每個(gè)點(diǎn)xi處有一個(gè)梯度值,用表示,i下標(biāo)表示被計(jì)算的無網(wǎng)格點(diǎn)。ωh(r)為核函數(shù),帶下標(biāo)表示每個(gè)無網(wǎng)格點(diǎn)有屬于自己的核函數(shù)。xij表示點(diǎn)xi到點(diǎn)xj的空間向量,j下標(biāo)表示該點(diǎn)的鄰居點(diǎn),每個(gè)無網(wǎng)格點(diǎn)存在多個(gè)鄰居點(diǎn),所以該式中使用了一個(gè)求和函數(shù),表示對(duì)所有的鄰居點(diǎn)的加權(quán)距離向量求和,A稱為基礎(chǔ)矩陣,帶下標(biāo)表示每個(gè)無網(wǎng)格點(diǎn)有屬于自己的基礎(chǔ)矩陣,基礎(chǔ)矩陣只與每個(gè)點(diǎn)的初始位置和鄰居位置有關(guān),在獲得梯度后,可以計(jì)算應(yīng)變和應(yīng)力,其中,ε是應(yīng)變,σ是應(yīng)力。J是雅閣比矩陣,是梯度矩陣加上單位矩陣I的結(jié)果,將代入公式JTJ-I,可以得到應(yīng)變的梯度表現(xiàn)形式;得到應(yīng)變后,可以計(jì)算應(yīng)力,在胡克定律中,應(yīng)力與應(yīng)變是一種線性關(guān)系,C是一個(gè)四階張量矩陣,與物體的材質(zhì)參數(shù)楊氏模量和泊松比有關(guān)。應(yīng)變和應(yīng)力得到后,可以得到該處的能量密度,其中,U表示該無網(wǎng)格點(diǎn)的能量密度,由于該點(diǎn)的能量密度只由該點(diǎn)的應(yīng)變和應(yīng)力決定,因此這里的公式?jīng)]有使用下標(biāo)形式。應(yīng)變矩陣ε和應(yīng)力矩陣σ是3*3的矩陣,公式(5)右側(cè)的εij和σij分別表示應(yīng)變矩陣和應(yīng)力矩陣在i行j列的值。能量密度即單位體積的能量,通過該值,可以得到單位體積的受力,對(duì)位移求導(dǎo)即可。其中,表示對(duì)位移u求梯度,代入公式(5),可以得到單位體積受力的簡(jiǎn)化公式,即負(fù)應(yīng)力矩陣乘以應(yīng)變矩陣對(duì)位移的梯度為了得到進(jìn)一步形式的受力公式,將公式(4)代入公式(6),得到受力公式的空間向量表示形式,同時(shí)還區(qū)分了中心網(wǎng)格點(diǎn)i的受力和鄰居網(wǎng)格點(diǎn)j的受力,根據(jù)受力的相對(duì)性,i的受力是j的受力的反向總和。Fi=∑jfj=-2ViJiσidi=Fedi,(7)其中,V表示體積,J是雅閣比矩陣,σ是應(yīng)力,可以看到在Fj和Fi,有幾個(gè)共同項(xiàng),提出共同項(xiàng)記為Fe=-2ViJiσi,該項(xiàng)只受i粒子的影響,di和dj則分別為影響范圍項(xiàng),dj=A-1(xijωij),di=A-1(∑jxijωij),(8)其中,A為基礎(chǔ)矩陣,xij表示點(diǎn)xi到點(diǎn)xj的空間向量,ωij是簡(jiǎn)化的核函數(shù)表示公式。結(jié)合公式(7)和公式(8),能從空間位置變化直接計(jì)算出應(yīng)力。計(jì)算應(yīng)力后,通過牛頓第三定律,可以獲得加速度,速度,位移等參數(shù),從而根據(jù)當(dāng)前位置可以計(jì)算出下一幀的位置。這是顯示積分方法,在實(shí)際測(cè)試中,發(fā)現(xiàn)交替式顯示積分法可以獲得一個(gè)比較好的效果。該方法在設(shè)置一個(gè)時(shí)間步長(zhǎng)之后,在半步長(zhǎng)內(nèi)獲取力,通過該里獲取位移,在后半個(gè)步長(zhǎng)內(nèi),更新速度。這樣總體的速度偏大,而位移偏小,得到一個(gè)相對(duì)中合的效果。使用上述驅(qū)動(dòng)方法,每次到變形過程都可以更新一遍所有網(wǎng)格點(diǎn)的位置,實(shí)現(xiàn)對(duì)點(diǎn)集的驅(qū)動(dòng)。(3)混合驅(qū)動(dòng)系統(tǒng)的耦合運(yùn)動(dòng)點(diǎn)集構(gòu)建無網(wǎng)格系統(tǒng)的過程中,第一步需要進(jìn)行鄰居關(guān)系構(gòu)建。對(duì)于一個(gè)無網(wǎng)格系統(tǒng)的點(diǎn)集來說,點(diǎn)的切開實(shí)際上就是點(diǎn)的鄰居關(guān)系,即虛擬拓?fù)潢P(guān)系的改變。所以在本發(fā)明使用的無網(wǎng)格系統(tǒng)中構(gòu)建鄰居關(guān)系時(shí),要選擇不跨切割平面的點(diǎn)對(duì)。也就是在鄰居關(guān)系構(gòu)建過程當(dāng)中,本發(fā)明實(shí)現(xiàn)了對(duì)無網(wǎng)格點(diǎn)的虛擬拓?fù)淝懈?。?dāng)本發(fā)明中同時(shí)存在位置動(dòng)力學(xué)驅(qū)動(dòng)的元球和無網(wǎng)格驅(qū)動(dòng)的點(diǎn)集時(shí),一個(gè)系統(tǒng)的運(yùn)動(dòng)需要作用給另一個(gè)系統(tǒng)。如圖3所示,由于點(diǎn)集是由初始元球生成的,所以存在部分點(diǎn)位于剩余的元球內(nèi),它們可以作為耦合運(yùn)動(dòng)的結(jié)合點(diǎn)。在元球運(yùn)動(dòng)時(shí),位于元球內(nèi)的點(diǎn)需要做同樣的運(yùn)動(dòng),這些點(diǎn)的運(yùn)動(dòng)是無網(wǎng)格系統(tǒng)中的運(yùn)動(dòng)輸入,這樣就形成了元球運(yùn)動(dòng)到點(diǎn)集運(yùn)動(dòng)的反饋。點(diǎn)集運(yùn)動(dòng)時(shí),通常是微小的運(yùn)動(dòng),通過添加能量約束的方式,實(shí)現(xiàn)從點(diǎn)集到元球的運(yùn)動(dòng)反饋。(4)維諾圖生成元球在本發(fā)明使用的無網(wǎng)格系統(tǒng)中,每個(gè)點(diǎn)都有一個(gè)法向值,該法向值是從該點(diǎn)的生成球的球心指向該點(diǎn)的實(shí)際位置。通過對(duì)比該法向和該點(diǎn)所有鄰居向量的夾角,可以確定邊界點(diǎn)。如圖4所示,通過對(duì)邊界點(diǎn)的維諾圖分析,可以獲取邊界點(diǎn)對(duì)應(yīng)的中軸面,中軸面的頂點(diǎn)即為中心點(diǎn)。中心點(diǎn)就是新的元球設(shè)置的位置,半徑為中心點(diǎn)到邊界點(diǎn)的最短距離或者到已填充元球的最短距離。(5)表面分裂三角形網(wǎng)格分裂針對(duì)的是現(xiàn)有三角網(wǎng)格與手術(shù)刀平面發(fā)生碰撞后的分裂,根據(jù)三角形與折平面碰撞的不同情況,有不同的分裂結(jié)果。分裂情況如圖5所示。第一種情況表示折平面與三角形相交一條邊和一個(gè)內(nèi)部點(diǎn),當(dāng)然也可能是相交一個(gè)頂點(diǎn)和一個(gè)內(nèi)部點(diǎn),這種情況通常發(fā)生在折平面的邊界處,也就是起始點(diǎn)切割位置。第二種和第三種情況比較常見,三角形與折平面只相交了一個(gè)自平面,那么按照相應(yīng)的分裂方法分開即可。比較麻煩的是第四種情況,該三角形在兩個(gè)平面相交處發(fā)生了碰撞,那么該三角形需要生產(chǎn)的三角形數(shù)也相對(duì)第一種情況多了一個(gè)。實(shí)際上在三角形處理的時(shí)候,會(huì)遇到較多的邊界情況,在三角形只相交了一個(gè)邊界時(shí),也要做頂點(diǎn)的添加,因?yàn)樵撨吔缭诜至押笮枰鶅蓚€(gè)方向運(yùn)動(dòng),所以需要有兩組頂點(diǎn)。對(duì)于裂隙的生成,實(shí)際上也是切割折平面的生成,但是該平面需要限定在原先三角網(wǎng)格的內(nèi)部。本發(fā)明選取靠近折平面的無網(wǎng)格邊界點(diǎn),將這些邊界點(diǎn)投影到折平面上,再加上上一步驟中三角形分裂生成的邊界點(diǎn),對(duì)這些點(diǎn)進(jìn)行邊界限制的三角化。邊界限制的三角化實(shí)際上是所有點(diǎn)的三角化之后,移除在邊界外的三角形,圖6是該方法的示意圖。由于三角化使用的頂點(diǎn)是在分裂步驟中生成的,所以三角化生成的三角形是和分裂生成的三角形連在一起的。生成之后需要對(duì)所有的網(wǎng)格點(diǎn)進(jìn)行元球綁定,綁定方式依然為高斯綁定法,選擇合適的球,根據(jù)其與網(wǎng)格點(diǎn)的遠(yuǎn)近進(jìn)行相應(yīng)的高斯權(quán)重賦值。步驟四,渲染過程:(1)表面渲染表面渲染指的是表面三角面片渲染,此處使用OpenGL作為渲染庫,通過讀取OBJ文件中的三角形邊信息確定頂點(diǎn)連接情況,頂點(diǎn)的實(shí)際位置經(jīng)過變形或者切割可能發(fā)生變動(dòng),所以本繪制過程為動(dòng)態(tài)繪制過程,每次發(fā)生變形過程或切割過程都需要發(fā)生一次渲染過程。OpenGL渲染三角形面片的基本方法為先指定繪制對(duì)象為三角形,然后對(duì)于每個(gè)三角形依次指定頂點(diǎn)信息,在指定位置之前要先指定法向和紋理坐標(biāo)。在PhantomDevice中,觸覺的產(chǎn)生依賴于向該設(shè)備中繪制對(duì)象信息,繪制方法和OpenGL中相同。繪制進(jìn)設(shè)備中后,設(shè)備可以進(jìn)行觸覺反饋。(2)體模型繪制體模型包括元球模型和元球拓?fù)洌虻睦L制比較簡(jiǎn)單,直接繪制一個(gè)球即可,為了方法查看,最好設(shè)置一定的透明度。元球拓?fù)溆镁€段表示,連接兩個(gè)球的球心,代表這兩個(gè)球之間存在拓?fù)潢P(guān)系,該拓?fù)湟馕吨?dāng)一個(gè)球運(yùn)動(dòng)時(shí),會(huì)帶動(dòng)另一個(gè)球運(yùn)動(dòng),是拉伸約束的一種形象表示。體模型繪制通常會(huì)占用大量時(shí)間,原因是OpenGL在繪制球時(shí)會(huì)進(jìn)行很多細(xì)分工作,除了查看元球切分效果,本發(fā)明通常不選擇顯示體模型。另外觸覺設(shè)備中不需要繪制體模型。本發(fā)明一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法的實(shí)驗(yàn)結(jié)果:表1展示了不同模型在變形和切割階段耗費(fèi)的時(shí)間對(duì)比,在該表中還提供了內(nèi)部填充元球個(gè)數(shù),可以看出模型通常不需要添加過多元球,所以變形速度很快。填充模型數(shù)量約為四面體或六面體模型的十分之一。表1不同模型對(duì)比情況頂點(diǎn)數(shù)元球數(shù)單幀變形時(shí)間/ms單幀切割時(shí)間/ms肝臟81285706.259.52脾臟14804662.142.58膽囊14154522.653.33牛排12665391.82.4圖7-圖10展示了四種模型的切割效果,圖7為肝臟切割情況,圖8為脾臟切割情況,圖9為膽囊切割情況,圖10為牛排切割情況,四幅圖片的第一行都為元球切割情況,第二行為表面切割情況。在結(jié)果圖片中,可以明確看到,在元球分裂過程中,沒有較多的小球產(chǎn)生,新生成元球的平均大小約為分裂前元球的一半,數(shù)量約為兩倍,這比較符合本發(fā)明的預(yù)期想法。在這種情況下,切割不會(huì)成為變形的瓶頸,不會(huì)影響迭代速度和收斂速度。表面本發(fā)明著重關(guān)心切割后運(yùn)動(dòng)的真實(shí)性和平滑度,可以看到圖片中沒有明顯的鋸齒現(xiàn)象,切痕也比較平滑,即使是彎曲的切痕,也明顯的沒有凹痕。本發(fā)明還對(duì)切割效果與以往的發(fā)明進(jìn)行了對(duì)比,方法一使用有限元方法驅(qū)動(dòng)有限元模型[YangC.,LiS.,WangL.,HaoA.andQin,H.,Real-timephysicaldeformationandcuttingofheterogeneousobjectsviahybridcouplingofmeshlessapproachandfiniteelementmethod,ComputerAnimationandVirtualWorlds,25(3-4),423–435,(2014)],方法二使用位置動(dòng)力學(xué)方法驅(qū)動(dòng)四面體模型[PanJ.,BaiJ.,ZhaoX.,HaoA.andQinH.,Real-timehapticmanipulationandcuttingofhybridsofttissuemodelsbyextendedposition-baseddynamics,ComputerAnimationandVirtualWorlds,6,321–335,(2015)],對(duì)比對(duì)象為牛排切割。表2牛排切割對(duì)比表方法變形元素?cái)?shù)單幀變形時(shí)間/ms單幀切割時(shí)間/ms方法一627225.28.6方法二14771.76.5本發(fā)明方法5391.52.4通過表格數(shù)據(jù)對(duì)比,可以清晰的看到本發(fā)明方法有明顯的變形速度和切割速度的優(yōu)勢(shì),在實(shí)時(shí)性上本發(fā)明的效果更加明顯。在與這兩篇文章的方法進(jìn)行視頻對(duì)比時(shí),可以明確發(fā)現(xiàn)本發(fā)明的方法還有收斂速度更快的優(yōu)勢(shì),另外上述兩種方法中均沒有處理細(xì)分模型增長(zhǎng)速度過快的情況,所以在切割一段時(shí)間后,本發(fā)明的優(yōu)勢(shì)會(huì)明顯體現(xiàn)出來,變形和收斂速度不會(huì)出現(xiàn)驟然變短的情況。本發(fā)明未詳細(xì)闡述的技術(shù)內(nèi)容屬于本領(lǐng)域技術(shù)人員的公知技術(shù)。盡管上面對(duì)本發(fā)明說明性的具體實(shí)施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實(shí)施方式的范圍,對(duì)本
技術(shù)領(lǐng)域
的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1