李順意,侯 進,2,甘凌云
(1.西南交通大學信息科學與技術學院,成都610031;
2.南京大學計算機軟件新技術國家重點實驗室,南京210093)
基于幀間距的運動關鍵幀提取
李順意1,侯 進1,2,甘凌云1
(1.西南交通大學信息科學與技術學院,成都610031;
2.南京大學計算機軟件新技術國家重點實驗室,南京210093)
運動捕獲數據中有大量的冗余數據,不利于運動數據的壓縮、存儲、檢索以及進一步重用。為此,提出一種基于幀間距的運動關鍵幀提取方法,提取代表運動捕獲數據內容的關鍵姿勢。利用四元數之間的距離表示人體姿態差異,將人體各個關節上的總變化作為幀間距,以運動數據首幀作為第一個關鍵幀。通過不斷計算當前幀同最后一個關鍵幀之間的差異,消除差異小于閾值的幀,差異超過閾值的幀被當作為新關鍵幀。對提取關鍵幀集合采用四元數球面插值方法重構。為表現人體運動特征,在重構誤差中引入關節速度分量,用人體姿勢誤差位置與人體關節運動速率之和表示原始運動與重建運動序列之間的重構誤差。實驗結果表明,該方法對原始運動既有較高的壓縮率,又有較強的視覺概括效果。
運動捕獲;關鍵幀提取;幀間距;球面線性插值;重構誤差;視覺概括力
在計算機動畫中,人體角色動畫是很重要的組成部分,但也因人體包含自由度多、維數高,創建一個真實的和逼真的運動模型是非常困難的,人體角色動畫一直是計算機動畫技術中的難點[1]。目前人體角色動畫主要有基于關鍵幀的動畫、基于運動學的動畫、物理模擬動畫與基于捕獲數據的人體動畫技術。近年來,隨著運動捕捉設備的廣泛應用,運動捕獲驅動的三維人體動畫替代傳統關鍵幀動畫[2]成為研究的熱點。運動捕獲驅動方法是利用運動捕捉設備實時記錄表演者肢體在空間中的運動,生成大量有真實感的人體運動數據,然后將捕獲得到的真實感的角色運動數據映射到建立好的人體模型來生成動畫序列。運動數據驅動方法被廣泛地應用到計算機交互游戲、電影廣告、體育訓練以及醫學仿真等多個領域。
本文利用四元數之間的距離表示人體姿態差異,將人體各個關節上的總變化作為幀間距,以運動數據首幀作為第一個關鍵幀,不斷計算當前幀同最后一個關鍵幀之間的差異,消除差異小于設定閾值的幀,差異超過設定閾值被當作為新關鍵幀。對關鍵幀集合使用四元數球面插值方法重構出原始序列幀數相同的重建序列,將原始幀與重建幀的平均幀間距離表示為重構誤差,并在重構誤差中引入速度誤差。
運動捕獲數據是以較高的采樣頻率獲得,平均每秒鐘幾十幀甚至上百幀,每一幀又包含了十幾個甚至幾十個關節點的旋轉信息,得到的數據量龐大且有大量的數據冗余,非常不利于運動捕獲數據的壓縮、存儲、檢索以及進一步重用,需提取出代表運動數據內容的關鍵幀[3],關鍵幀提取技術被廣泛應用于視頻分析與檢索領域[4]。運動關鍵幀提取主要有曲線簡化方法、基于聚類方法和幀消減方法。曲線簡化方法[5]將每一幀運動數據比作高維空間的一個點,運動序列看成是空一條運動軌跡,選擇曲線上一些凹凸點作為關鍵幀。但是該方法采用歐式距離作為幀間的相似度,無法真實地反映人體運動姿態之間的差異。文獻[6]改進了該算法,將人體的骨骼夾角作為運動特征表示,以此確定邊界姿態幀作為候選關鍵幀,然后采用分層曲線方法精選候選關鍵幀,最終獲得關鍵幀集合,該方法對邊界幀具有概括力。文獻[7]提出了基于聚類的關鍵幀提取方法,將相似運動數據聚類,每類選擇一個關鍵幀。該方法能夠提取表示原始數據內容的關鍵幀,但是沒有考慮運動數據之間的時序相關性,容易導致對運動序列分析的失真問題。文獻[8]通過消減不可能為關鍵幀的幀而獲得的關鍵幀序列,用幀消減的方法計算消減幀的重構誤差,從而得到一條重構誤差曲線,根據曲線判斷出具有最優壓縮率的關鍵幀,但其無法保證具有最佳壓縮率下得到關鍵幀的同時具有最小重建誤差,并且未考慮關鍵幀的運動表示能力。文獻[9]提出了一種基于運動分割的關鍵幀提取方法,將段與段之間的分割點作為關鍵幀點,其認為分割點最能表示運動變化最劇烈的姿態,但是該方法未考慮誤差問題,不適合運動壓縮。文獻[10-12]提出一種基于混合遺傳算法的人體捕獲數據關鍵幀提取方法,將遺傳算法與單純行法相結合。文獻[13]提取一種預選策略與重建誤差優化的運動關鍵幀提取方法,將關鍵幀提取分為幀預選和基于重建誤差優化的2個階段。
基于以上分析,如何根據用戶需求使提取運動關鍵幀既能夠滿足大規模實時壓縮需要,又對原始運動具有很好的視覺概括力是關鍵幀的追求目標。
人體有200多塊骨骼,600多個自由度,主要由骨架層、肌肉層和皮膚層組成,但為了降低人體運動復雜度,通常將關節運動簡化。層架骨架模型是一種常用的人體模型,是支撐人體運動最核心的部分,決定了人體運動的各種姿態。兩段剛體關節之間稱為關節,連接相鄰2個關節的剛體是骨骼段,人體關節點的數目決定了運動的豐富性,關節點過多則包含運動信息更豐富,但也加大了編輯和計算復雜度,反之人體模型太簡單,則容易丟失重要運動細節信息,運動不夠細膩。本文將人體骨架模型簡化為29個關節點(含根節點,共計56個自由度)連接起來人體模型,人體樹形結構拓撲如圖1所示。

