動(dòng)作識(shí)別方法及裝置的制造方法
【專利摘要】本發(fā)明公開(kāi)了一種動(dòng)作識(shí)別方法及裝置,本發(fā)明中首先采集人體動(dòng)作,并對(duì)人體動(dòng)作進(jìn)行初步編輯,確定動(dòng)作的起始和結(jié)束幀;之后提取編輯后的人體動(dòng)作數(shù)據(jù)的關(guān)節(jié)點(diǎn)、圓形度以及澤尼克矩作為所述人體動(dòng)作的描述特征;之后移除描述特征中的存在的噪聲、動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差;最后以上述處理后得到的描述特征作為輸入,輸入到支持向量機(jī)模型進(jìn)行訓(xùn)練,最后得到可對(duì)動(dòng)作進(jìn)行識(shí)別的分類模型。對(duì)于具體的動(dòng)作,分類模型將給出對(duì)應(yīng)的動(dòng)作標(biāo)簽,所得到的分類模型即實(shí)現(xiàn)了對(duì)新的人體動(dòng)作的定義。利用本發(fā)明的方法工具用戶只需錄制自己或他人的動(dòng)作便可完成動(dòng)作的定義和識(shí)別,識(shí)別效果達(dá)到95%以上。
【專利說(shuō)明】
動(dòng)作識(shí)別方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及體人機(jī)交互技術(shù)領(lǐng)域,更具體涉及一種動(dòng)作識(shí)別方法及裝置。
【背景技術(shù)】
[0002] 在人機(jī)交互領(lǐng)域,動(dòng)作識(shí)別是體感交互的前提,動(dòng)作識(shí)別和行為理解逐漸成為人 機(jī)交互領(lǐng)域的研究熱點(diǎn)。為達(dá)到有效的交互目的,必須對(duì)不同的交互動(dòng)作,包含肢體運(yùn)動(dòng)、 手勢(shì)以及靜態(tài)姿勢(shì),進(jìn)行定義和識(shí)別。
[0003] 目前,基于Kinect的動(dòng)作識(shí)別方法較多,如事件觸發(fā)方法、模板匹配方法、機(jī)器學(xué) 習(xí)方法等?,F(xiàn)有技術(shù)中提出的靈活動(dòng)作和鉸接式骨架工具包(flexible action and articulated skeleton toolkit,F(xiàn)AAST)是介于Kinect開(kāi)發(fā)包和應(yīng)用程序之間的體感操作 中間件,主要采用事件觸發(fā)方式進(jìn)行識(shí)別,如角度、距離、速度等事件,該方法計(jì)算量小,實(shí) 時(shí)性和準(zhǔn)確率高,但事件觸發(fā)方法本身具有局限性,對(duì)連續(xù)動(dòng)作的識(shí)別較困難,同時(shí)不能實(shí) 現(xiàn)新動(dòng)作的定義和使用。
[0004] 近年來(lái),基于Kinect體感技術(shù)的動(dòng)作識(shí)別應(yīng)用開(kāi)發(fā)十分豐富,但在這些應(yīng)用中,雖 然能夠有效跟蹤人體運(yùn)動(dòng)軌跡,但識(shí)別動(dòng)作比較單一且識(shí)別方法不利于擴(kuò)展,亟待研究和 開(kāi)發(fā)一種具有擴(kuò)展性和通用性的動(dòng)作識(shí)別模型。
【發(fā)明內(nèi)容】
[0005] (一)要解決的技術(shù)問(wèn)題
[0006] 本發(fā)明要解決的技術(shù)問(wèn)題是如何快速方便地識(shí)別用戶的姿勢(shì)動(dòng)作,以供后續(xù)使 用。
[0007] (二)技術(shù)方案
[0008] 為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種動(dòng)作識(shí)別方法,所述方法包括以下步 驟:
[0009] S1、采集人體動(dòng)作或?qū)氚梭w動(dòng)作的文件,并對(duì)人體動(dòng)作進(jìn)行初步編輯;
[0010] S2、提取所述步驟S1編輯之后的人體動(dòng)作的數(shù)據(jù)的關(guān)節(jié)點(diǎn)、圓形度以及澤尼克矩 作為所述人體動(dòng)作的描述特征;
[0011] S3、移除所述描述特征中存在的噪聲、動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹 配上的誤差;
[0012] S4、將所述步驟S3處理后得到的描述特征輸入到支持向量機(jī)分類模型進(jìn)行訓(xùn)練, 訓(xùn)練得到的分類模型即實(shí)現(xiàn)對(duì)新的人體動(dòng)作的定義;對(duì)于具體的動(dòng)作,分類器將給出一個(gè) 具體的標(biāo)簽以標(biāo)識(shí)識(shí)別的動(dòng)作。其中,所述標(biāo)簽用于標(biāo)識(shí)對(duì)應(yīng)的人體動(dòng)作;
[0013] S5、接受特定動(dòng)作的標(biāo)簽,觸發(fā)與該動(dòng)作關(guān)聯(lián)的鍵盤(pán)或鼠標(biāo)事件,并將該事件遞交 給目標(biāo)應(yīng)用。
[0014] 優(yōu)選地,所述步驟S1中采集人體動(dòng)作之前所述方法還包括以下步驟:
[0015] 設(shè)置所述人體動(dòng)作的名稱以及動(dòng)作持續(xù)時(shí)間;
[0016] 采集倒計(jì)時(shí)開(kāi)始計(jì)時(shí),經(jīng)過(guò)預(yù)定倒計(jì)時(shí)時(shí)長(zhǎng)后開(kāi)始采集人體動(dòng)作;
[0017] 所述步驟S1中采集人體動(dòng)作之后所述方法還包括以下步驟:
[0018] 采集所述動(dòng)作持續(xù)時(shí)間長(zhǎng)度內(nèi)的人體動(dòng)作后將采集的人體動(dòng)作進(jìn)行保存;
[0019] 所述步驟S1中初步編輯具體為:選定起始幀和結(jié)束幀,移除所述起始幀之前以及 所述結(jié)束幀之后的人體動(dòng)作幀的數(shù)據(jù)。
[0020] 優(yōu)選地,所述步驟S2中提取所述關(guān)節(jié)點(diǎn)具體包括以下步驟:
[0021] S21、利用Kinect SDK API獲取關(guān)節(jié)點(diǎn)位置,該位置基于Kinect設(shè)備空間坐標(biāo)系;
[0022] S22、以用戶右手方向?yàn)閤軸正方向,頭部正上方為y軸正方向,面向交互設(shè)備正前 方為z軸正方向,臀部為坐標(biāo)原點(diǎn)構(gòu)建用戶空間坐標(biāo)系;
[0023] S23、Kinect設(shè)備空間坐標(biāo)系oxyz下的坐標(biāo)點(diǎn)P(x,y,z)與用戶空間坐標(biāo)系o'x'y' z'下的坐標(biāo)點(diǎn)?'(1',7',2')的變換關(guān)系可描述下式, /I 0 0 0\
[0024] = (x,y,z/l) q 〇 -?i 〇 C1) \-x〇-y0-z0i/
[0025]式中,0'(XQ,yo,Z())表示用戶空間坐標(biāo)系o'x'y'z'的坐標(biāo)原點(diǎn)。
[0026] 優(yōu)選地,所述步驟S2中提取所述圓形度以及澤尼克矩具體包括以下步驟:
[0027] S24、對(duì)所述步驟S1編輯之后的人體動(dòng)作進(jìn)行運(yùn)動(dòng)檢測(cè),檢測(cè)方法參考如下公式 (\color(x, t) - color(x, t - l) j > th _
[0028] ( depth(x, t) - depih{x, t - 1) > 0
[0029] 式中(3〇1〇1~(1,1:)和(3〇1〇1'(1,1:-1)分別是位置1=(1,5〇處1:時(shí)刻和1:-1時(shí)刻的色彩 幀像素,depth(x,t)和depth(x,t_l)是相應(yīng)像素的深度值,th為第一預(yù)定閾值,所述第一預(yù) 定閥值用于區(qū)分實(shí)際的人體運(yùn)動(dòng)與噪聲;
[0030] S25、在運(yùn)動(dòng)檢測(cè)后,首先估計(jì)一個(gè)初始前景模板,以上一個(gè)步驟中的像素點(diǎn)作為 種子像素,實(shí)現(xiàn)一個(gè)區(qū)域增長(zhǎng)算法不斷擴(kuò)大種子區(qū)域,其中所述區(qū)域增長(zhǎng)算法具體為:比較 所述種子像素與其近鄰像素,若近鄰像素與種子像素滿足下面公式,則近鄰像素與種子像 素相似,則對(duì)應(yīng)的近鄰像素被添加到種子區(qū)域,如此,種子區(qū)域被擴(kuò)大,當(dāng)不再有近鄰像素 被包含時(shí),迭代結(jié)束;
[0031 ] G R ^ \f(xt - ye) - f (pk)\ < th (3)
[0032]式中,絲表示當(dāng)前幀中增長(zhǎng)區(qū)域中的像素集合,P(t) = {pi=(xi,yi),p2=(X2, y2),…}為絲的子集,(Xi, yi)為待判定的像素點(diǎn)pk是P(t)中的任意一個(gè)點(diǎn),th為特定閾值; [0033] S26、對(duì)所述步驟S25處理后得到的數(shù)據(jù)進(jìn)行基于邊緣的改進(jìn):
[0034]通過(guò)膨脹稍微擴(kuò)大色彩幀以確保包含所有重要的邊緣;在擴(kuò)大的模板上應(yīng)用 canny算子,使用膨脹算子連接邊緣;將得到的結(jié)果掩碼與初始的掩碼進(jìn)行與操作以排除冗 余的背景數(shù)據(jù);
[0035] S27、對(duì)所述步驟S26處理后的數(shù)據(jù)進(jìn)行基于色彩信息的改進(jìn),以減少深度數(shù)據(jù)上 的邊界錯(cuò)誤;
[0036] S28、利用下面的公式計(jì)算一維徑向多項(xiàng)式Rn,m為:
[0038] 式中,n是一個(gè)非負(fù)整數(shù),表示一維徑向多項(xiàng)式的階數(shù),m是一個(gè)非零整數(shù),滿足n-m| = even和|m|彡n,表示相位角的重復(fù)度,P是點(diǎn)(x,y)至lj原點(diǎn)的向量的長(zhǎng)度,其中點(diǎn)(x,y) 是經(jīng)過(guò)所述步驟S27處理后得到的數(shù)據(jù)點(diǎn);
[0039] S29、利用下面的公式計(jì)算澤尼克基函數(shù):定義在單位圓內(nèi)的復(fù)值二維澤尼克基函 數(shù)表示為如下:
[0040] Vn,m(p,0)=Rn,meim, |p|^l (5)
[0041]復(fù)值二維澤尼克多項(xiàng)式滿足正交性:
n 二 p,m 二 q ⑷ otherwise
[0043] 式中,*表示復(fù)共輒,VP,q與Vn,m的含義相同,區(qū)別在于基數(shù)不同;
[0044] S210、將步驟S27處理后得到的數(shù)據(jù)對(duì)應(yīng)的圖像投影到澤尼克基函數(shù),并利用下面 的公式計(jì)算澤尼克矩:
[0046] 上式表示階為n,相位角重復(fù)為m的復(fù)澤尼克矩式中,f(x,y)為圖像的函數(shù);
[0047] 其中,為達(dá)到尺度和平移不變性,圖像函數(shù)f(x,y)需被歸一化,轉(zhuǎn)換方程為:
[0049] S211、利用所述步驟S27處理后的數(shù)據(jù)以及下面的公式計(jì)算所述圓形度:
[0051]式中,A是所述步驟S27處理后的數(shù)據(jù)對(duì)應(yīng)的圖像的面積,而P是所述步驟S27處理 后的數(shù)據(jù)對(duì)應(yīng)的圖像的周長(zhǎng);
[0052]優(yōu)選地,所述步驟S3中利用動(dòng)態(tài)時(shí)間規(guī)整法移除所述描述特征的噪聲;
[0053] 所述步驟S3中利用Fourier Temporal Pyramid清除所述描述特征由于動(dòng)作速率 變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差。
[0054] 一種動(dòng)作識(shí)別用的裝置,所述裝置包括動(dòng)作采集單元、特征提取單元、數(shù)據(jù)清洗單 元、動(dòng)作分類單元以及輸入模擬器單元;
[0055] 所述動(dòng)作采集單元用于采集人體動(dòng)作或?qū)氚梭w動(dòng)作的文件,并對(duì)人體動(dòng)作 進(jìn)行初步編輯;
[0056] 所述特征提取單元用于提取所述動(dòng)作采集單元編輯之后的人體動(dòng)作的數(shù)據(jù)的關(guān) 節(jié)點(diǎn)、圓形度以及澤尼克矩作為所述人體動(dòng)作的描述特征;
[0057] 所述數(shù)據(jù)清洗單元用于移除所述描述特征的噪聲、動(dòng)作速率變化帶來(lái)的誤差以及 動(dòng)作時(shí)間匹配上的誤差;
[0058]所述動(dòng)作分類單元用于接收為所述數(shù)據(jù)清洗單元處理后得到的描述特征然后進(jìn) 行模型訓(xùn)練,訓(xùn)練得到的分類模型就具體的動(dòng)作輸出一個(gè)標(biāo)簽,,以此實(shí)現(xiàn)對(duì)新的人體動(dòng)作 的定義和識(shí)別;其中,所述標(biāo)簽用于標(biāo)識(shí)對(duì)應(yīng)的人體動(dòng)作;
[0059] 所述輸入模擬器單元用于接受特定動(dòng)作的標(biāo)簽,觸發(fā)與該動(dòng)作關(guān)聯(lián)的鍵盤(pán)或鼠標(biāo) 事件,并將該事件遞交給目標(biāo)應(yīng)用。
[0060] 優(yōu)選地,所述動(dòng)作采集單元包括設(shè)置子單元、倒計(jì)時(shí)計(jì)時(shí)子單元、采集子單元、存 儲(chǔ)子單元、導(dǎo)入子單元以及編輯子單元;
[0061] 所述設(shè)置子單元用于設(shè)置預(yù)定倒計(jì)時(shí)、所述人體動(dòng)作的名稱以及動(dòng)作持續(xù)時(shí)間;
[0062] 所述倒計(jì)時(shí)計(jì)時(shí)子單元用于在采集倒計(jì)時(shí)開(kāi)始計(jì)時(shí),經(jīng)過(guò)預(yù)定倒計(jì)時(shí)時(shí)長(zhǎng)后控制 所述采集子單元開(kāi)始工作,采集人體動(dòng)作;
[0063] 所述導(dǎo)入子單元用于導(dǎo)入包含人體動(dòng)作的文件;
[0064] 所述存儲(chǔ)子單元用于在所述采集子單元采集所述動(dòng)作持續(xù)時(shí)間的時(shí)間長(zhǎng)度的人 體動(dòng)作后將采集的人體動(dòng)作進(jìn)行保存;
[0065] 所述編輯子單元用于選定起始幀和結(jié)束幀,刪除所述起始幀之前以及所述結(jié)束幀 之后的人體動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。
[0066] 優(yōu)選地,所述特征提取單元包括關(guān)節(jié)點(diǎn)提取子單元,
[0067] 所述關(guān)節(jié)點(diǎn)提取子單元用于利用Kinect SDK API獲取關(guān)節(jié)點(diǎn)位置基于Kinect設(shè) 備空間坐標(biāo)系;以用戶右手方向?yàn)閤軸正方向,頭部正上方為y軸正方向,面向交互設(shè)備正前 方為z軸正方向,臀部為坐標(biāo)原點(diǎn)構(gòu)建用戶空間坐標(biāo)系;Kinect設(shè)備空間坐標(biāo)系oxyz下的坐 標(biāo)點(diǎn)P(x,y,z)與用戶空間坐標(biāo)系o'x'y'z'下的坐標(biāo)點(diǎn)P'(x',y',z')的變換關(guān)系可描述下 式,
[0069]式中,0'(XQ,yo,Z())表示用戶空間坐標(biāo)系o'x'y'z'的坐標(biāo)原點(diǎn)。
[0070]優(yōu)選地,所述特征提取單元包括數(shù)據(jù)處理子單元、圓形度提取子單元以及澤尼克 矩提取子單元;
[0071 ]所述數(shù)據(jù)處理子單元用于對(duì)所述步述動(dòng)作采集單元編輯之后的人體動(dòng)作進(jìn)行運(yùn) 動(dòng)檢測(cè),去除不符合下面公式的人體動(dòng)作對(duì)應(yīng)的數(shù)據(jù): 「00721 {\color(x> ^ ~ c〇l〇r{x, t - 1)1 > th (depth(x, t) - depth{x, t 1) > 0 ^
[0073] 式中(3〇1〇1~(1,1:)和(3〇1〇1'(1,1:-1)分別是位置1=(1,5〇處1:時(shí)刻和1:-1時(shí)刻的色彩 幀像素,depth(x,t)和depth(x,t_l)是相應(yīng)像素的深度值,th為第一預(yù)定閾值,所述第一預(yù) 定閥值用于區(qū)分實(shí)際的人體運(yùn)動(dòng)與噪聲;
[0074] 所述數(shù)據(jù)處理子單元還用于在運(yùn)動(dòng)檢測(cè)后,設(shè)置一個(gè)初始前景掩碼,并且選取種 子像素,并利用區(qū)域增長(zhǎng)算法完成整個(gè)種子區(qū)域,其中所述區(qū)域增長(zhǎng)算法具體為:比較所述 種子像素與近鄰像素,若近鄰像素與種子像素滿足下面公式,則近鄰像素與種子像素相似, 則對(duì)應(yīng)的近鄰像素被添加到種子區(qū)域,如此,種子區(qū)域被擴(kuò)大,當(dāng)不再有近鄰像素被包含 時(shí),迭代結(jié)束;
[0075] (xi,yL) eR^ \f(xL - y,) - f(pk)\ < th (3)
[0076]式中,絲表示當(dāng)前幀中增長(zhǎng)區(qū)域中的像素集合,P(t) = {pi = (xi,yi),P2= (X2, y2),〃_}為互的子集,由跟所述種子像素(Xl,yi)鄰接的點(diǎn)組成,Pk是P(t)中的任意一個(gè)點(diǎn), th為預(yù)第二定閾值;
[0077]所述數(shù)據(jù)處理子單元還用于對(duì)整個(gè)種子區(qū)域的數(shù)據(jù)進(jìn)行基于邊緣的改進(jìn):
[0078]通過(guò)膨脹稍微擴(kuò)大色彩幀以確保包含所有重要的邊緣;在擴(kuò)大的掩碼上應(yīng)用 canny算子,使用膨脹算子連接邊緣;將得到的結(jié)果掩碼與初始的掩碼進(jìn)行與操作以排除冗 余的背景數(shù)據(jù);
[0079] 所述數(shù)據(jù)處理子單元還用于對(duì)基于邊緣改進(jìn)處理后的數(shù)據(jù)進(jìn)行基于色彩信息的 改進(jìn),以減少深度數(shù)據(jù)上的邊界錯(cuò)誤;
[0080]所述澤尼克矩提取子單元用于利用下面的公式計(jì)算一維徑向多項(xiàng)式1,^為:
[0082] 式中,n是一個(gè)非負(fù)整數(shù),表示一維徑向多項(xiàng)式的階數(shù),m是一個(gè)非零整數(shù),滿足n-m| = even和|m|彡n,表示相位角的重復(fù)度,P是點(diǎn)(x,y)至lj原點(diǎn)的向量的長(zhǎng)度,其中點(diǎn)(x,y) 是經(jīng)過(guò)所述步驟S27處理后得到的數(shù)據(jù)點(diǎn);
[0083] 所述澤尼克矩提取子單元還用于利用下面的公式計(jì)算澤尼克基函數(shù):定義在單位 圓內(nèi)的復(fù)值二維澤尼克基函數(shù)表示為如下:
[0084] Vn,m(p,0)=Rn,meim, |p|^l (5)
[0085] 復(fù)值二維澤尼克多項(xiàng)式滿足正交性:
[0087] 式中,*表示復(fù)共輒,VP,q與Vn,m的含義相同,區(qū)別在于基數(shù)不同;
[0088] 所述澤尼克矩提取子單元還用于將數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到 的數(shù)據(jù)對(duì)應(yīng)的圖像投影到澤尼克基函數(shù),并利用下面的公式計(jì)算澤尼克矩:
[0090] 上式表示階為n,相位角重復(fù)為m的復(fù)澤尼克矩式中,f(x,y)為圖像的函數(shù);
[0091] 其中,為達(dá)到尺度和平移不變性,圖像函數(shù)f(x,y)需被歸一化,轉(zhuǎn)換方程為:
[0093]所述圓形度提取子單元用于將數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù) 據(jù)以及下面的公式計(jì)算所述圓形度:
[0095] 式中,A是所述數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù)據(jù)對(duì)應(yīng)的圖像的 面積,而P是所述數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù)據(jù)對(duì)應(yīng)的圖像的周長(zhǎng)。
[0096] 優(yōu)選地,所述數(shù)據(jù)清洗單元包括第一清洗子單元以及第二清洗子單元;
[0097] 所述第一清洗子單元用于利用動(dòng)態(tài)時(shí)間規(guī)整法清除所述描述特征的噪聲;
[0098] 所述第二清洗子單元用于利用Fourier Temporal Pyramid清除所述描述特征由 于動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差。
[0099] (三)有益效果
[0100] 本發(fā)明提供了一種動(dòng)作識(shí)別方法及裝置,本發(fā)明中首先采集人體動(dòng)作或?qū)氚?人體動(dòng)作的文件,并對(duì)人體動(dòng)作進(jìn)行初步編輯;之后提取編輯之后的人體動(dòng)作的數(shù)據(jù)的關(guān) 節(jié)點(diǎn)、圓形度以及澤尼克矩作為所述人體動(dòng)作的描述特征;之后清除所述描述特征的噪聲、 動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差;最后為上述處理后得到的描述特征 對(duì)應(yīng)的人體動(dòng)作分配一個(gè)標(biāo)簽,并將所述人體動(dòng)作對(duì)應(yīng)的描述特征以及對(duì)應(yīng)的標(biāo)簽進(jìn)行存 儲(chǔ),實(shí)現(xiàn)對(duì)新的人體動(dòng)作的定義;其中,所述標(biāo)簽用于標(biāo)識(shí)對(duì)應(yīng)的人體動(dòng)作。利用本發(fā)明的 方法或裝置用戶只需錄制自己或他人的動(dòng)作便可完成動(dòng)作的定義,錄制的動(dòng)作數(shù)據(jù)后期可 用于構(gòu)建動(dòng)作分類模型,可針對(duì)具體的桌面應(yīng)用進(jìn)行定制,識(shí)別效果達(dá)到95%以上。
【附圖說(shuō)明】
[0101] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0102] 圖1是本發(fā)明的一個(gè)較佳實(shí)施例的動(dòng)作識(shí)別方法流程圖;
[0103] 圖2A、2B是本發(fā)明的另一個(gè)較佳實(shí)施例的動(dòng)作識(shí)別方法流程圖
[0104] 圖3是本發(fā)明的另一個(gè)較佳實(shí)施例的動(dòng)作識(shí)別方法中步驟S1的流程圖;
[0105] 圖4是本發(fā)明的另一個(gè)較佳實(shí)施例的動(dòng)作識(shí)別方法中步驟S25-S27的流程圖;
[0106] 圖5是本發(fā)明的另一個(gè)較佳實(shí)施例的動(dòng)作識(shí)別方法中步驟S26的流程圖;
[0107] 圖6A、6B、6C是本發(fā)明的另一個(gè)較佳實(shí)施例的動(dòng)作識(shí)別方法中步驟S26的處理效果 示意圖;
[0108] 圖7A、7B、7C是本發(fā)明的另一個(gè)較佳實(shí)施例的動(dòng)作識(shí)別方法中步驟S27的效果示意 圖。
【具體實(shí)施方式】
[0109] 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā) 明,但不能用來(lái)限制本發(fā)明的范圍。
[0110] -種動(dòng)作識(shí)別方法,如圖1所示,所述方法包括以下步驟:
[0111] S1、采集人體動(dòng)作或?qū)氚梭w動(dòng)作的文件,并對(duì)人體動(dòng)作進(jìn)行初步編輯;
[0112] S2、提取所述步驟S1編輯之后的人體動(dòng)作的數(shù)據(jù)的關(guān)節(jié)點(diǎn)、圓形度以及澤尼克矩 作為所述人體動(dòng)作的描述特征;
[0113] S3、清除所述描述特征的噪聲、動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的 誤差;
[0114] S4、將所述步驟S3處理后得到的描述特征輸入到支持向量機(jī)模型進(jìn)行訓(xùn)練,得到 訓(xùn)練后的模型,使用訓(xùn)練后的模型對(duì)人體動(dòng)作分配一個(gè)標(biāo)簽,,以此實(shí)現(xiàn)對(duì)新的人體動(dòng)作的 定義;其中,所述標(biāo)簽用于標(biāo)識(shí)對(duì)應(yīng)的人體動(dòng)作;
[0115] S5、接受特定動(dòng)作的標(biāo)簽,觸發(fā)與該動(dòng)作關(guān)聯(lián)的鍵盤(pán)或鼠標(biāo)事件,并將該事件遞交 給目標(biāo)應(yīng)用。
[0116] 利用本發(fā)明的方法或裝置用戶只需錄制自己或他人的動(dòng)作便可完成動(dòng)作的定義 識(shí)別制的動(dòng)作數(shù)據(jù)后期可用于構(gòu)建動(dòng)作分類模型,可針對(duì)具體的桌面應(yīng)用進(jìn)行定制,識(shí)別 效果達(dá)到95%以上。上述方法度已經(jīng)定義的動(dòng)作作進(jìn)行識(shí)別,并將識(shí)別的結(jié)果與具體的目 標(biāo)應(yīng)用關(guān)聯(lián)起來(lái),以實(shí)現(xiàn)使用姿勢(shì)動(dòng)作操控傳統(tǒng)的桌面應(yīng)用。
[0117] 進(jìn)一步地,所述步驟S1中采集人體動(dòng)作之前所述方法還包括以下步驟:
[0118] 設(shè)置所述人體動(dòng)作的名稱以及動(dòng)作持續(xù)時(shí)間;
[0119] 采集倒計(jì)時(shí)開(kāi)始計(jì)時(shí),經(jīng)過(guò)預(yù)定倒計(jì)時(shí)時(shí)長(zhǎng)后開(kāi)始采集人體動(dòng)作;
[0120] 所述步驟S1中采集人體動(dòng)作之后所述方法還包括以下步驟:
[0121] 采集所述動(dòng)作持續(xù)時(shí)間長(zhǎng)度內(nèi)的人體動(dòng)作后將采集的人體動(dòng)作進(jìn)行保存;
[0122] 所述步驟S1中初步編輯具體為:選定起始幀和結(jié)束幀,刪除所述起始幀之前以及 所述結(jié)束幀之后的人體動(dòng)作幀的數(shù)據(jù)。
[0123] 進(jìn)一步地,如圖2A、2B所示,所述步驟S2中提取所述關(guān)節(jié)點(diǎn)具體包括以下步驟:
[0124] S21、利用Kinect SDK API獲取關(guān)節(jié)點(diǎn)位置,該位置基于Kinect設(shè)備空間坐標(biāo)系;
[0125] S22、以用戶右手方向?yàn)閤軸正方向,頭部正上方為y軸正方向,面向交互設(shè)備正前 方為z軸正方向,臀部為坐標(biāo)原點(diǎn)構(gòu)建用戶空間坐標(biāo)系;
[0126] S23、Kinect設(shè)備空間坐標(biāo)系oxyz下的坐標(biāo)點(diǎn)P(x,y,z)與用戶空間坐標(biāo)系o'x'y' z'下的坐標(biāo)點(diǎn)?'(1',7',2')的變換關(guān)系可描述下式, / 1 0 0 0\
[0127] (r?Vl) = (Xy,z, 1)| $ ^ -0^ (1) \_^〇-y〇'~z〇i/
[0128]式中,0'(XQ,yo,Z())表示用戶空間坐標(biāo)系o'x'y'z'的坐標(biāo)原點(diǎn)。
[0129]所述步驟S2中提取所述圓形度以及澤尼克矩:首先從運(yùn)動(dòng)的圖像幀中去除背景, 將運(yùn)動(dòng)的人分割出來(lái),然后計(jì)算分割后圖像的圓形度和澤尼克矩作為描述當(dāng)前圖像幀的特 征。提出的分割方法為融合深度信息和顏色信息的分割,其流程圖如圖4所示,具體包括以 下步驟:
[0130] S24、對(duì)所述步驟S1編輯之后的人體動(dòng)作進(jìn)行運(yùn)動(dòng)檢測(cè),
[0131 ]利用下面公式進(jìn)行檢測(cè),得到符合下面公式的像素點(diǎn):
[0132] i\co!or(x>f) _ color(x, t-l)\> th 1 depth(x, t) - depth(x, t - 1) > 0 (.
[0133] 式中〇〇1〇1~(1,1:)和〇〇1〇1'(1,1:-1)分別是位置1=(1,5〇處1:時(shí)刻和1:-1時(shí)刻的色彩 幀像素,depth(x,t)和depth(x,t_l)是相應(yīng)像素的深度值,th為第一預(yù)定閾值,所述第一預(yù) 定閥值用于區(qū)分實(shí)際的人體運(yùn)動(dòng)與噪聲;
[0134] S25、在運(yùn)動(dòng)檢測(cè)后,設(shè)置一個(gè)初始的前景區(qū)域,然后實(shí)現(xiàn)一個(gè)區(qū)域增長(zhǎng)算法構(gòu)建 成整個(gè)前景區(qū)域,其中所述區(qū)域增長(zhǎng)算法具體為:利用前一個(gè)步驟中得到的像素點(diǎn)作為種 子像素,比較所述種子像素與其近鄰像素,若近鄰像素與種子像素滿足下面公式,則近鄰像 素與種子像素相似,對(duì)應(yīng)的近鄰像素被添加到種子區(qū)域,如此,種子區(qū)域被擴(kuò)大,當(dāng)不再有 近鄰像素被包含時(shí),迭代結(jié)束;
[0135] (xityt) ER^ \f(xt - yt) - f(pk)\ < th (3)
[0136] 式中,苧表示當(dāng)前幀中增長(zhǎng)區(qū)域,即前景區(qū)域中的像素集合,P(t) = {pi=(xi,y〇, P2 = (X2,y2),…}為!的子集,像素 (Xi,yi)為待判定的像素點(diǎn),pk是P(t)中的任意一個(gè)點(diǎn),th 為預(yù)第二定閾值;
[0137] S26、上一個(gè)步驟中區(qū)域增長(zhǎng)算法當(dāng)應(yīng)用于帶噪聲的深度圖時(shí),估計(jì)的前景掩碼將 包含錯(cuò)誤的區(qū)域,這些區(qū)域本該屬于背景。為解決這類問(wèn)題,我們利用色彩數(shù)據(jù)中邊緣信息 進(jìn)行改進(jìn),最終形成提高的前景掩碼。具體操作為:
[0138] 通過(guò)膨脹稍微擴(kuò)大色彩幀以確保包含所有重要的邊緣;在擴(kuò)大的模板上應(yīng)用 canny算子,接著使用膨脹算子連接邊緣;最后將得到的結(jié)果模板與初始的掩碼進(jìn)行與操作 以排除冗余的背景數(shù)據(jù);算法流程如圖5,算法應(yīng)用后的結(jié)果如圖6A、6B、6C所示;
[0139] S27、對(duì)所述步驟S26處理后的數(shù)據(jù)進(jìn)行基于色彩信息的改進(jìn),以減少深度數(shù)據(jù)上 的邊界錯(cuò)誤;其效果如圖7A、7B、7C所示;
[0140] S28、利用下面的公式計(jì)算一維徑向多項(xiàng)式Rn,m為:
[0142] 式中,n是一個(gè)非負(fù)整數(shù),表示一維徑向多項(xiàng)式的階數(shù),m是一個(gè)非零整數(shù),滿足n-m| = even和|m|彡n,表示相位角的重復(fù)度,P是點(diǎn)(x,y)至lj原點(diǎn)的向量的長(zhǎng)度,其中點(diǎn)(x,y) 是經(jīng)過(guò)所述步驟S27處理后得到的數(shù)據(jù)點(diǎn);
[0143] S29、利用下面的公式計(jì)算澤尼克基函數(shù):定義在單位圓內(nèi)的復(fù)值二維澤尼克基函 數(shù)表示為如下:
[0144] Vn,m(p,0)=Rn,meim,|p| 彡 1 (5)
[0145] 復(fù)值二維澤尼克多項(xiàng)式滿足正交性:
[0147] 式中,*表示復(fù)共輒,VP,q與Vn,m的含義相同,區(qū)別在于基數(shù)不同;
[0148] S210、將步驟S27處理后得到的數(shù)據(jù)對(duì)應(yīng)的圖像投影到澤尼克基函數(shù),并利用下面 的公式計(jì)算澤尼克矩:
[0150] 上式表示階為n,相位角重復(fù)為m的復(fù)澤尼克矩式中,f(x,y)為圖像的函數(shù);
[0151] 其中,為達(dá)到尺度和平移不變性,圖像函數(shù)f(x,y)需被歸一化,轉(zhuǎn)換方程為:
[0153] S211、利用所述步驟S27處理后的數(shù)據(jù)以及下面的公式計(jì)算所述圓形度:
[0155]式中,A是所述步驟S27處理后的數(shù)據(jù)對(duì)應(yīng)的圖像的面積,而P是所述步驟S27處理 后的數(shù)據(jù)對(duì)應(yīng)的圖像的周長(zhǎng)。
[0156] 其中,澤尼克矩可視作一副圖像到一個(gè)澤尼克多項(xiàng)式集合的映射。由于澤尼克多 項(xiàng)式彼此正交,所以使用澤尼克矩表示圖像的屬性時(shí),各階矩間不存在信息冗余。同時(shí),澤 尼克矩具備旋轉(zhuǎn)不變性和對(duì)噪聲魯棒,歸一化后的澤尼克矩是尺度和平移不變的。圓形度 用于度量目標(biāo)區(qū)域的緊湊度,被定義為面積和周長(zhǎng)平方的比,對(duì)于圓形目標(biāo)其達(dá)到最小,對(duì) 于薄的復(fù)雜的目標(biāo)其接近無(wú)限大。
[0157] 進(jìn)一步地,如圖2A、2B所示,所述步驟S3中利用動(dòng)態(tài)時(shí)間規(guī)整法清除所述描述特征 的噪聲;
[0158] 所述步驟S3中利用Fourier Temporal Pyramid清除所述描述特征由于動(dòng)作速率 變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差。
[0159] 對(duì)應(yīng)于上述方法本發(fā)明還公開(kāi)了一種動(dòng)作識(shí)別裝置,所述裝置包括動(dòng)作采集單 元、特征提取單元、數(shù)據(jù)清洗單元、動(dòng)作分類單元以及輸入模擬器單元;
[0160]所述動(dòng)作采集單元用于采集人體動(dòng)作或?qū)氚梭w動(dòng)作的文件,并對(duì)人體動(dòng)作 進(jìn)行初步編輯;
[0161] 所述特征提取單元用于提取所述動(dòng)作采集單元編輯之后的人體動(dòng)作的數(shù)據(jù)的關(guān) 節(jié)點(diǎn)、圓形度以及澤尼克矩作為所述人體動(dòng)作的描述特征;
[0162] 所述數(shù)據(jù)清洗單元用于清除所述描述特征的噪聲、動(dòng)作速率變化帶來(lái)的誤差以及 動(dòng)作時(shí)間匹配上的誤差;
[0163] 所述動(dòng)作分類單元用于接收所述數(shù)據(jù)清洗單元處理后得到的描述特征,然后進(jìn)行 模型訓(xùn)練,訓(xùn)練得到的分類模型就具體的人體動(dòng)作輸出一個(gè)標(biāo)簽,,以此實(shí)現(xiàn)對(duì)新的人體動(dòng) 作的定義和識(shí)別;其中,所述標(biāo)簽標(biāo)識(shí)了對(duì)應(yīng)的人體動(dòng)作;
[0164] 所述輸入模擬器單元用于接受特定動(dòng)作的標(biāo)簽,觸發(fā)與該動(dòng)作關(guān)聯(lián)的鍵盤(pán)或鼠標(biāo) 事件,并將該事件遞交給目標(biāo)應(yīng)用。
[0165] 進(jìn)一步地,所述動(dòng)作采集單元包括設(shè)置子單元、倒計(jì)時(shí)計(jì)時(shí)子單元、采集子單元、 存儲(chǔ)子單元、導(dǎo)入子單元以及編輯子單元;
[0166] 所述設(shè)置子單元用于設(shè)置預(yù)定倒計(jì)時(shí)、所述人體動(dòng)作的名稱以及動(dòng)作持續(xù)時(shí)間;
[0167] 所述倒計(jì)時(shí)計(jì)時(shí)子單元用于在采集倒計(jì)時(shí)開(kāi)始計(jì)時(shí),經(jīng)過(guò)預(yù)定倒計(jì)時(shí)時(shí)長(zhǎng)后控制 所述采集子單元開(kāi)始工作,采集人體動(dòng)作;
[0168] 所述導(dǎo)入子單元用于導(dǎo)入包含人體動(dòng)作的文件;
[0169] 所述存儲(chǔ)子單元用于在所述采集子單元采集所述動(dòng)作持續(xù)時(shí)間的時(shí)間長(zhǎng)度的人 體動(dòng)作后將采集的人體動(dòng)作進(jìn)行保存;
[0170]所述編輯子單元用于選定起始幀和結(jié)束幀,刪除所述起始幀之前以及所述結(jié)束幀 之后的人體動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。
[0171 ]進(jìn)一步地,所述特征提取單元包括關(guān)節(jié)點(diǎn)提取子單元,
[0172] 所述關(guān)節(jié)點(diǎn)提取子單元用于利用Kinect SDK API獲取關(guān)節(jié)點(diǎn)位置基于Kinect設(shè) 備空間坐標(biāo)系;以用戶右手方向?yàn)閤軸正方向,頭部正上方為y軸正方向,面向交互設(shè)備正前 方為z軸正方向,臀部為坐標(biāo)原點(diǎn)構(gòu)建用戶空間坐標(biāo)系;Kinect設(shè)備空間坐標(biāo)系oxyz下的坐 標(biāo)點(diǎn)P(x,y,z)與用戶空間坐標(biāo)系o'x'y'z'下的坐標(biāo)點(diǎn)P'(x',y',z')的變換關(guān)系可描述下 式, / 1 0 0 0\
[0173] (x,ly,,z,,T) = (x,y,z/l) q 〇 ^ q J (11 \_x〇_y〇_z〇i/
[0174]式中,0'(XQ,yo,Z())表示用戶空間坐標(biāo)系o'x'y'z'的坐標(biāo)原點(diǎn)。
[0175] 所述特征提取單元包括數(shù)據(jù)處理子單元、圓形度提取子單元以及澤尼克矩提取子 單元;
[0176] 所述數(shù)據(jù)處理子單元用于對(duì)所述步述動(dòng)作采集單元編輯之后的人體動(dòng)作進(jìn)行運(yùn) 動(dòng)檢測(cè),去除不符合下面公式的人體動(dòng)作對(duì)應(yīng)的數(shù)據(jù): f\color(x, t) - color(x, t - 1)| > th [0177] l depth(x, t) - depth(x., t - 1) > 0 (")
[0178] 式中〇〇1〇1~(1,1:)和〇〇1〇1'(1,1:-1)分別是位置1=(1,5〇處1:時(shí)刻和1:-1時(shí)刻的色彩 幀像素,depth(x,t)和depth(x,t_l)是相應(yīng)像素的深度值,th為第一預(yù)定閾值,所述第一預(yù) 定閥值用于區(qū)分實(shí)際的人體運(yùn)動(dòng)與噪聲;
[0179] 所述數(shù)據(jù)處理子單元還用于在運(yùn)動(dòng)檢測(cè)后,設(shè)置一個(gè)初始前景掩碼,并且選取種 子像素,并利用區(qū)域增長(zhǎng)算法完成整個(gè)種子區(qū)域,其中所述區(qū)域增長(zhǎng)算法具體為:比較所述 種子像素與近鄰像素,若近鄰像素與種子像素滿足下面公式,則近鄰像素與種子像素相似, 則對(duì)應(yīng)的近鄰像素被添加到種子區(qū)域,如此,種子區(qū)域被擴(kuò)大,當(dāng)不再有近鄰像素被包含 時(shí),迭代結(jié)束;
[0180] (^,eR^\f(xt- ) - fipjJ| < th (3)
[0181] 式中,苧表示當(dāng)前幀中增長(zhǎng)區(qū)域中的像素集合,?(1:) = {口1=(11,71),口2=(12, y2),-_}為互的子集,由跟所述種子像素(Xl,yi)鄰接的點(diǎn)組成,Pk是P(t)中的任意一個(gè)點(diǎn), th為預(yù)第二定閾值;
[0182] 所述數(shù)據(jù)處理子單元還用于對(duì)整個(gè)種子區(qū)域的數(shù)據(jù)進(jìn)行基于邊緣的改進(jìn):
[0183] 通過(guò)膨脹稍微擴(kuò)大色彩幀以確保包含所有重要的邊緣;在擴(kuò)大的掩碼上應(yīng)用 canny算子,使用膨脹算子連接邊緣;將得到的結(jié)果掩碼與初始的掩碼進(jìn)行與操作以排除冗 余的背景數(shù)據(jù);
[0184] 所述數(shù)據(jù)處理子單元還用于對(duì)基于邊緣改進(jìn)處理后的數(shù)據(jù)進(jìn)行基于色彩信息的 改進(jìn),以減少深度數(shù)據(jù)上的邊界錯(cuò)誤;
[0185] 所述澤尼克矩提取子單元用于利用下面的公式計(jì)算一維徑向多項(xiàng)式Rn,m為:
[0187] 式中,n是一個(gè)非負(fù)整數(shù),表示一維徑向多項(xiàng)式的階數(shù),m是一個(gè)非零整數(shù),滿足n-m| = even和|m|彡n,表示相位角的重復(fù)度,P是點(diǎn)(x,y)至lj原點(diǎn)的向量的長(zhǎng)度,其中點(diǎn)(x,y) 是經(jīng)過(guò)所述步驟S27處理后得到的數(shù)據(jù)點(diǎn);
[0188] 所述澤尼克矩提取子單元還用于利用下面的公式計(jì)算澤尼克基函數(shù):定義在單位 圓內(nèi)的復(fù)值二維澤尼克基函數(shù)表示為如下:
[0189] Vn,m(p,0)=Rn,meim,|p| 彡 1 (5)
[0190]復(fù)值二維澤尼克多項(xiàng)式滿足正交性:
[0192] 式中,*表示復(fù)共輒,VP,q與Vn,m的含義相同,區(qū)別在于基數(shù)不同;
[0193] 所述澤尼克矩提取子單元還用于將數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到 的數(shù)據(jù)對(duì)應(yīng)的圖像投影到澤尼克基函數(shù),并利用下面的公式計(jì)算澤尼克矩:
[0195] 上式表示階為n,相位角重復(fù)為m的復(fù)澤尼克矩式中,f(x,y)為圖像的函數(shù);
[0196] 其中,為達(dá)到尺度和平移不變性,圖像函數(shù)f(x,y)需被歸一化,轉(zhuǎn)換方程為:
[0198]所述圓形度提取子單元用于將數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù) 據(jù)以及下面的公式計(jì)算所述圓形度:
[0200] 式中,A是所述數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù)據(jù)對(duì)應(yīng)的圖像的 面積,而P是所述數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù)據(jù)對(duì)應(yīng)的圖像的周長(zhǎng)。
[0201] 進(jìn)一步地,所述數(shù)據(jù)清洗單元包括第一清洗子單元以及第二清洗子單元;
[0202] 所述第一清洗子單元用于利用動(dòng)態(tài)時(shí)間規(guī)整法DTW清除所述描述特征的噪聲;
[0203] 所述第二清洗子單元用于利用Fourier Temporal Pyramid(FTP)清除所述描述特 征由于動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差。
[0204] 進(jìn)一步地,圖3為動(dòng)作采集裝置的工作流程圖。動(dòng)作采集單元用于對(duì)預(yù)設(shè)的每個(gè)動(dòng) 作進(jìn)行數(shù)據(jù)采集,該單元實(shí)現(xiàn)為動(dòng)作定義工具包Actionkit jctionki t由四部分組成,分別 是Actionkit主界面、新動(dòng)作界面、錄制新動(dòng)作界面和動(dòng)作編輯界面。Actionkit主界面上主 要有兩個(gè)按鈕,點(diǎn)擊加載按鈕彈出文件打開(kāi)窗口,要求用戶選擇一已錄制好的動(dòng)作xml文 件,然后彈出動(dòng)作編輯界面;點(diǎn)擊錄制按鈕彈出新動(dòng)作界面。在新動(dòng)作界面,用戶需設(shè)定動(dòng) 作的名稱,執(zhí)行該動(dòng)作預(yù)估的時(shí)間,當(dāng)點(diǎn)擊開(kāi)始錄制按鈕,彈出錄制新動(dòng)作界面,點(diǎn)擊取消 按鈕回到Actionkit主界面。在錄制新動(dòng)作界面,首先顯示一個(gè)10秒的倒計(jì)時(shí)以使用戶做好 準(zhǔn)備,然后顯示一個(gè)用戶在新動(dòng)作界面設(shè)定的時(shí)間倒計(jì)時(shí),在改時(shí)間內(nèi),用戶執(zhí)行意向的動(dòng) 作,待倒計(jì)時(shí)完畢,執(zhí)行的動(dòng)作被記錄在xm 1文件中,同時(shí)同步的深度圖像和顏色圖像亦被 記錄下來(lái)。在動(dòng)作編輯界面,左側(cè)展示人的骨架表示,右側(cè)設(shè)置有三個(gè)按鈕,左側(cè)底部為 Back按鈕,左側(cè)頂端顯示當(dāng)前幀號(hào)及總幀數(shù)。當(dāng)滑動(dòng)鼠標(biāo)滾輪時(shí),從當(dāng)前幀回退到上一幀或 前進(jìn)到下一幀,點(diǎn)擊動(dòng)畫(huà)按鈕可對(duì)整個(gè)動(dòng)作進(jìn)行預(yù)覽,當(dāng)選定動(dòng)作的起始幀后,點(diǎn)擊剪掉開(kāi) 始按鈕可修建掉起始幀之前的所有幀,當(dāng)選定動(dòng)作的結(jié)束幀后,點(diǎn)擊剪掉結(jié)束按鈕可修建 掉結(jié)束幀之后的所有幀。
[0205] Actionki t旨在提供動(dòng)作錄制接口,借助Act ionki t用戶能夠錄制意向的動(dòng)作,錄 制完畢后,Actionkit將其并存為一個(gè)xml文件,同時(shí)記錄同步的深度圖像和顏色圖像。稍 后,用戶可在Actionkit加載動(dòng)作xml文件以實(shí)現(xiàn)對(duì)已錄制的動(dòng)作進(jìn)行預(yù)覽,滑動(dòng)鼠標(biāo)光標(biāo) 瀏覽動(dòng)作的每一幀,按需選擇動(dòng)作的起始幀和結(jié)束幀,并將起始幀和結(jié)束幀之前的幀全部 修剪掉。
[0206] 上述裝置可以看做是一個(gè)基于骨架關(guān)節(jié)點(diǎn)和形狀描述子的動(dòng)作工具包。
[0207] FAAST是目前與本發(fā)明較類似的唯一工具,本發(fā)明與其的不同之處在于提供了一 種十分便利的動(dòng)作定義工具,使得用戶不用如在FAAST中那般去構(gòu)思描述動(dòng)作的復(fù)雜規(guī)則, 同時(shí)本發(fā)明中對(duì)動(dòng)作的識(shí)別采用了機(jī)器學(xué)習(xí)的方法,可針對(duì)具體的應(yīng)用定制識(shí)別方法,設(shè) 別效果較好。
[0208] 以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí) 施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各 實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而 這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍,其 均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說(shuō)明書(shū)的范圍當(dāng)中。
【主權(quán)項(xiàng)】
1. 一種動(dòng)作識(shí)別方法,其特征在于,所述方法包括以下步驟: 51、 采集人體動(dòng)作或?qū)氚梭w動(dòng)作的文件,并對(duì)人體動(dòng)作進(jìn)行初步編輯; 52、 提取所述步驟S1編輯之后的人體動(dòng)作數(shù)據(jù)的關(guān)節(jié)點(diǎn)、圓形度以及澤尼克矩作為所 述人體動(dòng)作的描述特征; 53、 移除所述描述特征中存在的噪聲、動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上 的誤差; 54、 將所述步驟S3處理后得到的描述特征輸入到支持向量機(jī)分類模型進(jìn)行訓(xùn)練,訓(xùn)練 得到的分類模型即實(shí)現(xiàn)對(duì)新的人體動(dòng)作的定義;對(duì)于具體的動(dòng)作,分類器將給出一個(gè)具體 的標(biāo)簽以標(biāo)識(shí)識(shí)別的動(dòng)作; 55、 接受特定動(dòng)作的標(biāo)簽,觸發(fā)與該動(dòng)作關(guān)聯(lián)的鍵盤(pán)或鼠標(biāo)事件,并將該事件遞交給目 標(biāo)應(yīng)用。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S1中采集人體動(dòng)作之前所述方法 還包括以下步驟: 設(shè)置所述人體動(dòng)作的名稱以及動(dòng)作持續(xù)時(shí)間; 采集倒計(jì)時(shí)開(kāi)始計(jì)時(shí),經(jīng)過(guò)預(yù)定倒計(jì)時(shí)時(shí)長(zhǎng)后開(kāi)始采集人體動(dòng)作; 所述步驟S1中采集人體動(dòng)作之后所述方法還包括以下步驟: 采集所述動(dòng)作持續(xù)時(shí)間長(zhǎng)度內(nèi)的人體動(dòng)作后將采集的人體動(dòng)作進(jìn)行保存; 所述步驟S1中初步編輯具體為:選定起始幀和結(jié)束幀,移除所述起始幀之前以及所述 結(jié)束幀之后的人體動(dòng)作幀數(shù)據(jù)。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2中提取所述關(guān)節(jié)點(diǎn)具體包括以 下步驟: 521、 利用Kinect SDK API獲取關(guān)節(jié)點(diǎn)位置,該位置基于Kinect設(shè)備空間坐標(biāo)系; 522、 以用戶右手方向?yàn)閄軸正方向,頭部正上方為y軸正方向,面向交互設(shè)備正前方為z 軸正方向,臀部為坐標(biāo)原點(diǎn)構(gòu)建用戶空間坐標(biāo)系; 523、 Kinect設(shè)備空間坐標(biāo)系oxyz下的坐標(biāo)點(diǎn)P(x,y,z)與用戶空間坐標(biāo)系o'x'y'z'下 的坐標(biāo)點(diǎn)P'(X',y ',z ')的變換關(guān)系可描述下式,式中,0'(χο,γο,ζο)表示用戶空間坐標(biāo)系o'x'y'z'的坐標(biāo)原點(diǎn)。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2中提取所述圓形度以及澤尼克 矩具體包括以下步驟: 524、 對(duì)所述步驟S1編輯之后的人體動(dòng)作進(jìn)行運(yùn)動(dòng)檢測(cè),利用下面公式進(jìn)行檢測(cè),得到 符合下面公式的像素點(diǎn):式中(3〇1〇1'(1,1:)和(3〇1〇1'(1,1:-1)分別是位置1=(1,5〇處1:時(shí)刻和1:-1時(shí)刻的色彩幀像 素,depth(x,t)和depth(x,t_l)是相應(yīng)像素的深度值,th為第一預(yù)定閾值,所述第一預(yù)定閥 值用于區(qū)分實(shí)際的人體運(yùn)動(dòng)與噪聲; 525、 在運(yùn)動(dòng)檢測(cè)后,設(shè)置一個(gè)初始的前景區(qū)域,然后實(shí)現(xiàn)一個(gè)區(qū)域增長(zhǎng)算法構(gòu)建成整 個(gè)前景區(qū)域,其中所述區(qū)域增長(zhǎng)算法具體為:利用前一個(gè)步驟中得到的像素點(diǎn)作為種子像 素,比較所述種子像素與其近鄰像素,若近鄰像素與種子像素滿足下面公式,則近鄰像素與 種子像素相似,對(duì)應(yīng)的近鄰像素被添加到種子區(qū)域,如此,種子區(qū)域被擴(kuò)大,當(dāng)不再有近鄰 像素被包含時(shí),迭代結(jié)束;式中,盡表示當(dāng)前幀中前景區(qū)域中的像素集合,P(t) = {pi = (xi,yi),p2=(X2,y2),···}為 盡的子集,?素(Xl,yi)為待判定的像素點(diǎn),Pk是P(t)中的任意一個(gè)點(diǎn),th為預(yù)第二定閾值; 526、 對(duì)所述步驟S25處理后得到的數(shù)據(jù)進(jìn)行基于邊緣的改進(jìn): 通過(guò)膨脹稍微擴(kuò)大色彩幀以確保包含所有重要的邊緣;在擴(kuò)大的模板上應(yīng)用canny算 子,接著使用膨脹算子連接邊緣;最后將得到的結(jié)果模板與初始的掩碼進(jìn)行與操作以排除 冗余的背景數(shù)據(jù); 527、 對(duì)所述步驟S26處理后的數(shù)據(jù)進(jìn)行基于色彩信息的改進(jìn),以減少深度數(shù)據(jù)上的邊 界錯(cuò)誤; 528、 利用下面的公式計(jì)算一維徑向多項(xiàng)式Rn,m為:式中,η是一個(gè)非負(fù)整數(shù),表示一維徑向多項(xiàng)式的階數(shù),m是一個(gè)非零整數(shù),滿足n-|m| = even和| m |彡η,表示相位角的重復(fù)度,P是點(diǎn)(X,y)至lj原點(diǎn)的向量的長(zhǎng)度,其中點(diǎn)(X,y)是經(jīng) 過(guò)所述步驟S27處理后得到的數(shù)據(jù)點(diǎn); 529、 利用下面的公式計(jì)算澤尼克基函數(shù):定義在單位圓內(nèi)的復(fù)值二維澤尼克基函數(shù)表 示為如下: Vn,m(P,9)=Rn,meim,|p| 彡 1 (5) 復(fù)值二維澤尼克多項(xiàng)式滿足正交性:式中,*表示復(fù)共輒,VP,q與Vn,m的含義相同,區(qū)別在于基數(shù)不同; 5210、 將步驟S27處理后得到的數(shù)據(jù)對(duì)應(yīng)的圖像投影到澤尼克基函數(shù),并利用下面的公 式計(jì)算澤尼克矩:上式表示階為n,相位角重復(fù)為m的復(fù)澤尼克矩式中,f(x,y)為圖像的函數(shù); 其中,為達(dá)到尺度和平移不變性,圖像函數(shù)f(x,y)需被歸一化,轉(zhuǎn)換方程為:5211、 利用所述步驟S27處理后的數(shù)據(jù)以及下面的公式計(jì)算所述圓形度:式中,A是所述步驟S27處理后的數(shù)據(jù)對(duì)應(yīng)的圖像的面積,而P是所述步驟S27處理后的 數(shù)據(jù)對(duì)應(yīng)的圖像的周長(zhǎng)。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S3中利用動(dòng)態(tài)時(shí)間規(guī)整法移除所 述描述特征中的噪聲; 所述步驟S3中利用Fourier Temporal Pyramid移除所述描述特征由于動(dòng)作速率變化 帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差。6. -種動(dòng)作識(shí)別用的裝置,其特征在于,所述裝置包括動(dòng)作采集單元、特征提取單元、 數(shù)據(jù)清洗單元、動(dòng)作分類單元以及輸入模擬器單元; 所述動(dòng)作采集單元用于采集人體動(dòng)作或?qū)氚梭w動(dòng)作的文件,并對(duì)人體動(dòng)作進(jìn)行 初步編輯; 所述特征提取單元用于提取所述動(dòng)作采集單元編輯之后的人體動(dòng)作的數(shù)據(jù)的關(guān)節(jié)點(diǎn)、 圓形度以及澤尼克矩作為所述人體動(dòng)作的描述特征; 所述數(shù)據(jù)清洗單元用于移除所述描述特征的噪聲、動(dòng)作速率變化帶來(lái)的誤差以及動(dòng)作 時(shí)間匹配上的誤差; 所述動(dòng)作分類單元用于接收所述數(shù)據(jù)清洗單元處理后得到的描述特征,然后進(jìn)行模型 訓(xùn)練,訓(xùn)練得到的分類模型就具體的人體動(dòng)作輸出一個(gè)標(biāo)簽,,以此實(shí)現(xiàn)對(duì)新的人體動(dòng)作的 定義和識(shí)別;其中,所述標(biāo)簽標(biāo)識(shí)了對(duì)應(yīng)的人體動(dòng)作; 所述輸入模擬器單元用于接受特定動(dòng)作的標(biāo)簽,觸發(fā)與該動(dòng)作關(guān)聯(lián)的鍵盤(pán)或鼠標(biāo)事 件,并將該事件遞交給目標(biāo)應(yīng)用。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述動(dòng)作采集單元包括設(shè)置子單元、倒計(jì) 時(shí)計(jì)時(shí)子單元、采集子單元、存儲(chǔ)子單元、導(dǎo)入子單元以及編輯子單元; 所述設(shè)置子單元用于設(shè)置預(yù)定倒計(jì)時(shí)、所述人體動(dòng)作的名稱以及動(dòng)作持續(xù)時(shí)間; 所述倒計(jì)時(shí)計(jì)時(shí)子單元用于在采集倒計(jì)時(shí)開(kāi)始計(jì)時(shí),經(jīng)過(guò)預(yù)定倒計(jì)時(shí)時(shí)長(zhǎng)后控制所述 采集子單元開(kāi)始工作,采集人體動(dòng)作; 所述導(dǎo)入子單元用于導(dǎo)入包含人體動(dòng)作的文件; 所述存儲(chǔ)子單元用于在所述采集子單元采集所述動(dòng)作持續(xù)時(shí)間的時(shí)間長(zhǎng)度的人體動(dòng) 作后將采集的人體動(dòng)作進(jìn)行保存; 所述編輯子單元用于選定起始幀和結(jié)束幀,刪除所述起始幀之前以及所述結(jié)束幀之后 的人體動(dòng)作幀數(shù)據(jù)。8. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述特征提取單元包括關(guān)節(jié)點(diǎn)提取子單 元, 所述關(guān)節(jié)點(diǎn)提取子單元用于利用Kinect SDK API獲取關(guān)節(jié)點(diǎn)位置基于Kinect設(shè)備空 間坐標(biāo)系;以用戶右手方向?yàn)閄軸正方向,頭部正上方為y軸正方向,面向交互設(shè)備正前方為 z軸正方向,臀部為坐標(biāo)原點(diǎn)構(gòu)建用戶空間坐標(biāo)系;Kinect設(shè)備空間坐標(biāo)系oxyz下的坐標(biāo)點(diǎn) P(x,y,z)與用戶空間坐標(biāo)系o'x'y'z'下的坐標(biāo)點(diǎn)P'(X',y',z')的變換關(guān)系可描述下式,式中,0'(XQ,yo,Z())表示用戶空間坐標(biāo)系o'x'y'z'的坐標(biāo)原點(diǎn)。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述特征提取單元包括數(shù)據(jù)處理子單元、 圓形度提取子單元以及澤尼克矩提取子單元; 所述數(shù)據(jù)處理子單元用于對(duì)所述動(dòng)作采集單元編輯之后的人體動(dòng)作進(jìn)行運(yùn)動(dòng)檢測(cè),檢 測(cè)方法利用如下公式:式中(3〇1〇1'(1,1:)和(3〇1〇1'(1,1:-1)分別是位置1=(1,5〇處1:時(shí)刻和1:-1時(shí)刻的色彩幀像 素,depth(x,t)和depth(x,t_l)是相應(yīng)像素的深度值,th為第一預(yù)定閾值,所述第一預(yù)定閥 值用于區(qū)分實(shí)際的人體運(yùn)動(dòng)與噪聲; 所述數(shù)據(jù)處理子單元還用于在運(yùn)動(dòng)檢測(cè)后,首先設(shè)置一個(gè)初始前景模板,以上一步中 得到的像素作為種子像素,實(shí)現(xiàn)區(qū)域增長(zhǎng)算法擴(kuò)大種子區(qū)域,最后形成完整的前景模板。其 中所述區(qū)域增長(zhǎng)算法具體為:比較所述種子像素與其近鄰像素,若近鄰像素與種子像素滿 足下面公式,則近鄰像素與種子像素相似,則對(duì)應(yīng)的近鄰像素被添加到種子區(qū)域,如此,種 子區(qū)域被擴(kuò)大,當(dāng)不再有近鄰像素被包含時(shí),迭代結(jié)束;式中,盡表示當(dāng)前幀中增長(zhǎng)區(qū)域中的像素集合,P(t) = {pi = (xi,yi),p2=(X2,y2),···}為 旦的子集,(xi,yi)為待判定的像素點(diǎn),Pk是P(t)中的任意一個(gè)點(diǎn),th為預(yù)第二定閾值; 所述數(shù)據(jù)處理子單元還用于對(duì)整個(gè)種子區(qū)域的數(shù)據(jù)進(jìn)行基于邊緣的改進(jìn): 通過(guò)膨脹稍微擴(kuò)大色彩幀以確保包含所有重要的邊緣;在擴(kuò)大的模板上應(yīng)用canny算 子,然后使用膨脹算子連接邊緣;最后將得到的結(jié)果掩碼與初始的掩碼進(jìn)行與操作以排除 冗余的背景數(shù)據(jù); 所述數(shù)據(jù)處理子單元還用于對(duì)基于邊緣改進(jìn)處理后的數(shù)據(jù)進(jìn)行基于色彩信息的改進(jìn), 以減少深度數(shù)據(jù)上的邊界錯(cuò)誤; 所述澤尼克矩提取子單元用于利用下面的公式計(jì)算一維徑向多項(xiàng)式式中,η是一個(gè)非負(fù)整數(shù),表示一維徑向多項(xiàng)式的階數(shù),m是一個(gè)非零整數(shù),滿足n-|m| = even和| m |彡η,表示相位角的重復(fù)度,P是點(diǎn)(X,y)至lj原點(diǎn)的向量的長(zhǎng)度,其中點(diǎn)(X,y)是經(jīng) 過(guò)所述步驟S27處理后得到的數(shù)據(jù)點(diǎn); 所述澤尼克矩提取子單元還用于利用下面的公式計(jì)算澤尼克基函數(shù):定義在單位圓內(nèi) 的復(fù)值二維澤尼克基函數(shù)表示為如下: Vn,m(P,9)=Rn,meim,|p| 彡 1 (5) 復(fù)值二維澤尼克多項(xiàng)式滿足正交性:式中,*表示復(fù)共輒,VP,q與Vn,m的含義相同,區(qū)別在于基數(shù)不同; 所述澤尼克矩提取子單元還用于將數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù) 據(jù)對(duì)應(yīng)的圖像投影到澤尼克基函數(shù),并利用下面的公式計(jì)算澤尼克矩:上式表示階為n,相位角重復(fù)為m的復(fù)澤尼克矩式中,f(x,y)為圖像的函數(shù); 其中,為達(dá)到尺度和平移不變性,圖像函數(shù)f(x,y)需被歸一化,轉(zhuǎn)換方程為:所述圓形度提取子單元用于將數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù)據(jù)以 及下面的公式計(jì)算所述圓形度:式中,A是所述數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù)據(jù)對(duì)應(yīng)的圖像的面積, 而P是所述數(shù)據(jù)處理子單元進(jìn)行色彩信息的改進(jìn)后得到的數(shù)據(jù)對(duì)應(yīng)的圖像的周長(zhǎng)。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)清洗單元包括第一清洗子單元 以及第二清洗子單元; 所述第一清洗子單元用于利用動(dòng)態(tài)時(shí)間規(guī)整法清除所述描述特征的噪聲; 所述第二清洗子單元用于利用Fourier Temporal Pyramid清除所述描述特征由于動(dòng) 作速率變化帶來(lái)的誤差以及動(dòng)作時(shí)間匹配上的誤差。
【文檔編號(hào)】G06K9/00GK105930773SQ201610228320
【公開(kāi)日】2016年9月7日
【申請(qǐng)日】2016年4月13日
【發(fā)明人】陳洪, 杜利強(qiáng), 陳晨如, 王慶, 梅樹(shù)立, 許常蕾, 張瑞萱
【申請(qǐng)人】中國(guó)農(nóng)業(yè)大學(xué)