基于人體運(yùn)動(dòng)捕捉數(shù)據(jù)字符串表示的行為分割方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)動(dòng)畫中對(duì)人體運(yùn)動(dòng)捕捉數(shù)據(jù)的處理。更具體地,涉及一種基于 人體運(yùn)動(dòng)捕捉數(shù)據(jù)字符串表示的行為分割方法。
【背景技術(shù)】
[0002] 計(jì)算機(jī)動(dòng)畫是計(jì)算機(jī)圖形學(xué)與藝術(shù)相結(jié)合的產(chǎn)物,隨著計(jì)算機(jī)圖形學(xué)技術(shù)以及計(jì) 算機(jī)軟硬件技術(shù)的飛速發(fā)展,計(jì)算機(jī)動(dòng)畫已廣泛的應(yīng)用于影視特效、三維游戲、商業(yè)廣告、 計(jì)算機(jī)仿真等眾多領(lǐng)域。
[0003] 近年來(lái),隨著硬件技術(shù)的不斷發(fā)展以及成本的降低,運(yùn)動(dòng)捕捉系統(tǒng)逐漸普及,基于 光學(xué)的三維人體運(yùn)動(dòng)捕捉(Motion Capture)方法已經(jīng)發(fā)展成為一種重要的人體運(yùn)動(dòng)信息 獲取手段,具有較大規(guī)模的人體運(yùn)動(dòng)捕捉數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生,而且這些運(yùn)動(dòng)捕捉數(shù)據(jù)庫(kù)中的 數(shù)據(jù)也逐漸龐大。人體運(yùn)動(dòng)捕捉數(shù)據(jù)由于較好地保留了運(yùn)動(dòng)的細(xì)節(jié)并真實(shí)地記錄人體運(yùn)動(dòng) 的軌跡,具有數(shù)據(jù)精度高、質(zhì)量好的特點(diǎn),已經(jīng)被廣泛地應(yīng)用于計(jì)算機(jī)動(dòng)畫領(lǐng)域。但是,捕捉 人體運(yùn)動(dòng)數(shù)據(jù)需要非常昂貴的設(shè)備,捕捉過(guò)程也相對(duì)復(fù)雜。
[0004] 隨著運(yùn)動(dòng)捕捉技術(shù)的不斷發(fā)展,人體運(yùn)動(dòng)捕捉數(shù)據(jù)庫(kù)中的數(shù)據(jù)呈現(xiàn)飛速增長(zhǎng)。面 對(duì)一個(gè)較大的運(yùn)動(dòng)捕捉數(shù)據(jù)庫(kù)(超過(guò)百萬(wàn)幀),如何從中提取用戶所需要的運(yùn)動(dòng)數(shù)據(jù)已成 為當(dāng)前的研究熱點(diǎn)。最直接的方法是通過(guò)人工的方法對(duì)這些數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行手動(dòng)提取 與人工標(biāo)注,以便日后進(jìn)行管理與重用。然而面對(duì)數(shù)目龐大的運(yùn)動(dòng)數(shù)據(jù),人工的方法往往只 能保證得到的數(shù)據(jù)質(zhì)量較好,卻需要大量既繁瑣又耗時(shí)的手工操作,而且難以進(jìn)行有效的 組織與維護(hù)。想要高效地開發(fā)和利用已有的數(shù)據(jù)庫(kù),一個(gè)重要的前提和基礎(chǔ)就是要實(shí)現(xiàn)對(duì) 于人體運(yùn)動(dòng)捕捉數(shù)據(jù)的自動(dòng)分割。
[0005] 隨著人體運(yùn)動(dòng)捕捉數(shù)據(jù)庫(kù)中數(shù)據(jù)的日益龐大,如何有效的利用這些現(xiàn)有的數(shù)據(jù)變 得非常重要,行為分割作為其中一個(gè)重要的基礎(chǔ),其目的是在包含若干不同行為的長(zhǎng)序列 中尋找若干時(shí)間幀,將其兩側(cè)屬于不同行為的數(shù)據(jù)分割開來(lái),最終形成在語(yǔ)義上具有單一 行為的運(yùn)動(dòng)片段,以便于在數(shù)據(jù)庫(kù)中的組織與存儲(chǔ),以及在計(jì)算機(jī)動(dòng)畫制作過(guò)程中進(jìn)行重 用。綜上所述,基于人體運(yùn)動(dòng)捕捉數(shù)據(jù)的行為分割具有巨大的發(fā)展前景,值得深入研究。
[0006] 近年來(lái),國(guó)內(nèi)外有很多學(xué)者針對(duì)人體運(yùn)動(dòng)行為分割方法進(jìn)行了研究與探索???內(nèi)基梅隆大學(xué)的 Barbie 等人(J. Barbii,A. Safonova, J. Y. Pan and C. Faloutsos. · Segmenting motion capture data into distinct behaviors. . Proceedings of Graphics Interface. . 2004年,頁(yè)碼:185-194.)認(rèn)為不同行為可以用不同特征維數(shù)來(lái)表示,只包含 單一行為的運(yùn)動(dòng)片段具有較低的維數(shù),而包含有不同行為的運(yùn)動(dòng)片段應(yīng)該具有較高的維 數(shù),首先通過(guò)主成分分析(Principal Component Analysis,簡(jiǎn)稱PCA)算法降低人體運(yùn)動(dòng) 捕捉數(shù)據(jù)的維數(shù),然后在子空間中通過(guò)分析投影誤差來(lái)實(shí)現(xiàn)人體運(yùn)動(dòng)的行為分割。由于 這種方法在降維時(shí)丟棄了主成分子空間以外的信息,所以分割的準(zhǔn)確性比較低。接著他 們又在PCA的基礎(chǔ)上提出基于概率主成分分析(Probabilistic Principal Component Analysis,簡(jiǎn)稱PPCA)的行為分割方法,這種方法假設(shè)不同行為數(shù)據(jù)具有不同的概率分布, 采用馬氏距離對(duì)概率模型進(jìn)行距離度量來(lái)找出行為分割點(diǎn)。與PCA相比,PPCA定義了一 個(gè)恰當(dāng)?shù)母怕誓P?,使PPCA既具有與PCA相同的降維處理能力,又克服了 PCA由于缺乏 相關(guān)的概率密度或生成模型而帶來(lái)的局限性。但是這種方法不能夠判斷出待分割序列中 包含的相同行為,在實(shí)際應(yīng)用中存在很多不便??▋?nèi)基梅隆大學(xué)的Zhou等人(F. Zhou,F(xiàn). Torre and J. K. Hodgins. . Hierarchical aligned cluster analysis for temporal clustering of human motion.. IEEE Transactions on Pattern Analysis and Machine Intelligence. . 2013 年,頁(yè)碼:582-596.)通過(guò)分層對(duì)齊聚類分析(Hierarchical Aligned Cluster Analysis,簡(jiǎn)稱HACA)的方法實(shí)現(xiàn)了基于人體運(yùn)動(dòng)捕捉數(shù)據(jù)的行為分割,該方法將 行為分割問題轉(zhuǎn)換成能量最小化問題,利用動(dòng)態(tài)規(guī)劃算法實(shí)現(xiàn)行為分割,該方法分割準(zhǔn)確 率較高,但是該方法需要用戶事先確定序列中的行為個(gè)數(shù)以及時(shí)序約簡(jiǎn)時(shí)的聚類個(gè)數(shù)。
[0007] 因此,需要提供一種基于人體運(yùn)動(dòng)捕捉數(shù)據(jù)字符串表示的行為分割方法。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于提供一種基于人體運(yùn)動(dòng)捕捉數(shù)據(jù)字符串表示的行為分割方法。
[0009] 為達(dá)到上述目的,本發(fā)明采用下述技術(shù)方案:
[0010] 一種基于人體運(yùn)動(dòng)捕捉數(shù)據(jù)字符串表示的行為分割方法,該方法包括如下步驟:
[0011] S1、將人體運(yùn)動(dòng)捕捉數(shù)據(jù)作為多個(gè)高維離散的數(shù)據(jù)點(diǎn),并分別計(jì)算各數(shù)據(jù)點(diǎn)之間 的歐式距離;
[0012] S2、通過(guò)基于各數(shù)據(jù)點(diǎn)的局部密度和相對(duì)距離的聚類方法進(jìn)行聚類得到各數(shù)據(jù)點(diǎn) 所屬的類,并用不同的字符一一對(duì)應(yīng)表示不同的類;
[0013] S3、將字符按照各字符對(duì)應(yīng)的人體運(yùn)動(dòng)捕捉數(shù)據(jù)的時(shí)序進(jìn)行重新排序得到字符 串,并合并字符串中在時(shí)序上相鄰的相同字符為字符組,由各字符組構(gòu)成按照人體運(yùn)動(dòng)捕 捉數(shù)據(jù)的時(shí)序排列的行為串;
[0014] S4、根據(jù)行為串對(duì)人體運(yùn)動(dòng)捕捉數(shù)據(jù)所構(gòu)成的整體行為進(jìn)行分割,并提取分割后 各單個(gè)行為的運(yùn)動(dòng)周期。
[0015] 優(yōu)選地,步驟S2進(jìn)一步包括如下子步驟:
[0016] S2. 1、根據(jù)高斯核函數(shù)計(jì)算用于聚類的各數(shù)據(jù)點(diǎn)局部密度;
[0017] S2. 2、將各數(shù)據(jù)點(diǎn)按照其局部密度進(jìn)行降序排列,計(jì)算各數(shù)據(jù)點(diǎn)的相對(duì)距離;
[0018] S2. 3、分別將各數(shù)據(jù)點(diǎn)的局部密度與相對(duì)距離進(jìn)行歸一化后相乘,并根據(jù)各數(shù)據(jù) 點(diǎn)的乘積判斷聚類中心;
[0019] S2. 4、對(duì)非聚類中心的數(shù)據(jù)點(diǎn)進(jìn)行向聚類中心的聚類,并用不同的字符一一對(duì)應(yīng) 表示不同的類。
[0020] 優(yōu)選地,步驟S2中數(shù)據(jù)點(diǎn)的相對(duì)距離定義為:
[0021 ] 如果該數(shù)據(jù)點(diǎn)的局部密度是所有數(shù)據(jù)點(diǎn)中的最大值,則該數(shù)據(jù)點(diǎn)的相對(duì)距離為除 了該數(shù)據(jù)點(diǎn)外其它數(shù)據(jù)點(diǎn)的相對(duì)距離中的最大值;
[0022] 如果該數(shù)據(jù)點(diǎn)的局部密度非所有數(shù)據(jù)點(diǎn)中的最大值,則該數(shù)據(jù)點(diǎn)的相對(duì)距離為該 數(shù)據(jù)點(diǎn)與比該數(shù)據(jù)點(diǎn)有著更高局部密度的數(shù)據(jù)點(diǎn)的歐式距離中的最小值。
[0023] 優(yōu)選地,根據(jù)各數(shù)據(jù)點(diǎn)的乘積判斷聚類中心的方法為:
[0024] 將各數(shù)據(jù)點(diǎn)按乘積的大小進(jìn)行降序排列,依次將降序排列后的各相鄰數(shù)據(jù)點(diǎn)的乘 積相減,相減結(jié)果大于乘積閾值的數(shù)據(jù)點(diǎn)以及所有乘積大于該數(shù)據(jù)點(diǎn)的乘積的數(shù)據(jù)點(diǎn)作為 聚類中心。
[0025] 優(yōu)選地,乘積閾值為0· 05。
[0026] 優(yōu)選地,步驟S3中進(jìn)一步包括如下子步驟:
[0027] S3. 1、將步驟S2得到的字符按照各字符對(duì)應(yīng)的人體運(yùn)動(dòng)捕捉數(shù)據(jù)的時(shí)序進(jìn)行重 新排序得到字符串;
[0028] S3. 2、合并字符串中在時(shí)序上相鄰的相同字符為字符組,記錄各字符組中包含的 字符個(gè)數(shù);
[0029] S3. 3、由各字符組構(gòu)成按照人體運(yùn)動(dòng)捕捉數(shù)據(jù)的時(shí)序排列的行為串。
[0030] 優(yōu)選地,步驟S4進(jìn)一步包括如下子步驟:
[0031] S4. 1、用滑動(dòng)窗的方法統(tǒng)計(jì)行為串中字符段的個(gè)數(shù),并從字符段中篩選出關(guān)鍵字 符段,字符段由行為串中在時(shí)序上相鄰的字符組構(gòu)成,且字符段最多包含3個(gè)不重復(fù)的字 符組;
[0032] S4. 3、根據(jù)關(guān)鍵字符段用字符串匹配的方法找出行為分割點(diǎn),對(duì)人體運(yùn)動(dòng)捕捉數(shù) 據(jù)所構(gòu)成的整體行為進(jìn)行分割得到各單個(gè)行為,并提取分割后各單個(gè)行為的運(yùn)動(dòng)周期。
[0033] 優(yōu)選地,步驟S4. 1中用滑動(dòng)窗的方法統(tǒng)計(jì)行為串中字符段的個(gè)數(shù)的方法為:
[0034] 設(shè)步長(zhǎng)為1、窗口長(zhǎng)度為2,從行為串的第一幀開始到最后一幀為止統(tǒng)計(jì)各字符段 出現(xiàn)的次數(shù);
[0035] 然后再將窗口長(zhǎng)度設(shè)為3并從行為串的第一幀開始到最后一幀為止統(tǒng)計(jì)各字符 段出現(xiàn)的次數(shù)。
[0036] 優(yōu)選地,步驟S4. 1中從字符段中篩選出行為串中的關(guān)鍵字符段的篩選條件為:
[0037] 字符段中包含的字符組數(shù)量大于等于3,且如果組成字符段的字符組完全包含在 另一個(gè)字符段中則只保留出現(xiàn)次數(shù)最多的字符段。
[0038] 優(yōu)選地,步驟S4. 1之后且步驟S4. 3之前還包括如下步驟:
[0039] S4. 2、如果存在不包含于關(guān)鍵字符段中的字符組,則進(jìn)行如下處理:
[0040] 若該字符組中包含的字符數(shù)量大于600,則將該字符組作為一個(gè)單個(gè)行為;
[0041] 若該字符組中包含的字符數(shù)量小于等于600,則不將該