圖1 人體樹形結構拓撲
3.1 人體運動的描述
人體運動是由根節點的平移和其余各節點相對于其父節點的旋轉來實現的,根節點的平移決定了人體的運動軌跡,根節點的旋轉決定人體的運動方向。除根節點外,其他各節點的旋轉在以父節點為坐標原點的局部坐標系下進行,其他節點旋轉決定了人體旋轉狀態,通過每一段骨架的長度和旋轉矩陣就能計算出各關節點在世界坐標系中的位置,關節點Jm+1在世界坐標系下的位置可由公式求出:

3.2 四元數
四元數q可以記為:

其中,w,x,y,z為實數,四元數可以寫成抽象形式:

3.3 旋轉的表示

表示將向量r繞向量v旋轉θ角。
3.4 四元數球面線性插值與線性插值
四元數球面插值是2個單位四元數在單位超球面上插值,假設有單位四元數q1和q2,從q1到q2的球面線性插值記為Slerp(q1,q2,t),則有:

設相鄰2幀t1和t2根節點位置分別為P1和P2,t時刻跟關節所處的Pt(t1<t<t2),則兩者線性插值為:

3.5 四元數之間的距離



圖2 四元數距離
若q1,q2為2個單位四元數且q2q-1=[ω,x,y,z],2個四元數之間的距離表示為:

在四元數表示法中,人體可以表示為離散時間向量函數:

其中,p(t)∈R3表示根關節平移運動;qi(i=1, 2,…,m)表示關節i旋轉運動,在一個運動序列中不同時刻t1,t2上的2幀,它們之間的距離D(t1,t2)表示為:

