劉 偉
(徐州醫(yī)科大學(xué)醫(yī)學(xué)信息與工程學(xué)院,江蘇 徐州 221000)
通過使機(jī)器對(duì)人體行為、動(dòng)作進(jìn)行模擬學(xué)習(xí),完成很多相對(duì)較為危險(xiǎn)或者繁瑣的工作,可以解放人力、保障人類安全、減少經(jīng)濟(jì)開銷,提高工作效率等。但是該項(xiàng)技術(shù)正處于起步階段,機(jī)器人不能對(duì)人體動(dòng)作進(jìn)行完全模擬,出現(xiàn)執(zhí)行偏差,不能獨(dú)立、智能地完成全部工作,因此人們開始對(duì)基于機(jī)器人學(xué)習(xí)的人類動(dòng)作識(shí)別方法進(jìn)行深入的研究。
文獻(xiàn)[1]針對(duì)傳統(tǒng)機(jī)器學(xué)習(xí)方法在通過運(yùn)動(dòng)傳感器對(duì)人體的運(yùn)動(dòng)進(jìn)行識(shí)別時(shí),嚴(yán)重依賴人工的不足,且識(shí)別正確率較低等問題,提出一種改進(jìn)卷積網(wǎng)絡(luò)和雙層長(zhǎng)短期記憶網(wǎng)絡(luò)混合模型,以此實(shí)現(xiàn)對(duì)人體動(dòng)作的自動(dòng)提取識(shí)別。但是此模型在與時(shí)序結(jié)構(gòu)、傳感器數(shù)據(jù)層狀等特點(diǎn)相結(jié)合時(shí),需要把多維傳感器的數(shù)據(jù)信息轉(zhuǎn)化成圖像RGB矩陣,才能進(jìn)行適應(yīng)性處理,使處理過程更加復(fù)雜,由數(shù)據(jù)到矩陣的轉(zhuǎn)換,會(huì)出現(xiàn)結(jié)果不精準(zhǔn)且轉(zhuǎn)換數(shù)據(jù)不完全的問題,導(dǎo)致識(shí)別產(chǎn)生誤差。
文獻(xiàn)[2]中的研究是為了實(shí)現(xiàn)人機(jī)協(xié)作的靈活性,提出機(jī)器人需要具備一定的合作經(jīng)驗(yàn)的要求,以此完成對(duì)人體進(jìn)行有意識(shí)識(shí)別的方法和流程。通過構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型,對(duì)機(jī)器人進(jìn)行離線訓(xùn)練,使其具有一定的合作性技能。但是上述方法只能應(yīng)用在特定領(lǐng)域內(nèi),不具備廣泛的適用性,難以滿足社會(huì)現(xiàn)實(shí)需求。
為了解決上述問題,本文提出一種基于機(jī)器學(xué)習(xí)的人體動(dòng)作局部特征點(diǎn)識(shí)別方法。通過分析人體行為動(dòng)作推斷肢體在時(shí)空領(lǐng)域中的運(yùn)動(dòng)效率,對(duì)特征進(jìn)行提取,然后通過卡爾曼濾波法對(duì)人體關(guān)節(jié)坐標(biāo)信息評(píng)估,其本質(zhì)上是一種最優(yōu)化回歸數(shù)據(jù)處理算法。以此構(gòu)建數(shù)學(xué)模型和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行定量識(shí)別,對(duì)人體局部動(dòng)作進(jìn)行分類識(shí)別。
人體運(yùn)動(dòng)屬于非剛體運(yùn)動(dòng),它在時(shí)空中的狀態(tài)差別很大,運(yùn)動(dòng)執(zhí)行效率變化較大,導(dǎo)致人體運(yùn)動(dòng)在時(shí)間尺度上可能存在很大的差異,為了解決這種差異,本文構(gòu)建了多尺度局部時(shí)空領(lǐng)域特征[3]。即對(duì)所有局部時(shí)空特征擬定多種不同的最近鄰特征數(shù)量,形成尺寸各不相同的局部時(shí)空領(lǐng)域。小尺度的局部領(lǐng)域可以抓取人體運(yùn)動(dòng)的所有細(xì)節(jié)信息,而大尺度的局部領(lǐng)域負(fù)責(zé)描述運(yùn)動(dòng)的宏觀統(tǒng)計(jì)量[4]。
通過以下步驟實(shí)現(xiàn)多尺度局部時(shí)空領(lǐng)域特征的構(gòu)建:
1)時(shí)空興趣點(diǎn)的局部特征和檢測(cè)描述,擬定di代表局部特征與人體動(dòng)作視頻V的時(shí)空興趣點(diǎn);
3)對(duì)所有尺度中的領(lǐng)域特征構(gòu)建各自碼本,再分別編碼,取得編碼系數(shù)c;
5)最后級(jí)聯(lián)全部尺寸下的池化向量,取得HV。
表示人體動(dòng)作視頻V下的池向量。將依據(jù)HV核的支持向量機(jī)(Support vector machine, SVM)作為動(dòng)作分類器,對(duì)人體動(dòng)作特征進(jìn)行提取,其提取過程為
(1)
式中,Hm與Hn為兩種特征向量,Hm(i)與Hn(j)分別為Hm與Hn的第i與j種特征分量[5]。
通過上述步驟完成人體動(dòng)作特征的提取。要進(jìn)一步實(shí)現(xiàn)特征點(diǎn)識(shí)別,需根據(jù)提取結(jié)果構(gòu)建人體行為動(dòng)作模型。
本文采用卡爾曼濾波法對(duì)人體關(guān)節(jié)坐標(biāo)信息數(shù)據(jù)進(jìn)行評(píng)估。卡爾曼濾波器是一個(gè)線性遞歸的濾波器,以目標(biāo)以前的狀態(tài)序列為基礎(chǔ),然后對(duì)以后的狀態(tài)做無偏差最優(yōu)評(píng)估[6-8]。該方法本質(zhì)上為一種最優(yōu)化的自回歸數(shù)據(jù)信息處理算法,主要利用遞推方式預(yù)測(cè),具體的算法公式為
xk=Fgk-1+Buk+Wk
(2)
式中,xk∈Rn為人體動(dòng)作狀態(tài)變量,gk-1為前一個(gè)人體動(dòng)作狀態(tài)向量,F(xiàn)即傳遞矩陣,B代表控制矩陣,uk表示控制輸入,Wk叫做過程噪聲。通常擬定服從高斯分布N(0,Qk),Qk代表過程噪聲協(xié)方差矩陣,則遞推算法的測(cè)量值為
zk=Hxk+vk
(3)
式中,zk∈Rm是觀測(cè)變量,H代表測(cè)量矩陣,vk代表測(cè)量噪聲。
利用卡爾曼濾波原理進(jìn)行計(jì)算。預(yù)報(bào)階段,由前一時(shí)刻狀態(tài)生成當(dāng)前時(shí)刻狀態(tài)作為預(yù)報(bào)值。進(jìn)入分析階段后,利用最小方差估計(jì)方法,將觀測(cè)數(shù)據(jù)進(jìn)行狀態(tài)重新分析。隨著狀態(tài)預(yù)報(bào)的持續(xù)進(jìn)行和新的觀測(cè)數(shù)據(jù)的不斷輸入,整個(gè)過程不斷向前推進(jìn)。
但在使用卡爾曼濾波法時(shí),需要采用合適的數(shù)學(xué)模型,對(duì)濾波公式中的系統(tǒng)參數(shù)、傳遞矩陣以及測(cè)量矩陣進(jìn)行確認(rèn)。本文則以泰勒展開來代表關(guān)節(jié)動(dòng)作。某一個(gè)關(guān)節(jié)點(diǎn)用i表示,而該點(diǎn)在X軸移動(dòng)速度泰勒展開式如式(4)所示
(4)
式中,xi表示某關(guān)節(jié)點(diǎn)處的狀態(tài)向量,k代表離散時(shí)間點(diǎn),ΔT代表采樣的時(shí)間。
同理,在Y軸與Z軸位置方向,人體局部動(dòng)作速度也能夠運(yùn)行相同方式進(jìn)行泰勒展開。因?yàn)镵inect傳感器取得深度信息效率是30幀/秒,以此速度進(jìn)行采集時(shí),在人體相鄰最近兩幀位置上的變化并不明顯。因此,本文在建立數(shù)學(xué)模型時(shí),需要將人體的關(guān)節(jié)點(diǎn)以均速動(dòng)作為目標(biāo)進(jìn)行采樣。通過式(4)建立卡爾曼濾波數(shù)學(xué)模型公式為
K(k)=Fxi(k)+W(k)
(5)
式中,W(k)代表協(xié)方差矩陣。
Kinect傳感器所獲取的所有關(guān)節(jié)點(diǎn)坐標(biāo)數(shù)據(jù)信息,行為動(dòng)作的測(cè)量矩陣數(shù)學(xué)模型如式(6)所示
Zi(k+1)=HXi(k+1)+V(k+1)
(6)
在測(cè)量噪聲V(k+1)中所建立的測(cè)量噪聲協(xié)方差矩陣W(k),幾乎都是對(duì)角矩陣。
通過多次測(cè)試以后,最終確定xi(k+1)的對(duì)角線上值為0.05,對(duì)角線上的數(shù)值是3,且確定起始狀態(tài)向量是零矩陣,起始誤差協(xié)方差矩陣是單位矩陣。憑借式(6)計(jì)算出Zi(k+1),并計(jì)算出關(guān)節(jié)點(diǎn)i在k時(shí)的位置[9]?;谏鲜觯瑢?shí)現(xiàn)人體行為動(dòng)作模型的構(gòu)建,利用該模型可進(jìn)行人體局部動(dòng)作識(shí)別。
人體的局部動(dòng)作是一種非平穩(wěn)的信號(hào),在進(jìn)行特征統(tǒng)計(jì)時(shí)會(huì)隨著時(shí)間的改變而改變,而傳統(tǒng)特征點(diǎn)提取,幾乎是通過時(shí)頻域方面進(jìn)行計(jì)算的,然后提取動(dòng)作信號(hào)數(shù)據(jù)的時(shí)域特征,即指均值、最大幅值以及標(biāo)準(zhǔn)差進(jìn)行識(shí)別或者通過頻域?qū)ζ溥M(jìn)行考慮,分析其功率譜能量和頻率絕對(duì)值等。而本文所利用的是小波變換針對(duì)所有的低頻信號(hào)分解,能夠很好的對(duì)非平穩(wěn)信號(hào)進(jìn)行處理,但各種小波在對(duì)信號(hào)作分析時(shí),所得到的數(shù)據(jù)結(jié)果也不相同,因此,在利用小波轉(zhuǎn)換函數(shù)分解時(shí),可以獲得小波系數(shù)的向量,最終把局部動(dòng)作信號(hào)合并成一個(gè)特征向量值,且同時(shí)選取短時(shí)的傅里葉變換以后質(zhì)心頻率、振鈴計(jì)數(shù)、上升時(shí)間、持續(xù)時(shí)間、窗口頻域特征峰值以及能量[10]。
構(gòu)建神經(jīng)網(wǎng)絡(luò)模型識(shí)別分類步驟如下所示:
1)把從傳感器上所傳輸?shù)膭?dòng)作信號(hào)利用加窗處理;
2)在時(shí)間窗中計(jì)算下列人體動(dòng)作向量:包含質(zhì)心頻率、振鈴計(jì)數(shù)、上升時(shí)間、小波系數(shù)特征、持續(xù)時(shí)間、窗口頻域特征峰值以及能量;
3)構(gòu)建一個(gè)初始神經(jīng)網(wǎng)絡(luò)模型;
4)把特征參數(shù)視為輸入神經(jīng)元,輸入進(jìn)神經(jīng)網(wǎng)絡(luò)內(nèi)進(jìn)行訓(xùn)練;
5)利用訓(xùn)練完畢的神經(jīng)網(wǎng)絡(luò)對(duì)測(cè)試集分類進(jìn)行定量識(shí)別,并且計(jì)算運(yùn)動(dòng)識(shí)別正確率。
本文所采用的神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)關(guān)系表達(dá)式為
(7)
式中,yj代表隱層輸出狀態(tài)向量,xi代表輸入狀態(tài)向量,whij代表輸入層至隱層的連接值,bj代表隱層神經(jīng)元的閾值,fy代表激勵(lì)函數(shù)。由yj得出輸出狀態(tài)向量zk
(8)
式中,wojk代表至輸出層的連接權(quán)值,ck代表輸出層閾值。利用構(gòu)建的神經(jīng)網(wǎng)絡(luò)對(duì)人體局部行為進(jìn)行定量識(shí)別。
把16個(gè)特征向量用于神經(jīng)網(wǎng)絡(luò)的輸入,而網(wǎng)絡(luò)輸入神經(jīng)元有16個(gè),其隱藏性格神經(jīng)元為8個(gè),其6中動(dòng)作狀態(tài)是網(wǎng)絡(luò)輸出,輸出神經(jīng)元有6個(gè)。對(duì)樣本數(shù)據(jù)進(jìn)行隨機(jī)標(biāo)簽,然后分成兩部分運(yùn)轉(zhuǎn),而其中的一部分即為訓(xùn)練集,其它則為測(cè)試集。接著利用訓(xùn)練集數(shù)據(jù)信息訓(xùn)練神經(jīng)網(wǎng)絡(luò),接著對(duì)測(cè)試集數(shù)據(jù)進(jìn)行測(cè)試[11]。
其隱層神經(jīng)元會(huì)選取f(x)=1/(1+e-x)來作為傳遞函數(shù),輸出層則是通過輸出量的范圍選擇S型的傳遞函數(shù)或者是線性函數(shù)。然后采用樣本網(wǎng)絡(luò)進(jìn)行訓(xùn)練,可以采用萊文貝格-馬夸特(Levenberg-Marquardt,LM)方法,性能指數(shù)公式為
(9)
式中,P代表樣本個(gè)數(shù),K代表輸出個(gè)數(shù),dsk代表第s個(gè)樣本所輸入時(shí)的第k個(gè)量期望輸出,zsk代表對(duì)應(yīng)的現(xiàn)實(shí)輸出。W=[w1,w2,…,wN]T代表網(wǎng)絡(luò)內(nèi)的權(quán)值和閾值所構(gòu)成的向量,因此,能夠?qū)⑹?9)改成
(10)
式中,E代表累積誤差向量,向量元素esk=zsk-dsk。能夠利用式(10)可以得到Jacobian矩陣公式:
(11)
將WN設(shè)定成第N次迭代的權(quán)值構(gòu)成的向量,即指新的權(quán)值公式為
(12)
式(12)中,I代表單位矩陣,μ代表大于0的學(xué)習(xí)參數(shù)。然后把式(11)以及式(12)合并成公式
(13)
在利用式(13)所獲取權(quán)值計(jì)算出對(duì)應(yīng)的流量,在將計(jì)算結(jié)果與實(shí)際結(jié)果進(jìn)行對(duì)比,如果效果較好。則說明式(13)可以收斂,以此可以對(duì)人體局部動(dòng)作進(jìn)行識(shí)別[12]。為檢驗(yàn)本文方法的有效性及可行性,需進(jìn)行仿真。
本文選用Matlab進(jìn)行驗(yàn)證,測(cè)試環(huán)境為windows2000,4核處理器,2.4GHz,內(nèi)存為128GB,如圖1所示。
圖1 Matlab操作界面
利用該軟件進(jìn)行人體局部動(dòng)作識(shí)別,得到人體特征點(diǎn),本文將通過提取到的特征點(diǎn)進(jìn)行仿真。其中,人體動(dòng)作圖像是通過Weizmann數(shù)據(jù)集中獲取得到,如圖2(a)所示,利用本文方法獲取特征點(diǎn),如圖2(b)所示。
圖2 人體動(dòng)作局部特征提取
在上述提取結(jié)果中任意選取7個(gè)局部動(dòng)作作為分類原始指標(biāo)。所有動(dòng)作的序列幀速都不一樣,想要保證一致,就需要將所有的動(dòng)作幀數(shù)設(shè)定在25~30之間,可以保證所有動(dòng)作的流暢性,同時(shí)設(shè)置迭代次數(shù)為50。
對(duì)人體動(dòng)作提取數(shù)量的差異是決定識(shí)別方法效果的一個(gè)指標(biāo),提取數(shù)據(jù)集中的數(shù)據(jù),根據(jù)數(shù)據(jù)提取數(shù)量多少來判斷識(shí)別效果,提取數(shù)據(jù)數(shù)量多,識(shí)別效果在一定程度上表現(xiàn)為良好。為驗(yàn)證本文方法的有效性及可行性,本文將通過對(duì)比文獻(xiàn)[1]方法、文獻(xiàn)[2]方法以及本文方法得到實(shí)驗(yàn)結(jié)果,并分析。實(shí)驗(yàn)結(jié)果如表1所示。
表1 人體動(dòng)作提取數(shù)量/個(gè)
在對(duì)人體局部動(dòng)作進(jìn)行提取時(shí),本文方法所提取的局部動(dòng)作數(shù)量明顯高于兩種傳統(tǒng)方法。
本文考慮了人體動(dòng)作在時(shí)空中的狀態(tài)差別及運(yùn)動(dòng)執(zhí)行效率變化較大的問題構(gòu)建了多尺度局部時(shí)空領(lǐng)域特征,采用卡爾曼濾波法做了無偏差最有評(píng)估,將臨近領(lǐng)域局部特征盡可能多的提取,并排除了差異較大的數(shù)據(jù),因此提取數(shù)量大,且數(shù)據(jù)準(zhǔn)確率高。
在提取出的數(shù)據(jù)的基礎(chǔ)上,對(duì)人體動(dòng)作進(jìn)行分類。將上述數(shù)據(jù)集在文獻(xiàn)[1]、文獻(xiàn)[2]及本文方法下進(jìn)行驗(yàn)證,引入分類精確度判斷三種方法的識(shí)別效果,分類精度計(jì)算如式(14)下:
(14)
式(14),vi表示分類精準(zhǔn)度,Yi表示分類數(shù)量,U表示人體動(dòng)作類別總數(shù)量。
通過式(14)得出識(shí)別方法的分類精度,精度高,識(shí)別效果好。
表2 分類精度對(duì)比/%
上述實(shí)驗(yàn)中,文獻(xiàn)[1]和文獻(xiàn)[2]方法在數(shù)據(jù)分類時(shí),對(duì)于一些局部動(dòng)作有數(shù)據(jù)缺失,證明本文方法分類更加精準(zhǔn)。本文方法利用小波轉(zhuǎn)換函數(shù)分解時(shí),可以獲得小波系數(shù)的向量,最終把局部動(dòng)作信號(hào)合并成一個(gè)特征向量值的特點(diǎn),將相似度高的數(shù)據(jù)歸為一類,從而提高了分類精度。
本文方法在人體動(dòng)作數(shù)量提取和動(dòng)作分類方面具有顯著的優(yōu)勢(shì),證明了本文識(shí)別方法的有效性。
本文考慮了人體動(dòng)作在較大的時(shí)空中的狀態(tài)和運(yùn)動(dòng)執(zhí)行效率差異性較大,會(huì)導(dǎo)致人體運(yùn)動(dòng)在時(shí)間尺度上的變化因素,利用卡爾曼濾波法及Haar小波轉(zhuǎn)換函數(shù),提高了對(duì)人體動(dòng)作的提取數(shù)量,將分類更加精準(zhǔn)化,實(shí)現(xiàn)了對(duì)人體局部動(dòng)作的精準(zhǔn)識(shí)別。
為以后的人體動(dòng)作識(shí)別研究打開了新的思路,提供了理論基礎(chǔ),推進(jìn)機(jī)器人代替人工的進(jìn)程,使社會(huì)向更加智能化的方向發(fā)展。