亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于動(dòng)態(tài)網(wǎng)格編碼的姿勢(shì)和動(dòng)作識(shí)別方法與流程

文檔序號(hào):11920520閱讀:232來源:國知局
基于動(dòng)態(tài)網(wǎng)格編碼的姿勢(shì)和動(dòng)作識(shí)別方法與流程
本發(fā)明涉及人機(jī)交互領(lǐng)域,尤其涉及一種基于動(dòng)態(tài)網(wǎng)格編碼的姿勢(shì)和動(dòng)作識(shí)別方法。
背景技術(shù)
:近年來,隨著計(jì)算機(jī)軟硬件技術(shù)的發(fā)展,傳統(tǒng)的基于鼠標(biāo)鍵盤的人機(jī)交互技術(shù)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足人們的需求。隨著大屏幕的普及和應(yīng)用場(chǎng)景的多元化,人們開始呼喚更自然的人機(jī)交互方式,將人與人的交互方式引入到人機(jī)交互中,這其中的關(guān)鍵就包括了一系列對(duì)姿勢(shì)和動(dòng)作進(jìn)行識(shí)別的技術(shù)?,F(xiàn)有的姿勢(shì)和動(dòng)作識(shí)別技術(shù),大體上可以分為兩類,第一類是基于機(jī)器學(xué)習(xí)方法的識(shí)別技術(shù),第二類是采用啟發(fā)式方法的識(shí)別技術(shù)。采用機(jī)器學(xué)習(xí)方法,雖然有較高的識(shí)別率,但是一般需要較長的訓(xùn)練過程,一旦姿勢(shì)或者動(dòng)作集合發(fā)生改變,就要重新進(jìn)行訓(xùn)練,不夠靈活方便,而且這類程序往往都很復(fù)雜,并不適合初級(jí)的開發(fā)者;而采用啟發(fā)式的識(shí)別方法,雖然不需要訓(xùn)練過程,但是識(shí)別率普遍不高,應(yīng)用場(chǎng)景單一,可移植性不強(qiáng)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是提供一種基于動(dòng)態(tài)網(wǎng)格編碼的姿勢(shì)和動(dòng)作識(shí)別方法,該識(shí)別方法不僅不需要訓(xùn)練過程,而且產(chǎn)生的數(shù)據(jù)量小,含義直觀,且有較高的識(shí)別率,更加便于網(wǎng)絡(luò)傳輸和應(yīng)用到移動(dòng)端或嵌入式系統(tǒng)中。為達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案具體描述如下:一種基于動(dòng)態(tài)網(wǎng)格編碼的姿勢(shì)和動(dòng)作識(shí)別方法,其步驟包括:1)定義各人體姿勢(shì)或者動(dòng)作模板;2)識(shí)別各模板所示人體的多個(gè)關(guān)節(jié)點(diǎn),對(duì)各姿勢(shì)或者動(dòng)作模板進(jìn)行編碼;3)對(duì)待識(shí)別姿勢(shì)或者動(dòng)作進(jìn)行編碼;4)根據(jù)姿勢(shì)或者動(dòng)作模板編碼和待識(shí)別姿勢(shì)或者待識(shí)別動(dòng)作編碼識(shí)別待識(shí)別姿勢(shì)或者待識(shí)別動(dòng)作。進(jìn)一步地,步驟2)中所述關(guān)節(jié)點(diǎn)不少于20個(gè)關(guān)節(jié)點(diǎn)。進(jìn)一步地,步驟2)中對(duì)姿勢(shì)進(jìn)行編碼將得到一個(gè)字符串,對(duì)動(dòng)作進(jìn)行編碼將得到一個(gè)字符串序列。更進(jìn)一步地,步驟2)中所述對(duì)姿勢(shì)或者動(dòng)作模板集合進(jìn)行編碼的方法包括以下步驟:2-1)選取脊椎點(diǎn)作為原點(diǎn),對(duì)20個(gè)關(guān)節(jié)點(diǎn)建立三維坐標(biāo);2-2)將關(guān)節(jié)點(diǎn)位置信息映射到標(biāo)準(zhǔn)人體比例模型上,即對(duì)坐標(biāo)進(jìn)行比例變換;2-3)將關(guān)節(jié)點(diǎn)坐標(biāo)進(jìn)行降維處理,去掉深度信息;2-4)以臀部中央點(diǎn)為原點(diǎn)建立二維直角坐標(biāo)系,將各關(guān)節(jié)點(diǎn)的坐標(biāo)進(jìn)行平移,得到所有關(guān)節(jié)點(diǎn)在二維坐標(biāo)下的新坐標(biāo);2-5)以臀部中央點(diǎn)為基準(zhǔn)點(diǎn),建立網(wǎng)格,對(duì)人體20個(gè)關(guān)節(jié)點(diǎn)所在的網(wǎng)格進(jìn)行編碼并按固定順序串聯(lián)成字符串。更進(jìn)一步地,步驟2-2)中所述對(duì)坐標(biāo)進(jìn)行比例變換的方法包括以下步驟:2-2-1)計(jì)算肩膀中央點(diǎn)與脊椎點(diǎn)的距離,并作為變換的基準(zhǔn)距離;2-2-2)變換臀部中央點(diǎn)坐標(biāo),使得臀部中央點(diǎn)與脊椎點(diǎn)的距離和肩膀中央點(diǎn)與脊椎點(diǎn)的距離之比符合標(biāo)準(zhǔn)的人體比例;其中在移動(dòng)臀部中央點(diǎn)坐標(biāo)后,與臀部中央點(diǎn)直接或者間接相連的還未進(jìn)行比例變換的點(diǎn)(包括左臀、右臀、左膝蓋、右膝蓋、左腳踝、右腳踝、左腳掌、右腳掌)隨臀部中央點(diǎn)平移;2-2-3)按照步驟2-2-2)所述方法,完成剩余坐標(biāo)點(diǎn)變換。更進(jìn)一步地,步驟2-5)中所述建立網(wǎng)格并對(duì)人體20個(gè)關(guān)節(jié)點(diǎn)所在的網(wǎng)格進(jìn)行編碼的方法包括以下步驟:2-5-1)以臀部中央點(diǎn)為基準(zhǔn)點(diǎn)建立一個(gè)64*64的網(wǎng)格,其中網(wǎng)格分布左右對(duì)稱,臀部中央點(diǎn)上方42行,下方22行,且網(wǎng)格的總長度為身高的1.5倍;2-5-2)將網(wǎng)格按照從左到右,從上到下的順序依次編碼為64個(gè)字符;2-5-3)將人體20個(gè)關(guān)節(jié)點(diǎn)所在的網(wǎng)格進(jìn)行編碼并按固定順序串聯(lián)成字符串。進(jìn)一步地,步驟4)中所述姿勢(shì)識(shí)別方法包括以下步驟:4-1)根據(jù)待識(shí)別姿勢(shì)集合的特點(diǎn),定義不同關(guān)節(jié)點(diǎn)對(duì)應(yīng)的計(jì)算權(quán)重;4-2)根據(jù)待識(shí)別姿勢(shì)集合的特點(diǎn)和對(duì)精度的要求,設(shè)定相似度閾值θ;4-3)利用相似度計(jì)算方法依次計(jì)算所有模板與待識(shí)別姿勢(shì)的相似度,相似度最大的即可作為識(shí)別結(jié)果,當(dāng)該最大相似度大于預(yù)先設(shè)定的閾值θ,則成功識(shí)別出該姿勢(shì)。更進(jìn)一步地,步驟4-1)中用戶可根據(jù)自己定義的姿勢(shì)集合,來確定每個(gè)關(guān)節(jié)點(diǎn)應(yīng)該采取的權(quán)重。進(jìn)一步地,步驟4)中所述動(dòng)作識(shí)別方法包括以下步驟:4-a)根據(jù)待識(shí)別動(dòng)作集合的特點(diǎn),定義不同關(guān)節(jié)點(diǎn)對(duì)應(yīng)的計(jì)算權(quán)重;4-b)根據(jù)待識(shí)別動(dòng)作集合的特點(diǎn)和對(duì)精度的要求,設(shè)定相似度閾值λ;4-c)利用動(dòng)態(tài)時(shí)間規(guī)整算法依次計(jì)算所有模板與待識(shí)別動(dòng)作的相似度,相似度最大的即可作為識(shí)別結(jié)果,當(dāng)該最大相似度大于預(yù)先設(shè)定的閾值λ,則成功識(shí)別出該動(dòng)作。進(jìn)一步地,利用kinect識(shí)別各模板所示人體的多個(gè)關(guān)節(jié)點(diǎn)。本發(fā)明的有益效果在于:本發(fā)明提供一種基于動(dòng)態(tài)網(wǎng)格編碼的姿勢(shì)和動(dòng)作識(shí)別方法,通過采用字符串編碼的方法利用Kinect完成姿勢(shì)和動(dòng)作的識(shí)別,不僅不需要訓(xùn)練過程,開發(fā)人員可以隨意定義自己所需要的姿勢(shì)和動(dòng)作集合,而且具有較好的可移植性和識(shí)別率,可以大大降低相關(guān)產(chǎn)品的開發(fā)難度,縮短開發(fā)周期。附圖說明圖1為本發(fā)明方法的流程示意圖。圖2為人體20個(gè)關(guān)節(jié)點(diǎn)示意圖。圖3為人體標(biāo)準(zhǔn)比例模型圖。圖4為本發(fā)明方法坐標(biāo)映射過程示意圖。圖5為本發(fā)明方法編碼示意圖。圖6為本發(fā)明一實(shí)施例的利用動(dòng)態(tài)時(shí)間規(guī)整算法得到的最佳匹配路徑示意圖。圖7為本發(fā)明一實(shí)施例定義的姿勢(shì)集合示意圖。圖8為本發(fā)明一實(shí)施例定義的右手動(dòng)作集合示意圖。具體實(shí)施方式為使本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖作詳細(xì)說明如下。本發(fā)明提供一種基于動(dòng)態(tài)網(wǎng)格編碼的姿勢(shì)和動(dòng)作識(shí)別方法,其流程示意圖如圖1所示,該方法步驟包括:1)定義各人體姿勢(shì)或者動(dòng)作模板;2)利用kinect識(shí)別各模板所示人體的多個(gè)關(guān)節(jié)點(diǎn),對(duì)各姿勢(shì)或者動(dòng)作模板集合進(jìn)行編碼;其中對(duì)姿勢(shì)進(jìn)行編碼將得到一個(gè)字符串,對(duì)動(dòng)作進(jìn)行編碼將得到一個(gè)字符串序列;3)對(duì)待識(shí)別姿勢(shì)或者動(dòng)作進(jìn)行編碼;4)根據(jù)姿勢(shì)或者動(dòng)作模板編碼和待識(shí)別姿勢(shì)或者待識(shí)別動(dòng)作編碼識(shí)別待識(shí)別姿勢(shì)或者待識(shí)別動(dòng)作。下面以姿勢(shì)識(shí)別過程為例,來具體說明基于動(dòng)態(tài)網(wǎng)格的姿勢(shì)識(shí)別方法。首先需要對(duì)人體姿勢(shì)進(jìn)行編碼。其編碼過程如下:1、獲取人體多個(gè)關(guān)節(jié)點(diǎn)的位置信息,在本實(shí)施例中使用20個(gè)關(guān)節(jié)點(diǎn),其具體關(guān)節(jié)點(diǎn)位置請(qǐng)參考圖2。本發(fā)明方法也可以采取比20個(gè)更多的關(guān)節(jié)點(diǎn),但是最好不要少于20。本實(shí)施例中使用20個(gè)關(guān)節(jié)點(diǎn)是因?yàn)檫@20個(gè)關(guān)節(jié)點(diǎn)可以很好的描述人體姿勢(shì)而且kinect1.0可以識(shí)別到這20個(gè)關(guān)節(jié)點(diǎn)。本發(fā)明在研究過程中,采用微軟的Kinect體感設(shè)備。Kinect是目前常用的體感設(shè)備之一,它搭載的紅外線發(fā)射器和紅外線攝影機(jī)可以感知深度信息。利用深度信息,Kinect可以準(zhǔn)確識(shí)別人體的20個(gè)骨骼關(guān)節(jié)點(diǎn)。具體識(shí)別關(guān)節(jié)點(diǎn)的過程在這里不再描述。2、對(duì)識(shí)別到的關(guān)節(jié)點(diǎn)信息進(jìn)行編碼。在識(shí)別到關(guān)節(jié)點(diǎn)后,需要對(duì)關(guān)節(jié)點(diǎn)的位置信息進(jìn)行編碼。雖然在現(xiàn)實(shí)生活中,人與人在外貌、聲音、體型等方面都存在較大的差異,但是人體的骨骼構(gòu)成基本是一致的。為了消除由于個(gè)體身體比例不同產(chǎn)生的差異,保證編碼的通用性,在識(shí)別到人體骨骼信息后,還要將其位置信息映射到標(biāo)準(zhǔn)的人體比例模型中,然后再進(jìn)行編碼,其人體標(biāo)準(zhǔn)比例模型如圖3所示。具體的映射過程(即對(duì)坐標(biāo)進(jìn)行比例變換)請(qǐng)參考圖4:1)選取脊椎點(diǎn)作為原點(diǎn),建立三維空間坐標(biāo),將Kinect識(shí)別到的20個(gè)關(guān)節(jié)點(diǎn)坐標(biāo)平移變換到新的坐標(biāo)系上。在這里選取脊椎點(diǎn)為原點(diǎn),可以保證坐標(biāo)變換次數(shù)最少(5次)。2)完成初次坐標(biāo)變換。計(jì)算肩膀中央點(diǎn)與脊椎點(diǎn)的距離dshoulderCenter-spine作為變換的基準(zhǔn)距離。變換臀部中央點(diǎn)坐標(biāo),使得臀部中央點(diǎn)與脊椎點(diǎn)間距離和肩膀中央點(diǎn)與脊椎點(diǎn)的距離之比符合標(biāo)準(zhǔn)的人體比例注意,在移動(dòng)臀部中央點(diǎn)坐標(biāo)后,與臀部中央點(diǎn)直接或者間接相連的點(diǎn),也應(yīng)該以相同的方式移動(dòng)。3)完成剩余4次坐標(biāo)變換。在第一次坐標(biāo)變換中,以脊椎中央點(diǎn)為基準(zhǔn)點(diǎn),以肩膀中央點(diǎn)與脊椎點(diǎn)之間的距離作為基準(zhǔn)距離,平移了臀部中央點(diǎn)和與其直接或間接相連的其他點(diǎn)。第二次坐標(biāo)變換的原理與第一次相同,還是以肩膀中央點(diǎn)與脊椎點(diǎn)之間的距離作為基準(zhǔn)距離,只是這次的基準(zhǔn)點(diǎn)變?yōu)榧绨蛑醒朦c(diǎn)和臀部中央點(diǎn)。同理,第三次的基準(zhǔn)點(diǎn)為第二次移動(dòng)的五個(gè)點(diǎn)(即頭點(diǎn)、左肩膀點(diǎn)、左臀點(diǎn)、右臀點(diǎn)、右肩膀點(diǎn)),第四次的基準(zhǔn)點(diǎn)為第三次移動(dòng)的四個(gè)點(diǎn)(即左手肘點(diǎn)、左膝蓋點(diǎn)、右膝蓋點(diǎn)、右手肘點(diǎn)),第五次的基準(zhǔn)點(diǎn)為第四次移動(dòng)的四個(gè)點(diǎn)(即左手腕點(diǎn)、左腳踝點(diǎn)、右腳踝點(diǎn))。至此,映射過程結(jié)束,已經(jīng)將不同的人體骨架映射到定義的標(biāo)準(zhǔn)人體比例模型上,下一步就是對(duì)20個(gè)關(guān)節(jié)點(diǎn)進(jìn)行字符串編碼。其具體編碼過程如下:1)坐標(biāo)降維。在研究過程中發(fā)現(xiàn),將關(guān)節(jié)點(diǎn)的三維空間坐標(biāo)轉(zhuǎn)換到二維平面后,同樣可以根據(jù)二維平面坐標(biāo)確定人體姿勢(shì),且大大簡(jiǎn)化了編碼和識(shí)別過程,所以可以對(duì)坐標(biāo)進(jìn)行降維。這里的降維是指直接去掉z方向的深度信息。2)坐標(biāo)平移變換。以臀部中央點(diǎn)為原點(diǎn),建立二維直角坐標(biāo)系,將20個(gè)關(guān)節(jié)點(diǎn)的坐標(biāo)進(jìn)行平移,得到所有關(guān)節(jié)點(diǎn)在二維坐標(biāo)下的新坐標(biāo)。在映射過程中,選擇以脊椎點(diǎn)為原點(diǎn)是為了保證坐標(biāo)變換的次數(shù)最少,而在編碼過程中,選擇以臀部中央點(diǎn)為原點(diǎn),是因?yàn)橥尾恐醒朦c(diǎn)位于人體兩塊髖骨之間,在人體運(yùn)動(dòng)過程中,穩(wěn)定性最好。3)姿勢(shì)編碼。這是非常關(guān)鍵的一步,也是算法的核心。請(qǐng)參考圖5,以臀部中央點(diǎn)為基準(zhǔn)點(diǎn),建立一個(gè)64*64的網(wǎng)格,網(wǎng)格分布左右對(duì)稱,臀部中央點(diǎn)上方42行,下方22行,網(wǎng)格的總長度為身高的1.5倍,這樣可以保證任何姿勢(shì)下20個(gè)關(guān)節(jié)點(diǎn)都落在網(wǎng)格內(nèi)。建立好網(wǎng)格后,我們從左上角開始將網(wǎng)格按照從左到右,從上到下的順序依次編碼為0…9A…Za…z???(共64個(gè)字符)。最后將人體20關(guān)節(jié)點(diǎn)所在的網(wǎng)格編碼按固定順序串聯(lián)成字符串即可。關(guān)節(jié)點(diǎn)順序依次為:頭、肩膀中央、左肩膀、右肩膀、左手肘、右手肘、左手腕、右手腕、左手掌、右手掌、脊椎、臀部中央、左臀、右臀、左膝蓋、右膝蓋、左腳踝、右腳踝、左腳掌、右腳掌。例如,假如頭處于第5行第7列,那么字符串編碼的前兩位即為46(從0開始編碼)。經(jīng)過編碼得到一個(gè)40位的字符串。這個(gè)字符串每?jī)晌灰唤M,可以視為一個(gè)XY坐標(biāo),描述了其某個(gè)關(guān)節(jié)點(diǎn)的位置。有了統(tǒng)一的編碼規(guī)則后,就可以先用模型生成待識(shí)別姿勢(shì)的字符串編碼,然后在Kinect應(yīng)用中,通過時(shí)時(shí)采集的數(shù)據(jù)對(duì)姿勢(shì)進(jìn)行編碼,再與模板進(jìn)行匹配,從而識(shí)別出最相近的姿勢(shì)。字符串可以存儲(chǔ)在程序的字符串變量、各種類型文件和數(shù)據(jù)庫中,便于應(yīng)用到各種各樣的系統(tǒng)并進(jìn)行網(wǎng)絡(luò)傳輸,且非常的方便。完成字符串的編碼后,進(jìn)行姿勢(shì)識(shí)別的過程,實(shí)際上就是一個(gè)求解字符串相似度的過程。本發(fā)明方法通過字符串所代表的實(shí)際含義來進(jìn)行相似度(similarity)求解。原始的計(jì)算公式如下:其中:M代表某個(gè)模板字符串,N代表通過關(guān)節(jié)點(diǎn),實(shí)時(shí)計(jì)算得到的字符串。下標(biāo)i表示字符串第i個(gè)位置的字符對(duì)應(yīng)的數(shù)值。根據(jù)上面的編碼,字符0到9對(duì)應(yīng)數(shù)字0到9,字符A到Z對(duì)應(yīng)數(shù)字10到35,字符a到z對(duì)應(yīng)數(shù)字36到61,字符!代表數(shù)字62,字符?代表數(shù)字63。這個(gè)公式就是求解對(duì)應(yīng)關(guān)節(jié)點(diǎn)映射到二維平面且規(guī)劃化后的歐氏距離,然后對(duì)所有20個(gè)關(guān)節(jié)點(diǎn)之間的距離求和,得到兩個(gè)字符串間的距離。距離越大,相似度越小。所有字符串間相似度定義為:但是在進(jìn)行姿勢(shì)識(shí)別的過程中,每個(gè)關(guān)節(jié)點(diǎn)參與計(jì)算的權(quán)重應(yīng)該是不一樣的,因?yàn)橹挥杏脩糇约褐雷约憾x的姿勢(shì)重點(diǎn)關(guān)注的是哪些關(guān)節(jié)點(diǎn),所以用戶可以根據(jù)自己設(shè)計(jì)的姿勢(shì)集合,來確定每個(gè)關(guān)節(jié)點(diǎn)應(yīng)該采取的權(quán)重。例如,如果用戶只關(guān)注上半身姿勢(shì),那么可以將上半身關(guān)節(jié)點(diǎn)權(quán)重設(shè)為1,下半身設(shè)為0,這樣人的下半身動(dòng)作就不影響姿勢(shì)識(shí)別;如果用戶關(guān)注全身的姿勢(shì),但是重點(diǎn)關(guān)注上半身姿勢(shì),可以將上半身關(guān)節(jié)點(diǎn)權(quán)重設(shè)為1,下半身關(guān)節(jié)點(diǎn)權(quán)重設(shè)為0.5。加入權(quán)重后,距離計(jì)算公式為:其中,wi即為第i點(diǎn)所對(duì)應(yīng)的權(quán)重。利用相似度計(jì)算方法依次計(jì)算所有模板與待識(shí)別姿勢(shì)的相似度,相似度最大的即可作為識(shí)別結(jié)果,當(dāng)該最大相似度大于預(yù)先設(shè)定的閾值θ,則成功識(shí)別出該姿勢(shì)。其中,閾值θ根據(jù)動(dòng)作集合的復(fù)雜度和精度要求來設(shè)定,最終確定具體數(shù)值需要在確定姿勢(shì)集合后,根據(jù)實(shí)驗(yàn)結(jié)果確定。一般的原則是姿勢(shì)越多,對(duì)精度要求越高,閾值越大。以上就是姿勢(shì)識(shí)別的全過程,動(dòng)作識(shí)別與姿勢(shì)識(shí)別十分類似,可以視作一系列姿勢(shì)的識(shí)別,所以可以用一個(gè)字符串序列來定義一個(gè)動(dòng)作。動(dòng)作識(shí)別與姿勢(shì)識(shí)別的主要區(qū)別如下:首先,姿勢(shì)識(shí)別可能是對(duì)全身多個(gè)關(guān)節(jié)點(diǎn)的相對(duì)位置進(jìn)行判斷,而動(dòng)作識(shí)別重點(diǎn)往往是對(duì)某個(gè)或者某幾個(gè)關(guān)節(jié)點(diǎn)在某個(gè)時(shí)間段內(nèi)的相對(duì)位置進(jìn)行判斷。例如標(biāo)準(zhǔn)的立正姿勢(shì),就需要判斷全身20個(gè)關(guān)節(jié)點(diǎn)的相對(duì)位置,而定義右手的揮手動(dòng)作,就僅僅需要判斷右手掌,右手腕和右手肘三個(gè)關(guān)節(jié)點(diǎn)在固定時(shí)間內(nèi)的相對(duì)位置。這樣在進(jìn)行動(dòng)作匹配時(shí),無關(guān)的關(guān)節(jié)點(diǎn)權(quán)重可以設(shè)置為0,相關(guān)的關(guān)節(jié)點(diǎn)位置可以按重要程度進(jìn)行設(shè)置。在動(dòng)作識(shí)別中,還有一個(gè)重要的問題是如何定義動(dòng)作的開始點(diǎn)和結(jié)束點(diǎn)。在這里可以采用以下兩種方式:一是定義的動(dòng)作都從某個(gè)固定姿勢(shì)開始到某個(gè)固定姿勢(shì)結(jié)束,這種方式適合一些固定的場(chǎng)合,例如交通警察指揮交通過程中,所有的標(biāo)準(zhǔn)動(dòng)作都是以立正為開始和結(jié)束點(diǎn)。但是這種方式不夠靈活,有一定的局限性。另一種方式是采用握拳的方式定義動(dòng)作開始和結(jié)束。每當(dāng)要通過做特定的動(dòng)作進(jìn)行交互時(shí),可以先握緊拳頭,做完動(dòng)作后再松開拳頭,這種方式比較靈活,可以應(yīng)用到各種各樣的動(dòng)作,但是這種方式又顯得不夠自然。本發(fā)明中主要采用的是第二種方式進(jìn)行測(cè)試。既然已經(jīng)能夠確定動(dòng)作的開始和結(jié)束點(diǎn),那么每當(dāng)完成一個(gè)動(dòng)作,就會(huì)得到一個(gè)字符串序列,動(dòng)作識(shí)別的過程實(shí)際上就是這個(gè)字符串序列之間進(jìn)行相似度計(jì)算的過程。不同的人做同一個(gè)動(dòng)作甚至一個(gè)人連續(xù)幾次做同一個(gè)動(dòng)作,都不會(huì)在完全相同的時(shí)間內(nèi)完成,但是硬件設(shè)備的采樣率一般是固定的,這就會(huì)造成多次重復(fù)同一個(gè)動(dòng)作得到的字符串序列長度是不一樣的,為了消除字符串序列長度對(duì)匹配的影響,這里采用了動(dòng)態(tài)時(shí)間規(guī)整算法(DynamicTimeWarping)進(jìn)行匹配。動(dòng)態(tài)時(shí)間規(guī)整算法一般用于語音信號(hào)的處理。因?yàn)椴煌娜擞胁煌陌l(fā)音習(xí)慣,這就造成了不同的人發(fā)出相同的語句,雖然整體波形比較相似,但是時(shí)間長度和局部波峰的相對(duì)位置都存在較大差異,為了消除這種差異,一般采用DTW算法求出兩段波形的最小距離(或最大相似度)。這個(gè)過程與本發(fā)明的動(dòng)作識(shí)別過程極為相似,所以本發(fā)明同樣可以采用DTW算法進(jìn)行字符串序列相似度匹配。采用DTW算法進(jìn)行字符串序列匹配的過程如下:假設(shè)有兩個(gè)字符串序列分別為M和N,它們的長度分別為m和n。當(dāng)m=n時(shí),直接計(jì)算兩個(gè)序列對(duì)應(yīng)點(diǎn)的距離,然后求和就可以了。但是,當(dāng)m≠n時(shí),為了對(duì)齊這兩個(gè)序列,需要構(gòu)造一個(gè)m×n的矩陣網(wǎng)格,矩陣元素(i,j)表示Mi和Nj兩個(gè)點(diǎn)的距離。這里每?jī)蓚€(gè)點(diǎn)之間的距離與姿勢(shì)識(shí)別中字符串間的距離定義相同。每一個(gè)矩陣元素表示點(diǎn)和的對(duì)齊。算法可以歸結(jié)為尋找一條通過此網(wǎng)格中若干網(wǎng)格點(diǎn)的路徑,路徑通過的網(wǎng)格點(diǎn)即為兩個(gè)序列進(jìn)行計(jì)算的對(duì)齊的點(diǎn)。最終需要找到一條路徑W=w1,w2...wk,其中wi表示第i步到達(dá)的點(diǎn)。具體過程請(qǐng)參考圖6。在尋找路徑的過程中,需要遵循以下規(guī)則:1)邊界條件:w1=(1,1)和wk=(m,n)。因?yàn)槊恳粋€(gè)動(dòng)作無論快慢,最終的開始點(diǎn)和結(jié)束點(diǎn)應(yīng)該是相同的。2)連續(xù)性:如果wk-1=(a′,b′),那么對(duì)于路徑的下一個(gè)點(diǎn)wk=(a,b)需要滿足(a-a′)≤1和(b-b′)≤1。也就是不可能跨過某個(gè)點(diǎn)去匹配,只能和自己相鄰的點(diǎn)匹配。3)單調(diào)性:如果wk-1=(a′,b′),那么對(duì)于路徑的下一個(gè)點(diǎn)wk=(a,b)需要滿足(a-a′)≥0和(b-b′)≥0。結(jié)合連續(xù)性和單調(diào)性約束,每一個(gè)網(wǎng)格點(diǎn)的路徑就只有三個(gè)方向。例如如果路徑已經(jīng)通過了網(wǎng)格點(diǎn)(i,j),那么下一個(gè)通過的網(wǎng)格點(diǎn)只可能是下列三種情況之一:(i+1,j),(i,j+1)或者(i+1,j+1)。滿足上面這些約束條件的路徑可以有很多個(gè),但需要求得使下面的規(guī)整代價(jià)最小的路徑:分母中的k主要是用來對(duì)不同的長度的規(guī)整路徑做補(bǔ)償。這樣采用動(dòng)態(tài)規(guī)劃的方法就可以很容易的求得最優(yōu)路徑。兩個(gè)字符串序列間距離越小,相似度越高。所以,字符串序列間相似度定義為:利用動(dòng)態(tài)時(shí)間規(guī)整算法依次計(jì)算所有模板與待識(shí)別動(dòng)作的相似度,相似度最大的即可作為識(shí)別結(jié)果,當(dāng)該最大相似度大于預(yù)先設(shè)定的閾值λ,則成功識(shí)別出該動(dòng)作。其中,閾值λ根據(jù)動(dòng)作集合的復(fù)雜度和精度要求來設(shè)定,最終確定具體數(shù)值需要在確定動(dòng)作集合后,根據(jù)實(shí)驗(yàn)結(jié)果確定。一般的原則是動(dòng)作越多,對(duì)精度要求越高,閾值越大。為了使本
技術(shù)領(lǐng)域
的人員更好的理解本發(fā)明,以下結(jié)合兩個(gè)簡(jiǎn)單的實(shí)例詳細(xì)描述姿勢(shì)識(shí)別和動(dòng)作識(shí)別的過程,但實(shí)例不構(gòu)成對(duì)本發(fā)明的限制。以下簡(jiǎn)單實(shí)例,每個(gè)姿勢(shì)或動(dòng)作都只定義了一個(gè)模板,如果每個(gè)姿勢(shì)有多個(gè)模板,可以采用KNN算法得到最終結(jié)果。一、姿勢(shì)識(shí)別在利用Kinect進(jìn)行姿勢(shì)識(shí)別前,首先需要定義待識(shí)別的姿勢(shì)集合。在這里定義了六種姿勢(shì),如圖7所示,從左到右分別為:立正,舉右手,直舉雙手,舉左手,半舉雙手,斜舉雙手。在定義好姿勢(shì)后,需要對(duì)姿勢(shì)進(jìn)行字符串編碼。利用上面提到的方法,分別對(duì)這6種姿勢(shì)進(jìn)行編碼,得到數(shù)據(jù)如下:姿勢(shì)字符串編碼立正VWJVWOROaORXaXRdadRiaiVWVVWdSdZdSmZmSxZxSzZz舉右手VWJVWOROaORXcFRdeARie5VWVVWdSdZdSmZmSxZxSzZz直舉雙手VWJVWOROaOOGcFMAeAM6e5VWVVWdSdZdSmZmSxZxSzZz舉左手VWJVWOROaOOGcXMAddM6dhVWVVWdSdZdSmZmSxZxSzZz半舉雙手VWJVWOROaOIOjPIKkJHGkFVWVVWdSdZdSmZmSxZxSzZz斜舉雙手VWJVWOROaOMHgIICkDF9n9VWVVWdSdZdSmZmSxZxSzZz得到待識(shí)別姿勢(shì)的字符串編碼后,就可以利用Kinect,識(shí)別這些姿勢(shì)。具體過程如下:1、在Kinect工程中,導(dǎo)入字符串模板到配置文件中,記錄為E1至E6。2、識(shí)別時(shí),對(duì)關(guān)節(jié)點(diǎn)位置信息進(jìn)行處理(包括坐標(biāo)映射、降維、坐標(biāo)變換、編碼),得到字符串S。3、用得到的字符串S與預(yù)先導(dǎo)入的六個(gè)字符串E1至E6進(jìn)行相似度計(jì)算,相似度計(jì)算方法如上文所述,計(jì)算過程中,每個(gè)點(diǎn)的權(quán)重均設(shè)為1。4、如果計(jì)算得到的最大相似度大于設(shè)定的閾值,則判定姿勢(shì)識(shí)別成功,并在屏幕上打印出識(shí)別到的姿勢(shì),否則姿勢(shì)識(shí)別失敗。在不同的場(chǎng)景中,應(yīng)該設(shè)定不同的閾值,這里設(shè)為θ=0.05可以取得較好的識(shí)別效果。二、動(dòng)作識(shí)別首先同樣需要定義待識(shí)別的動(dòng)作集合,如圖6所示,為了示例簡(jiǎn)單易懂,在這里只關(guān)注右手掌的運(yùn)動(dòng)軌跡。最終得到右手掌運(yùn)動(dòng)軌跡的字符串編碼序列為(因?yàn)橹魂P(guān)注右手掌的動(dòng)作,這里只給出了右手掌的字符串編碼序列):得到字符串編碼序列后,就可以利用Kinect開始識(shí)別這些動(dòng)作。具體過程如下:1、在Kinect工程中,導(dǎo)入字符串序列模板到配置文件中,記錄為E1到E9。2、識(shí)別時(shí),從握拳視為動(dòng)作開始,到松手視為動(dòng)作結(jié)束,記錄整個(gè)過程中產(chǎn)生的字符串序列,并將字符串序列存儲(chǔ)在一個(gè)字符串?dāng)?shù)組中,記為S。3、用得到的字符串?dāng)?shù)組S與預(yù)先導(dǎo)入的模板E1至E9進(jìn)行相似度計(jì)算,相似度計(jì)算方法如上文所述。4、如果計(jì)算得到的最大相似度大于設(shè)定的閾值,則判定動(dòng)作識(shí)別成功,并在屏幕上打印出識(shí)別到的動(dòng)作,否則動(dòng)作識(shí)別失敗。本實(shí)施例中設(shè)定的閾值為λ=0.2??梢匀〉幂^好的識(shí)別效果。以上就是本發(fā)明方法利用Kinect進(jìn)行姿勢(shì)識(shí)別和動(dòng)作識(shí)別的全過程。以上所述,僅為本發(fā)明中的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可理解想到的變換或替換,都應(yīng)涵蓋在本發(fā)明的包含范圍之內(nèi),因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1