d(qi(t1),qi(t2))表示在t1,t2時刻關節i旋轉的四元數距離,wi(i=1,2,…,m)為各關節對運動姿勢影響程度大小。
如果有不同的運動序列A與運動序列B,A的每一幀到B的每一幀之間的距離也可以用兩者之間四元數的距離表示:




表1 各關節點對應權值
數組keynum[j]用來記錄提取的關鍵幀集合,lastkey表示當前為止搜索到最后的關鍵幀,n為運動序列長度,δ為事先設定的閾值,主要根據用戶針對不同運動對壓縮率需求確定,keynum為提取關鍵幀數目,算法步驟如下:
Step 1將第一幀作為關鍵幀加入到keynum,并使lastkey=1,初始化循環變量t=2。
Step 2若t≥n,則算法停止;否則計算幀間距離d=D(t,lastkey)。
Step 3若d≥δ,第t幀作為關鍵幀被提取保存在keynum[j],并使lastkey=t。
Step 4t=t+1,返回Step2;直到算法結束,keynum[j],j∈[1,2,…,keynum]記錄了所有關鍵幀。
運動重構是在提取關鍵集合后,對相鄰關鍵幀之間的非關鍵幀進行插值重構,從而重構出與原始序列相同幀數,重建算法步驟如下:
Step 1初始化循環變量j=0。
Step 2若j≥keynum-1,則算法結束;否則取相鄰關鍵幀T1=keynum[j],T2=keynum[j+1]。
Step 3對T1與T2之間的非關鍵幀進行插值重建,根關節采用一般線性插值,其他關節采用四元數球面插值。
Step 4j=j+1,返回Step2。
真實的人體運動具有較強的真實感,為較好地捕捉人體動態特征,考慮運動數據時序性與運動特性。用人體姿勢誤差位置與人體關節運動速率差來表示原始運動與重建運動序列之間的誤差(重構誤差),重構誤差用原始幀與重建幀的平均幀間距離表示。重構誤差與關鍵幀提取數目、人體關節運動速率密切相關,一般來說往往越少關鍵幀提取,重構誤差越大。
設m1為原始運動序列,m2為關鍵幀集合插值重構序列,長度均為n,重構誤差E(m1,m2)表示為:



D表示人體姿勢加權距離,主要用以衡量人體姿勢的位置誤差,表示為:

5.1 實驗結果
本文在Windows7操縱系統下,選擇Microsoft Visual Studio 2010作為開發平臺,使用OpenGL和卡耐基梅隆大學運動捕獲數據庫,以MFC框架搭建了虛擬人運動編輯平臺,在該平臺上實現對運動捕獲數據關鍵幀的提取功能。選擇骨架文件是asf(acclaim skeleton file)格式,運動數據是amc(acclaim motion capture data)格式,實驗在英特爾core i3M380, 2.53 GHCPU,2 GB內存上的PC上進行。
實驗選取行走、騰空跳躍、翻筋斗3種運動類型來測試本文算法的有效性,采樣頻率均為40 f/s。實驗1對運動長度為150 f的行走走路運動分別采用文獻[5]方法、文獻[7]方法、文獻[9]方法與本文方法進行關鍵幀提取,關鍵幀提取效果如圖3~圖6所示。實驗2對運動長度為144幀的騰空跳躍運動分別采用文獻[5]方法、文獻[7]方法、文獻[9]方法與本文方法提取關鍵幀,關鍵幀提取效果如圖7~圖10所示。實驗3對運動長度為296幀的翻筋斗運動分別采用文獻[5]方法、文獻[7]方法、文獻[9]方法與本文方法提取關鍵幀,關鍵幀提取效果如圖11~圖14所示。

圖3 文獻[5]方法提取的行走關鍵幀集合

圖4 文獻[7]方法提取的行走關鍵幀集合

圖5 文獻[9]方法提取的行走關鍵幀集合

