基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法
【專利摘要】本發(fā)明公開了一種基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,首先加載解析人體運(yùn)動(dòng)數(shù)據(jù)庫,將運(yùn)動(dòng)數(shù)據(jù)轉(zhuǎn)換到世界坐標(biāo)系下,根據(jù)人體運(yùn)動(dòng)周期性規(guī)律進(jìn)行運(yùn)動(dòng)分割,提取短運(yùn)動(dòng)段特征,進(jìn)行基于短運(yùn)動(dòng)段特征和基于DTW幀的相似度評(píng)估,基于相似度值確定運(yùn)動(dòng)圖的邊權(quán)值,構(gòu)建運(yùn)動(dòng)圖;其次由用戶選取兩個(gè)需要合成的運(yùn)動(dòng)段,基于構(gòu)建好的運(yùn)動(dòng)圖搜索一條路徑,確定路徑跳轉(zhuǎn)點(diǎn),插值連接合成一段新的運(yùn)動(dòng)。本發(fā)明基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,首先構(gòu)建的運(yùn)動(dòng)圖結(jié)合了高層特征,避免了某些幀的局部相似合成在一起的錯(cuò)誤;其次基于運(yùn)動(dòng)圖搜索的路徑,確定跳轉(zhuǎn)點(diǎn)限定于運(yùn)動(dòng)首尾周期,減少了無效子圖的生成,提高了運(yùn)動(dòng)合成效率。
【專利說明】基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)視覺【技術(shù)領(lǐng)域】,具體涉及一種基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方 法。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)圖像技術(shù)及其相關(guān)衍生品的高速發(fā)展,使得運(yùn)動(dòng)捕捉技術(shù)逐漸成為虛 擬現(xiàn)實(shí)、計(jì)算機(jī)視覺、影視制作、游戲娛樂和計(jì)算機(jī)動(dòng)畫等領(lǐng)域的數(shù)據(jù)獲取手段。該技術(shù)借 助幾十個(gè)或上百個(gè)傳感器來標(biāo)記物體的運(yùn)動(dòng)軌跡,通過記錄傳感器的物理信息來獲取該物 體的速度、位置等參數(shù),進(jìn)而模擬物體運(yùn)動(dòng)軌跡。因?yàn)椴东@的數(shù)據(jù)具有高度逼真性和實(shí)時(shí)處 理能力使之成為應(yīng)用范圍最廣的方法。然而捕獲數(shù)據(jù)造價(jià)高、對(duì)場(chǎng)地環(huán)境要求嚴(yán)格,而且 人眼對(duì)人體運(yùn)動(dòng)敏感,一旦發(fā)現(xiàn)運(yùn)動(dòng)不合適,只能重新捕捉,這是對(duì)已有捕捉數(shù)據(jù)資源的浪 費(fèi)。因此對(duì)捕捉數(shù)據(jù)的重用性研究成為了一項(xiàng)非常有意義的方向:即利用已有的數(shù)據(jù)資源, 通過編輯、融合、合成等操作搭建運(yùn)動(dòng)網(wǎng)絡(luò),產(chǎn)生豐富多變的新的運(yùn)動(dòng)序列,提高工作效率、 節(jié)省制作成本。
[0003] 基于運(yùn)動(dòng)圖的運(yùn)動(dòng)合成方法充分利用運(yùn)動(dòng)數(shù)據(jù)庫,近些年成為了研究熱點(diǎn)。運(yùn)動(dòng) 圖的概念最初是由Arikan和kovar等人提出的:將已有的捕捉數(shù)據(jù)構(gòu)建成一種有向圖結(jié) 構(gòu),確定并基于運(yùn)動(dòng)圖跳轉(zhuǎn)點(diǎn)建立有向連接,合成新的運(yùn)動(dòng)序列。運(yùn)動(dòng)圖的邊是原有的運(yùn) 動(dòng)片段或新生成的過渡運(yùn)動(dòng)片段,頂點(diǎn)是不同運(yùn)動(dòng)片段之間的跳轉(zhuǎn)點(diǎn)。運(yùn)動(dòng)圖合成方法的 提出將運(yùn)動(dòng)序列合成的問題轉(zhuǎn)化為根據(jù)運(yùn)動(dòng)圖尋找路徑的問題。因此運(yùn)動(dòng)圖結(jié)構(gòu),運(yùn)動(dòng)圖 邊、頂點(diǎn)的確定以及基于圖的搜索是研究重點(diǎn)也是挑戰(zhàn)。首先,構(gòu)建運(yùn)動(dòng)圖的最大瓶頸在于 需要計(jì)算數(shù)據(jù)庫中運(yùn)動(dòng)序列每幀的相似距離值,所以運(yùn)動(dòng)圖可以達(dá)到的規(guī)模是有限的;其 次,構(gòu)建運(yùn)動(dòng)圖的邊權(quán)值時(shí)僅通過幀間評(píng)估只是局部的相似性,沒有考慮到全局的邏輯相 似性,有可能造成不同類型的運(yùn)動(dòng)片段僅由于某些幀的相似而連接在一起的錯(cuò)誤。
[0004] 后來的研究在這個(gè)思路的基礎(chǔ)上做了改進(jìn),其中有代表性的工作有:Mahmudi等 人提出了一種基于特征的運(yùn)動(dòng)圖構(gòu)建方法,該方法運(yùn)用特征限制候選跳轉(zhuǎn)點(diǎn)的選取,相比 于傳統(tǒng)的方式避免了數(shù)據(jù)庫中每對(duì)幀的比較,提高了運(yùn)動(dòng)圖構(gòu)建效率。然而該方法過于依 賴所選擇的特征,有可能造成多樣化的運(yùn)動(dòng)對(duì)所選的特征失效而引起合成錯(cuò)誤。Liming Zhao等人將運(yùn)動(dòng)序列分為多個(gè)接觸狀態(tài),比如:單腳站立、雙腳站立、手觸摸地面等。相對(duì) 于傳統(tǒng)運(yùn)動(dòng)圖,該運(yùn)動(dòng)圖結(jié)構(gòu)具有良好的連通性,但是同時(shí)該算法構(gòu)建的時(shí)間過于漫長,因 為算法將具有同樣接觸狀態(tài)的動(dòng)作連接在一起生成了過多的無效的子圖。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是提供一種基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,解決了現(xiàn)有運(yùn)動(dòng)圖合 成方法構(gòu)建時(shí)間過于漫長的問題。
[0006] 本發(fā)明所采用的技術(shù)方案是,基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,首先加載解析人 體運(yùn)動(dòng)數(shù)據(jù)庫(BVH文件),將運(yùn)動(dòng)數(shù)據(jù)轉(zhuǎn)換到世界坐標(biāo)系下,根據(jù)人體運(yùn)動(dòng)周期性規(guī)律進(jìn) 行運(yùn)動(dòng)分割,提取短運(yùn)動(dòng)段特征,進(jìn)行基于短運(yùn)動(dòng)段特征和基于DTW幀的相似度評(píng)估,基于 相似度值確定運(yùn)動(dòng)圖的邊權(quán)值,構(gòu)建運(yùn)動(dòng)圖;其次由用戶選取兩個(gè)需要合成的運(yùn)動(dòng)段,基于 構(gòu)建好的運(yùn)動(dòng)圖搜索一條路徑,確定路徑跳轉(zhuǎn)點(diǎn),插值連接合成一段新的運(yùn)動(dòng)。
[0007] 本發(fā)明的特點(diǎn)在于,
[0008] 具體包括以下步驟:
[0009] 步驟1,加載解析人體運(yùn)動(dòng)數(shù)據(jù)庫,將人體運(yùn)動(dòng)數(shù)據(jù)庫的運(yùn)動(dòng)數(shù)據(jù)轉(zhuǎn)換在世界坐標(biāo) 系下;
[0010] 步驟2,根據(jù)人體運(yùn)動(dòng)周期性規(guī)律,提取雙腳向前位置關(guān)系和步距時(shí)序關(guān)系特征將 長運(yùn)動(dòng)序列分割為多個(gè)短運(yùn)動(dòng)序列段;
[0011] 步驟3,基于步驟2分割的短運(yùn)動(dòng)序列段,針對(duì)移動(dòng)類的運(yùn)動(dòng),提取短段人體運(yùn)動(dòng) 特征;
[0012] 步驟4,基于步驟3提取的短段人體運(yùn)動(dòng)特征,首先基于短段內(nèi)進(jìn)行幀時(shí)序?qū)R操 作,然后進(jìn)行基于短段人體運(yùn)動(dòng)特征和基于DTW幀的相似度評(píng)估;
[0013] 步驟5,基于步驟4得到的相似度值,確定運(yùn)動(dòng)圖的邊權(quán)值,構(gòu)建運(yùn)動(dòng)圖;由用戶選 取兩段需要合成的運(yùn)動(dòng)序列,基于構(gòu)建好的運(yùn)動(dòng)圖,搜索一條代價(jià)最小的合成路徑;
[0014] 步驟6,基于步驟5的合成路徑,確定路徑跳轉(zhuǎn)點(diǎn),基于跳轉(zhuǎn)點(diǎn)運(yùn)用四元數(shù)球面插 值算法和線性插值算法插值連接生成一段新的運(yùn)動(dòng)。
[0015] 步驟1中,人體運(yùn)動(dòng)數(shù)據(jù)庫的運(yùn)動(dòng)數(shù)據(jù)是在相對(duì)父節(jié)點(diǎn)局部坐標(biāo)系下存儲(chǔ)的,基 于樹形的骨架結(jié)構(gòu),運(yùn)用公式(1)采用遞歸方法將運(yùn)動(dòng)數(shù)據(jù)解析在世界坐標(biāo)系下:
[0016] Pi(J)=T^rootiRi ^...Ri(k)...p〇(J) (I)
[0017] 其中,p,為運(yùn)動(dòng)序列的第i時(shí)刻關(guān)節(jié)點(diǎn)\在世界坐標(biāo)系的坐標(biāo);T產(chǎn)乂 根節(jié)點(diǎn)的平移和旋轉(zhuǎn)變換矩陣,Ri(k)為骨架結(jié)構(gòu)中關(guān)節(jié)Nk相對(duì)其直接父節(jié)點(diǎn)的旋轉(zhuǎn)變換矩 陣;Nk為樹形人體骨架中,從根節(jié)點(diǎn)到節(jié)點(diǎn)\_之間的任意節(jié)點(diǎn);p 為初始時(shí)刻\在其父 節(jié)點(diǎn)的局部坐標(biāo)系下的偏移量。
[0018] 步驟2中,根據(jù)人體運(yùn)動(dòng)周期性規(guī)律,采用雙腳向前位置關(guān)系以及步距時(shí)序關(guān)系 為依據(jù)進(jìn)行運(yùn)動(dòng)分割,依據(jù)公式如下(2)和(3)所示:
【權(quán)利要求】
1. 基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,首先加載解析人體運(yùn)動(dòng)數(shù)據(jù)庫,將運(yùn) 動(dòng)數(shù)據(jù)轉(zhuǎn)換到世界坐標(biāo)系下,根據(jù)人體運(yùn)動(dòng)周期性規(guī)律進(jìn)行運(yùn)動(dòng)分割,提取短運(yùn)動(dòng)段特征, 進(jìn)行基于短運(yùn)動(dòng)段特征和基于DTW幀的相似度評(píng)估,基于相似度值確定運(yùn)動(dòng)圖的邊權(quán)值, 構(gòu)建運(yùn)動(dòng)圖;其次由用戶選取兩個(gè)需要合成的運(yùn)動(dòng)段,基于構(gòu)建好的運(yùn)動(dòng)圖搜索一條路徑, 確定路徑跳轉(zhuǎn)點(diǎn),插值連接合成一段新的運(yùn)動(dòng)。
2. 根據(jù)權(quán)利要求1所述的基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,具體包括以 下步驟: 步驟1,加載解析人體運(yùn)動(dòng)數(shù)據(jù)庫,將人體運(yùn)動(dòng)數(shù)據(jù)庫的運(yùn)動(dòng)數(shù)據(jù)轉(zhuǎn)換在世界坐標(biāo)系 下; 步驟2,根據(jù)人體運(yùn)動(dòng)周期性規(guī)律,提取雙腳向前位置關(guān)系和步距時(shí)序關(guān)系特征將長運(yùn) 動(dòng)序列分割為多個(gè)短運(yùn)動(dòng)序列段; 步驟3,基于步驟2分割的短運(yùn)動(dòng)序列段,針對(duì)移動(dòng)類的運(yùn)動(dòng),提取短段人體運(yùn)動(dòng)特征; 步驟4,基于步驟3提取的短段人體運(yùn)動(dòng)特征,首先基于短段內(nèi)進(jìn)行幀時(shí)序?qū)R操作, 然后進(jìn)行基于短段人體運(yùn)動(dòng)特征和基于DTW幀的相似度評(píng)估; 步驟5,基于步驟4得到的相似度值,確定運(yùn)動(dòng)圖的邊權(quán)值,構(gòu)建運(yùn)動(dòng)圖;由用戶選取兩 段需要合成的運(yùn)動(dòng)序列,基于構(gòu)建好的運(yùn)動(dòng)圖,搜索一條代價(jià)最小的合成路徑; 步驟6,基于步驟5的合成路徑,確定路徑跳轉(zhuǎn)點(diǎn),基于跳轉(zhuǎn)點(diǎn)運(yùn)用四元數(shù)球面插值算 法和線性插值算法插值連接生成一段新的運(yùn)動(dòng)。
3. 根據(jù)權(quán)利要求2所述的基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,步驟1中,人 體運(yùn)動(dòng)數(shù)據(jù)庫的運(yùn)動(dòng)數(shù)據(jù)是在相對(duì)父節(jié)點(diǎn)局部坐標(biāo)系下存儲(chǔ)的,基于樹形的骨架結(jié)構(gòu),運(yùn) 用公式(1)采用遞歸方法將運(yùn)動(dòng)數(shù)據(jù)解析在世界坐標(biāo)系下:
其中,PiU)為運(yùn)動(dòng)序列的第i時(shí)刻關(guān)節(jié)點(diǎn)\在世界坐標(biāo)系的坐標(biāo);TR產(chǎn)為根節(jié) 點(diǎn)的平移和旋轉(zhuǎn)變換矩陣,Ri(k)為骨架結(jié)構(gòu)中關(guān)節(jié)Nk相對(duì)其直接父節(jié)點(diǎn)的旋轉(zhuǎn)變換矩陣; Nk為樹形人體骨架中,從根節(jié)點(diǎn)到節(jié)點(diǎn)\之間的任意節(jié)點(diǎn);p為初始時(shí)刻N(yùn)其父節(jié)點(diǎn) 的局部坐標(biāo)系下的偏移量。
4. 根據(jù)權(quán)利要求2所述的基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,步驟2中,根 據(jù)人體運(yùn)動(dòng)周期性規(guī)律,采用雙腳向前位置關(guān)系以及步距時(shí)序關(guān)系為依據(jù)進(jìn)行運(yùn)動(dòng)分割, 依據(jù)公式如下(2)和(3)所示:
其中,PaCe_Changed函數(shù)表示將雙腳向前步距時(shí)序曲線的凹凸點(diǎn)作為運(yùn)動(dòng)分割點(diǎn),分 割點(diǎn)時(shí)刻函數(shù)賦值為1,否則賦值為〇 ;Fr〇unt_f〇〇t函數(shù)表示某一時(shí)刻的右腳是否在左腳 前方,當(dāng)右腳在前方時(shí),賦值為1,否則賦值為0。
5. 根據(jù)權(quán)利要求2所述的基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,步驟3中,由 于移動(dòng)類的人體運(yùn)動(dòng),雙腳關(guān)節(jié)點(diǎn)的運(yùn)動(dòng)特征最能反映運(yùn)動(dòng)特征,因此基于世界坐標(biāo)系下 的關(guān)節(jié)點(diǎn)位置點(diǎn)集進(jìn)行以下的特征提?。翰椒?、步速、行步加速度、雙腳空間位置關(guān)系特征; 假設(shè)世界坐標(biāo)系下的第i幀的位置點(diǎn)集為C(i,world) {C(i,hip),C(i,ihip),C(i,rhip),? ? ?,C(i,rf〇〇t), C(uf(rati},針對(duì)雙腳關(guān)節(jié)點(diǎn)的特征提取進(jìn)行說明: (1) 步幅:人體行步時(shí)雙腳中心距離的最大值: Dstep=max(D(i,foot)) (4) 其中,D(i,foot) = |C(i,rf(rat)-C(i,lf(Krt)|為第i幀雙腳中心的距離,步幅即是從中提取的 最大距離值; (2) 步速:行步速度,即相鄰兩幀雙腳中心距離差;表示如下(5)所示: V(i,foot) =D(i+1,foot)-D(i,foot) (5) (3) 行步加速度:幀間的步速變化率,采用前后3幀的時(shí)序變化率,表達(dá)如下(6)所示:A(i,f〇〇t)=V(i+3,foot)-V(i-3,foot)/6 (6) (4) 雙腳前后位置關(guān)系:左右雙腳前后位置關(guān)系,表達(dá)如下(7)所示,當(dāng)右腳在前時(shí),函 數(shù)值賦1,否則函數(shù)值賦〇,
6.根據(jù)權(quán)利要求2所述的基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,步驟4中,相 似度包括數(shù)值相似和邏輯相似;數(shù)值相似是運(yùn)動(dòng)序列底層幀間的相似,邏輯相似是運(yùn)動(dòng)序 列高層特征的相似;將兩者進(jìn)行加權(quán)平均確定運(yùn)動(dòng)序列的相似度值,表示為如下公式(8) 所示: D(i,j) =w*D(i,j) frame+ (1-w)*D(i,j)fea (8) 其中D(i,j)表示運(yùn)動(dòng)序列對(duì)(i,j)的相似距離值,D(i,j)fMe是基于DTW的幀間相似 距離值,權(quán)值為w;Dist(i,j)fea是基于特征的相似距離值,權(quán)值為1-w; 假設(shè)運(yùn)動(dòng)序列文件共包含m個(gè)運(yùn)動(dòng)短段,下式(9)為基于DTW的幀間相似度評(píng)估公式:
其中,分別求m個(gè)短段基于DTW幀間的相似距離值,Ddtw (i,j,k)表示第k個(gè)短段的相似 距離值,對(duì)其求和后平均即為該運(yùn)動(dòng)序列對(duì)的幀間相似距離值; DTW算法的原理是從兩個(gè)序列的起始元素對(duì)開始,運(yùn)用公式(10)確定下一對(duì)元素的移 動(dòng)順序求得局部最短距離,依次迭代至最終元素對(duì),得到整個(gè)序列的累積最短距離; R(i,j) =d(i,j)+min{R(i-l,j-1),R(i~l,j),R(i,j-1)} (10) 其中,min{R(i-l,j-l),R(i-l,j),R(i,j-1)}表示相鄰網(wǎng)格局部最短距離值,R(i-1,j-1)表示選用了沿斜線移動(dòng),R(i-1,j)表示平行移動(dòng),R(i,j-1)表示堅(jiān)直移動(dòng); d(i,j)表示Q(i),C(j)間的距離值; 運(yùn)用全局約束窗口的DTW算法限定移動(dòng)范圍,公式如下(11)所示:
其中,m和n為兩運(yùn)動(dòng)序列的幀數(shù),(i,j)為動(dòng)態(tài)匹配的幀序列對(duì),S表示動(dòng)態(tài)匹配時(shí) 幀序列對(duì)移動(dòng)范圍; 基于特征的相似度評(píng)估公式如下(12)所示:
分別求m個(gè)短運(yùn)動(dòng)段的基于特征的相似距離值,其中DfM(i,j,k)為第k個(gè)短段的相似 距離值,求和后平均即為該運(yùn)動(dòng)序列對(duì)基于特征相似距離值。
7. 根據(jù)權(quán)利要求2所述的基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,步驟5中,運(yùn) 動(dòng)圖邊的權(quán)值與相似度值呈正相關(guān),數(shù)據(jù)庫中的運(yùn)動(dòng)序列經(jīng)過相似度評(píng)估構(gòu)建一個(gè)相似度 鄰接矩陣,運(yùn)用公式(13)求出對(duì)應(yīng)運(yùn)動(dòng)圖邊的權(quán)值: Weight(i,j) =exp(Dist(i,j)) (13) 其中,Weight(i,j)為運(yùn)動(dòng)圖邊的權(quán)值,Dist(i,j)為鄰接矩陣某一元素的相似度值, 運(yùn)動(dòng)圖邊的權(quán)值與該值呈指數(shù)關(guān)系。
8. 根據(jù)權(quán)利要求2所述的基于運(yùn)動(dòng)圖的人體運(yùn)動(dòng)合成方法,其特征在于,步驟6中,首 先將路徑中相鄰運(yùn)動(dòng)序列最相似的幀對(duì)確定為過渡幀對(duì),然后采用四元數(shù)球面插值方法基 于旋轉(zhuǎn)數(shù)據(jù)插值,采用線性插值方法基于平移數(shù)據(jù)插值; 四元數(shù)球面插值公式如下(14)所示:
其中,PpP1為兩個(gè)關(guān)鍵幀的某關(guān)節(jié)點(diǎn)的旋轉(zhuǎn)四元數(shù),Q為其角度差,t為插值參數(shù),用 來控制插值過程中平滑過渡的速度;隨著t值的改變,插值角度改變,當(dāng)t接近1時(shí),插值p 的角度旋轉(zhuǎn)越接近P1;當(dāng)t接近O時(shí),插值P的角度旋轉(zhuǎn)接近PW 線性插值算法公式如下(15)所示: PiUi,yi;Zi) =UP1U1,y1;Z1H(I-U)P2U2,y2,z2)uG[〇, 1] (15) 其中,ue[0, 1]是插值參數(shù),用來控制起始幀與結(jié)束幀之間的過渡速度,通過線性插 值得到的插值節(jié)點(diǎn)Pi (Xi, Yi, Zi)。
【文檔編號(hào)】G06T7/20GK104504731SQ201410804589
【公開日】2015年4月8日 申請(qǐng)日期:2014年12月19日 優(yōu)先權(quán)日:2014年12月19日
【發(fā)明者】趙明華, 原永芹, 丁曉楓, 莫瑞陽, 曹慧, 石爭浩, 王映輝 申請(qǐng)人:西安理工大學(xué)