亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

三維人體運動數(shù)據(jù)關鍵幀提取方法

文檔序號:6556636閱讀:417來源:國知局
專利名稱:三維人體運動數(shù)據(jù)關鍵幀提取方法
技術領域
本發(fā)明涉及計算機三維動畫技術及多媒體數(shù)據(jù)處理領域,尤其涉及一種三維人體運動數(shù)據(jù)關鍵幀提取方法。
背景技術
近年來隨著運動捕獲設備的廣泛使用,生成大量具有真實感的三維人體運動數(shù)據(jù),這些數(shù)據(jù)被廣泛應用于計算機游戲、動畫生成及醫(yī)學仿真等多個領域。由于人體運動是以較高的采樣頻率被捕獲,為了便于大量三維人體運動數(shù)據(jù)的壓縮存儲、檢索、瀏覽及更進一步的運動編輯,對運動數(shù)據(jù)進行關鍵(姿勢)幀提取是非常有用的。
關鍵幀提取是一種被廣泛應用于視頻分析與檢索領域的技術,如基于鏡頭邊界、顏色特征、運動分析及基于聚類等視頻關鍵幀提取方法。與二維時序視頻數(shù)據(jù)中的關鍵幀不同,在人體運動數(shù)據(jù)中,關鍵幀指能夠代表運動序列的三維骨架數(shù)據(jù)。現(xiàn)有人體運動數(shù)據(jù)關鍵幀提取方法主要分為兩大類等間隔采樣及自適應采樣。等間隔采樣容易在運動緩慢部分過采樣,造成數(shù)據(jù)冗余;在運動激烈部分欠采樣,丟失運動細節(jié)。自適應采樣正好解決了這一問題?!队嬎銠C視覺與圖像理解》雜志2003年第二期中(Computer Vision and ImageUnderstanding,2003,92(2-3)265-284)公布了一種基于聚類的關鍵幀提取方法以實現(xiàn)自適應采樣將N幀運動數(shù)據(jù)聚類到K個群集合中,取各集合中的首幀作為關鍵幀。《計算機輔助設計與圖形學學報》2004年第五期中(2004,16(5)719-732)公布的方法將人體各關節(jié)上總的旋轉變化作為幀間距,通過逐幀比較幀間距變化情況來確定關鍵幀。IEEE醫(yī)學與生物工程2001年會論文集中(In Proceedings of 23rdAnnual International Conference ofthe IEEE Engineering in Medicine and Biology Society(EMBC),2001,21167-1169)公布的方法將原始人體運動數(shù)據(jù)的每一幀看成高維空間中的一點,通過按序連接整段數(shù)據(jù)中的數(shù)據(jù)點,將原始運動視為高維空間中的一段曲線,然后采用曲線簡化算法提取關鍵幀。這些自適應關鍵幀提取方法主要關注兩個方面,一是運動特征的表達,二是如何對關鍵幀提取方法進行量化分析。
為了對運動捕獲數(shù)據(jù)進行處理,已有多種運動特征表示方法被提出如《計算機視覺與圖像理解》雜志2003年第二期中(Computer Vision and Image Understanding,2003,92(2-3)265-284)公布的方法采用層次化運動描述,把人的關節(jié)點分為五層表示;《美國計算機學會計算機圖形專業(yè)組’02年會議論文集》(ACM SIGGRAPH’02 ConferenceProceedings,pp.491-500)公布了一種兩層運動特征表示方法,底層用馬爾可夫模型表達運動特征,捕獲運動細節(jié),高層是運動數(shù)據(jù)的歸納,表征幀的分布和轉換。這兩種運動特征表示方法,對原始運動數(shù)據(jù)進行了歸納,但所表示的運動物理特征不明顯?!犊梢暬ㄓ嵟c圖像表示學報》2004年第三期中(Journal of Visual Communication and Image Representation,2004,15(3)446-466)公布方法所提取的特征是人體骨架包括九個主要骨骼段及根關節(jié)的朝向信息。這種表示方式減少了運動特征的維數(shù),但由于每段骨骼均采用兩個參數(shù)表示,不利于對人體骨架各部分姿勢進行觀察。《美國計算機學會圖形學學報》2005年第三期中(ACMTransactions on Graphics 2005,24(3)677-685)公布的方法根據(jù)人體關節(jié)之間的空間幾何關系總結出31種人體運動的幾何特征來表示人體運動。這種運動特征表示方法雖然能很好地表示出運動的物理特征,但是特征類型過多,計算量大。
為了對關鍵幀提取方法進行量化分析,一些學者提出誤差率和壓縮比等量化指標如計算機視覺與圖像理解》雜志2003年第二期中(Computer Vision and Image Understanding,2003,92(2-3)265-284)公布的方法需要一個閾值判斷當前幀是否屬于現(xiàn)有聚類;《計算機輔助設計與圖形學學報》2004年第五期中(2004,16(5)719-732)公布的方法通過判斷當前幀與關鍵幀集合中最后一幀的距離是否大于某一閾值確定當前幀是否為關鍵幀;IEEE醫(yī)學與生物工程2001年會論文集中(In Proceedings of 23rdAnnual International Conferenceof the IEEE Engineering in Medicine and Biology Society(EMBC),2001,21167-1169)公布的方法采用曲線簡化提取關鍵幀,需要設置誤差參數(shù)作為曲線逼近的條件。以上誤差(閾值)參數(shù)體現(xiàn)了這些算法的誤差要求,用戶需要根據(jù)不同誤差來設置算法參數(shù)以獲得不同的原始數(shù)據(jù)壓縮比。然而,由于不同運動序列在運動速度及運動風格等方面的差異,使得誤差要求與壓縮比之間不存在絕對的一一對應關系。這樣,對于只關注關鍵幀數(shù)目(壓縮比)的用戶來說,如果采用上述關鍵幀提取算法提取關鍵幀,需要反復嘗試不同的誤差要求以滿足自己需要,這個過程相當耗時。

