盛 敏,李 蘭
(安慶師范大學(xué)數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,安徽安慶246133)
近年來,人體動(dòng)作識(shí)別已經(jīng)滲透和影響人們生活的各個(gè)方面[1]。在醫(yī)療健康方面,可以為受傷病人做康復(fù)訓(xùn)練[2];在視頻監(jiān)控方面,用于判斷被監(jiān)控人的異常行為[3];在虛擬現(xiàn)實(shí)方面,實(shí)現(xiàn)真正的人機(jī)交互[4]。由于人體動(dòng)作的高復(fù)雜性和多變化性直接影響到識(shí)別的精確性和穩(wěn)定性,因此對(duì)人體動(dòng)作的理解就變得尤為重要[5-6]。傳統(tǒng)的行為識(shí)別方法主要是人工手動(dòng)提取出能夠表述運(yùn)動(dòng)的特征,再選擇合適的分類器分類。如Su等[7]提出了一種新的動(dòng)作識(shí)別分層框架,在第一層中提取人體五部分重心點(diǎn)相對(duì)重心初始位置偏移量的均值、方差作為特征,選用支持向量機(jī)(SVM)將動(dòng)作分為7大類;第二層中根據(jù)每個(gè)動(dòng)作之間的差異性,提取人體五部分末端執(zhí)行器的速度和相對(duì)位置作為特征,采用隱馬爾科夫模型進(jìn)行最終識(shí)別;最后在公開數(shù)據(jù)集MSR Action3D上取得91.41%的平均識(shí)別率。石祥濱等[8]對(duì)人體動(dòng)作序列采用K-均值聚類(K-means)算法,提取出動(dòng)作視頻序列中的關(guān)鍵幀,再將關(guān)鍵幀中關(guān)節(jié)點(diǎn)位置和人體剛體部分之間的骨架角度作為特征,利用SVM進(jìn)行分類。與傳統(tǒng)的行為識(shí)別手動(dòng)提取特征不同的是,基于深度學(xué)習(xí)的行為識(shí)別研究方法可以根據(jù)動(dòng)作的運(yùn)動(dòng)特性,無監(jiān)督地學(xué)習(xí)出適合這個(gè)數(shù)據(jù)集的特征[9]。Simonyan等[10]將視頻分成兩種數(shù)據(jù),一種是使用單幀數(shù)據(jù)的靜態(tài)幀數(shù)據(jù)流,另一種是使用光流數(shù)據(jù)的幀間動(dòng)態(tài)數(shù)據(jù)流,然后使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)對(duì)每個(gè)數(shù)據(jù)提取特征,最后將提取到的特征用SVM進(jìn)行動(dòng)作的分類識(shí)別。這兩類行為識(shí)別方法都能很好地解決目前行為識(shí)別魯棒性不高和實(shí)時(shí)性不強(qiáng)的問題。但算法復(fù)雜度高,計(jì)算過程較為復(fù)雜。文獻(xiàn)[11]提取三維模型的正視圖作為特征描述,以降低計(jì)算復(fù)雜度。因此,本文提出一種基于動(dòng)作主視圖的行為識(shí)別方法。將三維空間動(dòng)作投影作為動(dòng)作正前方視角的二維平面動(dòng)作,得到三維動(dòng)作的二維特征描述,降低動(dòng)作空間的維度。在傳統(tǒng)的行為識(shí)別方法特征提取中,研究者憑借經(jīng)驗(yàn)知識(shí)不容易發(fā)現(xiàn)合適的動(dòng)作特征,但在深度學(xué)習(xí)領(lǐng)域中,網(wǎng)絡(luò)可以自主學(xué)習(xí)數(shù)據(jù)的內(nèi)在特征。遞歸神經(jīng)網(wǎng)絡(luò)(RNN)雖然能夠?qū)θ梭w行為進(jìn)行識(shí)別,但大量的理論和實(shí)驗(yàn)都證明RNN存在梯度彌散的問題,即很難學(xué)習(xí)到超過一定歷史時(shí)刻的信息[12]。因此,Hochreiter等[13]提出了長短時(shí)記憶網(wǎng)絡(luò)模型(LSTM),作為一種特殊的RNN可以很好地解決長時(shí)依賴的問題,并且可以接受動(dòng)作幀數(shù)不一的數(shù)據(jù)。根據(jù)LSTM模型的這些特點(diǎn),本文選擇LSTM模型對(duì)人體動(dòng)作進(jìn)行識(shí)別。
目前,在人體行為識(shí)別中,大多數(shù)研究者實(shí)驗(yàn)的數(shù)據(jù)維度均為原始三維數(shù)據(jù),在數(shù)據(jù)特征提取和分類器執(zhí)行算法過程中,三維數(shù)據(jù)計(jì)算復(fù)雜度普遍較高。本文將三維空間動(dòng)作按動(dòng)作正方向投影為二維平面動(dòng)作,即將三維數(shù)據(jù)降維至二維,得到動(dòng)作的主視圖,以減少計(jì)算復(fù)雜度。圖1為高揮手的三維視角圖及其主視圖。
圖2為Kinect傳感器通過微軟官方軟件SDK,獲取到人體骨架20個(gè)關(guān)節(jié)點(diǎn)的三維坐標(biāo)信息。

圖1 高揮手三維視角圖及其主視圖

圖2 Kinect下人體骨架三維坐標(biāo)系
若一個(gè)動(dòng)作時(shí)間長度為t幀,則動(dòng)作的原始三維數(shù)據(jù)可用矩陣A表示,動(dòng)作的主視圖數(shù)據(jù)用矩陣B表示,再將B中元素按時(shí)間序排列得到矩陣C,C作為LSTM的數(shù)據(jù)輸入。

