邱熙雯,胡文玉,?,何顯文
(贛南師范大學(xué) a.數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院;b.信息與教育技術(shù)中心,江西 贛州 341000)
近些年,計(jì)算機(jī)視覺領(lǐng)域上的一些應(yīng)用場景(如智能視頻監(jiān)控[1-2]、智能家居[3]、虛擬現(xiàn)實(shí)[4]、視頻檢索[5]等)越來越受到人們的關(guān)注,而這些應(yīng)用場景的關(guān)鍵技術(shù)在于自動從視頻中正確判斷出人體所執(zhí)行的動作,因此對人體行為識別方法的研究具有重要意義,這是一個(gè)涉及模式識別和計(jì)算機(jī)視覺領(lǐng)域的重要研究課題.
以往的人體行為識別方法大多使用RGB圖像序列[6-8]和深度圖像序列[9-10]作為人體行為識別研究的數(shù)據(jù)模態(tài),但上述兩種模態(tài)在面對各種各樣的干擾因素(例如光照、尺度、遮擋、背景雜亂等)時(shí)魯棒性不足,因此對外界環(huán)境的干擾具有很強(qiáng)的適應(yīng)性的骨架數(shù)據(jù)逐漸進(jìn)入了研究者的視野.此外,像Microsoft Kinect這樣的傳感器[11]和一些先進(jìn)的人體姿態(tài)估計(jì)算法[12-14]可以讓我們更輕松地獲得準(zhǔn)確的骨架數(shù)據(jù).圖1展示了兩個(gè)動作的骨架序列,從圖中可以看出,通過人體骨架序列數(shù)據(jù),我們可以毫不費(fèi)力地辨認(rèn)出該序列所表達(dá)的行為類別.這是因?yàn)楣羌苄蛄袛?shù)據(jù)提供了人體的關(guān)節(jié)點(diǎn)位置信息,包含了豐富的特征信息,因此可以直接應(yīng)用于行為識別任務(wù).
圖1 2個(gè)20個(gè)關(guān)節(jié)點(diǎn)的骨架序列展示
傳統(tǒng)的機(jī)器學(xué)習(xí)方法[15-17]需要人工設(shè)計(jì)并提取骨架序列的特征,例如關(guān)節(jié)軌跡的協(xié)方差矩陣、關(guān)節(jié)的相對位置、身體部位之間的旋轉(zhuǎn)和平移等,這些手工特征呈現(xiàn)出較高的冗余度,并且忽略了骨架數(shù)據(jù)中對人體行為識別及其重要的時(shí)間動態(tài)信息.鑒于LSTM網(wǎng)絡(luò)中的遞歸連接機(jī)制可以很好地提取骨架數(shù)據(jù)中的時(shí)間動態(tài)信息,本文提出一種基于LSTM網(wǎng)絡(luò)的人體骨架行為識別方法.現(xiàn)有的基于LSTM的人體骨架行為識別方法[18-23]在LSTM網(wǎng)絡(luò)的基礎(chǔ)上采用關(guān)節(jié)分組、基于樹結(jié)構(gòu)的關(guān)節(jié)遍歷、雙流、注意力、自適應(yīng)視角等策略來更好地提取骨架數(shù)據(jù)中的時(shí)空信息.在我們的方法中,每個(gè)骨架序列具有若干個(gè)關(guān)節(jié)點(diǎn),提取出每個(gè)關(guān)節(jié)點(diǎn)的三維位置信息作為人體姿態(tài)的淺層特征,沿時(shí)間構(gòu)成淺層特征序列;然后將所構(gòu)建的淺層特征序列輸入到LSTM神經(jīng)網(wǎng)絡(luò)中,學(xué)習(xí)潛在的時(shí)間動態(tài)信息;最后將所學(xué)習(xí)到的時(shí)間動態(tài)信息輸入到分類器中進(jìn)行分類.為了驗(yàn)證本文方法的有效性,在MSRC-12數(shù)據(jù)集上進(jìn)行數(shù)值實(shí)驗(yàn),并與其他先進(jìn)方法進(jìn)行分類準(zhǔn)確率的比較.
人體骨架行為識別方法的開發(fā)主要包括如下步驟:首先,通過深度傳感器或人體姿態(tài)估計(jì)算法獲取骨架數(shù)據(jù);然后從骨架數(shù)據(jù)中提取相關(guān)特征;最后將提取到的特征用于訓(xùn)練分類器.
傳統(tǒng)的人體骨架行為識別方法主要集中于用手工制作的特征來表示骨架序列,這些手工特征可能是關(guān)節(jié)軌跡的協(xié)方差矩陣,關(guān)節(jié)的相對位置,或身體部位之間的旋轉(zhuǎn)和平移.例如,Hussen等人[15]提出了一種基于協(xié)方差矩陣的骨架序列特征,該特征通過計(jì)算人體骨架不同關(guān)節(jié)點(diǎn)的三維坐標(biāo)的協(xié)方差矩陣得到,依時(shí)間進(jìn)行采樣,為了編碼骨架關(guān)節(jié)點(diǎn)位置的時(shí)間依賴性,通過一種分層機(jī)制將一個(gè)完整的骨架序列劃分成多個(gè)等長的子序列,分別計(jì)算每個(gè)子序列的協(xié)方差矩陣;Vemulapalli等人[16]將人體動作建模成李群上的一條曲線,用三維空間中的旋轉(zhuǎn)和平移來建模不同身體部位之間的幾何關(guān)系,為了便于對這些動作曲線進(jìn)行分類,又將李群上的動作曲線映射到李代數(shù)向量空間中,然后聯(lián)合使用動態(tài)時(shí)間規(guī)整、傅里葉時(shí)間金字塔和線性支持向量機(jī)對李代數(shù)進(jìn)行時(shí)序建模和分類;類似地,Vemulapalli等人[17]將人體動作建模成李群上的一條曲線,為了便于對這些動作曲線進(jìn)行分類,通過滾動(Rolling)操作將李群上的動作曲線展開到李代數(shù)向量空間中,然后通過線性支持向量機(jī)對李代數(shù)進(jìn)行分類.
在現(xiàn)有的基于LSTM的人體骨架行為識別方法中,Shahroudy等人[18]提出局部感知LSTM方法,該方法先將身體關(guān)節(jié)分成5個(gè)組,然后單獨(dú)將每個(gè)關(guān)節(jié)組輸入到LSTM網(wǎng)絡(luò)中建模各自的運(yùn)動模式.Liu等人[19]接著提出了基于樹結(jié)構(gòu)的關(guān)節(jié)遍歷方法,然后使用帶有信任門的LSTM單元來挖掘可靠的樹狀輸入單元的潛在空間信息.Wang等人[20]對骨架數(shù)據(jù)進(jìn)行橫縱軸的交換形成空間LSTM流來更好地建??臻g域信息,與時(shí)間LSTM流組成雙流LSTM結(jié)構(gòu)來為骨架數(shù)據(jù)建模時(shí)空特征.Liu等人[21]在LSTM網(wǎng)絡(luò)中添加了全局意識關(guān)注模塊,通過對行為識別貢獻(xiàn)高的關(guān)節(jié)賦予更大的權(quán)重來選擇性地關(guān)注骨架序列中信息豐富的關(guān)節(jié).類似地,Song等人[22]提出了一種端到端的時(shí)空注意力模型,該模型不但學(xué)習(xí)了不同關(guān)節(jié)的權(quán)重,還學(xué)習(xí)了動作中不同幀的權(quán)重,將注意力拓展到了時(shí)空領(lǐng)域.Zhang等人[23]則在LSTM網(wǎng)絡(luò)前加入了自適應(yīng)視角模塊,用于學(xué)習(xí)最佳的觀測視角從而對原骨架數(shù)據(jù)進(jìn)行增強(qiáng).
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)由于其獨(dú)特的遞歸連接機(jī)制,在學(xué)習(xí)時(shí)間序列的上下文信息上表現(xiàn)出天然的優(yōu)勢,是一種具有記憶功能的神經(jīng)網(wǎng)絡(luò),適合序列數(shù)據(jù)的建模.但是當(dāng)用于訓(xùn)練的單個(gè)序列過長時(shí),傳統(tǒng)的RNN會很容易忘記前面比較久遠(yuǎn)的時(shí)間段的信息,這在很大程度上限制了RNN的應(yīng)用.因此,有研究人員設(shè)計(jì)了一些修正過的循環(huán)單元來改進(jìn)傳統(tǒng)的RNN,例如帶門控機(jī)制的LSTM[24].LSTM循環(huán)單元結(jié)構(gòu)如圖2所示,該單元利用三個(gè)門控機(jī)制,有效地傳遞和表達(dá)長時(shí)間序列中的信息并且不會導(dǎo)致長時(shí)間前的有用信息被遺忘,從而實(shí)現(xiàn)較大范圍內(nèi)上下文信息的保存與傳輸.本文將Sigmoid函數(shù)用作門控單元的激活函數(shù),將tanh函數(shù)用作單元狀態(tài)和輸出的激活函數(shù).LSTM單元的詳細(xì)工作原理如下:
圖2 LSTM單元結(jié)構(gòu)
遺忘門表示上個(gè)時(shí)間點(diǎn)的狀態(tài)信息應(yīng)該遺忘多少,它決定了上一時(shí)刻的單元狀態(tài)Ct-1有多少保存到當(dāng)前時(shí)刻的單元狀態(tài)Ct.將來自上一時(shí)刻的隱藏狀態(tài)ht-1和當(dāng)前時(shí)刻的輸入xt進(jìn)行連接形成一個(gè)新的特征向量,再與權(quán)重參數(shù)Wf相乘后輸入至sigmoid激活函數(shù),其輸出向量ft通過與Ct-1的對應(yīng)元素進(jìn)行乘法操作:Ct-1×ft來確定上一時(shí)刻的單元狀態(tài)Ct-1有多少被添加至當(dāng)前單元狀態(tài)Ct,ft中的元素越靠近0表示Ct-1中對應(yīng)的信息被遺忘得越多,相反,ft中的元素越靠近1則表示Ct-1中對應(yīng)的信息被保留得就越多.ft的計(jì)算如式(1)所示:
ft=σ(Wf·[ht-1,xt]+bf)
(1)
其中Wf和bf分別表示遺忘門中sigmoid激活函數(shù)的權(quán)重參數(shù)和偏置項(xiàng).
It=σ(WI·[ht-1,xt]+bI)
(2)
(3)
其中WI和Wc分別表示輸入門中sigmoid和tanh對應(yīng)的權(quán)重參數(shù),bI和bc表示對應(yīng)的偏置項(xiàng).那么當(dāng)前時(shí)刻的單元狀態(tài)Ct的計(jì)算方法如式(4)所示:
(4)
輸出門表示當(dāng)前時(shí)間點(diǎn)的單元狀態(tài)信息應(yīng)該輸出多少,它決定了當(dāng)前時(shí)刻的單元狀態(tài)Ct有多少被輸出至單元的隱藏狀態(tài)ht.單元狀態(tài)Ct的決策向量ot和單元的隱藏狀態(tài)ht分別如式(5)和式(6)所示:
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=tanh(Ct)×ot
(6)
其中Wo和bo分別表示輸出門中sigmoid激活函數(shù)的權(quán)重參數(shù)和偏置項(xiàng).
綜上所述,LSTM通過設(shè)置遺忘門、輸入門和輸出門來靈活傳遞和表達(dá)長時(shí)間序列中的信息并且不會導(dǎo)致長時(shí)間前的有用信息被遺忘,從而解決一般循環(huán)神經(jīng)網(wǎng)絡(luò)中普遍存在的長期依賴問題.
圖3 基于LSTM的人體骨架行為識別方法
由于人體骨架序列的淺層特征仍屬于時(shí)間序列,所以可以使用LSTM網(wǎng)絡(luò)來學(xué)習(xí)對應(yīng)的時(shí)間動態(tài)信息.在多個(gè)結(jié)構(gòu)相同的LSTM單元組成的時(shí)間動態(tài)特征提取層中,每個(gè)LSTM單元只負(fù)責(zé)處理一個(gè)特征序列,對應(yīng)到我們的方法中指的是一個(gè)骨架關(guān)節(jié)的一個(gè)坐標(biāo)分量,這樣每個(gè)LSTM單元都可以學(xué)習(xí)到對應(yīng)的時(shí)間動態(tài)信息.上小節(jié)我們?yōu)槊總€(gè)人體骨架序列構(gòu)造了3*K個(gè)的淺層特征序列,第m個(gè)淺層特征序列在t時(shí)刻的值用s(m,t)來表示,那么s(m,:)就是第m個(gè)LSTM單元的輸入.
本文方法中的分類器是由全連接神經(jīng)網(wǎng)絡(luò)層和Softmax層實(shí)現(xiàn)的.全連接神經(jīng)網(wǎng)絡(luò)層的輸入為LSTM層中全部LSTM單元在最后時(shí)間步的輸出的線性組合,該層的作用是將各個(gè)LSTM單元中學(xué)習(xí)到的不同的時(shí)間動態(tài)信息結(jié)合起來,再將該層的輸出送入Softmax層來預(yù)測對應(yīng)的行為類別標(biāo)簽.
我們使用Matlab深度學(xué)習(xí)工具箱來實(shí)現(xiàn)并訓(xùn)練所提出的基于LSTM的人體骨架行為識別方法,同時(shí)在公開標(biāo)準(zhǔn)數(shù)據(jù)集MSRC-12上驗(yàn)證本文方法的有效性.
MSRC-12數(shù)據(jù)集[25]:MSRC-12數(shù)據(jù)集是一個(gè)單視角骨架數(shù)據(jù)集,由Kinect深度傳感器獲取,里面包含了20個(gè)骨架關(guān)節(jié)點(diǎn)的3D坐標(biāo).數(shù)據(jù)集由30個(gè)受試者分別演示表1里的12個(gè)動作種類,一共有594個(gè)動作序列樣本數(shù)據(jù),總共71 359幀(約6 h 40′),包含了6 244個(gè)人體骨架動作序列.
表1 MSRC-12數(shù)據(jù)集的12個(gè)動作類別
已有的研究工作針對不同的數(shù)據(jù)集設(shè)置了不同的測試標(biāo)準(zhǔn),當(dāng)在某一個(gè)數(shù)據(jù)集上進(jìn)行測試時(shí),就必須服從在該數(shù)據(jù)集上設(shè)置的測試標(biāo)準(zhǔn),從而使得實(shí)驗(yàn)結(jié)果的對比更有意義.對于MSRC-12數(shù)據(jù)集而言,本文采用cross-subject的測試標(biāo)準(zhǔn),即將部分受試者對應(yīng)的動作片段用于訓(xùn)練,其余受試者對應(yīng)的動作片段用于測試.我們用Matlab自帶的深度神經(jīng)網(wǎng)絡(luò)工具箱搭建LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu).在訓(xùn)練過程中,我們將最小批次數(shù)設(shè)置為32,每次迭代的訓(xùn)練樣本都是通過隨機(jī)方式進(jìn)行選擇的,初始學(xué)習(xí)率為0.001.訓(xùn)練網(wǎng)絡(luò)中的權(quán)重通過自適應(yīng)梯度下降(ADA)算法來進(jìn)行更新,動量設(shè)置為0.9.方法的訓(xùn)練環(huán)境配置為1個(gè)Intel(R) Iris(R) Xe顯卡,1個(gè)16 GB的RAM和8個(gè)Gen Intel(R) Core(TM) i5-1130G7處理器.
將本文所提出的方法在上述實(shí)驗(yàn)配置的條件下編碼實(shí)現(xiàn),得到實(shí)驗(yàn)結(jié)果.圖4展示了該分類方法的混淆矩陣,從圖中我們可以看出,用訓(xùn)練好的模型對測試樣本進(jìn)行分類后,大多數(shù)動作樣本能被分類到正確的動作類別標(biāo)簽,這表明本文所提分類方法能取得較好的分類效果,分類準(zhǔn)確率高達(dá)95.3%.
圖4 本文方法在MSRC-12數(shù)據(jù)集上的混淆矩陣
為了進(jìn)一步展示本文方法的優(yōu)越性,我們選擇了三種在MSRC-12數(shù)據(jù)集上取得先進(jìn)效果的人體骨架行為識別方法與本文提出的基于LSTM的人體骨架行為識別方法進(jìn)行分類精確度上的比較.其中關(guān)節(jié)軌跡圖(JTM, Joint Trajectory Map)方法[26]將關(guān)節(jié)軌跡編碼成圖輸入到卷積神經(jīng)網(wǎng)絡(luò)中挖掘時(shí)空特征;增強(qiáng)的骨架可視化(ESV,Enhanced skeleton visualization)方法[27]將骨架序列進(jìn)行視角不變的可視化處理后再用于分類模型的訓(xùn)練;生物約束增強(qiáng)方法[28]利用人體骨架的生物特性對骨架數(shù)據(jù)進(jìn)行增強(qiáng)后再對骨架序列的時(shí)空特征進(jìn)行挖掘.各種方法的識別精確度如表2所示.可以看出,上述幾種方法和本文提出的方法都取得了較高的分類精確度,本文提出的基于LSTM的人體骨架行為識別方法的分類精確度最高,這表明本文提出的基于LSTM的人體骨架行為識別方法是有效的.
表2 4種方法在MSRC-12的分類效果比較
本文提出了一種基于LSTM的人體骨架行為識別方法,該方法通過從骨架數(shù)據(jù)中提取關(guān)節(jié)點(diǎn)的位置特征來構(gòu)建淺層特征序列并用于訓(xùn)練LSTM行為分類器,不僅包含了骨架數(shù)據(jù)的空間結(jié)構(gòu)信息,還能夠?qū)W習(xí)到人體骨架序列中至關(guān)重要的時(shí)間動態(tài)信息.通過與3個(gè)先進(jìn)的研究成果進(jìn)行比較,本文提出的人體骨架行為識別方法在MSRC-12數(shù)據(jù)集上取得了最高的分類準(zhǔn)確率.