吳瀟穎,李 銳,吳勝昔
(華東理工大學(xué) 化工過程先進(jìn)控制和優(yōu)化技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,上海 200237)
傳統(tǒng)行為識別方法普遍基于圖像提取特征,而遮擋、背景雜亂、陰影和不同光照條件以及圖片拍攝角度等問題都會給圖像特征提取帶來困難,且二維圖像只有兩個維度的信息,信息不夠完整準(zhǔn)確[1]。而人體三維骨骼可以有效克服以上缺點(diǎn),基于深度圖像獲取的3D骨骼信息更加準(zhǔn)確。特別是微軟推出的Kinect深度攝像機(jī)可以自動定位人體關(guān)節(jié),使得骨骼信息的獲取更為簡便。
隨著特征工程從2D到3D的演變,基于手工的特征提取復(fù)雜性也越來越高,而深度學(xué)習(xí)的發(fā)展也促使行為識別的研究更為深入。Donahue等[2]使用CNN+LSTM架構(gòu)對視頻序列而非人體骨骼進(jìn)行識別。Mo等[3]提出了一種基于CNN+MLP模型的行為識別系統(tǒng),該系統(tǒng)輸入是骨骼的二維數(shù)據(jù)。Song等[4]提出了一個基于注意力的長短期記憶遞歸神經(jīng)網(wǎng)絡(luò)模型。Ge等[5]在行為識別問題上使用Bi-LSTM網(wǎng)絡(luò),在UCF101數(shù)據(jù)集上的識別率達(dá)到了88.9%。
基于深度學(xué)習(xí)的行為識別難點(diǎn)在于提取單幀行為局部空間特征的同時捕獲視頻演變的時序特征,基于此,本文提出一個基于人體骨骼的CNN與Bi-LSTM混合模型用于人體行為識別。輸入數(shù)據(jù)采用人體3D骨骼的關(guān)節(jié)坐標(biāo),三維骨骼數(shù)據(jù)更加準(zhǔn)確且魯棒性更強(qiáng)。CNN提取關(guān)節(jié)內(nèi)部的空間關(guān)系,Bi-LSTM對時間序列有良好的處理能力。該模型在UTKinect Action3D標(biāo)準(zhǔn)數(shù)據(jù)和自制Kinect數(shù)據(jù)集上的結(jié)果顯示了網(wǎng)絡(luò)較強(qiáng)的識別能力。
CNN是一種帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡(luò),最早由Fukushima[6]提出,通常用于深度學(xué)習(xí),用于從原始數(shù)據(jù)中自動提取特征。CNN網(wǎng)絡(luò)最底層是特征提取層,接著是池化層,之后可以繼續(xù)增加卷積層或池化層,最后是全連接層。
CNN的基本結(jié)構(gòu)包括兩種特殊的神經(jīng)元層,其一為卷積層,每個神經(jīng)元的輸入與前一層的局部相連,并提取該局部的特征;其二是池化層,用來求局部敏感性與二次特征提取的計算層。這種兩次特征提取結(jié)構(gòu)減少了特征分辨率,減少了需要優(yōu)化的參數(shù)數(shù)目。
卷積層使用“卷積核”進(jìn)行局部感知,挖掘數(shù)據(jù)的局部特征,達(dá)到特征增強(qiáng),減少模型計算參數(shù)的目的,卷積核的大小定義了卷積操作的感受野,卷積層產(chǎn)生的特征圖Hi[7]計算公式如式(1)
Hi=f(Hi-1?Wi+bi)
(1)
其中,Wi表示卷積核的權(quán)值矩陣,?為卷積運(yùn)算,bi表示偏置,f(·) 表示激活函數(shù)。以ReLU函數(shù)為例,其計算公式為式(2),則卷積計算過程如圖1所示,陰影部分即為一次卷積計算所對應(yīng)的值
f(x)=max(0,x)
(2)
圖1 卷積計算過程
池化層也稱下采樣層,主要用于特征降維、壓縮數(shù)據(jù)和參數(shù)數(shù)量,減少過擬合的同時提高模型容錯性。主要分為最大池化層(Max Pooling)和平均池化層(Average Pooling)兩種。最大池化過程如圖2所示。
圖2 池化計算過程
全連接層用于多次卷積和池化后的分類任務(wù),在卷積池化處理后仍需要全連接層輸出分類結(jié)果。
長短時記憶網(wǎng)絡(luò)LSTM是一種RNN的改進(jìn)算法,RNN可以處理長時間輸入序列但是存在梯度消失或梯度爆炸的問題,而LSTM在RNN的基礎(chǔ)上加入了3個控制門,即遺忘門、輸入門和輸出門,分別用來控制是否遺忘當(dāng)前狀態(tài)、是否獲取當(dāng)前的輸入信息和是否輸出當(dāng)前狀態(tài),有效克服了RNN所存在的問題。LSTM結(jié)構(gòu)如圖3所示。
圖3 LSTM結(jié)構(gòu)
輸入門it和輸出門ot控制信息流入和流出網(wǎng)絡(luò),遺忘門ft控制先前序列對當(dāng)前的影響。每個門的更新公式如下[8]
it=σ(wxixt+whiht-1+bi)
(3)
ft=σ(wxfxt+whfht-1+bf)
(4)
ot=σ(wxoxt+whoht-1+bo)
(5)
(6)
(7)
ht=ot⊙tanhct
(8)
LSTM非常適合處理與時間序列高度相關(guān)的問題,因?yàn)樗梢阅M短時間和長時間信息,但是傳統(tǒng)LSTM忽略了上下文信息即未來信息,只能從單元方向?qū)W習(xí)。
雙向長短時記憶網(wǎng)絡(luò)(Bi-LSTM)[9]對LSTM進(jìn)行改進(jìn)從而可以充分考慮過去和未來的信息。Bi-LSTM具有兩個不同方向的LSTM層,前向LSTM層捕獲行為發(fā)生時間從前至后的演變特征,后向LSTM層模擬相反方向的演變,對時間序列處理能力更強(qiáng)。
Kinect[10]是2010年由微軟公司推出的基于體感交互的人機(jī)交互設(shè)備,其最初作為Xbox360游戲機(jī)的外設(shè),2012年微軟推出Kinect for windows,使該項(xiàng)技術(shù)可以應(yīng)用于各行各業(yè),改變了人們工作、生活、娛樂的方式。2014年,微軟發(fā)布了Kinect v2,在硬件和軟件上均對第一代產(chǎn)品進(jìn)行了優(yōu)化。
Kinect v2主要由深度傳感器(Depth sensor)、彩色攝像機(jī)(RGB camera)以及4個單元的麥克風(fēng)陣列(Microphone array)幾部分組成,可以獲取彩色圖像、深度圖像、紅外線圖像等多種信息,在手勢識別、人臉識別、語音識別3D建模等領(lǐng)域皆有應(yīng)用。它可獲得每幀人體的25個關(guān)節(jié)點(diǎn),最多可檢測6個人體。
本文所使用的標(biāo)準(zhǔn)數(shù)據(jù)集和自制數(shù)據(jù)集均采用Kinect設(shè)備獲取骨骼信息。
本文將卷積神經(jīng)網(wǎng)絡(luò)(CNN)與雙向長短期記憶網(wǎng)絡(luò)(Bi-LSTM)相結(jié)合。CNN用于檢測骨架關(guān)節(jié)位置間的空間關(guān)系,充分利用三維骨骼信息提取特征。Bi-LSTM可以捕獲隨著時間演變的時間關(guān)系。模型總體框架如圖4所示。
模型思路是:利用Kinect設(shè)備獲取人體關(guān)節(jié)三維坐標(biāo),分為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)兩部分。訓(xùn)練數(shù)據(jù)用于模型構(gòu)建和參數(shù)調(diào)整,訓(xùn)練完成后利用測試數(shù)據(jù)集測試模型性能。
圖4 模型框架
2.2.1 卷積神經(jīng)網(wǎng)絡(luò)層
CNN通常用來探索圖像中的局部特征,本文使用CNN提取三維骨骼數(shù)據(jù)間的局部位置特征。CNN特征提取網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,包含4個卷積層及3個池化層,多次采用小卷積核提取骨骼數(shù)據(jù)的深層特征。第一個卷積層卷積核大小為3×3,卷積核數(shù)量為20,對骨骼數(shù)據(jù)3個維度進(jìn)行特征提取及融合;第二個卷積層使用50個大小為2×2的卷積核;第三個卷積層,使用50個1×1的卷積核提取深層特征;第四個卷積層使用100個大小為3×3的卷積核。池化層均使用尺寸為2×2的最大池化層,步長均取1。
圖5 卷積神經(jīng)網(wǎng)絡(luò)層
2.2.2 雙向長短期記憶網(wǎng)絡(luò)層
LSTM通常用來處理依賴時間的序列問題,但LSTM的記憶能力也是有限的,Bi-LSTM處理時間序列的能力更強(qiáng)。Bi-LSTM使用兩層不同方向的LSTM相連,用于捕獲三維骨骼坐標(biāo)隨時間演變的深層時空特征。在CNN最后一層池化層后連接Bi-LSTM,兩層LSTM均包含100個隱層單元,Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 雙向長短期記憶網(wǎng)絡(luò)層
Bi-LSTM將兩層LSTM的最后一個輸出通過式(9)拼接后連接Softmax層輸出識別結(jié)果yt
(9)
yt=σ(ht)
(10)
2.2.3 CNN與Bi-LSTM混合模型
將2.2.1節(jié)和2.2.2節(jié)所述網(wǎng)絡(luò)連接后得到本文的CNN+Bi-LSTM混合模型。模型輸入為一段時間序列的三維關(guān)節(jié)坐標(biāo),CNN網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行多次卷積、池化操作提取局部深層特征,輸出提取到的多個特征向量,Bi-LSTM網(wǎng)絡(luò)提取數(shù)據(jù)依賴于時間的時間特征,雙向網(wǎng)絡(luò)的輸出連接到Softmax層進(jìn)行分類得到結(jié)果。模型結(jié)構(gòu)如圖7所示。
圖7 CNN+Bi-LSTM混合模型
以MSR Action3D標(biāo)準(zhǔn)數(shù)據(jù)集為例,模型輸入數(shù)據(jù)可以看作三維數(shù)據(jù)塊,每幀采集對象的20個關(guān)節(jié)三維坐標(biāo)。數(shù)據(jù)結(jié)構(gòu)如圖8所示。輸入數(shù)據(jù)的3個維度分別是人體20個關(guān)節(jié)、3個空間坐標(biāo) (x,y,z) 和動作持續(xù)的幀數(shù)T。骨骼數(shù)據(jù)的3個維度類比于RGB圖像的3個通道,三維數(shù)據(jù)塊可以看成20*T的三通道圖像。
圖8 網(wǎng)絡(luò)輸入數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)在混合模型的計算過程是:數(shù)據(jù)塊通過第一卷積層處理后變?yōu)?0個 (T-2)*18*1的數(shù)據(jù)塊,在通過其對應(yīng)的池化層,時間步長和骨架關(guān)節(jié)數(shù)量的原始維度減半,即 (T-2)/2*9*1。 數(shù)據(jù)經(jīng)過第二、三層卷積層和池化層過濾降維后尺寸變?yōu)?(T-4)/4*4*50。 再通過第四層卷積層和池化層過濾降維后得到 (T-12)/8*1*100的數(shù)據(jù)塊。經(jīng)CNN處理后的數(shù)據(jù)繼續(xù)作為Bi-LSTM網(wǎng)絡(luò)的輸入,每個隱層單元輸入數(shù)據(jù)為 (T-12)/8*1的一維向量,反向LSTM的輸入是正向LSTM的逆序,兩個LSTM網(wǎng)絡(luò)的輸出拼接后連接Softmax得到最終輸出。
本文數(shù)據(jù)集使用標(biāo)準(zhǔn)數(shù)據(jù)集UTKinect-Action3D[11]。該數(shù)據(jù)集拍攝視角不同并存在遮擋,同種動作間也存在明顯差異,動作持續(xù)時間變化大,使得識別工作更具挑戰(zhàn)性。
UTKinect-Action3D數(shù)據(jù)集在室內(nèi)環(huán)境下使用Kinect設(shè)備收集了10種動作類型,包括:走路、坐下、站起、撿起、抬起、扔、推、拉、揮手和拍手。每個動作由10個不同實(shí)驗(yàn)對象執(zhí)行兩次,總共由199個序列組成。
本實(shí)驗(yàn)使用基于Python的深度學(xué)習(xí)框架Keras實(shí)現(xiàn),平臺參數(shù):CPU,Intel i3-2370U;6 G內(nèi)存;GPU,NVIDIA GeForce GT 720M,Win10 64位操作系統(tǒng)。
深度學(xué)習(xí)模型參數(shù)設(shè)置直接影響識別結(jié)果,CNN參數(shù)設(shè)置見表1,CNN每批數(shù)據(jù)量大小為200,最多訓(xùn)練100個epoch,初始學(xué)習(xí)率設(shè)置為0.1,使用ReLU作為激活函數(shù),采用最大池化法。
表1 CNN模型參數(shù)
Bi-LSTM參數(shù)設(shè)置見表2,Bi-LSTM的批數(shù)據(jù)尺寸和epoch設(shè)置為500和16,學(xué)習(xí)率為0.001,隱藏層設(shè)置為100時訓(xùn)練效果最好。其余參數(shù)均為默認(rèn)。
評價指標(biāo)為行為識別分類結(jié)果的準(zhǔn)確率,計算方法為式(11)
(11)
其中,p代表模型將測試集中的行為正確識別出來的數(shù)量,q代表測試集中所有行為的數(shù)量。
表2 Bi-LSTM模型參數(shù)
由于輸入數(shù)據(jù)涉及幀數(shù),在UTKinect-Action3D數(shù)據(jù)集上取不同的幀數(shù)進(jìn)行第一個實(shí)驗(yàn),分別取T=10, 20, 30得到實(shí)驗(yàn)結(jié)果見表3。
表3 不同幀數(shù)對比實(shí)驗(yàn)
發(fā)現(xiàn)T=20時,識別準(zhǔn)確率最高,識別效果最好,所以下文實(shí)驗(yàn)統(tǒng)一采用T=20。
第二個實(shí)驗(yàn)是將改進(jìn)后的Bi-LSTM與LSTM進(jìn)行比較,結(jié)果見表4。
表4 CNN+Bi-LSTM與CNN+LSTM在 UTKinect-Acition3D數(shù)據(jù)集上的結(jié)果比較
結(jié)果顯示CNN+Bi-LSTM在UTKinect-Action3D上的識別準(zhǔn)確率比CNN+LSTM提高了2.2%,說明雙向LSTM對長時間序列處理能力稍優(yōu)于LSTM。
由于UTKinect-Acition3D數(shù)據(jù)集規(guī)模較小,所以實(shí)驗(yàn)采用留一法交叉驗(yàn)證,采用CNN+Bi-LSTM混合模型對數(shù)據(jù)集進(jìn)行測試,實(shí)驗(yàn)結(jié)果見表5。
表5 UTKinect-Acition3D數(shù)據(jù)集混淆矩陣
CNN+Bi-LSTM在UTKinect-Acition3D數(shù)據(jù)集上識別準(zhǔn)確率最高達(dá)到了100%,最低也達(dá)到90%。結(jié)果顯示本文模型對不同動作的誤判現(xiàn)象較少,每種動作的識別率均與平均識別率也較接近,識別準(zhǔn)確率高。
為驗(yàn)證本文算法的識別效果,將本文模型與國內(nèi)外相關(guān)模型進(jìn)行對比。文獻(xiàn)[12]提出一個ST-LSTM的樹狀結(jié)構(gòu)模型,輸入數(shù)據(jù)是骨骼數(shù)據(jù),該模型驗(yàn)證實(shí)驗(yàn)同樣采用留一法交叉驗(yàn)證;文獻(xiàn)[13]先使用CNN提取特征后直接連接一個Softmax層分類。該模型只處理深度圖像。文獻(xiàn)[14]基于深度圖像使用三流CNN提取特征并使用LSTM分類。本文方法與以上幾種模型在UTKinect-Acition3D數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果進(jìn)行對比見表6。
表6 CNN+Bi-LSTM與其它文獻(xiàn)方法比較
CNN+Bi-LSTM模型在UTKinect-Acition3D數(shù)據(jù)集上識別準(zhǔn)確率整體優(yōu)于其它文獻(xiàn),比文獻(xiàn)[12]中的最高準(zhǔn)確率提高了0.5%,比文獻(xiàn)[13]提高了15.5%,相對于文獻(xiàn)[14]的模型提高16.4%。結(jié)果表明基于骨骼的CNN+Bi-LSTM模型具有較強(qiáng)的識別能力,有效提高了識別準(zhǔn)確率。
工廠駕駛員操作行為直接影響人身安全和設(shè)備安全。某廠駕駛員的違規(guī)操作直接導(dǎo)致吊車上的物體觸碰高壓線,整個車間斷電停機(jī),嚴(yán)重時還會造成人員傷亡,所以駕駛員的操作行為檢測至關(guān)重要。本文以駕駛員行為識別為背景,自制人體行為識別數(shù)據(jù)集,驗(yàn)證本文所提算法的有效性。
本文調(diào)研了該廠駕駛員監(jiān)控錄像,發(fā)現(xiàn)幾種常見行為,該實(shí)驗(yàn)旨在對幾種行為進(jìn)行識別。本文使用Kinect v2設(shè)備獲取人體3D關(guān)節(jié)坐標(biāo)數(shù)據(jù),以.txt格式存儲。為避免遮擋Kinect v2設(shè)備放置在1.5 m高,距離實(shí)驗(yàn)者2 m位置處。本數(shù)據(jù)集招募10名實(shí)驗(yàn)對象,每個動作重復(fù)做5次。每一個動作均手工制作行為標(biāo)簽,包括坐下、站起、雙臂上舉、玩手機(jī)4種動作,圖9為自制數(shù)據(jù)集繪制出骨架的人體動作裁剪樣例。共包含200個動作序列。
圖9 動作類型
在自制數(shù)據(jù)集上對CNN+Bi-LSTM進(jìn)行評估,由于本數(shù)據(jù)集大小與UTKinect-Action3D較為相似,實(shí)驗(yàn)也采用留一法交叉驗(yàn)證,得到幾種動作的識別結(jié)果見表7。
表7 自制數(shù)據(jù)集識別結(jié)果
在自制數(shù)據(jù)集上的4種動作識別率均達(dá)到了97%以上,平均識別率達(dá)98.6%,該模型對不同動作混淆現(xiàn)象較少,動作識別準(zhǔn)確,效果顯著,驗(yàn)證了模型的可用性。
本文提出了基于骨骼的CNN和Bi-LSTM混合模型應(yīng)用在人體行為識別中,在UTKinect Action3D數(shù)據(jù)集上的識別準(zhǔn)確率達(dá)到了97.5%,在自制數(shù)據(jù)集上的實(shí)際驗(yàn)證也達(dá)到了98.6%的準(zhǔn)確率,相比傳統(tǒng)行為識別,骨骼數(shù)據(jù)相比圖像包含更多維度的信息,深度學(xué)習(xí)網(wǎng)絡(luò)能夠自動提取復(fù)雜的空間時間特征,識別率顯著提升。但目前的行為識別仍在研究階段,未來將繼續(xù)研究將行為識別應(yīng)用到具體應(yīng)用場景中去。