圖6 本文方法提取的行走關鍵幀集合

圖7 文獻[5]方法提取的騰空跳躍關鍵幀集合

圖8 文獻[7]方法提取的騰空跳躍關鍵幀集合

圖9 文獻[9]方法提取的騰空跳躍關鍵幀集合

圖10 本文方法提取的騰空跳躍關鍵幀集合

圖11 文獻[5]方法提取的翻筋斗關鍵幀集合

圖12 文獻[7]方法提取的翻筋斗關鍵幀集合

圖13 文獻[7]方法提取的翻筋斗關鍵幀集合

圖14 本文方法提取的翻筋斗關鍵幀集合
5.2 實驗分析結果
從圖3~圖5提取關鍵幀集合視覺效果來看,本文方法較好地對行走運動進行概括,而文獻[5]方法提取的關鍵幀無法反映運動幀之間的真實差異,文獻[7]方法與文獻[9]方法雖然也能概括行走運動序列,一些關鍵幀仍然丟失且可能導致運動序列分析的失真。
從圖7~圖10提取關鍵幀視覺效果可以看出,本文提出的方法對騰空跳躍運動提取沒有丟失重要關鍵幀,文獻[5]方法提取幀數過少,無法概括運動內容,文獻[7]方法與文獻[9]方法雖然也能概括行走運動序列,但是其一些關鍵幀仍然丟失且幀間距過大。
從圖11~圖14提取關鍵幀視覺效果來看,本文方法提取關鍵幀集合能較好地對翻筋斗運動進行概括,文獻[5]方法關鍵幀與文獻[7]方法無法反映運動幀之間的真實差異,丟失在關鍵時刻的過度幀,容易造成對運動序列內容分析的失真,文獻[9]方法雖然也能概括行走運動序列,但視覺效果上不如本文方法。
運動重建部分采用使用四元數球面插值方法進行了重建,選用四元數插值算法原因是其能保證提取相鄰關鍵幀鍵幀姿態差異較大時,也能插值生成較平滑的中間幀動畫。重構誤差大小與關鍵幀提取數目有關,對150幀行走運動的重建誤差曲線如圖15所示。
從圖15可以看出提取關鍵幀數目越少,重構誤差越大。u為加權擬合參數,主要調節速率差與位置差的加權比例。圖16繪制的是144幀騰空跳躍運動的重建誤差曲線,可以看出騰空跳躍運動特性更加明顯,當然其加權擬合參數u越大,重構誤差也比步行運動大。

圖15 行走運動重建誤差曲線