LSTM在t時(shí)刻模型結(jié)構(gòu)如圖3所示。

圖3 LSTM單元結(jié)構(gòu)圖
it,ft,ot分別表示LSTM網(wǎng)絡(luò)的輸入門、遺忘門、輸出門,分別表示為

其中Wx表示輸入權(quán)值矩陣,Wh為t-1時(shí)刻隱藏層狀態(tài)權(quán)值矩陣,Wc為t-1時(shí)刻自連接單元狀態(tài)權(quán)值矩陣,b為偏置。LSTM模型的第一步是通過遺忘門決定哪些信息可以通過自連接單元狀態(tài)ct,即通過sigmoid函數(shù),根據(jù)上一時(shí)刻的輸出ht-1和當(dāng)前輸入xt計(jì)算出0~1范圍內(nèi)的數(shù)值,判斷是否讓ct-1中的信息通過自連接單元狀態(tài)ct。第二步通過輸入門it中的sigmoid函數(shù)決定ht-1和xt中保留多少信息在ct中,再通過tanh 層選出可能會(huì)被添加到ct中的信息,這些更新的信息表示為=tanh(Wxcxt+Whc·ht-1+bc),所以自連接單元狀態(tài)中的信息為ct=ftct-1+。最后一步對(duì)單元模型進(jìn)行輸出,先通過sigmoid函數(shù)輸出不考慮先前時(shí)刻學(xué)習(xí)到的信息ot,再通過tanh層對(duì)ct中的信息進(jìn)行處理,最后將處理后的信息與ot中的信息依次相乘得到當(dāng)前時(shí)刻的隱藏層狀態(tài):ht=ot·tanh(ct)。當(dāng)在第T時(shí)刻,即數(shù)據(jù)已經(jīng)全部輸入之后,將得到的LSTM網(wǎng)絡(luò)模型的最終隱藏層狀態(tài)hT輸入到模型輸出層中,通過softmax函數(shù)P=softmax(W ·hT+b)計(jì)算出動(dòng)作的最終識(shí)別概率,進(jìn)而判斷出動(dòng)作類型。
實(shí)驗(yàn)硬件設(shè)置:Intel(R)Xeon(R)CPU E5-1603 0@2.8 GHz 2.80 GHZ,8 GB RAM;軟件設(shè)置:Windows 10 64位操作系統(tǒng)和MATLAB R2017b。實(shí)驗(yàn)數(shù)據(jù)集:MSRAction 3D數(shù)據(jù)集。MSRAction 3D數(shù)據(jù)集中10個(gè)受試者依次做20個(gè)動(dòng)作,每個(gè)動(dòng)作執(zhí)行2~3遍,共有567個(gè)樣本。20個(gè)動(dòng)作分別為高揮手、水平揮手、捶打、手抓、沖拳、高拋、畫叉、畫勾、畫圈、拍手、雙手揮、側(cè)拳、彎腰、向前踢、側(cè)踢、跑步、網(wǎng)球擺、正面上手發(fā)球、高爾夫揮桿、撿起和扔。由于數(shù)據(jù)集中20個(gè)樣本存在嚴(yán)重的數(shù)據(jù)丟失,因此本文實(shí)驗(yàn)數(shù)據(jù)樣本量為547。采用十折交叉驗(yàn)證的方式選擇訓(xùn)練集和測(cè)試集,即數(shù)據(jù)集被分為10組,每組數(shù)據(jù)輪流作為測(cè)試集,剩下的9組作為訓(xùn)練集。按此方法做十次十折交叉驗(yàn)證,取十次驗(yàn)證結(jié)果的平均值作為最終識(shí)別結(jié)果。實(shí)驗(yàn)中LSTM模型參數(shù)設(shè)置:隱層單元數(shù)為500,丟包數(shù)為10,批尺寸為1,迭代數(shù)為100,交叉驗(yàn)證后的平均識(shí)別率達(dá)93.06%。表1分別統(tǒng)計(jì)20個(gè)動(dòng)作識(shí)別率情況。

表1 十次十折后20個(gè)動(dòng)作平均識(shí)別率
從表1可以看出,絕大多數(shù)動(dòng)作的識(shí)別率都超過了90%,其中有3個(gè)動(dòng)作的識(shí)別率達(dá)100%。但手抓動(dòng)作的識(shí)別率最低,因?yàn)槭肿?dòng)作容易和其他單手動(dòng)作混淆,如高拋、捶打、沖拳等。表2給出了在相同實(shí)驗(yàn)數(shù)據(jù)集下與其他算法的對(duì)比。從表2可以看出,本文方法在僅使用動(dòng)作主視圖數(shù)據(jù)的情況下與其他使用動(dòng)作三維數(shù)據(jù)方法相比,平均識(shí)別率最高,表明動(dòng)作的主視圖數(shù)據(jù)能夠較好地表征動(dòng)作類型,同時(shí)表明LSTM模型處理時(shí)序問題能力較好。

表2 本文方法與其他方法識(shí)別率比較
本文提出了一種基于動(dòng)作主視圖的LSTM模型的人體行為識(shí)別方法,將原始三維數(shù)據(jù)降維至平面二維數(shù)據(jù),獲得三維動(dòng)作的二維特征表述,降低了算法復(fù)雜度,采用十次十折交叉驗(yàn)證方法,取得了與其他使用原始三維數(shù)據(jù)相當(dāng)甚至更好的識(shí)別率。但是LSTM模型更適合樣本量較大的數(shù)據(jù)集,而本文用于實(shí)驗(yàn)的數(shù)據(jù)樣本量較少,在未來的實(shí)驗(yàn)工作中將加入大規(guī)模數(shù)據(jù)集以驗(yàn)證文中算法的普適性。