專利名稱:一種計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法
一種計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù)領(lǐng)域,特別是涉及一種計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法。
背景技術(shù):
虛擬角色的運(yùn)動(dòng)大大增加了虛擬場(chǎng)景的真實(shí)感和沉浸感。虛擬角色的運(yùn)動(dòng)是虛擬現(xiàn)實(shí)和計(jì)算機(jī)動(dòng)畫等領(lǐng)域的一個(gè)經(jīng)典研究內(nèi)容。先后有基于關(guān)鍵幀,運(yùn)動(dòng)學(xué),動(dòng)力學(xué)等方法用于合成虛擬角色的運(yùn)動(dòng)。近年來,隨著運(yùn)動(dòng)捕獲設(shè)備的不斷成熟和實(shí)用化,獲取大量真實(shí)感運(yùn)動(dòng)數(shù)據(jù)成為可能。但是,由于人體運(yùn)動(dòng)運(yùn)動(dòng)的復(fù)雜性和多變性,捕獲所有的人體運(yùn)動(dòng)是不現(xiàn)實(shí)也是不可能的。另外,運(yùn)動(dòng)捕獲設(shè)備造價(jià)昂貴,便攜性差等原因也讓運(yùn)動(dòng)捕獲設(shè)備的使用受到了限制。如何利用已有運(yùn)動(dòng)捕獲數(shù)據(jù)泛化生成新的運(yùn)動(dòng)數(shù)據(jù)來滿足特定的用戶需求和環(huán)境約束成為一個(gè)研究熱點(diǎn)和難點(diǎn)。
目前,從是否對(duì)已有的運(yùn)動(dòng)捕獲數(shù)據(jù)進(jìn)行修改的角度,可以將利用運(yùn)動(dòng)捕獲數(shù)據(jù)進(jìn)行運(yùn)動(dòng)合成的方法分為運(yùn)動(dòng)融合與運(yùn)動(dòng)重組兩大類。運(yùn)動(dòng)融合通過對(duì)兩個(gè)或多個(gè)運(yùn)動(dòng)數(shù)據(jù)片段進(jìn)行顯式或隱式的插值實(shí)現(xiàn)運(yùn)動(dòng)數(shù)據(jù)的泛化達(dá)到運(yùn)動(dòng)合成的目的。而運(yùn)動(dòng)重組通過排列組合的方式改變運(yùn)動(dòng)數(shù)據(jù)片段的順序來達(dá)到合成新的運(yùn)動(dòng)的目的。在使用運(yùn)動(dòng)融合的技術(shù)中,一種非常有吸引力的運(yùn)動(dòng)生成方法是通過對(duì)已有運(yùn)動(dòng)數(shù)據(jù)集建模,構(gòu)造一個(gè)能夠顯式的將運(yùn)動(dòng)數(shù)據(jù)集參數(shù)化為不同因子的生成模型來實(shí)現(xiàn)運(yùn)動(dòng)數(shù)據(jù)的泛化,達(dá)到運(yùn)動(dòng)合成目的。
要構(gòu)建出一個(gè)好的生成模型需要解決以下問題一為如何保證在不產(chǎn)生很大重構(gòu)誤差的前提下重構(gòu)出訓(xùn)練數(shù)據(jù)。二為如何保證生成模型可以靈活的根據(jù)訓(xùn)練數(shù)據(jù)集和用戶的需求不同而做適應(yīng)性修改。三為如何能夠讓生成模型能夠適用于多種類型運(yùn)動(dòng)上,而不局限于有限種類的運(yùn)動(dòng)上面。本發(fā)明將以這三個(gè)問題為基本出發(fā)點(diǎn),通過將多因子高斯過程對(duì)運(yùn)動(dòng)捕獲建模,提出了一個(gè)構(gòu)建生成模型框架,實(shí)現(xiàn)了一系列靈活的運(yùn)動(dòng)合成與編輯的方法。
對(duì)于對(duì)運(yùn)動(dòng)數(shù)據(jù)建模構(gòu)建生成模型這個(gè)問題,當(dāng)前已經(jīng)有許多很多研究工作。例如,利用雙線性模型對(duì)運(yùn)動(dòng)捕獲數(shù)據(jù)建模,實(shí)現(xiàn)內(nèi)容與風(fēng)格的分離;利用多線性模型對(duì)運(yùn)動(dòng)捕獲數(shù)據(jù)進(jìn)行建模,實(shí)現(xiàn)人物和風(fēng)格的分離等。這些方法針對(duì)某一些問題,或在某一些運(yùn)動(dòng)數(shù)據(jù)集上取得很好的結(jié)果。但是,這些模型都有著它們自身的局限性。他們要么很難擴(kuò)展到別的數(shù)據(jù)集上,要么很難通過對(duì)模型進(jìn)行調(diào)整去處理一些類似問題。本發(fā)明通過將多因子高斯過程應(yīng)用于運(yùn)動(dòng)捕獲數(shù)據(jù)上,根據(jù)訓(xùn)練數(shù)據(jù)集的特質(zhì)以及具體的問題,提出了一個(gè)利用運(yùn)動(dòng)捕獲數(shù)據(jù)建模來構(gòu)建生成模型的方法。由于多因子高斯過程內(nèi)在的靈活性,表達(dá)能力強(qiáng)等性質(zhì)讓我們的方法客服了上面提到的那些研究工作構(gòu)造的生成模型的局限性。所以我們的方法的優(yōu)點(diǎn)可以概括為一、靈活性強(qiáng)。我們可以針對(duì)訓(xùn)練數(shù)據(jù)集的不同,可以構(gòu)造出兩個(gè)、三個(gè)或四個(gè)因子等的生成模型;二、表達(dá)能力強(qiáng)。核函數(shù)的方法可以描述兩個(gè)數(shù)據(jù)空間之間復(fù)雜的映射關(guān)系。而我們生成模型描述分解出因子與運(yùn)動(dòng)數(shù)據(jù)之間的映射關(guān)系是通過核函數(shù)實(shí)現(xiàn)的所以我們的生成模型可以表達(dá)復(fù)雜的函數(shù)映射關(guān)系,具有更強(qiáng)的表達(dá)能力。發(fā)明內(nèi)容
本發(fā)明的目的將多因子高斯過程應(yīng)用于運(yùn)動(dòng)捕獲數(shù)據(jù)上,構(gòu)建能夠顯式的將運(yùn)動(dòng)捕獲數(shù)據(jù)參數(shù)化為不同因子的生成模型來實(shí)現(xiàn)靈活直觀的運(yùn)動(dòng)合成與編輯方法。
本發(fā)明提出的計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法,其主要步驟如下
步驟(I)、對(duì)運(yùn)動(dòng)數(shù)據(jù)進(jìn)行簡單的預(yù)處理,標(biāo)注出構(gòu)造生成模型所需要的先驗(yàn)信
步驟(2)、根據(jù)步驟(I)的標(biāo)注信息定義隨機(jī)過程,根據(jù)各個(gè)因子的代表的具體意義,為每個(gè)因子指定合適的核函數(shù)來描述它與運(yùn)動(dòng)數(shù)據(jù)間的映射關(guān)系,對(duì)運(yùn)動(dòng)數(shù)據(jù)建模;
步驟(3)、構(gòu)造最優(yōu)化目標(biāo)函數(shù),利用數(shù)值最優(yōu)化算法求解未知參數(shù)構(gòu)建生成模型;
步驟(4)、利用步驟(3)得到的生成模型,通過對(duì)分解出的因子進(jìn)行編輯來實(shí)現(xiàn)運(yùn)動(dòng)的合成與編輯。
進(jìn)一步的,所述步驟(I)中對(duì)運(yùn)動(dòng)數(shù)據(jù)預(yù)處理和標(biāo)注的具體內(nèi)容如下
步驟(Al)、根據(jù)運(yùn)動(dòng)捕獲數(shù)據(jù)集計(jì)算特征向量。特征向量包括根節(jié)點(diǎn)位置偏移、根節(jié)點(diǎn)朝向、各個(gè)關(guān)節(jié)點(diǎn)自由度,各個(gè)關(guān)節(jié)的加速度;
步驟(A2)、對(duì)每個(gè)運(yùn)動(dòng)片段進(jìn)行標(biāo)注,標(biāo)注內(nèi)容具體可包括人物、風(fēng)格、內(nèi)容、性別、年齡等信息。
進(jìn)一步的,所述步驟(2)構(gòu)造生成模型的步驟具體如下
步驟(BI)、根據(jù)步驟(I)中標(biāo)注的信息,定義一個(gè)隨機(jī)過程;
步驟(B2)、根據(jù)每個(gè)因子的代表具體意義,為步驟(BI)定義的隨機(jī)過程中每個(gè)因子指定合適的核函數(shù)。核函數(shù)可以是RBF函數(shù),線性函數(shù)等任意有效的核函數(shù);
步驟(B3)、在為每個(gè)因子指定核函數(shù)后,計(jì)算出每個(gè)因子的協(xié)方差矩陣,然后將各個(gè)協(xié)方差矩陣連乘得到生成模型的協(xié)方差矩陣,然后對(duì)運(yùn)動(dòng)數(shù)據(jù)建模就完成了。
進(jìn)一步的,所述步驟(3)中構(gòu)建目標(biāo)函數(shù)求解未知參數(shù)的步驟如下
步驟(Cl)、構(gòu)造條件概率公式,利用最大后驗(yàn)估計(jì)(MAP)構(gòu)造目標(biāo)函數(shù);
步驟(C2)、利用數(shù)值最優(yōu)化算法SCG求解未知參數(shù)得到生成模型。
進(jìn)一步的,所述步驟(4)中利用得到的生成模型實(shí)現(xiàn)運(yùn)動(dòng)合成與運(yùn)動(dòng)編輯的具體內(nèi)容有
內(nèi)容(D1)、通過指定因子參數(shù),合成新的運(yùn)動(dòng);
內(nèi)容(D2)、通過估計(jì)未知運(yùn)動(dòng)的參數(shù)實(shí)現(xiàn)運(yùn)動(dòng)的從定向,運(yùn)動(dòng)風(fēng)格的從定向;
內(nèi)容(D3)、通過插值因子參數(shù)實(shí)現(xiàn)兩種或幾種運(yùn)動(dòng)實(shí)現(xiàn)運(yùn)動(dòng)融合來合成出新的運(yùn)動(dòng)。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)勢(shì)
首先,高斯過程是一個(gè)強(qiáng)大的回歸工具。通過設(shè)置不同的核函數(shù)可是實(shí)現(xiàn)對(duì)各種線性關(guān)系非線性關(guān)系的描述。具有很強(qiáng)的關(guān)系映射的表達(dá)能力。
其次,我們?cè)趯?duì)運(yùn)動(dòng)數(shù)據(jù)建模過程中,為了更加細(xì)膩和準(zhǔn)確的描述各個(gè)運(yùn)動(dòng)數(shù)據(jù)集之間的關(guān)系,我們使用了多因子高斯過程模型來對(duì)運(yùn)動(dòng)數(shù)據(jù)建模。相對(duì)于單個(gè)隱變量因子的模型,這種建模方式更加精確魯棒。
最后,通過建模結(jié)果構(gòu)造出的生成模型提供過直觀方便的交互手段讓非專業(yè)動(dòng)畫人士也能利用該模型生成高質(zhì)量的動(dòng)畫。
圖I為本發(fā)明的一種計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法的整體過程示意圖2為本發(fā)明的估計(jì)未知運(yùn)動(dòng)參數(shù),為該未知人物合成其他風(fēng)格走的示意圖3為本發(fā)明的通過插值風(fēng)格參數(shù)合成新的風(fēng)格的運(yùn)動(dòng)示意圖4為本發(fā)明的通過插值內(nèi)容參數(shù)合成不能內(nèi)容的運(yùn)動(dòng)之間平滑過渡的示意圖。
具體實(shí)施方式
下面結(jié)合附圖與實(shí)例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述
本發(fā)明實(shí)施過程包括四個(gè)主要步驟運(yùn)動(dòng)數(shù)據(jù)預(yù)處理以及先驗(yàn)信息標(biāo)注,定義隨機(jī)過程并指定各個(gè)因子的核函數(shù),構(gòu)建目標(biāo)函數(shù)求解未知參數(shù)構(gòu)建生成模型,利用生成模型實(shí)現(xiàn)運(yùn)動(dòng)的合成與編輯。圖I展示了本發(fā)明的整體過程示意圖。
步驟一運(yùn)動(dòng)數(shù)據(jù)預(yù)處理以及先驗(yàn)信息標(biāo)注
第一階段運(yùn)動(dòng)數(shù)據(jù)預(yù)處理
運(yùn)動(dòng)數(shù)據(jù)預(yù)處理階段主要處理的事情是計(jì)算與運(yùn)動(dòng)數(shù)據(jù)每一幀對(duì)應(yīng)的特征向量。 假設(shè),當(dāng)前給定訓(xùn)練運(yùn)動(dòng)數(shù)據(jù)集Q= {Qj|j = 1,2,...,j}。其中,J是運(yùn)動(dòng)序列的總數(shù)。我們要為運(yùn)動(dòng)序列中得每一幀t計(jì)算一個(gè)特征向量Iu to Ju t中的內(nèi)容包括根節(jié)點(diǎn)的朝向、根節(jié)點(diǎn)的速度、各個(gè)關(guān)節(jié)點(diǎn)的自由度,各個(gè)關(guān)鍵的加速度。其中,根節(jié)點(diǎn)的朝向和各個(gè)關(guān)節(jié)的自由度用四元素表示,根節(jié)點(diǎn)的速度和各個(gè)關(guān)鍵點(diǎn)得速度由運(yùn)動(dòng)數(shù)據(jù)的當(dāng)前幀t減去上一幀qpH得到。為了表示方便,計(jì)算出所有運(yùn)動(dòng)數(shù)據(jù)的特征向量后,我們將所有的特征向量放入一個(gè)矩陣Ynxd = [Yia, Iu2, . . .,h,T]中,其中N是訓(xùn)練數(shù)據(jù)的總的幀數(shù),D是特征向量的維度。
第二階段運(yùn)動(dòng)數(shù)據(jù)先驗(yàn)信息的標(biāo)注
運(yùn)動(dòng)數(shù)據(jù)先驗(yàn)信息的標(biāo)注的目的是為了在最優(yōu)化過程中給未知參數(shù)一個(gè)好的初始值。運(yùn)動(dòng)數(shù)據(jù)可標(biāo)注的信息是我們可以從運(yùn)動(dòng)數(shù)據(jù)中得到,且是我們關(guān)注的信息。例如, 如果給定的訓(xùn)練數(shù)據(jù)集是由一些人做的不同風(fēng)格的走的運(yùn)動(dòng),并且我們想將運(yùn)動(dòng)參數(shù)化為人物與風(fēng)格兩個(gè)參數(shù)向量來表示,那么,我們需要標(biāo)注的信息就是當(dāng)前運(yùn)動(dòng)是由誰做的,當(dāng)前運(yùn)動(dòng)是什么風(fēng)格。
步驟二 定義隨機(jī)過程并指定各個(gè)因子的核函數(shù),構(gòu)造出隨機(jī)過程的協(xié)方差函數(shù)
第一階段根據(jù)步驟一標(biāo)注的先驗(yàn)信息數(shù)目,定義如下形式的隨機(jī)過程
y = /^1)2…,χ'8,) + ε = \νΓ(Φ10Φ2 … ΦΑ ΘΦ^ + ε(I)
其中,M是因子的總數(shù)、ε是O均值的高斯噪音、ΦΜ是χΜ對(duì)應(yīng)的基函數(shù)列向量、 表示克羅內(nèi)克積。St表示當(dāng)前狀態(tài)在運(yùn)動(dòng)序列中得位置。由于ε服從高斯分布,所以公式(1)定義的隨機(jī)過程是一個(gè)高斯過程。
由于運(yùn)動(dòng)數(shù)據(jù)是時(shí)序相關(guān)的數(shù)據(jù),所以在沒有給定時(shí)序信息的前提下,如果用戶沒有給出連續(xù)的控制信號(hào),生成新的運(yùn)動(dòng)數(shù)據(jù)是不可能的。所以在這里我們將St作為一個(gè)特殊的因子。我們將運(yùn)動(dòng)序列中的每一幀作為一個(gè)獨(dú)立的狀態(tài)。通常情況下,一個(gè)給定的運(yùn)動(dòng)序列的幀率是相同的。所以運(yùn)動(dòng)狀態(tài)St可以參數(shù)化為時(shí)間的函數(shù)
權(quán)利要求
1.一種計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法,其特征在于該方法步驟如下步驟(I)、對(duì)運(yùn)動(dòng)數(shù)據(jù)進(jìn)行簡單的預(yù)處理,標(biāo)注出構(gòu)造生成模型所需要的先驗(yàn)信息; 步驟(2)、根據(jù)步驟(I)的標(biāo)注信息定義隨機(jī)過程,根據(jù)各個(gè)因子的代表的具體意義, 為每個(gè)因子指定合適的核函數(shù)來描述它與運(yùn)動(dòng)數(shù)據(jù)間的映射關(guān)系,對(duì)運(yùn)動(dòng)數(shù)據(jù)建模;步驟(3)、構(gòu)造最優(yōu)化目標(biāo)函數(shù),利用數(shù)值最優(yōu)化算法求解未知參數(shù)構(gòu)建生成模型; 步驟(4)、利用步驟(3)得到的生成模型,通過對(duì)分解出的因子進(jìn)行編輯來實(shí)現(xiàn)運(yùn)動(dòng)的合成與編輯。
2.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法,其特征在于所述步驟(I)中對(duì)運(yùn)動(dòng)數(shù)據(jù)預(yù)處理和標(biāo)注的具體內(nèi)容如下步驟(Al)、根據(jù)運(yùn)動(dòng)捕獲數(shù)據(jù)集,計(jì)算特征向量,特征向量包括根節(jié)點(diǎn)位置偏移、根節(jié)點(diǎn)朝向、各個(gè)關(guān)節(jié)點(diǎn)自由度,各個(gè)關(guān)節(jié)的加速度;步驟(A2)、對(duì)每個(gè)運(yùn)動(dòng)片段進(jìn)行標(biāo)注,標(biāo)注內(nèi)容具體包括人物、風(fēng)格、內(nèi)容、性別、年齡信息。
3.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法,其特征在于所述步驟(2)構(gòu)造生成模型的步驟具體如下步驟(BI)、根據(jù)步驟(I)中標(biāo)注的信息,定義一個(gè)隨機(jī)過程;步驟(B2)、根據(jù)每個(gè)因子的代表具體意義,為步驟(BI)定義的隨機(jī)過程中每個(gè)因子指定合適的核函數(shù),核函數(shù)可以是RBF函數(shù),線性函數(shù)等任意有效的核函數(shù);步驟(B3)、在為每個(gè)因子指定核函數(shù)后,計(jì)算出每個(gè)因子的協(xié)方差矩陣,然后將各個(gè)協(xié)方差矩陣連乘得到生成模型的協(xié)方差矩陣,然后對(duì)運(yùn)動(dòng)數(shù)據(jù)建模就完成了。
4.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法,其特征在于所述步驟(3)中構(gòu)建目標(biāo)函數(shù)求解未知參數(shù)的步驟如下步驟(Cl)、構(gòu)造條件概率公式,利用最大后驗(yàn)估計(jì)(MAP)構(gòu)造目標(biāo)函數(shù);步驟(C2)、利用數(shù)值最優(yōu)化算法SCG求解未知參數(shù)得到生成模型。
5.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法,其特征在于所述步驟(4)利用生成模型實(shí)現(xiàn)運(yùn)動(dòng)合成與編輯的具體內(nèi)容如下內(nèi)容(D1)、通過指定因子參數(shù),合成新的運(yùn)動(dòng);內(nèi)容(D2)、通過估計(jì)未知運(yùn)動(dòng)的參數(shù),實(shí)現(xiàn)運(yùn)動(dòng)的從定向,運(yùn)動(dòng)風(fēng)格的從定向;內(nèi)容(D3)、通過插值因子參數(shù)實(shí)現(xiàn)兩種或兩種以上運(yùn)動(dòng)實(shí)現(xiàn)運(yùn)動(dòng)融合來合成出新的運(yùn)動(dòng)。
全文摘要
本發(fā)明是一種計(jì)算機(jī)骨骼動(dòng)畫中基于運(yùn)動(dòng)捕獲數(shù)據(jù)的運(yùn)動(dòng)合成與編輯方法,該方法首先對(duì)給定的運(yùn)動(dòng)數(shù)據(jù)集進(jìn)行簡單的預(yù)處理,標(biāo)記出構(gòu)建生成模型所需要的先驗(yàn)信息;其次根據(jù)標(biāo)注的信息定義多因子高斯隨機(jī)過程來對(duì)運(yùn)動(dòng)數(shù)據(jù)集進(jìn)行建模;然后根據(jù)構(gòu)建的模型構(gòu)造出基于最大后驗(yàn)估計(jì)(MAP)的目標(biāo)函數(shù)并利用SCG最優(yōu)化算法求解未知函數(shù)得到生成模型。最后,通過編輯隱變量因子,利用得到的生成模型實(shí)現(xiàn)了各種各樣的運(yùn)動(dòng)合成與運(yùn)動(dòng)編輯方法,如風(fēng)格轉(zhuǎn)移、風(fēng)格插值、運(yùn)動(dòng)重定向等。本發(fā)明的特點(diǎn)是首先通過利用多因子高斯過程對(duì)一組少量運(yùn)動(dòng)數(shù)據(jù)建模得到生成模型,然后利用該生成模型實(shí)現(xiàn)了一系類交互直觀的運(yùn)動(dòng)編輯方法。
文檔編號(hào)G06T13/00GK102945561SQ201210392668
公開日2013年2月27日 申請(qǐng)日期2012年10月16日 優(yōu)先權(quán)日2012年10月16日
發(fā)明者梁曉輝, 王劍, 郭承禹 申請(qǐng)人:北京航空航天大學(xué)