發(fā)明內(nèi)容
本發(fā)明為克服上述現(xiàn)有方法運算效率和精確度不高的缺點,提供了一種高效、自動的三維人體運動數(shù)據(jù)關鍵幀提取方法。
三維人體運動數(shù)據(jù)關鍵幀提取方法包括以下步驟(1)首先采用骨骼夾角作為三維人體運動數(shù)據(jù)序列的特征表示;(2)基于骨骼夾角特征,從三維人體運動數(shù)據(jù)序列中提取候選關鍵幀集合;(3)以三維人體運動數(shù)據(jù)的骨骼夾角特征序列、候選關鍵幀集合及誤差參數(shù)為輸入,采用分層曲線簡化算法提取最終關鍵幀集合;(4)基于用戶輸入的關鍵幀數(shù)目及分層曲線簡化算法返回的實際關鍵幀數(shù)目,誤差參數(shù)自適應調節(jié)方法能夠不斷反饋正確的誤差參數(shù),以便于獲取最終的滿足用戶要求的關鍵幀數(shù)量。
所述采用骨骼夾角作為三維人體運動數(shù)據(jù)序列的特征表示是將人體骨架中四肢部分的八段骨骼作為特征表示對象,提取這八段骨骼與由根關節(jié)和胸關節(jié)組成的中心骨骼之間的夾角作為運動特征。定義段骨骼 為由該段骨骼中位于人體骨架較高層關節(jié)Ni指向較低層關節(jié)Nj的向量,即B→(k)=NiNj→=(p→(j)-p→(i)),]]>其中, 是關節(jié)Ni和Nj在三維空間中的坐標。因此,在給定幀時刻i,任意段四肢骨骼與中心骨骼夾角的公式計算為θik=cos-1(B‾ik·B‾i(center)|B‾ik||B‾i(center)|),k=1,...,8]]>其中, 表示中心骨骼,θ的取值范圍為
。這樣,對于任意幀時刻i,采用上述運動特征表示法,人體姿勢可以表示為八元組Fi=(θi(1),...,θi(8)),]]>不僅實現(xiàn)原始運動捕獲數(shù)據(jù)的高維降維,而且有效反映了運動的物理含義。
所述基于骨骼夾角特征從三維人體運動數(shù)據(jù)序列中提取候選關鍵幀集合是指人體骨架四肢中其各自兩段骨骼與中心骨骼的夾角變化情況共同反映了該肢體的運動情況,綜合人體所有四肢骨骼夾角變化情況,取它們的極值所在幀的并集,可以得到候選關鍵幀集合。
所述分層曲線簡化算法提取最終關鍵幀集合是指給定一個有序數(shù)據(jù)集M,M={Fi|i=1,...,N},F(xiàn)i=(xi(1),...,xi(m)),]]>按序連接M中所有數(shù)據(jù)點,形成一個m維空間中的曲線;求滿足一定誤差要求的M的真子集K逼近曲線M,同時,K中的元素應盡可能多地屬于集合CCM且F1,F(xiàn)N∈C。為了解決這個問題,將M用一個兩層的數(shù)據(jù)結構來表示第一層(下層)為M,第二層(上層)為M的真子集C。首先在上層運用單層曲線簡化算法,若簡化結果未能滿足誤差要求,降到下層運用單層曲線簡化算法,并把得到的分裂點加入到上層中,繼續(xù)在上層進行曲線簡化,如此反復,直到求得滿足條件的集合K。在這個方法中,兩個數(shù)組c_num和pair被分別使用。數(shù)組c_num記錄集合C中元素在M中的位置,按元素位置從小到大的順序排序。數(shù)據(jù)pair標記M中元素是否屬于集合K若不屬于,值為0;若屬于,值指向K中下一個元素在M中的位置。在單層曲線簡化算法中,計算集合M中第i個元素到由第n1個元素和第n2個元素(n1<i<n2)連成的直線的最短距離,可以由以下公式得到di=Σk=1m(xi(k)-xn1(k))2-(Σk=1m(xn2(k)-xn1(k))(xi(k)-xn1(k)))2Σk=1mxn2(k)-xn1(k))2]]>分層曲線簡化算法步驟如下
輸入數(shù)據(jù)集M,M={Fi|i=1,...,N},F(xiàn)i=(xi(1),...,xi(m));]]>集合CCM且F1,F(xiàn)N∈C;誤差參數(shù) 輸出數(shù)組kfSet,kfSet={i|Fi∈M&Fi∈K,i=1,...,N};步驟1初始化,n為集合C的元素個數(shù),c_num={i|Fi∈M&Fi∈C,1≤i≤N},pair(1)=N,pair(N)=1,trackMark=1,標記當前處理到的C中元素的位置,lastMark=0,標記上一次處理到的C中元素的位置;步驟2若pair(trackMark)=1,轉步驟5,否則計算集合C中在元素trackMark和pair(trackMark)之間的子集subSet={c_num(i)|trackMark<c_num(i)<pair(trackMark),1≤i≤n},若subSet長度大于0,轉步驟3,否則,轉步驟4;步驟3上層曲線簡化(1)按公式(1)計算subSet中每一點到直線|Fpair(trackMark)FtrackMark|的距離,記最大距離為max_dist,其對應的元素為max_ind;(2)計算ratio=max_dist/‖F(xiàn)pair(trackMark)-FtrackMark‖,若ratio>δ,令pair(max_ind)=pair(trackMark),pair(trackMark)=max_ind,否則trackMark=pair(trackMark);(3)轉步驟2;步驟4下層曲線簡化(1)令subSet=[trackMarkpair(trackMark)];(2)按公式(1)計算subSet中每一點到直線|Fpair(trackMark)FtrackMark|的距離,記最大距離為max_dist,其對應的元素為max_ind;(3)計算ratio=max_dist/‖F(xiàn)pair(trackMark)-FtrackMark‖,若ratio>δ,C=C∪{Fmax_ind},重置c_num和n,令pair(max_ind)=pair(trackMark),pair(trackMark)=max_ind,轉步驟2,否則trackMark=pair(trackMark);(4)轉步驟2;步驟5kfSet={i|pair(i)≠0,1≤i≤N}。
所述誤差參數(shù)自適應調節(jié)方法是指根據(jù)關鍵幀數(shù)目的實際值與目標值之差動態(tài)調節(jié)誤差參數(shù)δ。若關鍵幀數(shù)目的實際值大于目標值,δ增加,增加比率為δ_inc(δ_inc∈(0,1));若關鍵幀數(shù)目的實際值小于目標值,δ減小,減小比率為δ_dec(δ_dec∈(0,1))。進一步,對δ的增減率dδ(dδ∈{δ_inc,δ_des},dδ∈(0,1))采用動態(tài)調節(jié)的略策。若連續(xù)兩次循環(huán)中關鍵幀數(shù)目當前值在目標值的同一側(δ的變化同向),則增加dδ,以加快δ向同方向變化;否則,即是關鍵幀數(shù)目的實際值在目標值左右鄰域進行振蕩,此時應減小dδ,以減小振蕩的幅度。dδ的增減變化函數(shù)分別為finc(dδ)=1-(dδ-1)2,fdec(dδ)=1-1-dδ2.]]>此外,為振蕩次數(shù)給定最大閾值epoch,將其作為算法中循環(huán)結束的一個條件。
本發(fā)明所述的三維人體運動數(shù)據(jù)關鍵幀提取方法具有如下特點1.該方法計算復雜度較低,在給定長時間三維人體運動序列的條件下,能夠高效提取出滿足用戶要求的三維人體運動數(shù)據(jù)關鍵幀集合。
2.該方法自動化程度高,給定一段三維人體運動數(shù)據(jù)序列,用戶只需要指定所需提取關鍵幀的數(shù)量,即可得到最終關鍵幀集合,輸入?yún)?shù)直觀,且避免了輸入大量抽象計算參數(shù)的問題。
3.該方法能夠根據(jù)實際三維人體運動數(shù)據(jù)序列及用戶指定的關鍵幀數(shù)目,自動調節(jié)計算誤差參數(shù),實現(xiàn)參數(shù)的自動調整。


