本發(fā)明涉及計(jì)算機(jī)視覺技術(shù)領(lǐng)域,具體是一種基于余弦距離層次聚類的關(guān)鍵幀提取方法。
背景技術(shù):
三維動(dòng)畫合成技術(shù)是在運(yùn)動(dòng)捕捉技術(shù)產(chǎn)生的基礎(chǔ)上發(fā)展而來的一門新興技術(shù)。該技術(shù)自產(chǎn)生以來就被廣泛地運(yùn)用到游戲動(dòng)畫、電影特效、虛擬現(xiàn)實(shí)等數(shù)字媒體領(lǐng)域。近幾年來,隨著計(jì)算機(jī)性能的穩(wěn)步提升以及錄制設(shè)備和動(dòng)作捕捉傳感器技術(shù)的突破和精度的提升,三維動(dòng)畫合成技術(shù)已然成為計(jì)算機(jī)圖形學(xué)領(lǐng)域的研究熱點(diǎn)。目前該技術(shù)的實(shí)現(xiàn)基礎(chǔ)依然依賴于運(yùn)動(dòng)捕捉技術(shù)。運(yùn)動(dòng)捕捉技術(shù)是該技術(shù)的前提,通過傳感器獲取待捕捉運(yùn)動(dòng)的數(shù)據(jù)信息,再利用動(dòng)作融合模型將捕獲到的原始動(dòng)作數(shù)據(jù)合成最終所需要的三維動(dòng)畫。
運(yùn)動(dòng)捕捉技術(shù)是指準(zhǔn)確追蹤并記錄動(dòng)作的技術(shù)。該技術(shù)可以追溯到1914年轉(zhuǎn)描機(jī)的使用,最初被用于動(dòng)畫制作。在20世紀(jì)70年代,運(yùn)動(dòng)捕捉(motioncapture)技術(shù)首次應(yīng)用于人體的動(dòng)作捕捉,迪士尼試想通過捕捉演員的動(dòng)作來改善動(dòng)畫效果。伴隨著科學(xué)技術(shù)的快速發(fā)展,運(yùn)動(dòng)捕捉設(shè)備越來越多樣化,例如光學(xué)運(yùn)動(dòng)捕捉設(shè)備、機(jī)械式運(yùn)動(dòng)捕捉設(shè)備以及基于計(jì)算機(jī)視覺運(yùn)動(dòng)捕捉設(shè)備。運(yùn)動(dòng)捕捉技術(shù)的應(yīng)用主要涉及到三個(gè)大方面,即監(jiān)控、運(yùn)動(dòng)控制以及運(yùn)動(dòng)分析。監(jiān)控是通過監(jiān)視一個(gè)或者多個(gè)目標(biāo)的方法來追蹤和發(fā)現(xiàn)他們的特殊行為。運(yùn)動(dòng)控制即是通過捕捉到的運(yùn)動(dòng)數(shù)據(jù)控制一些事物。運(yùn)動(dòng)分析是指通過分析運(yùn)動(dòng)捕捉數(shù)據(jù),發(fā)現(xiàn)動(dòng)作中人們感興趣的信息。
隨著科技的不斷進(jìn)步,動(dòng)畫合成技術(shù)的應(yīng)用越來越廣泛。人們對(duì)動(dòng)畫合成技術(shù)有了新的功能需求,那就是對(duì)現(xiàn)有的動(dòng)作進(jìn)行重用,從而產(chǎn)生一些不同的效果。即采用動(dòng)畫合成技術(shù)給用戶一種強(qiáng)烈的視覺沖擊,并帶給他們震撼的視覺效果?,F(xiàn)有的三維動(dòng)畫合成方法主要包含運(yùn)動(dòng)合成和運(yùn)動(dòng)重定向兩種技術(shù)。運(yùn)動(dòng)合成技術(shù)主要研究如何將現(xiàn)有動(dòng)作序列組合成新的動(dòng)作序列,而動(dòng)作重定向技術(shù)主要研究如何對(duì)現(xiàn)有動(dòng)作進(jìn)行編輯和修改,從而將現(xiàn)有動(dòng)作改變成另一個(gè)不同的動(dòng)作。傳統(tǒng)的運(yùn)動(dòng)合成方法是要將不同的動(dòng)作序列拼接在一起合成新的動(dòng)作,不符合改變現(xiàn)有運(yùn)動(dòng)捕捉數(shù)據(jù)的風(fēng)格和效果要求;傳統(tǒng)的運(yùn)動(dòng)重定向方法是要將人的動(dòng)作映射到自定義的角色模型上,通過人的動(dòng)作直接改變效果,不符合重用現(xiàn)有的動(dòng)作片段要求。在本發(fā)明中,我們主要關(guān)注重用的關(guān)鍵幀提取技術(shù),為后續(xù)的三維動(dòng)畫合成打下夯實(shí)的基礎(chǔ)。
在動(dòng)畫合成技術(shù)中,運(yùn)動(dòng)捕捉數(shù)據(jù)是實(shí)現(xiàn)動(dòng)畫合成技術(shù)的基礎(chǔ)。但是,這些運(yùn)動(dòng)捕捉數(shù)據(jù)大量冗余的問題阻礙了動(dòng)畫合成技術(shù)的進(jìn)一步發(fā)展。為了降低已捕獲數(shù)據(jù)的冗余程度、減少使用成本以及提高捕獲數(shù)據(jù)的利用率,需要對(duì)捕獲數(shù)據(jù)進(jìn)行一系列的操作,例如壓縮存儲(chǔ)、瀏覽、檢索等。然而這些數(shù)據(jù)操作都是在運(yùn)動(dòng)捕獲數(shù)據(jù)的關(guān)鍵幀基礎(chǔ)上完成,因此關(guān)鍵幀提取技術(shù)在運(yùn)動(dòng)捕捉應(yīng)用方面具有十分重要的地位。就關(guān)鍵幀提取的方法而言,傳統(tǒng)的關(guān)鍵幀提取技術(shù)并不能很好地對(duì)高維的動(dòng)作數(shù)據(jù)分割,這使得一些需要對(duì)數(shù)據(jù)進(jìn)行分割的應(yīng)用難以實(shí)現(xiàn)。所以本發(fā)明提出了一種基于余弦距離層次聚類的關(guān)鍵幀提取方法。該方法主要為兩個(gè)模塊,分別為數(shù)據(jù)預(yù)處理和關(guān)鍵幀提取,其中數(shù)據(jù)預(yù)處理用于動(dòng)作捕捉數(shù)據(jù)的特征選取、去噪和降維;關(guān)鍵幀提取用于余弦距離計(jì)算相似度、層次聚類分割以及分割點(diǎn)和中間關(guān)鍵幀提取。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于余弦距離層次聚類的關(guān)鍵幀提取方法,解決大量捕獲數(shù)據(jù)的冗余和分割高維數(shù)據(jù)的問題,以提高捕獲數(shù)據(jù)的利用率,減少運(yùn)動(dòng)捕捉設(shè)備高采樣率的影響,從而提高目標(biāo)檢測(cè)的準(zhǔn)確性。
為了解決以上技術(shù)問題,本發(fā)明采用的具體技術(shù)方案如下:
一種基于余弦距離層次聚類的關(guān)鍵幀提取方法,其特征在于包括以下步驟:
步驟一,運(yùn)動(dòng)捕捉數(shù)據(jù)預(yù)處理模塊設(shè)計(jì),即對(duì)運(yùn)動(dòng)捕捉數(shù)據(jù)進(jìn)行預(yù)處理操作,排除干擾因素;
步驟二,運(yùn)動(dòng)捕捉數(shù)據(jù)關(guān)鍵幀提取模塊設(shè)計(jì),即對(duì)已經(jīng)預(yù)處理過的運(yùn)動(dòng)捕捉數(shù)據(jù)實(shí)現(xiàn)關(guān)鍵幀提取。
運(yùn)動(dòng)捕捉數(shù)據(jù)預(yù)處理主要包括以下過程:
s1選取關(guān)節(jié)點(diǎn)的旋轉(zhuǎn)量作為運(yùn)動(dòng)捕捉數(shù)據(jù)的特征值;
s2應(yīng)用雙向巴特沃斯濾波器,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)捕捉數(shù)據(jù)的去噪功能;
s3采用pca方法將高維的運(yùn)動(dòng)捕捉數(shù)據(jù)映射成低維的數(shù)據(jù),消除一些影響分割結(jié)果準(zhǔn)確性的維度數(shù)據(jù);
運(yùn)動(dòng)捕捉數(shù)據(jù)關(guān)鍵幀提取主要包括以下過程:
s1在運(yùn)動(dòng)捕捉數(shù)據(jù)預(yù)處理的基礎(chǔ)上,通過計(jì)算余弦距離比較相鄰速率向量的相似性。速率向量vvi通過相鄰的兩個(gè)幀ai、ai+1的間差計(jì)算得到,vvi=ai+1-ai;相鄰的速率向量vvi,vvi+1的余弦距離取值范圍是0到2,
s2為了解決計(jì)算結(jié)果與觀察結(jié)果不一致和獲取分割點(diǎn)的問題,采用聚類算法;每一個(gè)速率向量本身就是一個(gè)類,然后找到那個(gè)最小余弦距離的相鄰速率向量,然后將相似一致的兩個(gè)類合并成一個(gè)類,兩個(gè)向量使用線性回歸的方法合并成一個(gè)向量;采用線性回歸的方式保持向量的方向,在合并兩個(gè)向量之后,合并向量與前一個(gè)向量和后一個(gè)向量之間的余弦距離都需要更新;同時(shí),被合并的兩個(gè)向量之間的余弦距離都要被移除;當(dāng)運(yùn)行到最后的相鄰幀速率向量之間的最大距離大于1,線性回歸停止,此時(shí)每個(gè)類中最大的值就是一個(gè)分割點(diǎn);
s3每段的幀姿勢(shì)與均值的歐式距離誤差最小的幀作為關(guān)鍵幀,插入到關(guān)鍵幀集合中;第j幀姿勢(shì)表示成mj,第i段的均值bi可以描述為公式
s4分割成k個(gè)分段的運(yùn)動(dòng)捕捉數(shù)據(jù),可以獲得k+1個(gè)分割點(diǎn),另外還有k個(gè)段的幀姿態(tài)與均值的歐式距離誤差最小的幀aoi,總共2k+1個(gè)關(guān)鍵幀,該序列為(a1,ao1,a2,ao2......ak);
s5多名學(xué)生人工分割數(shù)據(jù)集中的捕捉數(shù)據(jù),獲得分割點(diǎn),比較計(jì)算得到的分割點(diǎn)和人工分割點(diǎn)。
所述運(yùn)動(dòng)捕捉數(shù)據(jù)預(yù)處理模塊主要包含三個(gè)方面內(nèi)容,即數(shù)據(jù)的特征值選取、捕獲數(shù)據(jù)的噪音成分去除以及高維的運(yùn)動(dòng)捕捉數(shù)據(jù)降維。
所述運(yùn)動(dòng)捕捉數(shù)據(jù)關(guān)鍵幀提取模塊主要三個(gè)方面內(nèi)容,即余弦距離計(jì)算、層次聚類分割以及關(guān)鍵幀提取。
不同于現(xiàn)有運(yùn)動(dòng)捕捉的數(shù)據(jù)未經(jīng)過濾波處理,本發(fā)明的特點(diǎn)在于,采用雙向巴特沃斯濾波器對(duì)數(shù)據(jù)庫中的捕捉數(shù)據(jù)進(jìn)行濾波處理,有效去除數(shù)據(jù)中包含的噪音成分。
所述的運(yùn)動(dòng)捕捉數(shù)據(jù)預(yù)處理模塊具體為:選取關(guān)節(jié)點(diǎn)的旋轉(zhuǎn)量作為運(yùn)動(dòng)捕捉數(shù)據(jù)的特征值。應(yīng)用階數(shù)為o,截止頻率為h赫茲的雙向巴特沃斯濾波器,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)捕捉數(shù)據(jù)的去噪功能。采用pca方法將高維的運(yùn)動(dòng)捕捉數(shù)據(jù)映射成低維的數(shù)據(jù),消除一些影響分割結(jié)果準(zhǔn)確性的維度數(shù)據(jù)。設(shè)置o=5,h=0.1。
不同于余弦距離公式計(jì)算相似度,本發(fā)明的特點(diǎn)在于,對(duì)余弦距離公式進(jìn)行了變形,當(dāng)相鄰兩幀越相似,那么角度越小,余弦距離越小,更加方便直觀標(biāo)識(shí)出相似度。
所述的計(jì)算余弦距離具體為:在運(yùn)動(dòng)捕捉數(shù)據(jù)預(yù)處理的基礎(chǔ)上,通過計(jì)算余弦距離比較相鄰速率向量的相似性;速率向量vvi通過相鄰的兩個(gè)幀ai、ai+1的間差計(jì)算得到,vvi=ai+1-ai;相鄰的速率向量vvi,vvi+1的余弦距離取值范圍是0到2,
不同于基于聚類算法的關(guān)鍵幀提取,本發(fā)明的特點(diǎn)在于,通過計(jì)算相鄰幀速率向量的余弦距離,距離越小,相似度越高。將距離最小的兩個(gè)相鄰幀速率向量合并成一個(gè)新的向量,生成聚類樹,將得到的分割點(diǎn)作為關(guān)鍵幀,不需要從相似的幀聚類中選取一幀作為關(guān)鍵幀。
所述的層次聚類分割具體為:為了解決計(jì)算結(jié)果與觀察結(jié)果不一致和獲取分割點(diǎn)的問題,采用聚類算法;每一個(gè)速率向量本身就是一個(gè)類,然后找到那個(gè)最小余弦距離的相鄰速率向量,然后將相似一致的兩個(gè)類合并成一個(gè)類,兩個(gè)向量使用線性回歸的方法合并成一個(gè)向量;采用線性回歸的方式保持向量的方向,在合并兩個(gè)向量之后,合并向量與前一個(gè)向量和后一個(gè)向量之間的余弦距離都需要更新;同時(shí),被合并的兩個(gè)向量之間的余弦距離都要被移除;當(dāng)運(yùn)行到最后的相鄰幀速率向量之間的最大距離大于1,線性回歸停止,此時(shí)每個(gè)類中最大的值就是一個(gè)分割點(diǎn)。
不同于基于曲線算法的關(guān)鍵幀提取,本發(fā)明的特點(diǎn)在于,遞歸的方式計(jì)算余弦距離,不需要計(jì)算首幀和尾幀的距離最大從而得到關(guān)鍵幀,簡(jiǎn)化了計(jì)算過程,減少了消耗的時(shí)間。
不同于基于優(yōu)化算法的關(guān)鍵幀提取。本發(fā)明的特點(diǎn)在于,只需要計(jì)算相鄰幀速率向量的余弦距離,不需要過濾最小重建誤差幀,復(fù)雜度更低,計(jì)算量更少。
不同于傳統(tǒng)的低等級(jí)分割方法。本發(fā)明的特點(diǎn)在于,能夠?qū)Ω呔S的運(yùn)動(dòng)捕捉數(shù)據(jù)分割,提取分割點(diǎn)之間的關(guān)鍵幀,銜接動(dòng)作的首尾幀,呈現(xiàn)中間動(dòng)作效果,促進(jìn)3d運(yùn)動(dòng)捕捉的應(yīng)用。
所述的關(guān)鍵幀提取具體為:每段的幀姿勢(shì)與均值的歐式距離誤差最小的幀作為關(guān)鍵幀,插入到關(guān)鍵幀集合中。第j幀姿勢(shì)表示成mj,第i段的均值bi可以描述為公式
所述的關(guān)鍵幀提取具體為:分割成k個(gè)分段的運(yùn)動(dòng)捕捉數(shù)據(jù),可以獲得k+1個(gè)分割點(diǎn),另外還有k個(gè)段的幀姿態(tài)與均值的歐式距離誤差最小的幀aoi,總共2k+1個(gè)關(guān)鍵幀,該序列為(a1,ao1,a2,ao2......ak)。
不同于基于速率的分割方法和基于曲線的分割方法。本發(fā)明的特點(diǎn)在于,實(shí)驗(yàn)結(jié)果體現(xiàn)更高的準(zhǔn)確率和查全率,性能比更好,得到的分割點(diǎn)更加準(zhǔn)確,具有更好的實(shí)用性。
所述的關(guān)鍵幀提取具體為:n名學(xué)生人工分割數(shù)據(jù)集中的捕捉,一次獲得83個(gè)分割點(diǎn),比較計(jì)算得到的分割點(diǎn)和人工分割點(diǎn),設(shè)置n=20。
本發(fā)明具有有益效果。本發(fā)明可以分割高維的運(yùn)動(dòng)捕捉數(shù)據(jù),提高分割點(diǎn)的準(zhǔn)確率和查全率,幫助用戶了解動(dòng)作分割點(diǎn)之間的中間動(dòng)作,呈現(xiàn)更好的動(dòng)作效果具有為:在得到分割點(diǎn)方面,本發(fā)明通過設(shè)置余弦距離計(jì)算得到相似度這一參數(shù)值,構(gòu)造相鄰幀速率向量的自下向上聚類結(jié)構(gòu)。對(duì)于預(yù)處理過的高維運(yùn)動(dòng)捕捉數(shù)據(jù),從而有效地提高關(guān)鍵幀提取的的準(zhǔn)確率和查全率;在關(guān)鍵幀提取方面,在分割點(diǎn)作為關(guān)鍵幀基礎(chǔ)上,將每段的幀姿態(tài)與均值的歐式距離誤差最小的幀作為關(guān)鍵幀。對(duì)于復(fù)雜動(dòng)作,明確開始和結(jié)束動(dòng)作之間的銜接過渡過程,較好地概括和表達(dá)該段動(dòng)作,提供較好的可視化效果。
附圖說明
圖1是本發(fā)明所述基于余弦距離層次聚類的關(guān)鍵幀提取的方法的流程示意圖。
圖2是本發(fā)明所述相鄰幀的速率向量的余弦距離與行走的狀態(tài)對(duì)應(yīng)圖。
圖3是本發(fā)明所述行走過程的層次聚類圖。
圖4是本發(fā)明所述部分動(dòng)作關(guān)鍵幀集合圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
本發(fā)明的實(shí)現(xiàn)具體是依序采用如下步驟:
(1)本發(fā)明的流程示意圖如圖1所示。首先在預(yù)處理模塊中運(yùn)用cmu運(yùn)動(dòng)捕捉數(shù)據(jù)庫提供的數(shù)據(jù),將每一幀中的關(guān)節(jié)點(diǎn)旋轉(zhuǎn)量作為分割運(yùn)動(dòng)捕捉數(shù)據(jù)的特征值;應(yīng)用階數(shù)為5,截止頻率為0.1赫茲的雙向巴特沃斯濾波器,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)捕捉數(shù)據(jù)的去噪功能;采用pca方法將高維數(shù)據(jù)映射成低維數(shù)據(jù),保存每一幀的有效數(shù)據(jù)。其次,在以下步驟中實(shí)現(xiàn)關(guān)鍵幀提取模塊。
(2)通過計(jì)算相鄰幀的速率矩陣比較相似度,速率向量vvi是由相鄰的兩個(gè)幀ai、ai+1的每一維差值組成的新向量,公式為vvi=ai+1-ai。相鄰的速率向量vvi,vvi+1的余弦距離distance取值范圍是0到2,公式為
(3)在余弦距離得到相似度參數(shù)值的基礎(chǔ)上,構(gòu)造自下向上的層次聚類結(jié)構(gòu)。如圖3所示,給出了圖2中行走運(yùn)動(dòng)過程中的層次聚類結(jié)果。所述步驟(3)具體包括以下過程:
過程3.1初始化每個(gè)速率向量,設(shè)置為一個(gè)類。
過程3.2找到余弦距離最小的相鄰幀速率向量,將相似的兩個(gè)類合并成一個(gè)類,通過線性回歸的方式將速率向量合并成一個(gè)新的向量。
過程3.3更新合并的相鄰幀速率向量與前一個(gè)向量和后一個(gè)向量之間的余弦距離。同時(shí),移除被合并的兩個(gè)向量之間的余弦距離。
過程3.4當(dāng)運(yùn)行到最后的相鄰幀向量之間的余弦距離大于1,線性回歸停止,此時(shí)每個(gè)類中的最大的值就是一個(gè)分割點(diǎn)。
(4)在步驟(3)得到的分割點(diǎn)作為關(guān)鍵幀基礎(chǔ)上,將每段的幀姿態(tài)與均值的歐式距離誤差最小的幀也作為關(guān)鍵幀。如圖4所示,給出了部分分割點(diǎn)之間的關(guān)鍵幀集合圖。所述步驟(4)的具體包括以下過程:
過程4.1假設(shè)分割點(diǎn)序列是a1,a2,a3,...ak,,通過計(jì)算分割點(diǎn)之間所有幀的每一維平均值得到均值向量,第j幀姿勢(shì)表示成mj,第i段的均值bi可以描述為公式
過程4.2在ai和ai+1分割點(diǎn)之間,計(jì)算得到第i段的中間關(guān)鍵幀取該段中的幀姿態(tài)與均值的歐式距離誤差最小的幀的索引。設(shè)ai≤aoi≤ai+1,則第i段的中間關(guān)鍵幀的序號(hào)aoi,計(jì)算公式是:aoi=argmin|mx-bi|,其中:ai≤x≤ai+1-1。
過程4.3分割點(diǎn)和幀姿態(tài)與均值的歐式距離最小的幀構(gòu)建完整的關(guān)鍵幀序列。分割成k個(gè)分段的運(yùn)動(dòng)捕捉數(shù)據(jù),可以獲得k+1個(gè)分割點(diǎn),另外還有k個(gè)段的幀姿態(tài)與均值的歐式距離誤差最小的幀aoi,總共2k+1個(gè)關(guān)鍵幀,該序列為(a1,ao1,a2,ao2......ak)。
(5)邀請(qǐng)20名學(xué)生,人工地分割數(shù)據(jù)集中的捕捉數(shù)據(jù)。將人工獲得的分割點(diǎn)與本發(fā)明得到的分割點(diǎn)進(jìn)行對(duì)比,以相差幀數(shù)在10幀以為為標(biāo)準(zhǔn),若在10幀以內(nèi),則獲得有效分割點(diǎn),否則為無效分割點(diǎn)計(jì)算得到準(zhǔn)確率和查全率。
以上所述僅為本發(fā)明技術(shù)方案和具體實(shí)施例的描述,并不用于限定本發(fā)明的保護(hù)范圍,應(yīng)當(dāng)理解,在不違背本發(fā)明實(shí)質(zhì)內(nèi)容和精神的前提下,所作任何修改、等同替換等都將落入本發(fā)明的保護(hù)范圍內(nèi)。