專利名稱:一種基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法
—種基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)虛擬現(xiàn)實(shí)和計(jì)算機(jī)圖形學(xué)技術(shù)領(lǐng)域,具體地說(shuō)是一種基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,該方法利用統(tǒng)計(jì)分析的方式對(duì)三角網(wǎng)格模型的降維表示計(jì)算一個(gè)簡(jiǎn)單的剔除基準(zhǔn),在檢測(cè)流程中根據(jù)該基準(zhǔn)減少檢測(cè)的次數(shù),用于提升變形體碰撞檢測(cè)過(guò)程的效率。
背景技術(shù):
在當(dāng)前的變形體碰撞檢測(cè)剔除方法研究中,大致可分為基于圖形和基于圖像的碰撞檢測(cè)算法?;趫D像的碰撞檢測(cè)算法一般利用圖形硬件對(duì)物體的二維圖像采樣和相應(yīng)的深度信息來(lái)判別兩物體之間的相交情況。文獻(xiàn)1-SHINYAM,F(xiàn)ORGUE M. 1991. Interference detection through rasterization[J]. Journal ofVisualization and Computer Animationl31-134.開(kāi)創(chuàng)性地剔除了圖形硬件輔助進(jìn)行基于圖像的檢測(cè)方法。在繪制凸體的同時(shí),保存視窗中每個(gè)像素上物體的最大和最小深度序列,并將它們按大小順序排列;然后檢測(cè)物體在某一像素上的最大深度值是否與其最小深度值相鄰來(lái)判別相交情況這類算法的優(yōu)勢(shì)在于,能有效利用圖形硬件加速技術(shù)來(lái)減輕CPU的計(jì)算負(fù)荷,從而達(dá)到提高算法效率的目的;算法本身對(duì)于場(chǎng)景的復(fù)雜性不敏感,適合于復(fù)雜體間的碰撞檢測(cè);對(duì)同一復(fù)雜度的場(chǎng)景而言,碰撞檢測(cè)時(shí)間變化不大,具有較高的平穩(wěn)性,有利于預(yù)測(cè)碰撞檢測(cè)過(guò)程。 但該類方法研究進(jìn)展相對(duì)比較緩慢,主要問(wèn)題集中在檢測(cè)精度依賴于分辨率,一旦有很復(fù)雜的場(chǎng)景遮擋關(guān)系可能造成大量的錯(cuò)誤判斷;算法對(duì)于非凸體及大規(guī)模場(chǎng)景的適用性研究有待進(jìn)一步開(kāi)展;而CPU與GPU間的負(fù)載平衡問(wèn)題亟待解決。
在基于圖形的碰撞檢測(cè)上,研究人員己經(jīng)做了大量的工作,形成了空間分解法和層次包圍體法等成熟算法。其目標(biāo)都是盡可能地減少需進(jìn)行相交測(cè)試的幾何對(duì)象的數(shù)目, 即所謂的碰撞檢測(cè)剔除,以提高算法的實(shí)時(shí)性??臻g分割法由于存儲(chǔ)量大、靈活性差,通常適用于稀疏環(huán)境中分布比較均勻的幾何對(duì)象間的碰撞檢測(cè);層次包圍盒法則應(yīng)用得更為廣泛,適用于復(fù)雜環(huán)境中的碰撞檢測(cè)。文獻(xiàn)2-Jernej Barbie, Doug L. James. 2010. Subspace Self-collision Culling. ACMTransactions on Graphics(TOG). Vol. 29, No. 4, Article 81.提出了一種在層次包圍盒法的基礎(chǔ)上,加入一個(gè)浮點(diǎn)數(shù)表示子空間剔除基準(zhǔn),根據(jù)模型的包圍盒葉節(jié)點(diǎn)之間的距離關(guān)系構(gòu)建剔除閾值,依此判定葉節(jié)點(diǎn)是否沒(méi)有碰撞的可能而進(jìn)行剔除,提高效率。但這種方法構(gòu)造的碰撞檢測(cè)剔除閾值是靜態(tài)的,在訓(xùn)練階段生成之后就不進(jìn)行更新,當(dāng)模型進(jìn)行了較大程度的變形,或者變形多幀以后,該閾值很可能不適合當(dāng)前的情況而造成檢測(cè)錯(cuò)誤——即漏檢。而如果簡(jiǎn)單使用文章中的方法更新剔除閾值,由于計(jì)算量很大,將極大地降低時(shí)間效率,完全不能滿足應(yīng)用對(duì)時(shí)間的需求。發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問(wèn)題克服現(xiàn)有技術(shù)的不足,提供一種基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,該方法可以針對(duì)連續(xù)變形的模型計(jì)算動(dòng)態(tài)更新的子空間剔除閾值的方法,并且該方法將模型變形和碰撞剔除統(tǒng)一在了同樣的流程框架下。該方法相比于以往的方法可以適用于變形較大和連續(xù)變形的模型,解決了漏檢情況大幅升高的問(wèn)題。
本發(fā)明的技術(shù)解決方案一種基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,其步驟如下
步驟(I)、構(gòu)建包含初始幀模型的建訓(xùn)練集,并對(duì)訓(xùn)練集進(jìn)行降維獲得降維子空間基向量矩陣A ;
步驟(2)、基于初始幀模型和子空間基向量矩陣A,建立層次包圍盒(BVH)并計(jì)算出任意兩葉節(jié)點(diǎn)間剔除閾值Rmn,和模型子空間坐標(biāo),并建立Rmn與模型子空間坐標(biāo)的關(guān)系矩陣;
步驟(3)、對(duì)訓(xùn)練集和矩陣A使用關(guān)鍵點(diǎn)選擇算法計(jì)算獲得一個(gè)關(guān)鍵點(diǎn)集Kp ;步驟(4)、輸入一組新的關(guān)鍵點(diǎn)坐標(biāo)作為控制點(diǎn),計(jì)算出其對(duì)應(yīng)的子空間坐標(biāo),并借助矩陣A還原完整模型的頂點(diǎn)坐標(biāo),實(shí)現(xiàn)變形過(guò)程;
步驟(5)、基于關(guān)鍵點(diǎn)子空間坐標(biāo)獲得一個(gè)增廣的子空間坐標(biāo),并進(jìn)一步計(jì)算出一個(gè)模型的剔除基準(zhǔn)值q和更新的碰撞剔除閾值Kp,通過(guò)比較二者的大小關(guān)系確定是否進(jìn)行剔除。
所述步驟(I)中構(gòu)建訓(xùn)練集并生成降維子空間基向量矩陣A的方法為訓(xùn)練集的構(gòu)建應(yīng)包含初始幀模型以及同一模型的多個(gè)姿態(tài);通過(guò)訓(xùn)練集獲得降維子空間A的方法為先對(duì)訓(xùn)練集進(jìn)行主成分分析(PCA)過(guò)程,然后對(duì)獲得的矩陣截取前K個(gè)主成分,再進(jìn)行方差最大正交旋轉(zhuǎn),得到所需的降維子空間基向量矩陣A。
所述步驟(2)中,剔除閾值Rmn與模型子空間坐標(biāo)的關(guān)系矩陣的構(gòu)建方法為利用步驟(I)中構(gòu)建的訓(xùn)練集中的初始幀模型坐標(biāo)F,建立層次包圍盒(BVH),通過(guò)求解多個(gè)簡(jiǎn)化的二次方程,獲得任兩個(gè)葉節(jié)點(diǎn)間的剔除閾值Rmn ;再由模型坐標(biāo)F和子空間基A,通過(guò)最小二乘法計(jì)算出模型子空間坐標(biāo)P ;最后再次使用最小二乘法并建立Rmn與P的變換關(guān)系矩陣。
所述步驟(3)中,構(gòu)建關(guān)鍵點(diǎn)集的方法為首先用在模型表面均勻選點(diǎn)的方式選擇一個(gè)較小的初始點(diǎn)集;然后利用步驟(I)中得到的矩陣A,取其各基向量中具有最大偏移和與最大偏移內(nèi)積數(shù)值最大的點(diǎn)加入關(guān)鍵點(diǎn)集;通過(guò)評(píng)價(jià)完整的控制矩陣A和pkey還原的訓(xùn)練集坐標(biāo)與原訓(xùn)練集模型坐標(biāo)的誤差是否足夠小,決定是否結(jié)束關(guān)鍵點(diǎn)集的增加過(guò)程。
所述步驟(4)中,實(shí)現(xiàn)變形過(guò)程的方法是根據(jù)輸入的控制點(diǎn)坐標(biāo)和步驟(3)確定的關(guān)鍵點(diǎn)集,通過(guò)最小二乘求解僅包含關(guān)鍵點(diǎn)的子空間坐標(biāo)Plrey;再根據(jù)步驟(I)中構(gòu)建的矩陣A和pkey可以用矩陣乘法還原出原始坐標(biāo)空間的模型坐標(biāo),實(shí)現(xiàn)變形。
所述步驟(5)中,獲得增廣子空間坐標(biāo)以計(jì)算剔除基準(zhǔn)和閾值以決定剔除與否的方法為根據(jù)步驟(5)中得到的關(guān)鍵點(diǎn)處的子空間坐標(biāo)Pkey經(jīng)過(guò)簡(jiǎn)單的補(bǔ)零增廣到維度為模型頂點(diǎn)個(gè)數(shù)的坐標(biāo)P ;通過(guò)計(jì)算P的M范式q q = ||/ ||if =」p' Mp,可以得到當(dāng)前模型的剔除基準(zhǔn)q;再根據(jù)步驟(2)確定的變換關(guān)系矩陣B,可以得到更新的剔除閾值Rmn',在遍歷BVH的葉節(jié)點(diǎn)過(guò)程中,首先判斷q和當(dāng)前節(jié)點(diǎn)的R1J的值的大小關(guān)系,如果q < R1J則可以判定沒(méi)有發(fā)生碰撞,否則以傳統(tǒng)方法進(jìn)行碰撞檢測(cè)。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于
(I)、本發(fā)明使用了一個(gè)統(tǒng)一的框架,將變形過(guò)程和碰撞檢測(cè)剔除過(guò)程納入到基于同一子空間的統(tǒng)一表示模式下,便于實(shí)現(xiàn)。
(2)、本發(fā)明算法適應(yīng)性強(qiáng),既可以使用在離散碰撞檢測(cè)中,也可以使用在連續(xù)碰撞檢測(cè)中。
(3)、本發(fā)明引入了對(duì)碰撞剔除閾值的動(dòng)態(tài)更新過(guò)程,可以適用于變形較大和連續(xù)變形的模型,解決了漏檢情況大幅升高的問(wèn)題。
圖1為本發(fā)明算法流程圖2為進(jìn)行PCA和方差最大正交旋轉(zhuǎn)的效果示意圖3為均勻選點(diǎn)方法示意圖。
具體實(shí)施方式
圖1為本發(fā)明算法流程圖,如圖1所示,本發(fā)明具體實(shí)現(xiàn)步驟如下
步驟SlOl,在步驟SlOl中,構(gòu)建訓(xùn)練集T的方法為選擇拓?fù)潢P(guān)系不變的一系列三角網(wǎng)格模型,這些模型應(yīng)當(dāng)盡量涵蓋不同的姿勢(shì)。訓(xùn)練集的構(gòu)建結(jié)果是訓(xùn)練集矩陣T,其每一行代表一個(gè)模型的姿勢(shì),每一列是不同姿勢(shì)模型對(duì)應(yīng)的頂點(diǎn)坐標(biāo)。對(duì)矩陣T進(jìn)行PCA分解,可以得到主成分矩陣R0,設(shè)模型定點(diǎn)數(shù)為n,則其維數(shù)為η Xη ;截取Rtl的前K個(gè)主成分, K的取值可以根據(jù)經(jīng)驗(yàn)取10, 或根據(jù)主成分矩陣Rtl對(duì)應(yīng)的特征向量矩陣決定,非零的特征向量個(gè)數(shù)即為K的取值。對(duì)截取后的矩陣R進(jìn)行方差最大正交旋轉(zhuǎn),可以獲得更加優(yōu)化的子空間基向量。該方法的基本思想是,使公共因子的相對(duì)負(fù)荷——的方差之和最大,且保持原公共因子的正交性和公共方差總和不變。這種方法可使每個(gè)因子上的具有最大載荷的變量數(shù)最小,因此可以簡(jiǎn)化對(duì)因子的解釋。該旋轉(zhuǎn)過(guò)程可以通過(guò)如下方式實(shí)現(xiàn)
權(quán)利要求
1.一種基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,其特征在于該方法的步驟如下 步驟(I)、構(gòu)建包含初始幀模型的訓(xùn)練集,并對(duì)訓(xùn)練集進(jìn)行降維獲得降維子空間基向量矩陣A ; 步驟(2 )、基于初始幀模型和子空間基向量矩陣A,建立層次包圍盒(BVH)并計(jì)算出任意兩葉節(jié)點(diǎn)間剔除閾值Rmn和模型子空間坐標(biāo),并建立Rnm與模型子空間坐標(biāo)的關(guān)系矩陣;步驟(3)、對(duì)訓(xùn)練集和矩陣A使用關(guān)鍵點(diǎn)選擇算法計(jì)算獲得一個(gè)關(guān)鍵點(diǎn)集Kp ; 步驟(4)、輸入一組新的關(guān)鍵點(diǎn)坐標(biāo)作為控制點(diǎn),計(jì)算出其對(duì)應(yīng)的子空間坐標(biāo),并借助矩陣A還原完整模型的頂點(diǎn)坐標(biāo),實(shí)現(xiàn)變形過(guò)程; 步驟(5)、基于關(guān)鍵點(diǎn)子空間坐標(biāo)獲得一個(gè)增廣的子空間坐標(biāo),并進(jìn)一步計(jì)算出一個(gè)模型的剔除基準(zhǔn)值q和更新的碰撞剔除閾值Rnm,通過(guò)比較二者的大小關(guān)系確定是否進(jìn)行剔除。
2.根據(jù)權(quán)利要求1所述的基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,其特征在于所述步驟(I)中,訓(xùn)練集的構(gòu)建應(yīng)包含初始幀模型以及同一模型的多個(gè)姿態(tài);通過(guò)訓(xùn)練集獲得降維子空間A的方法為先對(duì)訓(xùn)練集進(jìn)行主成分分析(PCA)過(guò)程,然后對(duì)獲得的矩陣截取前K個(gè)主成分,再進(jìn)行方差最大正交旋轉(zhuǎn),得到所需的降維子空間基向量矩陣A。
3.根據(jù)權(quán)利要求1所述的基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,其特征在于所述步驟(2)中,剔除閾值Rmn與模型子空間坐標(biāo)的關(guān)系矩陣的構(gòu)建方法為利用步驟(I)中構(gòu)建的訓(xùn)練集中的初始幀模型坐標(biāo)F,建立層次包圍盒(BVH),通過(guò)求解多個(gè)簡(jiǎn)化的二次方程,獲得任兩個(gè)葉節(jié)點(diǎn)間的剔除閾值Rmn ;再由模型坐標(biāo)F和子空間基A,通過(guò)最小二乘法計(jì)算出模型子空間坐標(biāo)P ;最后再次使用最小二乘法并建立Rmn與P的變換關(guān)系矩陣。
4.根據(jù)權(quán)利要求1所述的基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,其特征在于所述步驟(3)中,構(gòu)建關(guān)鍵點(diǎn)集的方法為首先用在模型表面均勻選點(diǎn)的方式選擇一個(gè)較小的初始點(diǎn)集;然后利用步驟(I)中得到的矩陣A,取其各基向量中具有最大偏移和與最大偏移內(nèi)積數(shù)值最大的點(diǎn)加入關(guān)鍵點(diǎn)集;通過(guò)評(píng)價(jià)完整的控制矩陣A和pkey還原的訓(xùn)練集坐標(biāo)與原訓(xùn)練集模型坐標(biāo)的誤差是否足夠小,決定是否結(jié)束關(guān)鍵點(diǎn)集的增加過(guò)程。
5.根據(jù)權(quán)利要求1所述的基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,其特征在于所述步驟(4)中,實(shí)現(xiàn)變形過(guò)程和獲得增廣的子空間坐標(biāo)的方法是根據(jù)輸入的控制點(diǎn)坐標(biāo)和步驟(3)確定的關(guān)鍵點(diǎn)集,通過(guò)最小二乘求解僅包含關(guān)鍵點(diǎn)的子空間坐標(biāo)Plrey ;再根據(jù)步驟(I)中構(gòu)建的矩陣A和Plrey可以用矩陣乘法還原出原始坐標(biāo)空間的模型坐標(biāo),實(shí)現(xiàn)變形。
6.根據(jù)權(quán)利要求1所述的基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,其特征在于所述步驟(5)中,計(jì)算剔除基準(zhǔn)和閾值以決定剔除與否的方法為根據(jù)步驟(5)中得到的關(guān)鍵點(diǎn)處的子空間坐標(biāo)Pkey經(jīng)過(guò)簡(jiǎn)單的補(bǔ)零增廣到維度為模型頂點(diǎn)個(gè)數(shù)的坐標(biāo)P ;通過(guò)計(jì)算P的M范式
全文摘要
本發(fā)明提供一種基于統(tǒng)計(jì)分析的變形體碰撞檢測(cè)剔除方法,該方法構(gòu)建包含初始幀模型的訓(xùn)練集,并對(duì)訓(xùn)練集進(jìn)行降維獲得降維子空間基向量矩陣A;基于矩陣A,建立層次包圍盒并計(jì)算出任意兩葉節(jié)點(diǎn)間剔除閾值Rmn和模型子空間坐標(biāo),并建立Rmn與模型子空間坐標(biāo)的關(guān)系矩陣;對(duì)訓(xùn)練集和矩陣A使用關(guān)鍵點(diǎn)選擇算法計(jì)算獲得一個(gè)關(guān)鍵點(diǎn)集Kp;輸入一組新的關(guān)鍵點(diǎn)坐標(biāo)作為控制點(diǎn),計(jì)算出其對(duì)應(yīng)的子空間坐標(biāo),并借助矩陣A還原完整模型的頂點(diǎn)坐標(biāo)實(shí)現(xiàn)變形過(guò)程,并通過(guò)關(guān)鍵點(diǎn)子空間坐標(biāo)獲得等增廣的子空間坐標(biāo);基于關(guān)鍵點(diǎn)子空間坐標(biāo)獲得一個(gè)增廣的子空間坐標(biāo),并計(jì)算出一個(gè)模型的剔除基準(zhǔn)值q和更新的碰撞剔除閾值Rmn,通過(guò)比較二者的大小關(guān)系確定是否進(jìn)行剔除。
文檔編號(hào)G06T11/00GK102982567SQ20121041466
公開(kāi)日2013年3月20日 申請(qǐng)日期2012年10月25日 優(yōu)先權(quán)日2012年10月25日
發(fā)明者沈旭昆, 魏釗, 趙凌 申請(qǐng)人:北京航空航天大學(xué)