一種基于kinect的運(yùn)動(dòng)人體姿態(tài)識(shí)別方法
【專利摘要】本發(fā)明提供了一種基于kinect的運(yùn)動(dòng)人體姿態(tài)識(shí)別方法,它包括以下步驟:定義姿態(tài)的行為模式、訓(xùn)練姿態(tài)序列樣本采集、樣本姿態(tài)序列的特征提取和歸一化、樣本姿態(tài)特征的降維、訓(xùn)練多類姿態(tài)分類機(jī)、對(duì)新的姿態(tài)序列進(jìn)行識(shí)別。本發(fā)明同時(shí)還具有以下有益效果:(1) 本發(fā)明可以識(shí)別出輸入姿態(tài)序列的整體含義,與傳統(tǒng)的方法相比,能夠識(shí)別的含義更加豐富,也更加接近人際交流的層次。(2) 本發(fā)明與傳統(tǒng)的識(shí)別特定姿態(tài)的算法相比,更加泛用。(3) 本發(fā)明提出一種對(duì)用戶體型和位置不變的特征表示方法,能夠更加真實(shí)地反映出人體姿態(tài)本身的變化,因此提高了姿態(tài)識(shí)別的正確性。(4) 本發(fā)明與傳統(tǒng)的基于數(shù)據(jù)庫搜索的方法相比,具有更高的識(shí)別效率。
【專利說明】-種基于kinect的運(yùn)動(dòng)人體姿態(tài)識(shí)別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于kinect的人體姿態(tài)識(shí)別方法。
【背景技術(shù)】
[0002] 讓計(jì)算機(jī)像人類一樣對(duì)世間的文字、語言,乃至現(xiàn)象進(jìn)行理解是人工智能的重要 目標(biāo)之一。隨著人工智能技術(shù)的發(fā)展,文字識(shí)別,語音識(shí)別等技術(shù)已經(jīng)逐步成熟,但在對(duì)人 類姿態(tài)進(jìn)行理解方面,仍然存在非常大的困難。其原因在于一直以來,與文字,聲音等信號(hào) 相比,人體姿態(tài)識(shí)別的基礎(chǔ),即人體姿態(tài)描述形式仍然沒有一個(gè)定論。雖然一些學(xué)者提出了 在視頻中提取人體部件的算法,但是由于視頻會(huì)受到光照,人穿著的衣服的影響,導(dǎo)致這些 算法存在著較大的局限性。
[0003] 近幾年,微軟公司推出了一款名為kinect的產(chǎn)品。這款集動(dòng)態(tài)捕捉、影音識(shí)別、社 群互動(dòng)等多項(xiàng)相關(guān)技術(shù)為一體的體感傳感器大大帶動(dòng)了與圖形圖像相關(guān)的產(chǎn)業(yè)以及學(xué)術(shù) 研究領(lǐng)域的發(fā)展。更重要的是,這款產(chǎn)品提供了實(shí)時(shí)地表示人體姿態(tài)的方法,能夠比較準(zhǔn)確 的檢測到人體的空間位置,并用三維鏈?zhǔn)焦趋老到y(tǒng)對(duì)檢測到的人體姿態(tài)進(jìn)行表示。這種快 速有效的人體姿態(tài)描述方法的誕生,為人體姿態(tài)的識(shí)別帶來了曙光。
[0004] 現(xiàn)有的人體姿態(tài)識(shí)別算法往往都是對(duì)人體所處的某一時(shí)刻的"狀態(tài)"進(jìn)行識(shí)別,這 類方法能夠很準(zhǔn)確地識(shí)別出"舉手"、"抬腿"等簡單的靜態(tài)姿態(tài)。但在自然的人際交流場景 中,人類傾向于使用一系列的動(dòng)作組合表示出更為復(fù)雜的含義。對(duì)于這種一連串動(dòng)作組成 的動(dòng)態(tài)姿態(tài)進(jìn)行識(shí)別,是當(dāng)前人體姿態(tài)識(shí)別研究領(lǐng)域的研究重點(diǎn)與難點(diǎn)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)內(nèi)容是提供一種基于kinect的運(yùn)動(dòng)人體姿態(tài)識(shí)別方法。 通過對(duì)事先定義好的幾類姿態(tài)進(jìn)行訓(xùn)練,本發(fā)明可以自動(dòng)地對(duì)kinect捕捉的運(yùn)動(dòng)人體姿 態(tài)序列所表示的意義進(jìn)行識(shí)別。為此本發(fā)明采用以下技術(shù)方案,它包括以下步驟:
[0006] (1)、根據(jù)用戶的要求,事先定義數(shù)種運(yùn)動(dòng)姿態(tài)的行為模式;
[0007] (2)、令不同人表演(1)中定義的運(yùn)動(dòng)姿態(tài),錄制與每個(gè)預(yù)定義姿態(tài)行為對(duì)應(yīng)的多 個(gè)姿態(tài)序列,作為識(shí)別算法的訓(xùn)練樣本;
[0008] (3)、計(jì)算每種運(yùn)動(dòng)姿態(tài)的相同長度的代表子片段,并對(duì)片段中的每一幀進(jìn)行特征 提取;
[0009] (4)、對(duì)(3)中得到的所有訓(xùn)練樣本的歸一化的姿態(tài)特征進(jìn)行降維處理,得到每個(gè) 樣本的低維特征表示的同時(shí),保存每個(gè)特征對(duì)應(yīng)的基向量;
[0010] (5)、將(4)中得到的每個(gè)訓(xùn)練樣本的低維特征和其對(duì)應(yīng)的姿態(tài)類別作為輸入,使 用SVM算法訓(xùn)練特征分類器;
[0011] ¢)、對(duì)于kinect捕獲的一組新的姿態(tài)序列,使用(3)中的方法對(duì)其進(jìn)行特征提取 后,將特征投影到(4)中得到的基向量上進(jìn)行降維,并將得到的低維特征輸入(5)中得到的 多類分類器,將分類器輸出的結(jié)果作為該姿態(tài)序列的識(shí)別結(jié)果。
[0012] 在采用以上技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以采用以下進(jìn)一步方案:
[0013] 使用kinect錄制用戶表演的預(yù)定義姿態(tài),對(duì)于捕獲的每一幀深度圖像,將其中屬 于人體的區(qū)域分割出來,并使用人體部件檢測算法對(duì)人體的部件進(jìn)行劃分。
[0014] 進(jìn)一步的,對(duì)每種運(yùn)動(dòng)姿態(tài)尋找相同長度的代表子片段步驟,使用了貪心算法計(jì) 算每類姿態(tài)中與其他類別姿態(tài)相關(guān)程度最小的姿態(tài)片段作為該姿態(tài)的代表片段,完成姿態(tài) 序列長度歸一化。
[0015] 進(jìn)一步的,對(duì)姿態(tài)序列進(jìn)行特征提取步驟中,使用每根骨骼的相對(duì)增量旋轉(zhuǎn)的四 元數(shù)定義每一幀的人體姿態(tài),其中對(duì)于骨骼i,相對(duì)增量旋轉(zhuǎn)為其相對(duì)于初始骨架中對(duì)應(yīng) 骨骼的旋轉(zhuǎn)氏和其前一級(jí)骨骼j對(duì)應(yīng)的旋轉(zhuǎn)L之間的旋轉(zhuǎn)增量:(Lr 1Rp
[0016] 進(jìn)一步的,使用PCA算法對(duì)所有姿態(tài)樣本的整個(gè)姿態(tài)序列特征進(jìn)行降維,并使用 cross validation方法選擇降維度
[0017] 由于本發(fā)明的技術(shù)方案,本發(fā)明同時(shí)還具有以下有益效果:
[0018] (1)本發(fā)明可以識(shí)別出輸入姿態(tài)序列的整體含義,與傳統(tǒng)的方法相比,能夠識(shí)別的 含義更加豐富,也更加接近人際交流的層次。
[0019] (2)本發(fā)明可以支持用戶自定義需要識(shí)別的姿態(tài),與傳統(tǒng)的識(shí)別特定姿態(tài)的算法 相比,更加泛用。
[0020] (3)由于本發(fā)明提出了一種對(duì)用戶體型和位置不變的特征表示方法,能夠更加真 實(shí)地反映出人體姿態(tài)本身的變化,因此提高了姿態(tài)識(shí)別的正確性。
[0021] (4)本發(fā)明由于事先使用訓(xùn)練算法對(duì)各種類姿態(tài)序列的樣本進(jìn)行學(xué)習(xí),因此在判 斷一個(gè)新來的姿態(tài)序列所屬類別的時(shí)候,只需要進(jìn)行一系列簡單的線性運(yùn)算即可得到分類 結(jié)果,與傳統(tǒng)的基于數(shù)據(jù)庫搜索的方法相比,具有更高的識(shí)別效率。
【專利附圖】
【附圖說明】
[0022] 圖1為本發(fā)明所提供的方法的整體流程圖。
[0023] 圖2為kinect提取的人體鏈?zhǔn)焦趋老到y(tǒng)圖示。
[0024] 圖3為使用Iibsvm進(jìn)行訓(xùn)練分類模型得到的模型信息。
[0025] 圖4為用戶自定義的姿態(tài)模式。
[0026] 圖5為用戶自定義的每個(gè)姿態(tài)的平均幀數(shù)。
[0027] 圖6表示對(duì)使用不同長度的特征訓(xùn)練的分類器進(jìn)行測試,每組動(dòng)作選擇6個(gè)測試 樣本,我們選擇測試正確率最高的作為最終的特征維數(shù)。
[0028] 圖7為分類器的測試結(jié)果。
【具體實(shí)施方式】
[0029] 圖1是本發(fā)明的基本流程圖,通過對(duì)事先定義好的幾類姿態(tài)進(jìn)行訓(xùn)練,使用訓(xùn)練 過程中得到的基向量和線性分類器,本發(fā)明可以自動(dòng)地對(duì)kinect捕捉的人體姿態(tài)序列所 表示的意義進(jìn)行識(shí)別。下面對(duì)本發(fā)明的各個(gè)流程進(jìn)行詳細(xì)說明:
[0030] (1)、定義姿態(tài)的行為模式:
[0031] 首先必須聲明,本發(fā)明允許用戶自己預(yù)定義不同種類、數(shù)量的姿態(tài),以滿足不同用 戶的需求。在本說明書中,結(jié)合當(dāng)前互動(dòng)游戲的需求,定義了 9種不同的行為。具體動(dòng)作規(guī) 范如圖4所示。
[0032] (2)、訓(xùn)練姿態(tài)序列樣本采集:
[0033] 在定義了姿態(tài)行為后,需要收集每個(gè)姿態(tài)所對(duì)應(yīng)的訓(xùn)練樣本。如圖2所示,使用 kinect對(duì)預(yù)定義姿態(tài)進(jìn)行采集,使用其自帶的三維鏈?zhǔn)焦趋老到y(tǒng)記錄每種姿態(tài)的行為。為 了讓系統(tǒng)能夠適應(yīng)不同用戶在執(zhí)行特定姿態(tài)時(shí)出現(xiàn)的差異,對(duì)于每一個(gè)姿態(tài),請3到5個(gè)不 同身材的人員進(jìn)行多次表演。將采集的所有數(shù)據(jù)的60%作為訓(xùn)練用數(shù)據(jù),40%作為測試數(shù) 據(jù)。為了訓(xùn)練數(shù)據(jù)的平衡性,保證每一類姿態(tài)下的訓(xùn)練樣本數(shù)目盡量相同。對(duì)人體部件進(jìn) 行如圖2中所示的連接,得到用"圖"表示的人體姿態(tài)。
[0034] (3)、樣本姿態(tài)序列的特征提取和歸一化:
[0035] 首先需要明確姿態(tài)序列中每幀靜態(tài)姿態(tài)的表示。kinect的三維骨架使用了 15個(gè) 頂點(diǎn)的3維位置表示人體運(yùn)動(dòng)姿態(tài),但是這種表示方式會(huì)受到人的位置和身材的影響,并 不能很好地表示姿態(tài)本身。為此,需構(gòu)造一種對(duì)用戶體型和位置不變的特征表示。首先定 義一個(gè)自然姿態(tài)的初始三維骨架,并將kinect捕獲的任意姿態(tài)表示為該姿態(tài)下每段骨骼 的相對(duì)增量旋轉(zhuǎn),并使用四元數(shù)進(jìn)行表示。其中對(duì)于骨骼i,相對(duì)增量旋轉(zhuǎn)為其相對(duì)于初始 骨架中對(duì)應(yīng)骨骼的旋轉(zhuǎn)氏和其前一級(jí)骨骼j對(duì)應(yīng)的旋轉(zhuǎn)L之間的旋轉(zhuǎn)增量:O^r 1Rp
[0036] 如圖5所示,完成不同的姿態(tài)需要花費(fèi)的時(shí)間差異會(huì)導(dǎo)致捕獲的姿態(tài)序列的幀 數(shù)不盡相同,因此需要對(duì)姿態(tài)序列進(jìn)行歸一化處理。
[0037] 本發(fā)明思路是:因?yàn)椴煌藨B(tài)序列的長度不一致,所以采用序列片段代表整體 姿態(tài)序列的方法,其中某類姿態(tài)的代表片段是某類姿態(tài)序列中連續(xù)的一段姿態(tài),而且是 與其他類別的姿態(tài)序列區(qū)分度最大的一段姿態(tài)。設(shè)姿態(tài)類別數(shù)為N,代表片段長度為T, 對(duì)第i類姿態(tài),其代表片段起始幀為該類完整姿態(tài)序列的第4幀,則代表片段可以表示 為一個(gè)T維的向量,記為V i (Α,Τ)。則每類代表片段的計(jì)算方法可以轉(zhuǎn)化為優(yōu)化問題: arg min Il γο/τ(V1 (./;,Γ),…,V、(/,、,Π ) 111。其中,使用 c〇rr 計(jì)算片 性,0表示不相關(guān),1表示完全一致。通過優(yōu)化上式,可以找到每類姿態(tài)序列中與其他類區(qū)分 度最大的片段。
[0038] 實(shí)驗(yàn)中手動(dòng)選擇T = 40,并使用貪心算法對(duì)代表片段進(jìn)行優(yōu)化。在實(shí)驗(yàn)中發(fā)現(xiàn), 使用連續(xù)的T幀作為代表片段并不比從T幀中采樣數(shù)幀作為代表片段的姿態(tài)識(shí)別正確率更 高,但卻會(huì)大大增加計(jì)算量。因此實(shí)際保存代表片段時(shí),每5幀取一關(guān)鍵幀,每類姿態(tài)只取 8幀作為代表片段。
[0039] (4)、樣本姿態(tài)特征的降維:
[0040] 通過(3)的處理,所有的姿態(tài)樣本都表示為相同長度的特征向量。但是,通過實(shí) 驗(yàn),發(fā)現(xiàn)數(shù)據(jù)在原始特征空間并沒有很好的區(qū)分度。因此我們對(duì)姿態(tài)特征向量進(jìn)行了降維 處理。將所有訓(xùn)練樣本的特征向量輸入PCA算法進(jìn)行訓(xùn)練,保存最大的數(shù)個(gè)特征向量作為 基向量,對(duì)應(yīng)地,將每個(gè)訓(xùn)練樣本在基向量上的投影作為該樣本的降維表示。由于不同用戶 預(yù)定義的姿態(tài)并不相同,無法給出最優(yōu)的特征維數(shù),對(duì)此的做法是:如圖6所示,使用cross validation算法選擇基向量的個(gè)數(shù)。
[0041] (5)、訓(xùn)練多類姿態(tài)分類機(jī):
[0042] 將每個(gè)訓(xùn)練樣本的低維特征和其對(duì)應(yīng)的姿態(tài)類別作為輸入,訓(xùn)練特征分類器。使 用支持向量機(jī)算法,具體使用了通用的Iibsvm庫建立了對(duì)9類預(yù)定義姿態(tài)分類的模型,模 型信息如圖3所示。
[0043] (6)、對(duì)新的姿態(tài)序列進(jìn)行識(shí)別:
[0044] 在實(shí)際檢測動(dòng)作的時(shí)候,會(huì)輸入一段很長的序列,甚至是實(shí)時(shí)的,對(duì)序列進(jìn)行逐幀 檢測,對(duì)當(dāng)前幀+后續(xù)40幀進(jìn)行采樣,使用(3)中的方法對(duì)其進(jìn)行特征提取后,將特征投影 至IJ (4)中得到的基向量上進(jìn)行降維,并將得到的低維特征輸入(5)中得到的多類分類器,將 分類器輸出的結(jié)果作為該姿態(tài)序列的識(shí)別結(jié)果。我們將(2)中采集的所有數(shù)據(jù)的40%進(jìn)行 分類測試。圖7為數(shù)據(jù)測試結(jié)果。
【權(quán)利要求】
1. 一種基于kinect的運(yùn)動(dòng)人體姿態(tài)識(shí)別方法,其特征在于它包括以下步驟: (1) 、根據(jù)用戶的要求,事先定義數(shù)種運(yùn)動(dòng)姿態(tài)的行為模式; (2) 、令不同人表演(1)中定義的姿態(tài),錄制與每個(gè)預(yù)定義姿態(tài)行為對(duì)應(yīng)的多個(gè)姿態(tài)序 列,作為識(shí)別算法的訓(xùn)練樣本; (3) 、計(jì)算每種運(yùn)動(dòng)姿態(tài)的相同長度的代表子片段,并對(duì)片段中的每一幀進(jìn)行特征提 取; (4) 、對(duì)(3)中得到的所有訓(xùn)練樣本的歸一化的姿態(tài)特征進(jìn)行降維處理,得到每個(gè)樣本 的低維特征表示的同時(shí),保存每個(gè)特征對(duì)應(yīng)的基向量; (5) 、將(4)中得到的每個(gè)訓(xùn)練樣本的低維特征和其對(duì)應(yīng)的姿態(tài)類別作為輸入,使用 SVM算法訓(xùn)練特征分類器; (6) 、對(duì)于kinect捕獲的一組新的姿態(tài)序列,使用(3)中的方法對(duì)其進(jìn)行特征提取后, 將特征投影到(4)中得到的基向量上進(jìn)行降維,并將得到的低維特征輸入(5)中得到的多 類分類器,將分類器輸出的結(jié)果作為該姿態(tài)序列的識(shí)別結(jié)果。
2. 如權(quán)利要求1所述的一種基于kinect的人體姿態(tài)識(shí)別方法,其特征在于:使用 kinect錄制用戶表演的預(yù)定義姿態(tài),對(duì)于捕獲的每一幀深度圖像,將其中屬于人體的區(qū)域 分割出來,并使用人體部件檢測算法對(duì)人體的部件進(jìn)行劃分。
3. 如權(quán)利要求1所述的一種基于kinect的人體姿態(tài)識(shí)別方法,其特征在于:對(duì)每種運(yùn) 動(dòng)姿態(tài)尋找相同長度的代表子片段步驟,使用了貪心算法計(jì)算每類姿態(tài)中與其他類別姿態(tài) 相關(guān)程度最小的姿態(tài)片段作為該姿態(tài)的代表片段,完成姿態(tài)序列長度歸一化。
4. 如權(quán)利要求1所述的一種基于kinect的人體姿態(tài)識(shí)別方法,其特征在于:對(duì)姿態(tài)序 列進(jìn)行特征提取步驟中,使用每根骨骼的相對(duì)增量旋轉(zhuǎn)的四元數(shù)定義每一幀的人體姿態(tài), 其中對(duì)于骨骼i,相對(duì)增量旋轉(zhuǎn)為其相對(duì)于初始骨架中對(duì)應(yīng)骨骼的旋轉(zhuǎn)A和其前一級(jí)骨骼 J對(duì)應(yīng)的旋轉(zhuǎn)&之間的旋轉(zhuǎn)增量= W1A。
5. 如權(quán)利要求1所述的一種基于kinect的人體姿態(tài)識(shí)別方法,其特征在于:使用PCA 算法對(duì)所有姿態(tài)樣本的整個(gè)姿態(tài)序列特征進(jìn)行降維,并使用cross validation方法選擇降 維度。
【文檔編號(hào)】G06K9/00GK104517097SQ201410495282
【公開日】2015年4月15日 申請日期:2014年9月24日 優(yōu)先權(quán)日:2014年9月24日
【發(fā)明者】童若鋒, 王兆坤 申請人:浙江大學(xué)