劉慧婷,李建軍
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
動態(tài)手勢識別是人機(jī)交互系統(tǒng)發(fā)展的一個重要方向.由于動態(tài)手勢識別易受光照變化、復(fù)雜背景、遮擋以及類內(nèi)變化諸多因素的影響,成為一項(xiàng)具有挑戰(zhàn)性的任務(wù).雖然傳統(tǒng)的識別方法取得了良好的效果,但仍然存在魯棒性差、識別率低等缺點(diǎn)[1,2].基于深度學(xué)習(xí)的方法,由于其具有很強(qiáng)的自學(xué)習(xí)能力以及能夠根據(jù)大量的樣本學(xué)習(xí)獲得深層次的語義特征,受到了廣大學(xué)者的青睞.本文基于深度學(xué)習(xí)進(jìn)行動態(tài)手勢識別,進(jìn)一步提高了動態(tài)手勢識別的準(zhǔn)確率,獲得了更強(qiáng)的魯棒性和較好的泛化能力.
CNN[3,4]可以直接將圖像數(shù)據(jù)作為輸入,不需要人工對圖像進(jìn)行預(yù)處理和額外的特征抽取等復(fù)雜操作,保留了更多的數(shù)據(jù)信息,減少了數(shù)據(jù)特征的損失.因此CNN得到了廣泛的應(yīng)用.例如,基于CNN設(shè)計(jì)的LeNet、AlexNet、GoogleNet以及深度神經(jīng)網(wǎng)絡(luò)VGGNet和ResNet網(wǎng)絡(luò)等,在視頻處理等領(lǐng)域均取得了非常好的效果.
卷積神經(jīng)網(wǎng)絡(luò)通常只能提取短期視頻序列的時空信息,無法保存從過去時序?qū)W習(xí)得到的信息.鑒于長短期記憶網(wǎng)絡(luò)(LSTM)在處理和預(yù)測時間序列問題上的良好表現(xiàn),因此,許多學(xué)者將CNN和LSTM網(wǎng)絡(luò)進(jìn)行融合學(xué)習(xí).Donahue等人[5]將CNN 與LSTM模型進(jìn)行融合,提出了LRCN網(wǎng)絡(luò),該網(wǎng)絡(luò)CNN用來提取空間信息,LSTM提取時間信息,最后通過softmax層輸出結(jié)果,但該模型收斂慢訓(xùn)練難度大;Pedro等人[6]提出LSTM-CNN模型進(jìn)行文本分類,取得了不錯的結(jié)果.Feichtenhofer等人[7]提出的雙流卷積網(wǎng)絡(luò),將兩個分支softmax分?jǐn)?shù)進(jìn)行融合,該方法的缺點(diǎn)是光流只能獲取短時間上的信息.
雖然LSTM網(wǎng)絡(luò)對有長時間關(guān)聯(lián)性變化的數(shù)據(jù)有較強(qiáng)的處理能力,但與GRU[8,9]網(wǎng)絡(luò)相比,GRU網(wǎng)絡(luò)具有更少的網(wǎng)絡(luò)參數(shù),收斂時間更短,能更好地滿足人機(jī)交互的實(shí)時性需求.因此,本文提出了GRU-CNN融合網(wǎng)絡(luò)模型,該模型首先使用GRU網(wǎng)絡(luò)將輸入的時間序列進(jìn)行標(biāo)記,其中不僅包含原始標(biāo)記的信息,還包含輸出標(biāo)記的歷史信息,然后通過CNN網(wǎng)絡(luò)進(jìn)行特征提取.該結(jié)構(gòu)比直接使用CNN提取的特征更加的豐富,有利于我們獲得更好的識別率和魯棒性.最后通過全局池化輸出分類結(jié)果.
卷積神經(jīng)網(wǎng)絡(luò)CNN是一種深度前饋人工網(wǎng)絡(luò),在圖像處理領(lǐng)域得到了廣泛的應(yīng)用[10-12].卷積神經(jīng)網(wǎng)絡(luò)有3個基本層:卷積層(Convolutional Layer),池化層(Pooling Layer),全連接層(Fully Connected Layer).卷積神經(jīng)網(wǎng)絡(luò)最重要的步驟就是卷積,如公式(1)所示:
(1)
式中y(x)為輸出,f(*)為激活函數(shù),m×n大小的(i,j)位置的卷積核權(quán)值為ωij,其中i,j∈Rm,n,xij為原始圖片和卷積核對應(yīng)區(qū)域的像素值,b為偏置.
長短期記憶網(wǎng)絡(luò)(Longshort term memory network)是循環(huán)神經(jīng)網(wǎng)絡(luò)RNN經(jīng)過改進(jìn)之后的循環(huán)神經(jīng)網(wǎng)絡(luò)[13-15],在隱藏層各神經(jīng)單元中增加記憶單元,從而使時間序列上的記憶信息可控,每次在隱藏層各單元間傳遞時通過幾個可控門(遺忘門、輸入門、候選門、輸出門),控制之前信息和當(dāng)前信息的記憶和遺忘程度,從而使RNN網(wǎng)絡(luò)具備了長期記憶功能.因此LSTM比RNN具備長期記憶功能力和可控記憶能力[16],它可以避免常規(guī)RNN的梯度消失或爆炸問題.LSTM的基本結(jié)構(gòu)如圖1所示.

