一種基于人體骨架的動(dòng)作識別方法
【專利摘要】本發(fā)明涉及一種基于人體骨架的動(dòng)作識別方法,其特征在于,基本步驟包括:步驟一,從體感設(shè)備獲取人在執(zhí)行目標(biāo)動(dòng)作下的連續(xù)骨架數(shù)據(jù)幀序列;步驟二,從骨架數(shù)據(jù)中篩選出可以表征動(dòng)作的主要關(guān)節(jié)點(diǎn)數(shù)據(jù);步驟三,從篩選出的骨架關(guān)節(jié)點(diǎn)數(shù)據(jù)中提取、計(jì)算動(dòng)作特征值并構(gòu)造動(dòng)作的特征向量序列;步驟四,對特征向量進(jìn)行預(yù)處理;步驟五,將動(dòng)作樣本集的特征向量序列保存下來作為動(dòng)作樣本模板庫;步驟六,實(shí)時(shí)采集動(dòng)作并用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所有動(dòng)作樣本的特征向量序列的距離值;步驟七,對動(dòng)作進(jìn)行分類識別。本發(fā)明具有很好的實(shí)時(shí)性、魯棒性和準(zhǔn)確性,實(shí)施簡便可靠,適用于實(shí)時(shí)的動(dòng)作識別系統(tǒng)。
【專利說明】
一種基于人體骨架的動(dòng)作識別方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于模式識別和人機(jī)交互技術(shù)領(lǐng)域,特別是涉及一種基于人體骨架的動(dòng)作 識別方法。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)視覺和人機(jī)交互技術(shù)的發(fā)展,越來越多的人機(jī)交互系統(tǒng)選擇使用人體 姿勢或動(dòng)作作為輸入,微軟公司Kinect體感技術(shù)的出現(xiàn)使得人與計(jì)算機(jī)交互變得更加自 然,以姿勢或動(dòng)作作為輸入來控制系統(tǒng)變得更加普遍。然而由于人體差異、動(dòng)作執(zhí)行的多樣 性以及動(dòng)作的復(fù)雜性等各種原因,使得能夠?qū)崟r(shí)、穩(wěn)定、準(zhǔn)確的識別出人體動(dòng)作變成了一項(xiàng) 難度很大的課題。
[0003] 中國專利申請CN201110046975.4公開了 "一種基于動(dòng)作分解和行為分析實(shí)現(xiàn)實(shí)景 游戲的方法",該方法涉及的動(dòng)作識別是將獲取到的歸一化的人體3D骨架模型與離線動(dòng)作 庫中的動(dòng)作進(jìn)行匹配,包括單幀圖像匹配和多幀圖像匹配,然后進(jìn)行動(dòng)作識別。該方法還存 在以下明顯不足:一是該方法首先要對3D人體骨架模型做歸一化處理,將人體身高歸一化 為1,且將人體位置調(diào)整到離攝像機(jī)的距離與動(dòng)作庫中設(shè)定的距離一致,進(jìn)而調(diào)整人體各關(guān) 節(jié)點(diǎn)位置和肢體長度信息,這樣做一方面使得歸一化的計(jì)算量非常大,因?yàn)槊恳粠趋罃?shù) 據(jù)和所有關(guān)節(jié)點(diǎn)都要做處理,另一方面根據(jù)人體與攝像頭距離來調(diào)整關(guān)節(jié)點(diǎn)位置和肢體長 度的方法的科學(xué)性及準(zhǔn)確性存在很大問題;二是該方法所用的匹配信息(特征值)不合理, 使用了節(jié)點(diǎn)連線長度而且是2D長度作為匹配度度量之一,該值無法有效的作為動(dòng)作的特征 值;三是該方法使用的匹配度算法太簡單,計(jì)算固定幀數(shù)的度量值之間的差異度,并作為動(dòng) 作識別的匹配度,這種計(jì)算匹配度的方法無法衡量動(dòng)作執(zhí)行快慢不同時(shí)的動(dòng)作相似性的問 題,因而無實(shí)際應(yīng)用價(jià)值。
[0004] 中國專利申請CN201310486754公開了"一種基于Kinect的人體動(dòng)作識別方法",該 方法利用Kinect獲取目標(biāo)人體的骨架關(guān)節(jié)點(diǎn)的空間位置信息,然后通過判斷其是否滿足預(yù) 設(shè)的各種人體動(dòng)作的判定標(biāo)準(zhǔn)來識別目標(biāo)人體的動(dòng)作類型。雖然該方法可以識別出一些動(dòng) 作和姿勢,但存在著以下明顯不足,一是該方法中預(yù)設(shè)的各種人體動(dòng)作判定標(biāo)準(zhǔn)依賴于一 系列骨架關(guān)節(jié)點(diǎn)的參數(shù)和閾值,既要有豐富的經(jīng)驗(yàn),又要有大量反復(fù)的測試,使得這些參數(shù) 和閾值本身很難設(shè)定,一方面需要依靠豐富的經(jīng)驗(yàn),另一方面需要大量反復(fù)的測試;二是定 義和識別人體動(dòng)作需要很長的時(shí)間的編程工作和較大的代碼量;三是該方法的魯棒性和準(zhǔn) 確性很難保證,特別是在人體大小、動(dòng)作執(zhí)行快慢不同的情況下;四是該方法僅適用于簡單 的動(dòng)作或者姿勢識別,對于復(fù)雜的動(dòng)作,該方法顯得無能為力。
[0005] 中國專利申請CN20131019 2961公開了"一種基于深度圖像序列的實(shí)時(shí)人體動(dòng)作識 別方法",該方法首先從目標(biāo)深度圖像序列中提取目標(biāo)動(dòng)作剪影,從訓(xùn)練深度圖像集中提取 訓(xùn)練動(dòng)作剪影;然后對訓(xùn)練動(dòng)作剪影進(jìn)行姿勢聚類,并對聚類結(jié)果進(jìn)行動(dòng)作標(biāo)定;然后計(jì)算 目標(biāo)動(dòng)作剪影以及訓(xùn)練動(dòng)作剪影的姿勢特征;然后結(jié)合訓(xùn)練動(dòng)作剪影的姿勢特征進(jìn)行基于 高斯混合模型的姿勢訓(xùn)練并構(gòu)建姿勢模型;接著計(jì)算聚類結(jié)果的每個(gè)動(dòng)作中各姿勢間的轉(zhuǎn) 移概率并構(gòu)建動(dòng)作圖模型;最后根據(jù)所述目標(biāo)動(dòng)作剪影的姿勢特征、姿勢模型以及動(dòng)作圖 模型對目標(biāo)深度圖像序列進(jìn)行動(dòng)作識別。該方法雖然可以識別出一些動(dòng)作,但也存在明顯 的不足:一是該方法是基于深度圖進(jìn)行動(dòng)作識別,使得方法識別的準(zhǔn)確性很大程度上依賴 于深度圖的質(zhì)量,同時(shí)也會(huì)受到外部環(huán)境的影響,二是該方法需要復(fù)雜的模式識別算法支 持,訓(xùn)練集需要大量的離線訓(xùn)練,實(shí)現(xiàn)難度較大,三是方法的實(shí)時(shí)性不好,識別結(jié)果有較大 延遲。
[0006] 中國專利申請CN201410009445公開了 "一種基于圖像深度信息的3D高斯空間人體 行為識別方法",該方法首先提取深度信息中的人體骨骼3D坐標(biāo)并對其進(jìn)行歸一化操作,過 濾對人體行為識別率低的關(guān)節(jié)及冗余關(guān)節(jié),然后針對各個(gè)行為構(gòu)建興趣關(guān)節(jié)群,并基于高 斯距離核對人體動(dòng)作空間特征進(jìn)行AP聚類,獲得行為特征單詞表并對其進(jìn)行數(shù)據(jù)清理,最 后構(gòu)建人體行為條件隨機(jī)場識別模型,據(jù)此實(shí)現(xiàn)對人體行為的分類。該方法存在如下不足: 一是其所用到的人體骨骼3D坐標(biāo)是采用基于隨機(jī)決策森林分類器的單像素物體識別方法 確認(rèn)人體部位并提取出來的,即該方法需要首先建立能夠從深度圖像獲取人體骨骼數(shù)據(jù)的 分類器學(xué)習(xí)算法,這無疑會(huì)增加了其實(shí)現(xiàn)的復(fù)雜性和難度,并且識別骨骼坐標(biāo)數(shù)據(jù)的好壞 給整個(gè)方法的識別準(zhǔn)確性帶來了不確定性,同時(shí)也會(huì)造成方法的實(shí)時(shí)性較差;二是方法僅 用了骨骼的坐標(biāo)數(shù)據(jù),動(dòng)作特征單一;三是該方法最后需要構(gòu)建人體行為識別模型,模型建 立在特定動(dòng)作的訓(xùn)練樣本基礎(chǔ)之上,對于新的行為動(dòng)作需要重新訓(xùn)練建模,這使得該方法 的適用性和擴(kuò)展性不強(qiáng)。
[0007] 綜上所述,如何克服現(xiàn)有技術(shù)所存在的不足已成為模式識別和人機(jī)交互技術(shù)領(lǐng)域 中亟待解決的重點(diǎn)難題之一。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的是為克服現(xiàn)有技術(shù)所存在的不足而提供一種基于人體骨架的動(dòng)作 識別方法,本發(fā)明具有很好的實(shí)時(shí)性、魯棒性、準(zhǔn)確性,實(shí)現(xiàn)簡便可靠,適用于實(shí)時(shí)的動(dòng)作識 別系統(tǒng)。
[0009] 根據(jù)本發(fā)明提出的一種基于人體骨架的動(dòng)作識別方法,其特征在于,包括如下基 本步驟:
[0010] 步驟一,從體感設(shè)備獲取人在執(zhí)行目標(biāo)動(dòng)作下的連續(xù)骨架數(shù)據(jù)幀序列:所述體感 設(shè)備是指至少能夠獲取包括人體骨架的各個(gè)關(guān)節(jié)點(diǎn)的3D空間位置信息和角度信息的采集 設(shè)備;所述人體骨架數(shù)據(jù)包括該采集設(shè)備所提供的人體關(guān)節(jié)點(diǎn)的數(shù)據(jù)。
[0011]步驟二,從骨架數(shù)據(jù)中篩選出可以表征動(dòng)作的主要關(guān)節(jié)點(diǎn)數(shù)據(jù):所述表征動(dòng)作的 主要關(guān)節(jié)點(diǎn)數(shù)據(jù)是對動(dòng)作識別起關(guān)鍵作用的關(guān)節(jié)點(diǎn)的數(shù)據(jù);若在對手勢動(dòng)作的檢測識別 中,可以選取上肢的關(guān)節(jié)點(diǎn)數(shù)據(jù):包括右手關(guān)節(jié)點(diǎn)、右手腕關(guān)節(jié)點(diǎn)、右肘關(guān)節(jié)點(diǎn)、右肩關(guān)節(jié) 點(diǎn)、左肩關(guān)節(jié)點(diǎn)、左肘關(guān)節(jié)點(diǎn)、左手腕關(guān)節(jié)點(diǎn)、左手關(guān)節(jié)點(diǎn),其他動(dòng)作的主要關(guān)節(jié)點(diǎn)的選取以 此類推。
[0012]步驟三,從篩選出的骨架關(guān)節(jié)點(diǎn)數(shù)據(jù)中提取、計(jì)算動(dòng)作特征值并構(gòu)造動(dòng)作的特征 向量序列:所述動(dòng)作特征包括位置、角度、速度、關(guān)節(jié)點(diǎn)的速度和關(guān)節(jié)夾角;所述特征向量序 列是由特征值組成的特征向量并構(gòu)成的序列。
[0013]步驟四,對特征向量進(jìn)行預(yù)處理:所述預(yù)處理是指對特征向量中關(guān)節(jié)點(diǎn)的坐標(biāo)做 歸一化處理,包括大小歸一化處理和位置歸一化處理。
[0014] 步驟五,將動(dòng)作樣本集的特征向量序列保存下來作為動(dòng)作樣本模板庫。
[0015] 步驟六,實(shí)時(shí)采集動(dòng)作并用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所 有動(dòng)作樣本的特征向量序列的距離值:所述動(dòng)態(tài)時(shí)間規(guī)整算法是指計(jì)算兩個(gè)長度不同的時(shí) 間序列的距離值,并以此距離值作為評判兩個(gè)序列的相似度的方法。
[0016] 步驟七,對動(dòng)作進(jìn)行分類識別:根據(jù)步驟六中計(jì)算的距離值,計(jì)算出目標(biāo)動(dòng)作與模 板庫中動(dòng)作模板的相似度,最后依據(jù)相似度對目標(biāo)動(dòng)作進(jìn)行分類識別。
[0017] 本發(fā)明提出的一種基于人體骨架的動(dòng)作識別方法的進(jìn)一步優(yōu)選方案是:
[0018] 步驟三所述特征提取是指從骨骼數(shù)據(jù)中提取合適的特征,這些特征可以是關(guān)節(jié)點(diǎn) 的位置P、速度V,關(guān)節(jié)間角度0等,但不僅限于提到的所述的特征;特征向量序列是指由每幀 骨架數(shù)據(jù)計(jì)算出的特征向量組成的特征向量序列R,則R可以表示為:
[0019] R={Ri,R2, . . . ,Rn, . . .Rn},
[0020] 其中,Rn為第n幀骨架數(shù)據(jù)的特征向量,N是特征向量序列的長度。Rn可以表示為:
[0021] Rn={Fi,F2, . . . ,Fi, . . .Fi}
[0022] FiS特征向量的第i個(gè)特征值,I是特征向量的維數(shù)。
[0023] 步驟四所述對特征向量中關(guān)節(jié)點(diǎn)的坐標(biāo)位置歸一化處理是指,選取一個(gè)關(guān)節(jié)點(diǎn)的 位置作為中心原點(diǎn),其位置坐標(biāo)為:
[0024] C=(Cx,Cy,Cz),
[0025] 特征值是第j個(gè)關(guān)節(jié)點(diǎn)的空間坐標(biāo)值經(jīng)過歸一化后為:
[0026]
[0027]還有對特征向量中關(guān)節(jié)點(diǎn)的坐標(biāo)大小歸一化處理是指,選取兩個(gè)關(guān)節(jié)點(diǎn)的距離作 為參考距離D,最后歸一化后關(guān)節(jié)的坐標(biāo)為:
[0028] ^=((F/-C)/a(^-Ci.)/D,(/! /-C)/〇),
[0029] 步驟五所述動(dòng)作樣本模板庫是指經(jīng)過步驟一至步驟四得到的不同動(dòng)作的最優(yōu)的 樣本模板組成的,設(shè)把為模板庫中動(dòng)作g的特征向量序列,其可以表示為:
[0030] R" = ,
[0031]其中n為特征向量在特征向量序列中的索引,N為特征向量序列的長度;則最后的 動(dòng)作模板庫可以表示為:Rg,其中g(shù)e(l,G)中,G為模塊庫中動(dòng)作的個(gè)數(shù)。
[0032] 步驟六所述用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所有動(dòng)作樣本 的特征向量序列的距離值可表達(dá)為:令R={Ri,R 2, ...,Rn}和TilThh,...,Tm}分別為動(dòng)作 模板庫中某個(gè)動(dòng)作的參考模板特征向量序列與當(dāng)前動(dòng)作的特征向量序列,n、m分別為特征 向量序列的長度,R和T之間的最短距離用D[R,T]表示,首先計(jì)算特征序列中每個(gè)特征向量 之間的距離,優(yōu)選的,距離采用歐式距離,用cKRuL)的計(jì)算公式為:
[0033] = , t-l
[0034] 其中f?為特征向量的維數(shù),和、Tt%v別為特征向量Ri和Tj索引號為t的特征值,這些 距離值可以構(gòu)成一個(gè)mXn的矩陣網(wǎng)格的節(jié)點(diǎn),求得從網(wǎng)格的左下角到右上角的最優(yōu)路徑;
[0035] 每個(gè)節(jié)點(diǎn)的路徑只有三個(gè)方向,假設(shè)當(dāng)前節(jié)點(diǎn)的坐標(biāo)為(i,j),則下個(gè)節(jié)點(diǎn)的坐標(biāo) 只能是(1+1,」)、(1,」+1)和(1+1,」+1)中的一個(gè);用(1(1,」)表示從點(diǎn)(0,0)到點(diǎn)(1,」)的最短 路徑對應(yīng)的距離,其計(jì)算公式可表示為:
[0036] d(i, j)=d(Ri,Tj)+min{d(i-l, j),d(i, j-l),d(i-l, j-1)},
[0037] 為了對不同長度序列的規(guī)整路徑作補(bǔ)償,設(shè)K為參考動(dòng)作模板特征向量序列的長 度,則特征向量序列R和T的最短距離計(jì)算公式為:
[0038] D[R,T] =d(m,n)/K。
[0039]經(jīng)過以上處理后可以得到目標(biāo)動(dòng)作與模板動(dòng)作的距離值,設(shè)為為模板 庫中動(dòng)作的索引,i G (1,G),G為模板動(dòng)作的數(shù)量。
[0040] 步驟七所述對動(dòng)作進(jìn)行分類識別的算法是:
[0041] 設(shè)相似度閾值為TH,求出目標(biāo)動(dòng)作與模板庫最小的DTW距離Dmin,其計(jì)算公式為:
[0042] Dmin=min{D[Ri,T]},ie(l,G),
[0043] 設(shè)最小距離對應(yīng)的動(dòng)作為g,將Dmin與設(shè)定的距離閾值TH進(jìn)行比較,如果Dmin< = TH,那么目標(biāo)動(dòng)作被識別為g,如果Dmin> TH,則當(dāng)前動(dòng)作不是動(dòng)作模板庫中的動(dòng)作。
[0044] 本發(fā)明的實(shí)現(xiàn)原理是:本發(fā)明提出的一種基于人體骨架的動(dòng)作識別方法,是在獲 取人體動(dòng)作的骨架數(shù)據(jù)情況下,通過提取動(dòng)作的特征并計(jì)算特征向量序列建立起動(dòng)作的模 板庫,然后利用動(dòng)態(tài)時(shí)間規(guī)整算法實(shí)時(shí)的計(jì)算目標(biāo)動(dòng)作與模板庫中的動(dòng)作的相似度,最后 完成了動(dòng)作的分類識別。本發(fā)明通過特征值預(yù)歸一化預(yù)處理降低了人的不同體型大小和人 與攝像頭相對位置的影響,增強(qiáng)了算法的魯棒性,并運(yùn)用基于動(dòng)態(tài)時(shí)間規(guī)整的模板匹配算 法,提高了算法的準(zhǔn)確性和實(shí)用性,適用于實(shí)時(shí)的動(dòng)作識別系統(tǒng)。
[0045] 本發(fā)明與現(xiàn)有人體動(dòng)作識別技術(shù)相比其顯著優(yōu)點(diǎn)在于:
[0046] -是本發(fā)明是基于骨架數(shù)據(jù)進(jìn)行動(dòng)作識別的,與基于深度圖的動(dòng)作識別方法相 比,骨架數(shù)據(jù)受到環(huán)境的影響更小,不需要很復(fù)雜的圖像處理算法進(jìn)行預(yù)處理,動(dòng)作特征也 更容易提取和計(jì)算。
[0047]二是本發(fā)明對特征向量做了歸一化預(yù)處理,這樣做可以增強(qiáng)樣本的通用性,消除 了人體大小的差異性和人體與體感設(shè)備相對位置不同的影響,增強(qiáng)了方法的魯棒性和適用 性。
[0048]三是本發(fā)明運(yùn)用了動(dòng)態(tài)時(shí)間規(guī)整算法來計(jì)算兩個(gè)不同時(shí)間長度的動(dòng)作之間的相 似度,該樣做可以避免動(dòng)作執(zhí)行快慢的影響,提高了動(dòng)作識別的實(shí)時(shí)性和準(zhǔn)確性。
[0049] 四是本發(fā)明在動(dòng)作訓(xùn)練和識別方面是采用了特征向量序列的模板匹配方法,與基 于規(guī)則的動(dòng)作識別方法相比,避免了過多參數(shù)和閾值的設(shè)置,算法的擴(kuò)展性和魯棒性更強(qiáng), 實(shí)現(xiàn)起來更加簡單,同時(shí)也能夠識別出更加復(fù)雜的動(dòng)作。
【附圖說明】
[0050] 圖1是一種基于人體骨架的動(dòng)作識別方法的流程示意圖。
[0051 ]圖2是利用體感設(shè)備采集動(dòng)作的示意圖。
[0052]圖3是有20個(gè)關(guān)節(jié)點(diǎn)的人體骨架示意圖。
【具體實(shí)施方式】
[0053]下面將結(jié)合附圖和實(shí)施例對本發(fā)明的【具體實(shí)施方式】作進(jìn)一步的詳細(xì)說明。
[0054] 結(jié)合圖1,本發(fā)明提出的一種基于人體骨架的動(dòng)作識別方法,包括如下具體步驟:
[0055] 步驟一,從體感設(shè)備獲取人在執(zhí)行目標(biāo)動(dòng)作下的連續(xù)骨架數(shù)據(jù)幀序列:所述體感 設(shè)備是指至少能夠獲取包括人體骨架的各個(gè)關(guān)節(jié)點(diǎn)的3D空間位置信息和角度信息的采集 設(shè)備;所述人體骨架數(shù)據(jù)包括該采集設(shè)備所提供的人體關(guān)節(jié)點(diǎn)的數(shù)據(jù);
[0056] 步驟二,從骨架數(shù)據(jù)中篩選出可以表征動(dòng)作的主要關(guān)節(jié)點(diǎn)數(shù)據(jù):所述表征動(dòng)作的 主要關(guān)節(jié)點(diǎn)數(shù)據(jù)是對動(dòng)作識別起關(guān)鍵作用的關(guān)節(jié)點(diǎn)的數(shù)據(jù);
[0057] 步驟三,從篩選出的骨架關(guān)節(jié)點(diǎn)數(shù)據(jù)中提取、計(jì)算動(dòng)作特征值并構(gòu)造動(dòng)作的特征 向量序列:所述動(dòng)作特征包括位置、角度、速度、關(guān)節(jié)點(diǎn)的速度和關(guān)節(jié)夾角;所述特征向量序 列是由特征值組成的特征向量并構(gòu)成的序列;
[0058] 步驟四,對特征向量進(jìn)行預(yù)處理:所述預(yù)處理是指對特征向量中關(guān)節(jié)點(diǎn)的坐標(biāo)做 歸一化處理,包括大小歸一化處理和位置歸一化處理;
[0059]步驟五,將動(dòng)作樣本集的特征向量序列保存下來作為動(dòng)作樣本模板庫;
[0060] 步驟六,實(shí)時(shí)采集動(dòng)作并用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所 有動(dòng)作樣本的特征向量序列的距離值:所述動(dòng)態(tài)時(shí)間規(guī)整算法是指計(jì)算兩個(gè)長度不同的時(shí) 間序列的距離值,并以此距離值作為評判兩個(gè)序列的相似度的方法;
[0061] 步驟七,對動(dòng)作進(jìn)行分類識別:根據(jù)步驟六中計(jì)算的距離值,計(jì)算出目標(biāo)動(dòng)作與模 板庫中動(dòng)作模板的相似度,最后依據(jù)相似度對目標(biāo)動(dòng)作進(jìn)行分類識別。
[0062] 結(jié)合圖2和圖3,以下對本發(fā)明提出的一種基于人體骨架的動(dòng)作識別方法及其優(yōu)選 方案的具體應(yīng)用實(shí)施例做進(jìn)一步的具體說明:
[0063] 第一,從體感設(shè)備獲取人在執(zhí)行目標(biāo)動(dòng)作下的連續(xù)骨架數(shù)據(jù)幀序列。圖2給出了用 體感設(shè)備采集動(dòng)作時(shí)的示意圖,201為一種可以體感攝像頭,通過它可以采集到三維場景信 息,并提取出場景中人的骨架數(shù)據(jù),202為人面對體感采集設(shè)備并做出目標(biāo)動(dòng)作。圖3給出了 一種包含20個(gè)關(guān)節(jié)點(diǎn)的人體骨架圖,該骨架包括頭、左右肩膀、肩膀中心點(diǎn)、左右肘關(guān)節(jié)、左 右手腕關(guān)節(jié)、左右手、脊柱、左右臀、臀中心點(diǎn)、左右膝、左右腳踝、左右腳等關(guān)節(jié)點(diǎn)。體感設(shè) 備將連續(xù)動(dòng)作的對應(yīng)的骨架數(shù)據(jù)(一般包含關(guān)節(jié)點(diǎn)的位置信息和旋轉(zhuǎn)信息等)采集并記錄 下來形成連續(xù)的骨架數(shù)據(jù)幀序列,這些數(shù)據(jù)供后續(xù)動(dòng)作模板創(chuàng)建和動(dòng)作識別使用。
[0064] 第二,從骨架數(shù)據(jù)中篩選出可以表征動(dòng)作的主要關(guān)節(jié)點(diǎn)數(shù)據(jù)。對獲取的骨架數(shù)據(jù) 進(jìn)行篩選,選用能表征動(dòng)作的關(guān)節(jié)點(diǎn)的數(shù)據(jù),比如對手勢動(dòng)作的檢測識別,可以選取上肢的 關(guān)節(jié)點(diǎn)數(shù)據(jù),圖3中的301-308分別為右手關(guān)節(jié)點(diǎn)、右手腕關(guān)節(jié)點(diǎn)、右肘關(guān)節(jié)點(diǎn)、右肩關(guān)節(jié)點(diǎn)、 左肩關(guān)節(jié)點(diǎn)、左肘關(guān)節(jié)點(diǎn)、左手腕關(guān)節(jié)點(diǎn)、左手關(guān)節(jié)點(diǎn),手勢動(dòng)作識別時(shí)可以只利用這些關(guān) 節(jié)點(diǎn)的數(shù)據(jù)。
[0065] 第三,從篩選出的骨架關(guān)節(jié)點(diǎn)數(shù)據(jù)中提取、計(jì)算動(dòng)作特征值并構(gòu)造動(dòng)作的特征向 量序列。常用的動(dòng)作特征有關(guān)節(jié)點(diǎn)的位置、朝向、速度,關(guān)節(jié)間角度等,對動(dòng)作的每一幀骨架 數(shù)據(jù)提取特征值,并以這些特征值構(gòu)建特征向量R n,Rn為第n幀骨架數(shù)據(jù)的特征向量,設(shè)FiS 特征向量的第i個(gè)特征值,則Rn可以表示為:
[0066] Rn={Fi,F2, . . . ,Fi, . . ,Fm}
[0067] m為特征向量的維數(shù),那么動(dòng)作的連續(xù)的骨架幀的特征向量可以構(gòu)成表征該動(dòng)作 的特征向量序列R,其可以表示為:
[0068] R={Ri,R2, . . . ,Rn, . . .Rn},
[0069] 其中,N為特征向量序列的長度。
[0070] 第四,對特征向量進(jìn)行預(yù)處理。首先對特征向量中關(guān)節(jié)點(diǎn)的坐標(biāo)位置做歸一化處 理,選取一個(gè)關(guān)節(jié)點(diǎn)的位置作為中心原點(diǎn),其位置坐標(biāo)為:
[0071] C=(Cx,Cy,Cz)
[0072] 那么需要對特征向量中以關(guān)節(jié)點(diǎn)坐標(biāo)值為特征的特征值進(jìn)行歸一化處理,設(shè)特征 值是第j個(gè)關(guān)節(jié)點(diǎn)的空間坐標(biāo)值巧=(C F )則其歸一化后的值為:
[0073] -U-C)
[0074]然后需要對坐標(biāo)大小進(jìn)行歸一化處理,選取骨架中比較穩(wěn)定的兩個(gè)關(guān)節(jié)點(diǎn)的距離 作為參考距離,一個(gè)優(yōu)選的方案是采用肩膀中心和脊柱關(guān)節(jié)點(diǎn)之間的距離作為參考距離D, 對位置歸一化后的坐標(biāo)數(shù)據(jù)再進(jìn)行大小歸一化,最后歸一化后關(guān)節(jié)的坐標(biāo)為:
[0075] $ =((尸-C4)/-(:,)/ A(/f -C2)/坊。
[0076] 第五,將動(dòng)作樣本集的特征向量序列保存下來作為動(dòng)作樣本模板庫。動(dòng)作模板庫 是經(jīng)過前四步得到的不同動(dòng)作的最優(yōu)的樣本模板,則動(dòng)作g的特征向量序列把可以表示為:
[0077] R" = {R^R:"."R:;,,..R^]
[0078] 其中,n為特征向量在特征向量序列中的索引,N為特征向量序列的長度。
[0079] 第六,實(shí)時(shí)采集動(dòng)作并用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所有 動(dòng)作樣本的特征向量序列的距離值。模板庫建立好之后,可以進(jìn)行動(dòng)作的識別了,動(dòng)作識別 時(shí)要實(shí)時(shí)采集一段動(dòng)作對應(yīng)的骨架數(shù)據(jù)幀經(jīng)過第一步到第四步處理之后可以獲得不同時(shí) 間長度的動(dòng)作特征向量序列,然后用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所 有動(dòng)作樣本的特征向量序列的距離。優(yōu)選的,所述步驟包括:
[0080] 令1?=他,1?2, . . .,Rn}和T=m,T2, . . .,Tm}分別為動(dòng)作模板庫中某個(gè)動(dòng)作的參考 模板特征向量序列與當(dāng)前動(dòng)作的特征向量序列,n、m分別為特征向量序列的長度,也是動(dòng)作 對應(yīng)的骨架數(shù)據(jù)幀的長度,Ri(1 < i <n)、Tj (1 < j <m)分別表示特征向量;
[00811 R和T之間的最短距離用D[R,T]表示,首先計(jì)算特征序列中每個(gè)特征向量之間的距 離,優(yōu)選的,距離采用歐式距離,用cKRuL)的計(jì)算公式為:
[0082] c/(/?;,7:) = X(/?;-7/)2
[0083] 其中f為特征向量的維數(shù),<、1^分別為特征向量Ri和Tj索引號為t的特征值,這些 距離值可以構(gòu)成一個(gè)mXn的矩陣網(wǎng)格的節(jié)點(diǎn),那么動(dòng)態(tài)時(shí)間規(guī)整算法指的是求從網(wǎng)格的左 下角到右上角的最優(yōu)路徑。
[0084] 每個(gè)節(jié)點(diǎn)的路徑只有三個(gè)方向,假設(shè)當(dāng)前節(jié)點(diǎn)的(i,j),則下個(gè)節(jié)點(diǎn)只能是(i+1, j)、( i,j+1)和(i+1,j+1)中的一個(gè);用d( i,j)表示從點(diǎn)(0,0)到點(diǎn)(i,j)的最短路徑對應(yīng)的 距離,其計(jì)算公式可表示為:
[0085] d(i, j)=d(Ri,Tj)+min{d(i-l, j),d(i, j-l),d(i-l, j-1)},
[0086] 為了對不同長度序列的規(guī)整路徑作補(bǔ)償,設(shè)K為參考動(dòng)作模板特征向量序列的長 度,則特征向量序列R和T的最短距離計(jì)算公式為:
[0087] D[R,T]=d(m,n)/K,
[0088]經(jīng)過以上處理后可以得到目標(biāo)動(dòng)作與模板動(dòng)作的距離值,設(shè)為為模板 庫中動(dòng)作的索引,i G (1,G),G為模板動(dòng)作的數(shù)量。
[0089]第七,對動(dòng)作進(jìn)行分類識別。計(jì)算出目標(biāo)動(dòng)作與模板庫中動(dòng)作模板的相似度,最后 依據(jù)相似度對目標(biāo)動(dòng)作進(jìn)行分類識別。首先設(shè)定動(dòng)作相似度閾值,如果距離小于相似度閾 值,則識別成功,否則未識別成功。
[0090] 設(shè)相似度閾值為TH,求出目標(biāo)動(dòng)作與模板庫最小的DTW距離Dmin,其計(jì)算公式為:
[0091] Dmin=min{D[Ri,T]},ie(l,G)
[0092] 設(shè)最小距離對應(yīng)的動(dòng)作為g,將Dmin與設(shè)定的距離閾值TH進(jìn)行比較,如果Dmin< = TH,那么目標(biāo)動(dòng)作被識別為g,如果Dmin> TH,則當(dāng)前動(dòng)作不是動(dòng)作模板庫中的動(dòng)作。
[0093]特別需要說明的是,本領(lǐng)域的技術(shù)人員完全能夠理解,上述本發(fā)明的各模塊或各 步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以軟件產(chǎn)品的 形式體現(xiàn)出來這樣,在不沖突的情況下,本發(fā)明的實(shí)施例及實(shí)施例中的特征可以相互組合, 即本發(fā)明不限制于任何特定的硬件和軟件的結(jié)合。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè) 優(yōu)選實(shí)施例的示意圖。
[0094]本發(fā)明的【具體實(shí)施方式】中凡未涉到的說明屬于本領(lǐng)域的公知技術(shù),可參考公知技 術(shù)加以實(shí)施。
[0095]本發(fā)明經(jīng)反復(fù)試驗(yàn)驗(yàn)證,取得了滿意的試用效果。
[0096]以上【具體實(shí)施方式】及實(shí)施例是對本發(fā)明提出的一種基于人體骨架的動(dòng)作識別方 法技術(shù)思想的具體支持,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思 想,在本技術(shù)方案基礎(chǔ)上所做的任何等同變化或等效的改動(dòng),均仍屬于本發(fā)明技術(shù)方案保 護(hù)的范圍。
【主權(quán)項(xiàng)】
1. 一種基于人體骨架的動(dòng)作識別方法,其特征在于,包括如下基本步驟: 步驟一,從體感設(shè)備獲取人在執(zhí)行目標(biāo)動(dòng)作下的連續(xù)骨架數(shù)據(jù)幀序列:所述體感設(shè)備 是指至少能夠獲取包括人體骨架的各個(gè)關(guān)節(jié)點(diǎn)的3D空間位置信息和角度信息的采集設(shè)備; 所述人體骨架數(shù)據(jù)包括該采集設(shè)備所提供的人體關(guān)節(jié)點(diǎn)的數(shù)據(jù); 步驟二,從骨架數(shù)據(jù)中篩選出可以表征動(dòng)作的主要關(guān)節(jié)點(diǎn)數(shù)據(jù):所述表征動(dòng)作的主要 關(guān)節(jié)點(diǎn)數(shù)據(jù)是對動(dòng)作識別起關(guān)鍵作用的關(guān)節(jié)點(diǎn)的數(shù)據(jù); 步驟三,從篩選出的骨架關(guān)節(jié)點(diǎn)數(shù)據(jù)中提取、計(jì)算動(dòng)作特征值并構(gòu)造動(dòng)作的特征向量 序列:所述動(dòng)作特征包括位置、角度、速度、關(guān)節(jié)點(diǎn)的速度和關(guān)節(jié)夾角;所述特征向量序列是 由特征值組成的特征向量并構(gòu)成的序列; 步驟四,對特征向量進(jìn)行預(yù)處理:所述預(yù)處理是指對特征向量中關(guān)節(jié)點(diǎn)的坐標(biāo)做歸一 化處理,包括大小歸一化處理和位置歸一化處理; 步驟五,將動(dòng)作樣本集的特征向量序列保存下來作為動(dòng)作樣本模板庫; 步驟六,實(shí)時(shí)采集動(dòng)作并用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所有動(dòng) 作樣本的特征向量序列的距離值:所述動(dòng)態(tài)時(shí)間規(guī)整算法是指計(jì)算兩個(gè)長度不同的時(shí)間序 列的距離值,并以此距離值作為評判兩個(gè)序列的相似度的方法; 步驟七,對動(dòng)作進(jìn)行分類識別:根據(jù)步驟六中計(jì)算的距離值,計(jì)算出目標(biāo)動(dòng)作與模板庫 中動(dòng)作模板的相似度,最后依據(jù)相似度對目標(biāo)動(dòng)作進(jìn)行分類識別。2. 根據(jù)權(quán)利要求1所述的一種基于人體骨架的動(dòng)作識別方法,其特征在于,步驟三所述 特征提取是指從骨骼數(shù)據(jù)中提取合適的特征,這些特征可以是關(guān)節(jié)點(diǎn)的位置P、速度V,關(guān)節(jié) 間角度Θ等,但不僅限于提到的所述的特征;特征向量序列是指由每幀骨架數(shù)據(jù)計(jì)算出的特 征向量組成的特征向量序列R,則R可以表示為: R-{Ri, R2, ,Rn , ···Rn } j 其中,Rn為第n幀骨架數(shù)據(jù)的特征向量,N是特征向量序列的長度,Rn可以表示為: Rn= {Fi,F2, . . . ,Fi,. . .Fi} 巧為特征向量的第i個(gè)特征值,I是特征向量的維數(shù)。3. 根據(jù)權(quán)利要求2所述的一種基于人體骨架的動(dòng)作識別方法,其特征在于,步驟四所述 對特征向量中關(guān)節(jié)點(diǎn)的坐標(biāo)位置做歸一化處理是指,選取一個(gè)關(guān)節(jié)點(diǎn)的位置作為中心原 點(diǎn),其位置坐標(biāo)為: C=(Cx,Cy,Cz), 特征值是第j個(gè)關(guān)節(jié)點(diǎn)的空間坐標(biāo)值6 經(jīng)過歸一化后為: pi=iP:-c、mc:u 還有對關(guān)節(jié)點(diǎn)坐標(biāo)大小特征值進(jìn)行歸一化處理,選取兩個(gè)關(guān)節(jié)點(diǎn)的距離作為參考距離 D,最后歸一化后關(guān)節(jié)的坐標(biāo)為: P.: =:((i^ -C.)/ DAP: -c )/ D,(P/-CJJD),4. 根據(jù)權(quán)利要求3所述的一種基于人體骨架的動(dòng)作識別方法,其特征在于,步驟五所述 動(dòng)作樣本模板庫是指經(jīng)過步驟一至步驟四得到的不同動(dòng)作的最優(yōu)的樣本模板組成的,設(shè)Rg 為模板庫中動(dòng)作g的特征向量序列,其可以表示為: 其中η為特征向量在特征向量序列中的索引,N為特征向量序列的長度;則最后的動(dòng)作 模板庫可以表示為:Rg,其中g(shù)e(l,G)中,G為模塊庫中動(dòng)作的個(gè)數(shù)。5. 根據(jù)權(quán)利要求4所述的一種基于人體骨架的動(dòng)作識別方法,其特征在于,步驟六所述 用動(dòng)態(tài)時(shí)間規(guī)整算法計(jì)算其特征向量序列與模板庫中所有動(dòng)作樣本的特征向量序列的距 離值可表達(dá)為:令R={Ri,R 2, .. .,Rn}和...,Tm}分別為動(dòng)作模板庫中某個(gè)動(dòng)作的 參考模板特征向量序列與當(dāng)前動(dòng)作的特征向量序列,n、m分別為特征向量序列的長度,R和T 之間的最短距離用D[R,T]表示,首先計(jì)算特征序列中每個(gè)特征向量之間的距離,優(yōu)選的,距 離采用歐式距離,用cKRi,L)的計(jì)算公式為:其中f為特征向量的維數(shù),巧、7;''分別為特征向量心和1索引號為t的特征值,這些距離 值可以構(gòu)成一個(gè)mXn的矩陣網(wǎng)格的節(jié)點(diǎn),求得從網(wǎng)格的左下角到右上角的最優(yōu)路徑; 每個(gè)節(jié)點(diǎn)的路徑只有三個(gè)方向,假設(shè)當(dāng)前節(jié)點(diǎn)的坐標(biāo)為(i,j),則下個(gè)節(jié)點(diǎn)的坐標(biāo)只能 是(i+1,j)、( i,j+Ι)和(i+Ι,j+Ι)中的一個(gè);用d( i,j)表示從點(diǎn)(0,0)到點(diǎn)(i,j)的最短路徑 對應(yīng)的距離,其計(jì)算公式可表示為: d(i,j)=d(Ri,Tj)+min{d(i-l,j),d(i,j-1),d(i-l,j-Ι)}, 為了對不同長度序列的規(guī)整路徑作補(bǔ)償,設(shè)K為參考動(dòng)作模板特征向量序列的長度,則 特征向量序列R和T的最短距離計(jì)算公式為: D[R,T]=d(m,n)/K, 經(jīng)過以上處理后可以得到目標(biāo)動(dòng)作與模板動(dòng)作的距離值,設(shè)為^[RbTLi為模板庫中 動(dòng)作的索引,i e (1,G),G為模板動(dòng)作的數(shù)量。6. 根據(jù)權(quán)利要求5所述的一種基于人體骨架的動(dòng)作識別方法,其特征在于,步驟七所述 對動(dòng)作的分類識別的算法是: 設(shè)相似度閾值為TH,求出目標(biāo)動(dòng)作與模板庫最小的DTW距離Dmin,其計(jì)算公式為: Dmin=min{D[Ri,T]},ie(l,G), 設(shè)最小距離對應(yīng)的動(dòng)作為g,將Dmin與設(shè)定的距離閾值ΤΗ進(jìn)行比較,如果D_<=TH,那 么目標(biāo)動(dòng)作被識別為g,如果EWn>TH,則當(dāng)前動(dòng)作不是動(dòng)作模板庫中的動(dòng)作。
【文檔編號】G06K9/00GK105930767SQ201610211534
【公開日】2016年9月7日
【申請日】2016年4月6日
【發(fā)明人】王行, 周曉軍, 李驪, 盛贊
【申請人】南京華捷艾米軟件科技有限公司