圖1是本發(fā)明所采用的人體骨架模型圖;圖2是本發(fā)明候選關鍵幀選取方法示意圖;圖3是本發(fā)明的人體運動數(shù)據(jù)關鍵幀提取方法工作流程圖;圖4是對一段打拳運動序列提取關鍵幀的實例圖;圖5是對一段上樓梯運動提取不同關鍵幀數(shù)量的實例圖。
具體實施例方式
本發(fā)明的三維人體運動數(shù)據(jù)關鍵幀提取方法具體實施的技術方案及步驟如下1.運動特征表示本發(fā)明采用如附圖1所示的人體骨架模型。該模型由16個關節(jié)組成,各關節(jié)點采用樹形結構組織,根關節(jié)點為樹形人體骨架的根結點,從根關節(jié)點向人體骨架的各個末端關節(jié)逐層延伸形成根結點的各個子樹??紤]到人體骨架四肢部分在人體運動中變化最明顯,本發(fā)明將描述運動的方法從關節(jié)層上升到骨骼層,將人體骨架中四肢部分的八段骨骼作為特征表示對象,提取這八段骨骼與由根關節(jié)和胸關節(jié)組成的中心骨骼之間的夾角作為運動特征。定義段骨骼 為由該段骨骼中位于人體骨架較高層關節(jié)Ni指向較低層關節(jié)Nj的向量,即B→(k)=NiNj→=(p→(j)-p→(i)),]]>其中, 是關節(jié)Ni和Nj在三維空間中的坐標。因此,在給定幀時刻i,任意段四肢骨骼與中心骨骼夾角的公式計算為θik=cos-1(B‾ik·B‾i(center)|B‾ik||B‾i(center)|),k=1,...,8]]>其中, 表示中心骨骼,θ的取值范圍為
。這樣,對于任意幀時刻i,采用上述運動特征表示法,人體姿勢可以表示為八元組Fi=(θi(1),...,θi(8)),]]>不僅實現(xiàn)原始運動捕獲數(shù)據(jù)的高維降維,而且有效反映了運動的物理含義。
2.候選關鍵幀選取通過觀察發(fā)現(xiàn),在人體運動過程中,各骨骼夾角的運動軌跡會出現(xiàn)某些極值情況。在附圖2所示為一段20幀長的走路運動中,右腿的骨骼夾角運動軌跡。從圖中可以看出,當運動到達第8幀、第12幀和第17幀時,運動軌跡出現(xiàn)局部極值點。這三個極值點所在幀分別對應為人體向前運動過程中的三個時刻右腿抬到最高點、右腿第一次落地及身體重心完全落在右腿上。由如上分析可知,右大腿及右小腿骨骼夾角的變化軌跡共同反映了運動過程中人體右腿的變化情況,在曲線達到局部極值時,正好為右腿運動過程中的“邊界”姿勢。將這些達到局部極值時的姿勢作為關鍵姿勢,對右腿運動的表達具有代表性。
與以上情況類似,人體骨架四肢中其各自兩段骨骼與中心骨骼的夾角變化情況共同反映了該肢體的運動情況。綜合人體所有四肢骨骼夾角變化情況,取它們的極值所在幀的并集,可以得到候選關鍵幀集合。由于這些候選關鍵幀是四肢各部分在運動中出現(xiàn)“邊界”姿勢(幀)的并集,所以它們幾乎包括了角色在運動過程中可能出現(xiàn)的所有“邊界”姿勢。
3.基于分層曲線簡化算法的關鍵幀集合獲取對于人體運動來說,不同骨骼夾角得到的極值點可能并不一定出現(xiàn)在同一時刻,而更多的是出現(xiàn)在某個時間鄰域內(nèi)。同時,采用運動捕獲設備對人體運動進行捕獲時,一定噪聲的存在會對人體運動造成姿勢上的小變化。這兩種情況的存在,將使得初步搜索得到候選關鍵幀集合中出現(xiàn)一些相隔很近的候選關鍵幀,使得提取的關鍵幀存在冗余。對于某些較低誤差要求(較高壓縮比)的情況,需要對這類候選關鍵幀的相鄰部分進行“合并”。另一方面,在相對較長時間內(nèi)保持同一姿勢變化趨勢的運動序列,其候選關鍵幀相隔較遠。為了增強對原始運動的概括能力及滿足某些較高誤差要求,需要將這類候選關鍵幀中相鄰部分進行“分解”,即在它們之間再選出一個或多個姿勢幀作為關鍵幀。也就是說,在實時提取運動關鍵幀中,要針對不同的誤差需求,對候選關鍵幀集合進行精選再處理。
本發(fā)明提出一種新的分層曲線簡化算法來對候選關鍵幀集合進行精選。算法描述給定一個有序數(shù)據(jù)集M,M={Fi|i=1,...,N},F(xiàn)i=(xi(1),...,xi(m)),]]>按序連接M中所有數(shù)據(jù)點,形成一個m維空間中的曲線;求滿足一定誤差要求的M的真子集K逼近曲線M,同時,K中的元素應盡可能多地屬于集合CCM且F1,F(xiàn)N∈C。為了解決這個問題,將M用一個兩層的數(shù)據(jù)結構來表示第一層(下層)為M,第二層(上層)為M的真子集C。首先在上層運用單層曲線簡化算法,若簡化結果未能滿足誤差要求,降到下層運用單層曲線簡化算法,并把得到的分裂點加入到上層中,繼續(xù)在上層進行曲線簡化,如此反復,直到求得滿足條件的集合K。在這個方法中,兩個數(shù)組c_num和pair被分別使用。數(shù)組c_num記錄集合C中元素在M中的位置,按元素位置從小到大的順序排序。數(shù)據(jù)pair標記M中元素是否屬于集合k若不屬于,值為0;若屬于,值指向K中下一個元素在M中的位置。在單層曲線簡化算法中,計算集合M中第i個元素到由第n1個元素和第n2個元素(n1<i<n2)連成的直線的最短距離,可以由以下公式得到di=Σk=1m(xi(k)-xn1(k))2-(Σk=1m(xn2(k)-xn1(k))(xi(k)-xn1(k)))2Σk=1mxn2(k)-xn1(k))2]]>分層曲線簡化算法輸入數(shù)據(jù)集M,M={Fi|i=1,...,N},F(xiàn)i=(xi(1),...,xi(m));]]>集合CCM且F1,F(xiàn)N∈C;誤差參數(shù) 輸出數(shù)組kfSet,kfSet={i|Fi∈M&Fi∈K,i=1,...,N};步驟1初始化,n為集合C的元素個數(shù),c_num={i|Fi∈M&Fi∈C,1≤i≤N},pair(1)=N,pair(N)=1,trackMark=1,標記當前處理到的C中元素的位置,lastMark=0,標記上一次處理到的C中元素的位置;步驟2若pair(trackMark)=1,轉步驟5,否則計算集合C中在元素trackMark和pair(trackMark)之間的子集subSet={c_num(i)|trackMark<c_num(i)<pair(trackMark),1≤i≤n},若subSet長度大于0,轉步驟3,否則,轉步驟4;步驟3上層曲線簡化(1)按公式(1)計算subSet中每一點到直線|Fpair(trackMark)FtrackMark|的距離,記最大距離為max_dist,其對應的元素為max_ind;(2)計算ratio=max_dist/‖F(xiàn)pair(trackMark)-FtrackMark‖,若ratio>δ,令pair(max_ind)=pair(trackMark),pair(trackMark)=max_ind,否則trackMark=pair(trackMark);(3)轉步驟2;步驟4下層曲線簡化(1)令subSet=[trackMarkpair(trackMark)];(2)按公式(1)計算subSet中每一點到直線|Fpair(trackMark)FtrackMark|的距離,記最大距離為max_dist,其對應的元素為max_ind;(3)計算ratio=max_dist/‖F(xiàn)pair(trackMark)-FtrackMark‖,若ratio>δ,C=C∪{Fmax_ind},重置c_num和n,令pair(max_ind)=pair(trackMark),pair(trackMark)=max_ind,轉步驟2,否則trackMark=pair(trackMark);(4)轉步驟2;步驟5kfSet={i|pair(i)≠0,1≤i≤N}。
采用上述分層曲線簡化算法對候選關鍵幀集合進行精選骨骼夾角8元組表示的運動數(shù)據(jù)對應集合M,候選關鍵幀集合對應集合C。在分層曲線簡化過程中,對上層和下層進行簡化分別對應對候選關鍵幀集合進行“合并”和“分解”操作。這樣,通過分層曲線簡化算法,能夠對候選關鍵幀集合進行精選,最終得到滿足一定誤差要求的關鍵幀集合,同時保證了人體運動過程中的“邊界”姿勢幀盡可以多地出現(xiàn)在關鍵幀集合中。
4.誤差參數(shù)自適應調節(jié)方法從關鍵幀提取算法可以看出,選取不同的誤差參數(shù)δ能夠獲得不同的候選關鍵幀集合的精選程度,即壓縮比。然而在某些實際應用中,用戶往往只關注提取的關鍵幀數(shù)目卻并不知道其對應的誤差參數(shù)值。為了解決這個問題,本發(fā)明通過自適應調節(jié)誤差參數(shù)的方法來滿足不同壓縮比的需要。
誤差參數(shù)自適應調節(jié)的基本思想是根據(jù)關鍵幀數(shù)目的實際值與目標值之差動態(tài)調節(jié)誤差參數(shù)δ。若關鍵幀數(shù)目的實際值大于目標值,δ增加,增加比率為δ_inc(δ_inc∈(0,1));若關鍵幀數(shù)目的實際值小于目標值,δ減小,減小比率為δ_dec(δ_dec∈(0,1))。值得注意的是,關鍵幀數(shù)目的收斂可能受到以下幾個方面的影響(1)δ初始值過大或過小,而δ的增減率過小,使得關鍵幀數(shù)目收斂緩慢。
(2)δ的增減率過大,使得關鍵幀數(shù)目的實際值在目標值鄰域內(nèi)進行劇烈大振幅振蕩。
(3)關鍵幀數(shù)目的實際值在目標值的較小鄰域內(nèi)無限振蕩,即實際值無法等于目標值。
為了解決前兩種情況的問題,對δ的增減率dδ(dδ∈{δ_inc,δ_des},dδ∈(0,1))采用動態(tài)調節(jié)的略策。若連續(xù)兩次循環(huán)中關鍵幀數(shù)目當前值在目標值的同一側(δ的變化同向),則增加dδ,以加快δ向同方向變化;否則,即是關鍵幀數(shù)目的實際值在目標值左右鄰域進行振蕩,此時應減小dδ,以減小振蕩的幅度。dδ的增減變化函數(shù)分別為finc(dδ)=1-(dδ-1)2,fdec(dδ)=1-1-dδ2.]]>dδ的增加與減小分別解決了上述第一種及第二種情況產(chǎn)生的問題。針對第三種情況,為振蕩次數(shù)給定最大閾值epoch,將其作為算法中循環(huán)結束的一個條件。
附圖3給出了本發(fā)明的人體運動數(shù)據(jù)關鍵幀提取方法工作流程圖。該方法的具體實施流程包括三維人體運動數(shù)據(jù)輸入10、數(shù)據(jù)預處理20、用戶指定關鍵幀數(shù)目30、候選關鍵幀選取40、關鍵幀提取50及誤差參數(shù)自適應調節(jié)60。
三維人體運動數(shù)據(jù)輸入10,這里的三維人體運動數(shù)據(jù)包括通過光學運動捕獲設備及相關專業(yè)軟件(如Maya,Motion Builder等)產(chǎn)生的各種格式的三維人體運動數(shù)據(jù),如本例采用美國Motion Analysis公司生產(chǎn)的捕獲設備MotionAnalysis Hawk采集各種類型的三維人體運動數(shù)據(jù)。
數(shù)據(jù)預處理20,對用戶輸入的各種格式的三維人體運一動數(shù)據(jù)進行格式轉換,將不同拓撲結構的骨骼轉換為本發(fā)明中使用的人體骨骼模型,并提取骨骼夾角作為三維人體運動數(shù)據(jù)的特征表示。
用戶指定關鍵幀數(shù)目30,用戶使用鍵盤、鼠標等輸入設備為本方法指定最終需要輸出的關鍵幀數(shù)目,該參數(shù)用來指導關鍵幀提取算法50及誤差參數(shù)自適應調節(jié)算法60的運行。
候選關鍵幀選取40,從數(shù)據(jù)預處理20處接受采用骨骼夾角特征表示的三維人體運動數(shù)據(jù)序列,然后采用候選關鍵幀選取方法從三維運動數(shù)據(jù)序列中選取候選關鍵幀集合。
關鍵幀提取50,該步驟基于候選關鍵幀選取40給定的候選關鍵幀集合,用分層曲線簡化算法從三維人體運動數(shù)據(jù)特征序列提取最終關鍵幀集合,其間需要用到誤差參數(shù)自適應調節(jié)60給出的誤差參數(shù)反饋信息。
誤差參數(shù)自適應調節(jié)60,該步驟與步驟50交替運行,其主要作用是根據(jù)步驟50給出的實際關鍵幀數(shù)目與步驟30給出的用戶指定關鍵幀數(shù)目進行自適應誤差參數(shù)調節(jié),反饋給步驟50并得到最終的關鍵幀集合。
實施例1如附圖4所示,給出了對一段打拳運動提取關鍵幀的實例。下面結合本發(fā)明的方法詳細說明該實例實施的具體步驟,如下(1)采用光學運動捕獲系統(tǒng)捕獲一段長度為100幀的打拳運動數(shù)據(jù);(2)以步驟(1)中捕獲得到的TRC格式原始運動數(shù)據(jù)作為輸入,采用已有的運動數(shù)據(jù)轉換方法將TRC數(shù)據(jù)轉換為滿足本發(fā)明定義的具有16個關節(jié)點的旋轉數(shù)據(jù)表示格式;(3)以步驟(2)得到的標準人體模型及旋轉運動數(shù)據(jù)為基礎,采用權利要求中的公式(1)計算四肢骨骼與中心骨骼之間的夾角,形成表示人體姿態(tài)的八元組序列Fi;(4)用戶指定所需提取的關鍵幀數(shù)量n,在本例中為n=8;(5)將步驟(4)中得到的表示人體姿態(tài)的八元組序列看作是分布在8維空間中的高維曲線,采用本發(fā)明所述的候選關鍵幀提取方法得到整個打拳運動序列的候選關鍵幀集合C;(6)以人體姿態(tài)八元組序列Fi、步驟(4)中用戶指定的關鍵幀數(shù)目n及步驟(5)中得到候選關鍵幀集合C維輸入,采用本發(fā)明所述的分層曲線簡化算法經(jīng)過迭代運算得到最終的關鍵幀集合K。
本實例的運行結果在附圖4中顯示,其中整個打拳運動序列長度為100幀,用戶指定提取關鍵幀數(shù)目為8,通過本發(fā)明所述方法得到的關鍵幀用綠色表示,可以看到得到的最終關鍵幀集合體現(xiàn)了整個運動序列中的一些關鍵極限姿態(tài)及重要過渡運動姿態(tài),很好的表示了原運動序列的特點。
實施例2如圖5所示,給出了對一段上樓梯運動數(shù)據(jù)提取不同關鍵幀數(shù)目的實例。下面結合本發(fā)明的方法詳細說明本實例實施的具體步驟,如下
(1)輸入的是一段采用光學運動捕獲系統(tǒng)獲取的長度為85幀的上樓梯運動序列,數(shù)據(jù)文件為TRC格式的原始運動數(shù)據(jù);(2)采用已有的數(shù)據(jù)格式轉換方法將TRC格式的運動數(shù)據(jù)轉換為滿足本發(fā)明要求的具有16個標準關節(jié)點的旋轉運動數(shù)據(jù),即具有16個指定關節(jié)點的BVH數(shù)據(jù)格式;(3)以步驟(2)得到的BVH格式數(shù)據(jù)為基礎,采用權利要求中的公式(1)計算四肢骨骼與中心骨骼之間的夾角,形成表示人體姿態(tài)的八元組序列Fi;(4)用戶指定所需提取的關鍵幀數(shù)量n,在本例中為n分別被賦值為14,10,7,5;(5)將步驟(4)中得到的表示人體姿態(tài)的八元組序列看作是分布在8維空間中的高維曲線,采用本發(fā)明所述的候選關鍵幀提取方法得到整個打拳運動序列的候選關鍵幀集合C;(6)以人體姿態(tài)八元組序列Fi、步驟(4)中用戶指定的關鍵幀數(shù)目n及步驟(5)中得到候選關鍵幀集合C維輸入,采用本發(fā)明所述的分層曲線簡化算法經(jīng)過迭代運算得到最終的關鍵幀集合K;(7)回到步驟(4),選用新的關鍵幀數(shù)目,計算新的關鍵幀集合。
本實例的運行結果在附圖5中顯示,其中整個上樓梯運動序列長度為85幀,用戶指定提取關鍵幀數(shù)目為分別為14,10,7,5,從下到上分為4行顯示。可以看到,通過本發(fā)明所述方法,能夠讓用戶自由指定需要提取的關鍵幀數(shù)目,從而得到整個運動序列中的一些關鍵極限姿態(tài)及重要過渡運動姿態(tài),很好的表示了原運動序列的特點并在不同誤差要求下對原始運動數(shù)據(jù)序列進行概括。
權利要求
1.一種三維人體運動數(shù)據(jù)關鍵幀提取方法,其特征在于包括以下步驟(1)首先采用骨骼夾角作為三維人體運動數(shù)據(jù)序列的特征表示;(2)基于骨骼夾角特征從三維人體運動數(shù)據(jù)序列中提取候選關鍵幀集合;(3)以三維人體運動數(shù)據(jù)的骨骼夾角特征序列、候選關鍵幀集合及誤差參數(shù)為輸入,采用分層曲線簡化算法提取最終關鍵幀集合;(4)基于用戶輸入的關鍵幀數(shù)目及分層曲線簡化算法返回的實際關鍵幀數(shù)目,誤差參數(shù)自適應調節(jié)方法能夠不斷反饋正確的誤差參數(shù),以便于獲取最終的滿足用戶要求的關鍵幀數(shù)量。
2.根據(jù)權利要求1所述的一種三維人體運動數(shù)據(jù)關鍵幀提取方法,其特征在于所述采用骨骼夾角作為三維人體運動數(shù)據(jù)序列的特征表示是將人體骨架中四肢部分的八段骨骼作為特征表示對象,提取這八段骨骼與由根關節(jié)和胸關節(jié)組成的中心骨骼之間的夾角作為運動特征,定義段骨骼 為由該段骨骼中位于人體骨架較高層關節(jié)Ni指向較低層關節(jié)Nj的向量,即B→(k)=NiNj→=(p→(j)-p→(i)),]]>其中, 是關節(jié)Ni和Nj在三維空間中的坐標,因此,在給定幀時刻i,任意段四肢骨骼與中心骨骼夾角的公式計算為θik=cos-1(B‾ik·B‾i(center)|B‾ik||B‾i(center)|),k=1,...,8---1]]>其中, 表示中心骨骼,θ的取值范圍為
,這樣,對于任意幀時刻i,采用上述運動特征表示法,人體姿勢可以表示為八元組Fi=(θi(1),...,θi(8)),]]>不僅實現(xiàn)原始運動捕獲數(shù)據(jù)的高維降維,而且有效反映了運動的物理含義。
3.根據(jù)權利要求1所述的一種三維人體運動數(shù)據(jù)關鍵幀提取方法,其特征在于所述基于骨骼夾角特征從三維人體運動數(shù)據(jù)序列中提取候選關鍵幀集合是指人體骨架四肢中其各自兩段骨骼與中心骨骼的夾角變化情況共同反映了該肢體的運動情況,綜合人體所有四肢骨骼夾角變化情況,取它們的極值所在幀的并集,可以得到候選關鍵幀集合。
4.根據(jù)權利要求1所述的一種三維人體運動數(shù)據(jù)關鍵幀提取方法,其特征在于所述基于采用分層曲線簡化算法提取最終關鍵幀集合是指給定一個有序數(shù)據(jù)集M,M={Fi|i=1,...,N},]]>Fi=(xi(1),...,xi(m)),]]>按序連接M中所有數(shù)據(jù)點,形成一個m維空間中的曲線,求滿足一定誤差要求的M的真子集K逼近曲線M,同時,K中的元素應盡可能多地屬于集合CCM且F1,F(xiàn)N∈C,為了解決這個問題,將M用一個兩層的數(shù)據(jù)結構來表示,下層為M,上層為M的真子集C,首先在上層運用單層曲線簡化算法,若簡化結果未能滿足誤差要求,降到下層運用單層曲線簡化算法,并把得到的分裂點加入到上層中,繼續(xù)在上層進行曲線簡化,如此反復,直到求得滿足條件的集合K,在這個方法中,兩個數(shù)組c_num和pair被分別使用,數(shù)組c_num記錄集合C中元素在M中的位置,按元素位置從小到大的順序排序,數(shù)據(jù)pair標記M中元素是否屬于集合k,若不屬于,值為0,若屬于,值指向K中下一個元素在M中的位置,在單層曲線簡化算法中,計算集合M中第i個元素到由第n1個元素和第n2個元素(n1<i<n2)連成的直線的最短距離,可以由以下公式得到di=Σk=1m(xi(k)-xn1(k))2-(Σk=1m(xn2(k)-xn1(k))(xi(k)-xn1(k)))2Σk=1mxn2(k)-xn1(k))2---2]]>分層曲線簡化算法步驟如下輸入數(shù)據(jù)集M,M={Fi|i=1,...,N},]]>Fi=(xi(1),...,xi(m));]]>集合CCM且F1,F(xiàn)N∈C;誤差參數(shù) 輸出數(shù)組kfSet,kfSet={i|Fi∈M&Fi∈K,i=1,...,N};步驟1初始化,n為集合C的元素個數(shù),c_num={i|Fi∈M&Fi∈C,1≤i≤N},pair(1)=N,pair(N)=1,trackMark=1,標記當前處理到的C中元素的位置,lastMark=0,標記上一次處理到的C中元素的位置;步驟2若pair(trackMark)=1,轉步驟5,否則計算集合C中在元素trackMark和pairr(trackMark)之間的子集subSet={c_num(i)|trackMark<c_num(i)<pair(trackMark),1≤i≤n},若subSet長度大于0,轉步驟3,否則,轉步驟4;步驟3上層曲線簡化(1)按公式(1)計算subSet中每一點到直線|Fpair(trackMark)FtrackMark|的距離,記最大距離為max_dist,其對應的元素為max_ind;(2)計算ratio=max_dist/‖F(xiàn)pair(trackMark)-FtrackMark‖,若ratio>δ,令pair(max_ind)=pair(trackMark),pair(trackMark)=max_ind,否則trackMark=pair(trackMark);(3)轉步驟2;步驟4下層曲線簡化(1)令subSet=[trackMarkpair(trackMark)];(2)按公式(1)計算subSet中每一點到直線|Fpair(trackMark)FtrackMark|的距離,記最大距離為max_dist,其對應的元素為max_ind;(3)計算ratio=max_dist/‖F(xiàn)pair(trackMark)-FtrackMark‖,若ratio>δ,C=C∪{Fmax_ind},重置c_num和n,令pair(max_ind)=pair(trackMark),pair(trackMark)=max_ind,轉步驟2,否則trackMark=pair(trackMark);(4)轉步驟2;步驟5kfSet={i|pair(i)≠0,1≤i≤N}。
5.根據(jù)權利要求1所述的一種三維人體運動數(shù)據(jù)關鍵幀提取方法,其特征在于所述誤差參數(shù)自適應調節(jié)方法是指根據(jù)關鍵幀數(shù)目的實際值與目標值之差動態(tài)調節(jié)誤差參數(shù)δ,若關鍵幀數(shù)目的實際值大于目標值,δ增加,增加比率為δ_inc(δ_inc∈(0,1)),若關鍵幀數(shù)目的實際值小于目標值,δ減小,減小比率為δ_dec(δ_dec∈(0,1)),進一步,對δ的增減率dδ(dδ∈{δ_inc,δ_des},dδ∈(0,1))采用動態(tài)調節(jié)的略策,若連續(xù)兩次循環(huán)中關鍵幀數(shù)目當前值在目標值的同一側(δ的變化同向),則增加dδ,以加快δ向同方向變化,否則,即是關鍵幀數(shù)目的實際值在目標值左右鄰域進行振蕩,此時應減小dδ,以減小振蕩的幅度,dδ的增減變化函數(shù)分別為finc(dδ)=1-(dδ-1)2,]]>fdec(dδ)=1-1-dδ2,]]>此外,為振蕩次數(shù)給定最大閾值epoch,將其作為算法中循環(huán)結束的一個條件。
全文摘要
本發(fā)明公開了一種對人體運動數(shù)據(jù)自動提取關鍵幀的方法。在數(shù)據(jù)表示上采用人體四肢骨骼與中心骨骼夾角作為運動特征并以此來表征三維人體運動數(shù)據(jù),然后根據(jù)骨骼夾角的運動軌跡確定運動時可能存在的“邊界”姿勢作為候選關鍵幀集合,最后采用分層曲線簡化算法精選候關鍵幀獲得最終關鍵幀集合。同時,本發(fā)明還提出一種自適應誤差參數(shù)調整方法以滿足不同壓縮率要求。使用該方法對人體運動數(shù)據(jù)具有良好的關鍵幀提取、壓縮效果,以及較強的運動概括能力,并在一定程度上保證了同類運動關鍵幀集合之間的一致性。
文檔編號G06T7/00GK1967525SQ200610053399
公開日2007年5月23日 申請日期2006年9月14日 優(yōu)先權日2006年9月14日
發(fā)明者莊越挺, 肖俊, 吳飛, 楊濤 申請人:浙江大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1