圖1 LSTM基本結(jié)構(gòu)圖
其中σ和tanh是激活函數(shù).it為輸入門,ft為遺忘門,ot為輸出門,ht表示當(dāng)前時刻輸出,ht-1表示前一時刻輸出,Ct表示當(dāng)前記憶單元狀態(tài),Ct-1表示前一時刻記憶單元狀態(tài)[17].具體的計(jì)算公式如式(2)-式(7):
ft=σ(Wf·[ht-1,xt]+bf)
(2)
it=σ(Wi·[ht-1,xt]+bi)
(3)
(4)
(5)
ot=σ(Wo·[ht-1,xt]+bo)
(6)
ht=ot*tanh(Ct)
(7)
GRU是LSTM的一個變體,它保持LSTM效果的同時,變得更加簡單,相比于LSTM,GRU只有兩個門,即更新門(update gate)和重置門(reset gate).更新門決定有多少歷史的信息可以繼續(xù)傳遞到未來.將前一時刻和當(dāng)前時刻的信息分別進(jìn)行線性變換,也就是分別右乘權(quán)重矩陣,然后相加后的數(shù)據(jù)送入更新門,即與sigmoid函數(shù)相乘,得出在[0,1]之間的數(shù)值.重置門決定有多少歷史信息不能繼續(xù)傳遞到下一時刻.同更新門的數(shù)據(jù)處理方式一樣.只是兩次的權(quán)重矩陣的數(shù)值和用處不同.如圖2所示,GRU的基本模型.

圖2 GRU基本結(jié)構(gòu)圖
全局平均池化(GAP)不采用窗口形式的平均值,它以特征圖為平均單位,一個特征圖輸出一個數(shù)值.這樣使得各個類別之間的連接更加直觀,分類概率的轉(zhuǎn)換更加容易.將特征圖轉(zhuǎn)換為分類概率更容易.同時,GAP匯總了空間信息,使輸入的空間轉(zhuǎn)換更加可靠.GAP操作過程如圖3所示.

圖3 全局平均池化圖示
GRU-CNN模型如圖4所示,該模型使用3個雙向GRU層框架.本文將先將圖片處理為CSV文件,CSV文件存儲人體各個部位的骨骼幀數(shù)據(jù).數(shù)據(jù)集的每一幀數(shù)據(jù)由人體20個骨骼關(guān)鍵點(diǎn)的坐標(biāo)組成.由于空間信息豐富,距離特征適合輸入GRU,但距離特征丟失了大量的方向信息.用CNN來捕捉方向信息.第1個GRU層將手勢動作識別的20個骨骼關(guān)鍵點(diǎn)幀序列的數(shù)據(jù)作為輸入,該輸入的是每一個骨骼關(guān)鍵點(diǎn)的位置向量;第1層GRU的輸出作為第2層GRU的輸出;最后一層GRU的輸出饋送到卷積層.其中,卷積窗口的大小設(shè)置對最終的分類結(jié)果影響較大,借鑒文本分類思想,通過提取相鄰n個特征進(jìn)行局部特征的提取,從而捕捉人體手勢關(guān)鍵點(diǎn)信息,對整個人體手勢的進(jìn)行判斷.根據(jù)這種思想,將卷積窗口大小設(shè)置為n*m,n為骨骼關(guān)鍵點(diǎn)的的個數(shù),m為圖片的向量維度.最后將卷積層的輸出進(jìn)行全局平均池化再輸入到全連接層和dropout層防止過擬合,提高模型泛化能力.最后將結(jié)果輸入到softmax層進(jìn)行歸類.
該模型中GRU框架用于提取骨架序列的時間序列特征,GRU的輸出用作CNN的輸入,以獲得骨骼的空間特征[18].
實(shí)驗(yàn)使用的MSRC-12數(shù)據(jù)集是微軟研究院公開的動作行為數(shù)據(jù)集[19],該數(shù)據(jù)集使用Kinect體感設(shè)備采集獲得,30個人執(zhí)行12類動作行為,包括594個動作序列,6244個動作實(shí)例.
本文將GRU層作為初始層,骨骼序列輸入GRU層.然后將GRU層的輸入緊接著輸入到CNN模型以提取局部特征.本文將數(shù)據(jù)集按訓(xùn)練集和測試集8:2的比例進(jìn)行訓(xùn)練.
為了驗(yàn)證該模型的可行性,本文分別進(jìn)行了幾組模型的對比實(shí)驗(yàn).為了說明GRU模型在網(wǎng)絡(luò)中的重要性,本文還設(shè)計(jì)了CNN-GRU模型,并進(jìn)行了實(shí)驗(yàn)對比.
1)本實(shí)驗(yàn)是在Tensorflow和Keras深度學(xué)習(xí)平臺和采用NVIDIA v100卡Ubuntu系統(tǒng)下進(jìn)行的實(shí)驗(yàn).其中Dropout為0.5.最初將學(xué)習(xí)率設(shè)置為0.001以進(jìn)行微調(diào).并設(shè)置了時間步長(Epoch)為10.
實(shí)驗(yàn)結(jié)果如表1所示.

