專利名稱:一種直接傳遞三維模型姿態的方法
技術領域:
本發明涉及計算機圖形技術領域,是一種直接傳遞三維模型姿態的方法——模型轉導,可以直接將源三維模型的姿態傳遞給目標三維模型。
背景技術:
網格形變無論是在計算機建模還是在計算機動畫領域都有著廣泛地應用。三維動畫師和藝術家們在三維制作軟件中使用各種形變工具來手工編輯虛擬角色的臉部表情和身體形狀。這些方法不僅需要大量的藝術技巧用于調節形變,而且很難將結果重用到新的三維模型上。為了用已調節好參數的三維模型來控制其他三維模型的形變,特定的形變參數必須匹配到新的形狀上。在許多情況下,設定這些參數非常地費時以至于不如重新開始。
Noh等人在SIGGRAPH’2001上提出了表情克隆的概念,臉部表情從源模型傳遞到目標模型。在這種方法中,每個表情被解碼成頂點位移,其表征了參考臉和表情臉的差別。表情克隆用啟發式方法來適配位移向量的方向和大小,以解決源和目標模型的不同比例問題。這種表述和適配技術僅適用于臉部表情。
Sumner和Popovic在SIGGRAPH’2004上提出的形變傳遞方法是表情克隆概念的擴展,其將源三角形網格的形變應用到參考目標三角形網格中。為了生成形變后的目標模型,無論是使用表情克隆還是形變傳遞方法,都必須同時給定參考源模型、形變后的源模型以及參考目標模型。
表情克隆和形變傳遞的另一個局限是源和目標參考網格必須有相同的運動姿態,因為這兩種方法復制由變形所導致的形狀改變。此外,如果源形變本身缺乏真實性,顯然由源形變所生成的形變目標模型也一定不夠生動,而且不幸的是無法提供有效的手段來改善結果。
發明內容
本發明的目的是提供一種直接傳遞三維模型姿態的方法——模型轉導,是一種基于網格的方法,可以直接將源三維模型的姿態傳遞給目標三維模型。
本發明的又一目的是提供一種直接傳遞三維模型姿態的方法——模型轉導,該方法是通用的,不需要源模型和參考目標模型共享一樣數目的頂點和三角形。
為達到上述目的,本發明的技術解決方案是提供一種直接傳遞三維模型姿態的方法——模型轉導,可以直接將源三維模型的姿態傳遞給目標三維模型;模型轉導主要通過以下步驟來實現第一步,用戶指定源/目標模型特征對應錨點,然后由對應算法自動建立源和目標三角形的對應關系;第二步,三角形面片被旋轉和平移以生成一個臨時網格,該模型提取了參考目標網格的剛性成分,而同時又保留了源網格的姿態信息;第三步,把臨時網格中的面片依照拉普拉斯微分約束進行重新組合,通過求解全局優化形變來得到最終的三維模型。
所述的方法,其所述第一步中,不需要源模型和參考目標模型共享一樣數目的頂點和三角形,即如果源和參考目標網格有不同數目的頂點和三角形,用戶可首先通過指定源/目標模型的特征對應錨點,用迭代最近點的方法將參考目標網格盡可能逼近地形變到源網格,并同時自動求得源/目標所有三角形面片的對應關系,此對應過程用二次誤差函數描述為E(V′)=wiΣi=1|T|||Qi-I||F2+wmΣi=1m||Qivi-mi||2]]>+Σs=1|T|ws(Σj∈adj(s)||Qs-Qj||F2)+wcΣi=1n||vi′-ci||2.]]>所述的方法,其所述第二步驟為生成臨時剛體網格,即對于每一對源/目標三角形,找到一個臨時三角形{v1r,v2r,v3r},其由旋轉、平移參考目標三角形而獲得;為了編碼源網格的姿態信息,臨時三角形由最小化以下二次誤差函數獲得
同時滿足||virvjr||=||vi0vj0||]]>(i,j)∈{(1,2),(2,3),(3,1)}其中,vi0為參考目標三角形的頂點、 為源三角形的頂點,i=1,2,3,4。
所述的方法,其所述第三步驟為平移三角形并滿足細節微分約束,平移項Et用二次誤差函數描述為Et(V′)=Σt=1|T|wt(Σ(i,j)∈{(1,2),(2,3)}||vi′vj′-virvjr||2)]]>微分約束項El用二次誤差函數描述為E1(V′)=Σk=1|T|wk(Σi=13||Qkδi-ξ(vi′)||2)+Σs=1|T|ws(Σj∈adj(s)||Qs-Qj||F2)]]>完整的目標函數E為以上兩個二次誤差函數之和E(V′)=Et+El。
本發明考慮了一個非常不同而且富有挑戰的問題如果參考源模型不可得,即只有形變后的源模型和參考目標模型,那么我們能否得到既具備源模型的姿態又同時保持參考目標模型幾何細節特征的形變目標模型呢?本發明方法稱之為模型轉導,這種方法能應用于不同結構的網格(即不同的頂點數,不同的三角形數,以及不同的網絡連接關系),通過計算目標形狀的全局優化形變,可以傳遞任意的非線性形變。
圖1本發明一種直接傳遞三維模型姿態的方法——模型轉導示意圖;圖2本發明中生成臨時剛體網格示意圖;圖3(a)使用已有形變傳遞方法,獅子的形變傳遞到貓上的示意圖;圖3(b)使用本發明模型轉導方法,貓直接模仿獅子的姿態的示意圖;圖4(a)使用已有形變傳遞方法,貓的形變傳遞到獅子上的示意圖;圖4(b)使用本發明模型轉導方法,獅子直接模仿貓的姿態的示意圖;圖5使用本發明模型轉導方法,一個老年男子直接模仿一個青年男子表情的示意圖。
具體實施例方式
在計算機圖形學中,三維表面采用全局或局部坐標系表示。全局坐標系統顯式地指定出幾何數據的全局歐拉坐標以表征特定的形狀。相比之下,局部坐標系統編碼了表面的內在幾何參數。全局坐標系統可方便地用于幾何變換、紋理、碰撞檢測以及渲染。而另一方面,局部坐標系統適用于要求保持表面局部細節特征的網格編輯操作。
為了實現一種直接傳遞三維模型姿態的方法——模型轉導方法,我們實現了一種網格重建系統,其既包括了全局特征也包括了局部特征。這種表示方法假定一些三角形為獨立且旋轉不變的剛性面片,其采用全局坐標來定義。另一方面,一系列預定義的約束(如將幾何細節信息編碼成拉普拉斯微分形式)同時放置于鄰接三角形面片之中,其定義為局部坐標。為了將三角形網格拼接成有意義的模型,剛性定義的三角形被平移、旋轉,并同時滿足預定義的微分約束。這個系統既有全局坐標又有局部坐標系統的優勢一方面,剛性定義的三角形具有顯式的表示,被描述成絕對歐拉坐標。這些三角形相對地獨立,并具有重建整個網格某些區域的能力;另一方面,將幾何細節編碼成微分坐標提供了一種內在的表面網格表征形式,網格幾何能在保持局部外觀的情況下重建出來。
三角網格是表面的當前主流表示形式之一。因為任意多邊形都可以很方便地被剖分為三角形網,故這里只討論三角形網格曲面的處理。
一種直接傳遞三維模型姿態的方法——模型轉導,包括主要兩個步驟首先提取參考目標網格的剛性成分并將其放置于源網格上,然后根據局部定義的拉普拉斯屬性約束,將這些剛性面片進行重新組合,通過求解全局優化形變來得到最后結果。
下面的過程將詳細描述每一個步驟。
1、生成臨時剛體網格我們將形變表示為三角形的仿射變換集合。用vi0和 分別代表參考目標三角形和源三角形的頂點。其中v4(v40或 )被定義為垂直于三角形平面上的一個頂點v4=cr+(v1-cr)×(v2-cr)(1)這里,cr為三角形的質心。
然后我們按照三角形的頂點集合定義了一個3×3的矩陣Q,其表征了從參考目標三角形到對應的源三角形的仿射變換 在這一步中,我們的目標是獲得臨時網格(見圖1c,圖3b-4)。首先將參考目標網格的所有三角形打散而同時保證不對它們進行彎曲變形,然后將它們旋轉、平移到源網格的各個對應三角形上。下面我們將描述這個過程。
為了獲得臨時網格,我們可以首先用奇異值分解(SVD)的方法將矩陣Q分解為旋轉分量Rr和剪切拉伸分量S兩部分(Shoemake等人于Graphics Interface′92提出)Q=RαDRβ=Rα(RβRβT)DRβ=(RαRβ)(RβTDRβ)=RrS---(3)]]>這里的Rr并不足夠精確,但它可以作為下面迭代解的一個好的初始值。即給定上述初始值,對于每一對源/目標三角形,我們希望找到一個臨時三角形{v1r,v2r,v3r}(參見圖2),其由旋轉、平移參考目標三角形而獲得。為了盡可能地編碼源網格的姿態信息,臨時三角形由最小化以下二次誤差函數獲得 滿足||virvjr||=||vi0vj0||]]>(i,j)∈{(1,2),(2,3),(3,1)}其中 為計算過程中的另一個臨時三角形,其相似于三角形{v1r,v2r,v3r},即 i=1,2,3(s為比例因子)
2、平移三角形并滿足細節微分約束已經獲得臨時三角網格后,我們現在將它們重新拼接起來以獲得最終結果。在第二步中,我們按照預定義的約束來平移臨時網格的剛體三角形。最終三角形{v1′,v2′,v3′}的三個頂點的坐標可由最小化每個三角形三個頂點的平移距離之差來獲得v1-v1′=v2-v2′=v3-v3′(5)用二次項誤差函數來重寫上述最小化問題Et(V′)=Σt=1|T|wt(Σ(i,j)∈{(1,2)(2,3)}||vi′vj′-virvjr||2)---(6)]]>如上所述,為了將三角形面片合理地拼接起來,還需要同時在鄰接三角形之間滿足預定義的約束。這里我們將幾何細節編碼為三角形網格的拉普拉斯微分坐標δi=vi-1diΣj∈Nivj,]]>即頂點vi的拉普拉斯坐標為該點歐拉坐標與鄰接頂點平均歐拉坐標之差。我們將預定義的約束項El用二次誤差函數描述為EI(V′)=Σk=1|T|wk(Σi=13||Qkδi-ξ(vi′)||2)+Σs=1|T|ws(Σj∈adj(s)||Qs-Qj||F2)---(7)]]>其中,Q為相對于每個源三角形面片的仿射變換矩陣,δ為頂點vi在變換前的拉普拉斯微分坐標,ξ(vi′)為變換后的拉普拉斯微分坐標,||□||F為Frobenius范數。
El的第一項指出三維模型的局部形狀細節在經過變換后應該被保留;第二項指定了空間約束;第三項指出鄰接三角形之間的仿射變換應該是平滑過渡的。
為了保留局部形狀細節,Qk應該被限制為旋轉矩陣。Sorkine等人在2004年的Eurographics/ACM SIGGRAPH symposium on Geometryprocessing上提出了一種局部線性的表示方法,但該方法只能在小角度的情況下保證旋轉矩陣約束條件。而在本發明的模型轉導方法中,我們無需顯式地附加這些約束,因為前面的Et項已經隱式地指出了仿射變換應該為旋轉變換。
這樣我們完整的目標函數E為兩個二次誤差函數之和E(V′)=Et+El(8)令∂E∂V′=0]]>分別對各未知變量求偏導,可得法方程Ax′=b,因此這個優化問題可轉化為對一個稀疏線性方程組的求解。此外,這個系統的求解在頂點三個坐標(X/Y/Z)上可以單獨分別進行。我們首先對法方程進行LU分解,然后通過回代來獲得最終解。
3、建立源和目標模型的對應關系如果源和參考目標網格有不同數目的頂點和三角形,我們應該在步驟1和2之前首先生成一個和參考目標模型具有相同頂點和三角形數目的臨時源模型。用戶只需指定源/目標相互對應的錨點(一般50~80個特征點對),我們就可用迭代最近點的方法將參考目標網格盡可能逼近地形變到源網格來得到這個臨時模型,并同時自動求得源/目標所有三角形面片的對應關系。本發明的方法類似于Allen等人在SIGGRAPH’2003,Sumner和Popovic在SIGGRAPH’2004中提出的對應方法,但采用了我們的數值框架,并且無需設定閾值來建立對應列表。本發明方法無需建立源和目標網格的公共參數化域。
對應系統也采用相似于求解模型轉導所用的二次誤差函數E(V′)=wiΣi=1|T|||Qi-I||F2+wmΣi=1m||Qivi-mi||2]]>+Σs=1|T|ws(Σj∈adj(s)||Qs-Qj||F2)+wcΣi=1n||vi′-ci||2---(9)]]>其中第一項為單位矩陣項,作用是防止在求解過程中產生劇烈的網格形變,這一項的系數wl一般取較小的系數,這里為0.001;第二項為錨點約束項,目的是使用戶指定的頂點盡可能地形變到錨點位置,這里的wm一般取較大的數值,這里為10000.0;第三項為形變平滑項,即鄰接三角形之間的變換改變應該是盡可能平滑的,ws一般取1.0;第四項為最近點項,指出每次迭代得到的臨時源模型上的每個頂點位置應該為源網格上對應的最近點。
以上對應過程我們取wc為從1.0到1000.0中的任意數,共迭代四次即可得到一個滿意的解。這樣,我們就獲得了一個臨時模型(兼容網格),其與源網格相似但和參考目標網格具有一樣的頂點和三角形數目,然后便可直接應用模型轉導技術。注意到在這一步中并不需要生成非常精細的對應,因為該兼容網格只是作為姿態表征,而且微分約束項El將保持住網格的幾何細節特征。
下面結合附圖詳細說明模型轉導的操作過程。圖1(a)中貓為源模型,圖1(b)中獅子為參考目標模型,本發明的方法并不要求初始的源、目標模型的拓撲關系一致,即相同的頂點數、三角形數和連接關系。我們首先使用前面介紹的對應系統將參考目標模型盡可能逼近地形變到源模型生成一個臨時源模型,并同時自動求得源/目標的對應關系。在得到源/目標網格各個三角形面片的對應關系之后,模型轉導直接傳遞貓(a)的姿態到獅子(b),以生成與貓(a)具有相同身體姿態的獅子(d)。圖1(c)模型是一個臨時結果,其通過先提取獅子(b)的剛性成分,然后將其映射到貓(a)上獲得。使用一定的約束,比如圖1(b)中的拉普拉斯局部微分屬性,使圖1(c)中網格的面片被重新排列,最后生成圖1(d)所示的滿意結果。我們可以看出,模型轉導成功地傳遞了無論是總體的骨架結構還是精細的皮膚形變。更多的結果見圖3、圖4、圖5。圖3(a)為使用已有的形變傳遞方法,將獅子的形變傳遞到貓上;圖3(b)為使用本發明所提出的模型轉導方法,貓直接模仿獅子的姿態。圖4(a)為使用已有的形變傳遞方法,將貓的形變傳遞到獅子上;圖4(b)為使用本發明所提出的模型轉導方法,獅子直接模仿貓的姿態。圖5為使用本發明所提出的模型轉導方法,一個老年男子直接模仿一個青年男子表情。其中,圖3、圖4是本發明方法——模型轉導與Sumner和Popovic在SIGGRAPH’2004上提出的形變傳遞方法的比較。從結果可以看出,本發明方法在缺少參考源網格的情況下仍可獲得逼真的形變結果。
權利要求
1.一種直接傳遞三維模型姿態的方法,可以直接將源三維模型的姿態傳遞給目標三維模型;其特征在于,模型轉導通過以下步驟來實現第一步,用戶指定源/目標模型特征對應錨點,然后由對應算法自動建立源和目標三角形的對應關系;第二步,三角形面片被旋轉和平移以生成一個臨時網格,該網格提取了參考目標網格的剛性成分,而同時又保留了源網格的姿態信息;第三步,把臨時網格中的面片依照拉普拉斯微分約束進行重新組合,通過求解全局優化形變來得到最終的三維模型。
2.如權利要求1所述的方法,其特征在于,所述第一步中,不需要源模型和參考目標模型共享一樣數目的頂點和三角形,即如果源和參考目標網格有不同數目的頂點和三角形,用戶首先通過指定源/目標網格特征對應錨點,用迭代最近點的方法將參考目標網格盡可能逼近地形變到源網格,并同時自動求得源/目標所有三角形面片的對應關系,此對應過程用二次誤差函數描述為E(V′)=wiΣi=0|T|||Qi-I||F2+wmΣi=1m||Qivi-mi||2]]>+Σs=1|T|ws(Σj∈adj(s)||Qs-Qj||F2)+wcΣi=1n||vi′-ci||2.]]>其中,Q為相對于每個源三角形面片的仿射變換矩陣,I為單位矩陣,vi為源模型中的頂點,mi為用戶指定的錨點,vi′為形變后模型的頂點,ci為vi′在目標模型上對應的最近點,||□||F為Frobenius范數。
3.如權利要求1所述的方法,其特征在于,所述第二步驟為生成臨時剛體網格,即對于每一對源/目標三角形,找到一個臨時三角形{v1r,v2r,v3r},其由旋轉、平移參考目標三角形而獲得;為了編碼源網格的姿態信息,臨時三角形由最小化以下二次誤差函數獲得 同時滿足||virvjr||=||vi0vj0||]]>(i,j)∈{(1,2),(2,3),(3,1)}其中,vi0為參考目標三角形的頂點、 為源三角形的頂點,i=1,2,3,4, 為相似于{v1r,v2r,v3r}的三角形。
4.如權利要求1所述的方法,其特征在于,所述第三步驟為平移三角形并滿足細節微分約束,平移項Et用二次誤差函數描述為Et(V′)=Σi=1|T|wt(Σ(i,j)∈{(1,2),(2,3)}||vi′vj′-virvjr||2)]]>微分約束項El用二次誤差函數描述為El(V′)=Σk=1|T|wk(Σi=13||Qkδi-ξ(vi′)||2)+Σs=1|T|ws(Σj∈adj(s)||Qs-Qj||F2)]]>其中,δ為頂點vi在變換前的拉普拉斯微分坐標,ξ(vi)為變換后的拉普拉斯微分坐標。完整的目標函數E為以上兩個二次誤差函數之和E(V′)=Et+El。
全文摘要
本發明為一種直接傳遞三維模型姿態的方法,涉及計算機圖形技術,可直接將源三維模型的姿態傳遞給目標三維模型。首先,用戶指定源/目標模型特征對應錨點,然后由對應算法自動建立源和目標三角形的對應關系;接著,三角形面片被旋轉和平移以生成一個臨時網格,該網格提取了參考目標網格的剛性成分,而同時又盡可能地保留了源網格的姿態信息;然后把臨時網格中的面片依照預定義的拉普拉斯微分約束重新進行排列,拼接生成有意義的三維模型。本發明方法解決了單個三維模型之間的姿態傳遞,無論是總體的骨架結構還是精細的皮膚形變;幫助三維動畫師高效快速地利用已有的三維模型庫來制作具有復雜姿態的三維模型,而無需從零開始或者費時地反復手動調節。
文檔編號G06T17/00GK101071514SQ20061007821
公開日2007年11月14日 申請日期2006年5月12日 優先權日2006年5月12日
發明者吳懷宇, 潘春洪, 楊青, 馬頌德 申請人:中國科學院自動化研究所