圖16 騰空跳躍重建誤差曲線
本文提出的方法在重構誤差中引入速度分量,充分考慮了人體運動節奏性強的特點,從視覺上看,提取關鍵幀對原始運動數據具有較好的視覺概括能力。針對不同運動類型都壓縮率較高(小于7%)且能代表運動內容,滿足了大規模實時壓縮的需要,大大降低了運動編輯的復雜度。今后工作是研究一種自動評價指標,甚至引入語義信息,從而更加精確地提取人體邊界姿勢,更好地致力于大規模運動捕捉數據的合成、檢索與編輯。
[1] 劉賢梅,張巧生.數據驅動的人體動畫合成研究綜述[J].計算機工程與設計,2010,31(18):4054-4057.
[2] 劉賢梅.數據驅動的人體動畫的關鍵幀技術研究綜述[J].計算機工程與設計,2011,32(3):1006-1009.
[3] 潘志庚,呂 培,徐明亮,等.低維人體運動數據驅動的角色動畫生成方法綜述[J].計算機輔助設計與圖形學學報,2013,25(12):1775-1785.
[4] 孫淑敏,張建明,孫春梅.基于改進K-means算法的關鍵幀提取[J].計算機工程,2012,38(23):169-172.
[5] 楊 濤,肖 俊,吳 飛,等.基于分層曲線簡化的運動捕獲數據關鍵幀提取[J].計算機輔助設計與圖形學學報,2006,18(11):1691-1697.
[6] 潘 紅,肖 俊.基于關鍵幀的三維人體運動檢索[J].計算機輔助設計與圖形學學報,2009,21(2):214-222.
[7] Zhang Qiang,Yu Shaopei.An Efficient Method of Keyframe Extraction Based on a Cluster Algorithm[J]. Journal of Human Kinetics,2013,39(1):5-14.
[8] 劉云根,劉金剛.重建誤差最優化的運動捕獲數據關鍵幀提取[J].計算機輔助設計與圖形學學報,2010, 22(4):670-675.
[9] 朱登明,王兆其.基于運動序列分割的運動捕獲數據關鍵幀提取[J].計算機輔助設計與圖形學學報, 2008,20(6):787-792.
[10] 劉賢梅,郝愛民,趙 丹.基于混合遺傳算法的人體運動捕獲數據關鍵幀提取[J].模式識別與人工智能, 2011,24(5):619-628.
[11] Liu Xianmei,Hao Aimin,Zhao Dan.Optimization-based Key Frame ExtractionforMotionCaptureAnimation[J].The Visual Computer,2013,29(1):85-95.
[12] 劉賢梅,趙 丹.四元數樣條插值的人體運動數據重構[J].計算機工程與應用,2012,47(36):151-154.
[13] 蔡美玲,鄒北驥,辛國江.預選策略和重建誤差優化的運動捕獲數據關鍵幀提取[J].計算機輔助設計與圖形學學報,2012,24(11):1485-1492.
編輯 顧逸斐
Extraction of Motion Key-frame Based on Inter-frame Pitch
LI Shunyi1,HOU Jin1,2,GAN Lingyun1
(1.School of Information Science and Technology,Southwest Jiaotong University,Chengdu 610031,China;
2.State Key Laboratory for Novel Software Technology,Nanjing University,Nanjing 210093,China)
To solve the problem that the motion capture data has a large number of data redundancy,this paper proposes a key frame extraction method based on inter-frame pitch.In order to compress,storage,reconstruct and further reuse motion data,key-frame is needed to be extracted which represents the content of the motion.Quaternion is introduced to represent the difference between two rotations.The distance between two frames is defined by the total rotation differences and first frame is regarded as the first key frame.Then,calculate the difference between the current frame and the last key frame continuously.The frame is eliminated when the difference is smaller than the set threshold or the opposite is reserved for the new key frame.Spherical linear interpolation is used to reconstruct the sequence.To express the characteristics of human motion,the joint velocity is introduced.Reconstruction error is defined by the human body posture error of position and the motion speed error between the original frame and the reconstructed frame.Experimental result demonstrates that the original motion capture can be compressed in a high ratio and gives a good visual summary performance.
motion capture;key-frame extraction;inter-frame gap;spherical linear interpolation;reconstruction error; visual summary performance
李順意,侯 進,甘凌云.基于幀間距的運動關鍵幀提取[J].計算機工程,2015,41(2):242-247.
英文引用格式:Li Shunyi,Hou Jin,Gan Lingyun.Extraction of Motion Key-frame Based on Inter-frame Pitch[J]. Computer Engineering,2015,41(2):242-247.
1000-3428(2015)02-0242-06
:A
:TP391
10.3969/j.issn.1000-3428.2015.02.046
國家自然科學基金資助面上項目(61371165);浙江大學CAD&CG國家重點實驗室開放課題基金資助項目(A1416);計算機軟件新技術國家重點實驗室開放課題基金資助項目(KFKT2013B22);四川省動漫研究中心2012年度科研基金資助項目(DM201204)。
李順意(1988-),男,碩士研究生,主研方向:人體動畫;侯 進(通訊作者),副教授;甘凌云,碩士研究生。
2014-03-24
:2014-05-05E-mail:jhou@swjtu.edu.cn