表1 在數(shù)據(jù)集MSRC-12上的對比實(shí)驗(yàn)
本文所提出的方法與最近幾年其他最新方法進(jìn)行比較,從實(shí)驗(yàn)結(jié)果可以看出,該模型獲得了最高的識別率,驗(yàn)證了該模型的可行性和有效性.在CNN-GRU模型中GRU層僅僅充當(dāng)著全連接層的作用,對于這個模型來說沒有將GRU處理時間序列的優(yōu)勢展現(xiàn)出來.而對于GRU-CNN模型,初始層GRU像一個編輯器將輸入的每個序列進(jìn)行標(biāo)記,其中不僅包含原始標(biāo)記的信息,而且還包含輸出標(biāo)記所有其他以前的信息.之后,CNN層將使用原始輸入的更豐富的表示來查找局部特征,從而獲得更好的準(zhǔn)確性.
2)為了驗(yàn)證GRU模型作為LSTM模型變體具有的優(yōu)勢,本文還進(jìn)行了GRU-CNN模型和LSTM-CNN模型的對比實(shí)驗(yàn).如圖5所示,橫坐標(biāo)是訓(xùn)練的批次epoch,縱坐標(biāo)是訓(xùn)練精度,在相同的實(shí)驗(yàn)參數(shù)下,可知GRU-CNN模型收斂速度明顯優(yōu)于LSTM-CNN模型,但得到的最終訓(xùn)練精度卻相差不大.但是由于GRU的結(jié)構(gòu)比LSTM簡單,參數(shù)更少更容易收斂,訓(xùn)練速度更快.

圖5 LSTM-CNN與GRU-CNN模型的訓(xùn)練精度
3)該實(shí)驗(yàn)主要分析dropout和epoch設(shè)置對模型的影響.
不同dropout設(shè)置參數(shù)對模型實(shí)驗(yàn)的影響如表2所示.

表2 Dropout參數(shù)對模型影響的對比實(shí)驗(yàn)
dropout層的作用是在模型訓(xùn)練時讓網(wǎng)絡(luò)的某些隱含層節(jié)點(diǎn)的權(quán)重暫時不工作,防止模型過擬合.由于本文采用交叉驗(yàn)證,隱含節(jié)點(diǎn)dropout率為0.5時,對比的模型均取得了較好的實(shí)驗(yàn)結(jié)果,原因是0.5的時候dropout隨機(jī)生成的網(wǎng)絡(luò)結(jié)構(gòu)最多.當(dāng)dropout為0.3時,它將對CNN-GRU的影響最大,減少了近50%.但是,CNN和GRU模型的準(zhǔn)確性有所提高.當(dāng)dropout為0.9時,所有3個模型均減少5%-21%.從實(shí)驗(yàn)結(jié)果可以看出,本文提出的GRU-CNN模型在不同的dropout參數(shù)下,均能取得較好的效果,具有較強(qiáng)的魯棒性.
學(xué)習(xí)率對模型的識別準(zhǔn)確率的影響如表3所示.

表3 學(xué)習(xí)率對模型準(zhǔn)確率的對比試驗(yàn)
從實(shí)驗(yàn)結(jié)果可以看到epoch大小對GRU-CNN模型影響不大,但CNN和CNN-GRU模型的精度會隨著epoch的增加而大大增加,進(jìn)一步驗(yàn)證了該模型的有效性.
本文提出的基于GRU—CNN的融合網(wǎng)絡(luò)模型,在MSRC-12數(shù)據(jù)集上取得了最高的識別率,優(yōu)于目前其他學(xué)者提出的方法,并通過網(wǎng)絡(luò)參數(shù)的性能對比實(shí)驗(yàn),進(jìn)一步證明了該網(wǎng)絡(luò)模型具有一定的可行性和較好的魯棒性.為動態(tài)手勢識別領(lǐng)域的研究提供了新的思路.