中的馬的尾部 和四只馬蹄的形狀上就可以看出。SC方法(第七行)重構(gòu)出來的序列與原序列的誤差較 小,但是在數(shù)值上進行誤差統(tǒng)計,本發(fā)明算法的重構(gòu)誤差還是小于SC算法。
[0106] 為了更清楚地對比每種方法的實驗結(jié)果,我們從實驗結(jié)果中單獨拿出幾幀進行對 比。圖7所示CageR(每小格的從左到右第二個圖)和CagelK(每小格的從左到右第三個 圖)得到的在某種程度上都有明顯的變形,但是本發(fā)明算法得到的結(jié)果(每小格的從左到 右第四個圖)和原始網(wǎng)格(每小格的從左到右第一個圖)基本相同,可見,對比結(jié)果再一次 證明了本文發(fā)明算法的有效性。
[0107] 圖8-10是我們給出的三個例子的每種算法的對比結(jié)果,分別是圖4、圖5和圖6中 例子的誤差統(tǒng)計結(jié)果。每幅圖的橫坐標是幀數(shù),縱坐標是重構(gòu)誤差值。在圖中左側(cè)的是平 均誤差,右圖是最大誤差,參與比較的算法有CageIK、CageR和本文算法EC-cageR。從圖中 可以看出無論是平均誤差還是最大誤差,本文算法的誤差值都是最低的,而且比兩種方法 小很多。
[0108] 以上所述之實施例子只為本發(fā)明之較佳實施例,并非以此限制本發(fā)明的實施范 圍,故凡依本發(fā)明之形狀、原理所作的變化,均應(yīng)涵蓋在本發(fā)明的保護范圍內(nèi)。
【主權(quán)項】
1. 一種動態(tài)網(wǎng)格的誤差可控CAGE序列表示算法,其特征在于,包括以下步驟: 1)實矩陣控制網(wǎng)格生成 針對給定的三維形狀序列Sm= (MmM1,…,Mf)和其中一幀對應(yīng)的控制網(wǎng)格C。,通過逆 向工程算法得到三維形狀序列對應(yīng)的控制網(wǎng)格序列Se= (C。,C1,…,Cf),其中,問題的數(shù)學 描述如下式: E1= I IOC1-M1I I2 (1) 式中,Φ表示均值坐標構(gòu)成的權(quán)重矩陣,通過控制網(wǎng)格和它對應(yīng)的網(wǎng)格模型計算得到; M1是三維形狀序列中第i幀,通過上式(1)求解得到該幀對應(yīng)的控制網(wǎng)格(^,對三維形狀序 列中的每一幀進行同樣操作得到控制網(wǎng)格序列S c= (CmC1, ···,&); 通過添加 Laplacian項使得所求控制網(wǎng)格與輸入的控制網(wǎng)格有相同的局部細節(jié),即下 式:式中,Tk(Ck)是控制網(wǎng)格Ck的每個頂點的變換矩陣雜成的大矩陣,δ是C 0的微分坐 標組成的矩陣,1^(;是C k每個頂點的微分坐標構(gòu)成的矩陣;λ是后面一項的權(quán)重值,可根據(jù) 三維形狀序列本身運動信息進行調(diào)整,運動幅度越大該值設(shè)越大;將T k δ表示成Ck的線性 函數(shù),推導過程如下面介紹: 對于第i個頂點的變換矩陣€ ,有所以(s Ii1 h2 h3 tx ty tz)T= (Aq A1 A2 A3 A4 A5 A6)Tb1;那么將變換矩陣中的值分別代入后,變換 后的微分坐標表達式推導過程如下:因為微分坐標具有平移不變性,所以在此處忽略掉平移量,故變換后的微分坐標可以 表示為下式:將所有控制網(wǎng)格頂點變換后的微分坐標寫在一起表示為NCk,其中N是3mX 3m矩陣,Ck 是3m X 1的矩陣;最終的能量表達式為:對于三維形狀序列中的每一幀,通過上式(4)得到對應(yīng)的控制網(wǎng)格,進而得到整個序 列的控制網(wǎng)格; 2) 基于Poisson方程的權(quán)重簡化 存在大的重構(gòu)誤差的原因是權(quán)重矩陣Φ是通過形狀序列中的第一幀M。和對應(yīng)控制網(wǎng) 格C。所得到,且均值坐標(MVC)是全局影響,即模型上任何一個頂點都要受到所有控制點 的影響;當給定的網(wǎng)格Mk較于原網(wǎng)格變形比較大時,實際上使用的權(quán)重矩陣Φ已經(jīng)不能適 用于M k,這必將導致重構(gòu)出來的網(wǎng)格存在扭曲;基于Poisson方程的權(quán)重簡化方法提供了 一種從多個輸入模型中學習新的權(quán)重矩陣的方法,能夠從輸入的多個模型樣例中學習到每 個網(wǎng)格頂點受控制頂點影響的情況,使得原來的網(wǎng)格頂點受所有控制頂點影響變成只受k 個控制頂點的影響;針對網(wǎng)格模型上的每一個頂點,簡化方法首先從所有控制頂點中選擇 k個對其影響最大的控制頂點,同時將頂點影響權(quán)重設(shè)置為0 ;接著為了使這k個頂點的影 響值滿足權(quán)重約束,即權(quán)重值加起來為1,利用Poisson方程約束新的權(quán)重重構(gòu)出來的樣例 模型與原模型的微分坐標盡可能相等;最后,對于網(wǎng)格模型上的所有頂點做相同的操作得 到新的權(quán)重矩陣;簡化方法使得新的權(quán)重矩陣既滿足每個網(wǎng)格頂點只受k個控制頂點的影 響又使得重構(gòu)出來的模型很光滑; 實矩陣控制網(wǎng)格生成輸出的是控制網(wǎng)格序列V ε,在此將網(wǎng)格序列和對應(yīng)的控制網(wǎng)格 序列作為簡化方法的輸入,分別記作E和Ce,共F+1個模型例子;對于網(wǎng)格上頂點V,選出 k個對其影響最大的控制網(wǎng)格上的頂點,坐標值設(shè)為未知,控制網(wǎng)格上的頂點影響坐標值 置為0;通過求解下式(5)使得利用新權(quán)重的重構(gòu)樣例模型的微分算子與原模型盡可能相 等;式中,inf (V1)表示三維網(wǎng)格模型頂點心受控制的控制網(wǎng)格頂點集合,η是網(wǎng)格頂點個 數(shù);優(yōu)化問題的未知量是α,共有nk個元素;且上式(5)中還需加上權(quán)重性質(zhì)約束,即網(wǎng)格 上每個頂點受控制的k個控制網(wǎng)格頂點的權(quán)重之和為1,且每個權(quán)重值大于或者等于零; 通過優(yōu)化局部求解器進行求解;求解過程中假設(shè):當求解一個網(wǎng)格上頂點受控制的 控制網(wǎng)格頂點集合的影響權(quán)重值時,該頂點相鄰的網(wǎng)格頂點的權(quán)重值是固定的;這樣上式 (5)就轉(zhuǎn)化為一個只含有k個未知量的帶約束的二次優(yōu)化問題;對于求解得到的權(quán)重值立 即更新到權(quán)重矩陣中,進行下一個頂點的權(quán)重值的求解過程;當網(wǎng)格上所有頂點的權(quán)重值 都求出后,將其作為新的輸入,迭代求解過程直到迭代次數(shù)達到設(shè)置值或者精度小于設(shè)定 值; 3) 稀疏矩陣控制網(wǎng)格生成 由于上式(5)中沒有顯示地約束重構(gòu)得到的網(wǎng)格模型和原始的網(wǎng)格Mk相同,求得的新 的權(quán)重坐標矩陣Φ'不能保證利用該矩陣重構(gòu)出來的網(wǎng)格序列有很小的誤差,所以有必要 利用新求得的權(quán)重矩陣重新求解上公式(4)中的優(yōu)化問題;此處需要說明,稀疏矩陣cage 生成中的優(yōu)化求解公式(6)和實矩陣控制網(wǎng)格生成中公式(4)有兩方面的不同:一是權(quán)重 矩陣Φ ^,此步使用的是具有局部性的通過基于Poisson方程簡化方法得到的新權(quán)重矩 陣,二是第一幀的控制網(wǎng)格C。同樣需要通過新的權(quán)重矩陣重新求解,也就意味著該控制網(wǎng) 格的幾何信息發(fā)生了相應(yīng)的變化;4)控制網(wǎng)格優(yōu)化 如果輸入的控制網(wǎng)格的頂點個數(shù)為十幾個到幾十個,當輸入的網(wǎng)格序列姿態(tài)變化多樣 時,控制網(wǎng)格很難有足夠的靈活度來表示這些姿態(tài);如果使用這樣的控制網(wǎng)格進行動態(tài)幾 何序列的逆向工程的話,一般得到的控制網(wǎng)格序列的形狀質(zhì)量不高,同時重構(gòu)出來的三維 模型序列與原序列相比存在較大的誤差; 在考慮如何增加控制網(wǎng)格頂點問題之前,先介紹誤差的計算公式;使用兩種標準進行 誤差評定,一是平均誤差,記為E2,二是最大誤差,記為E" ;那么重構(gòu)網(wǎng)格序列第k幀上頂點 i與原網(wǎng)格對應(yīng)頂點<之間的距離計算公式是式中,dom(i)表示網(wǎng)格頂點i受控制網(wǎng)格頂點控制的索引集合;定義Ik是第k幀網(wǎng)格 的包圍盒的對角線長;誤差的計算公式如下:在控制網(wǎng)格的不同位置增加頂點會有不同的效果,采用貪心算法,即在重構(gòu)誤差較大 的地方增加控制網(wǎng)格頂點;誤差較大的原因是控制網(wǎng)格在此處靈活度不夠,不能夠準確地 擬合此處的網(wǎng)格頂點;通過在誤差比較大的地方增加控制網(wǎng)格頂點能增加控制網(wǎng)格在此處 的靈活度,進而能夠更快地減少誤差;利用稀疏矩陣重構(gòu)步驟得到的控制網(wǎng)格序列S e和權(quán) 重矩陣Φ'重構(gòu)出的原網(wǎng)格模型序列表示為P' ={P(],Pl,…,PF};假設(shè)用戶輸入能夠容忍 的最大誤差為ε,根據(jù)歐氏距離計算公式選出重構(gòu)誤差大于ε的網(wǎng)格頂點,進而選擇出其 受影響最大的控制網(wǎng)格頂點,之后在它們周圍添加頂點。具體過程是:首先定義一個網(wǎng)格頂 點索引集合PSet,并將其設(shè)置為空;針對網(wǎng)格序列中的每一幀P ni,如果第j個頂點巧的重構(gòu) 誤差大于ε,即下式:將C加入pSet = {j},遍歷重構(gòu)序列網(wǎng)格上的頂點得到最終的pSet ;針對pSet里的 每一個元素,根據(jù)權(quán)重矩陣Φ ^選出對應(yīng)行中最大值的兩個值對應(yīng)的cage頂點,選擇的就 是標記的值所對應(yīng)的控制網(wǎng)格頂點d和f,放入集合cSet ;使用貪心算法,得到在周圍需要 添加頂點的控制網(wǎng)格頂點集合cSet ; 針對已經(jīng)選出了需要在周圍添加頂點的控制網(wǎng)格頂點集合,還需要找到需要處理的邊 并進行細分,詳細過程如下: 對于cSet里面的每一個控制網(wǎng)格頂點,找出共該點的所有邊中最長的邊;之后控制網(wǎng) 格上所有三角面片被分成了四類,如果三角面片上沒有一條邊被標記,那么不對該面進行 加點操作;如果三角面上有一條邊被標記,那么計算被標記邊的中點,與所對的頂點連接增 加一條新的邊;如果三角面上有兩條邊被標記,那么分別計算著兩條邊的中點并連接構(gòu)成 一條新的邊,之后連接最長邊的中點及所對頂點構(gòu)成一條新邊;如果三角面的三條邊都被 標記,那么取這三條邊的中點并相互連接構(gòu)成三條新的邊;對控制網(wǎng)格上所有面都進行上 述操作后就完成了本次的控制網(wǎng)格優(yōu)化。
【專利摘要】本發(fā)明公開了一種動態(tài)網(wǎng)格的誤差可控CAGE序列表示算法,包括實矩陣控制網(wǎng)格生成、基于Poisson方程的權(quán)重簡化、稀疏矩陣控制網(wǎng)格生成和控制網(wǎng)格優(yōu)化四個部分。給定輸入三維形狀序列和其中一幀的控制網(wǎng)格,該算法通過實矩陣控制網(wǎng)格生成得到控制網(wǎng)格序列,接著通過基于Poisson方程的權(quán)重簡化得到具有局部性的稀疏坐標矩陣,之后執(zhí)行稀疏矩陣控制網(wǎng)格生成,檢測重構(gòu)誤差,如果最大誤差值大于用戶輸入的容忍閾值,執(zhí)行控制網(wǎng)格優(yōu)化再重新執(zhí)行上面三步直到滿足用戶指定值。本發(fā)明解決的是誤差可控的動態(tài)網(wǎng)格的控制網(wǎng)格序列表示問題,可以應(yīng)用到動態(tài)網(wǎng)格序列的壓縮表示、加速編輯和形狀遷移。
【IPC分類】G06T13/40, G06T13/20
【公開號】CN105427360
【申請?zhí)枴緾N201510767406
【發(fā)明人】李桂清, 陳愛芬, 路慧娜, 冼楚華, 張智邦, 尹夢曉
【申請人】華南理工大學
【公開日】2016年3月23日
【申請日】2015年11月11日