王 歡,肖秦琨
(西安工業(yè)大學(xué) 電子信息工程學(xué)院,西安710021)
步態(tài)識別一直以來是科研界研究關(guān)注的熱點(diǎn),其中也涌現(xiàn)出一大批優(yōu)秀的算法?,F(xiàn)有的步態(tài)識別可以分為基于非模型和基于模型的步態(tài)識別算法。
在基于非模型的步態(tài)識別算法中,文獻(xiàn)[1]提出分割步態(tài)輪廓,統(tǒng)計(jì)并分析步態(tài)輪廓的形狀進(jìn)行步態(tài)識別;文獻(xiàn)[2]引出步態(tài)能量圖(gait energy image,GEI)概念,經(jīng)過加權(quán)平均處理一個(gè)步態(tài)周期的能量圖;文獻(xiàn)[3]提出一種改進(jìn)對數(shù)方法對步態(tài)能量圖提取相位一致的特征,補(bǔ)償了噪聲并進(jìn)行判別分析,正確識別率得到提升,但缺點(diǎn)是需要很高的頻率,所以步態(tài)特征有所損失;文獻(xiàn)[4]利用多種融合方法將靜態(tài)與動(dòng)態(tài)兩種特征進(jìn)行融合,識別結(jié)果有提升但等錯(cuò)率還是比較大。從以上不難看出,步態(tài)輪廓圖的分割過程會(huì)產(chǎn)生誤差且會(huì)引入視角、衣著和攜帶物等協(xié)變量,分類結(jié)果并不理想。步態(tài)能量圖同樣也存在缺陷,它在輪廓序列的周期疊加后會(huì)丟失時(shí)序信息。
基于模型的步態(tài)識別算法可以避免行人行走過程中物體遮擋的問題,而且對于視角的變化敏感度低。文獻(xiàn)[5]從人體輪廓提取骨架關(guān)鍵點(diǎn),然后以關(guān)鍵點(diǎn)之間的距離和角度作為特征通過支持向量機(jī)進(jìn)行步態(tài)識別;由于手工提取的骨架繁瑣且精確度低,文獻(xiàn)[6]提出一種針對Kinect 骨骼數(shù)據(jù)應(yīng)用貝葉斯分類器分析步態(tài)障礙和識別帕金森病的方法,分類結(jié)果不理想;文獻(xiàn)[7]利用Openpose 提取骨架關(guān)鍵點(diǎn),再將其放入PTSN 網(wǎng)絡(luò)進(jìn)行步態(tài)特征的學(xué)習(xí),完成了跨視角識別。
綜上所述,本文首先利用微軟Kinect2.0 傳感器直接獲得骨架信息表征人體骨架步態(tài)特征;其次利用多層特征融合機(jī)制改進(jìn)GoogleNet 神經(jīng)網(wǎng)絡(luò)提取步態(tài)空間特征;同時(shí),在LSTM 的基礎(chǔ)上提出動(dòng)態(tài)門記憶學(xué)習(xí)網(wǎng)絡(luò); 最后討論算法的最佳訓(xùn)練參數(shù),并與其它方法進(jìn)行性能對比。
人的步態(tài)數(shù)據(jù)的變化遵循時(shí)空規(guī)律,因此本文提出的人體骨架步態(tài)識別深度學(xué)習(xí)網(wǎng)絡(luò)模型包含視覺空間特征提取器深度卷積神經(jīng)網(wǎng)絡(luò)(deep con volutional neural network,DCNN)與可進(jìn)行順序時(shí)間特征識別任務(wù)的動(dòng)態(tài)門記憶學(xué)習(xí)(dynamic gated memory learning,DGML)網(wǎng)絡(luò)。本算法能夠?qū)θ梭w步態(tài)動(dòng)態(tài)時(shí)空信號進(jìn)行準(zhǔn)確建模,進(jìn)而實(shí)現(xiàn)快速動(dòng)態(tài)模式識別。
在深度學(xué)習(xí)中,通過增加神經(jīng)網(wǎng)絡(luò)深度和寬度的方式以提高網(wǎng)絡(luò)識別的準(zhǔn)確性和識別速度,但與此同時(shí)會(huì)使網(wǎng)絡(luò)復(fù)雜,從而帶來梯度爆炸和過擬合等問題。針對此問題,GoogleNet[8]網(wǎng)絡(luò)于2014年提出Inception 模塊,如圖1 所示,巧妙解決了網(wǎng)絡(luò)的深度和寬度的局限性。
圖1 Inception 模塊示意圖Fig.1 Schematic diagram of Inception module
Inception 模塊的設(shè)計(jì)思路是擬化最優(yōu)稀疏結(jié)構(gòu),使用4 種不同大小的卷積核對輸入特征圖進(jìn)行特征提取。第1 個(gè)模塊是1×1 卷積核,利用小感受野提取輸入圖相關(guān)性最高的特征;第2,3 個(gè)模塊是1×1 卷積核分別與3×3 卷積核和5×5 卷積核串聯(lián),這樣的設(shè)置減少了通道數(shù)和近一成的參數(shù)運(yùn)算量,提取了一個(gè)較大感受野的特征; 第4 個(gè)模塊是3×3池化層與卷積核串聯(lián),4 個(gè)模塊都在聚合操作下合并。在感受野保持不變的情況下,GoogleNet 利用對應(yīng)尺寸下的小卷積核代替大卷積核,網(wǎng)絡(luò)的深度和運(yùn)算量都得到提升。
步態(tài)視頻的特征需要結(jié)合全局的運(yùn)動(dòng)軌跡和局部的步態(tài)變化描述,故本文對GoogleNet 卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),從而達(dá)到從視頻片段中提取空間特征的目標(biāo)。基于改進(jìn)GoogleNet 空間特征提取網(wǎng)絡(luò)如圖2 所示。
圖2 基于改進(jìn)GoogleNet 空間特征提取網(wǎng)絡(luò)Fig.2 Based on improved GoogleNet spatial feature extraction network
該網(wǎng)絡(luò)保持原有GoogleNet 網(wǎng)絡(luò)結(jié)構(gòu)不變,在Inception(4a),Inception(4d)和Inception(5b)網(wǎng)絡(luò)模塊后分別增加新的支路。支路增加1 個(gè)1×1 卷積層,其意義在于利用1×1 卷積層將不同尺度的特征調(diào)整為同一尺度特征用于特征融合,利用不同特征感受野的不同特點(diǎn),將淺層特征和深層特征相融合,從而提高最終特征的完整性和有效性。采用1×1卷積層集和池化(SP)層代替原有的全局平均池化層,1×1 卷積層用于特征尺度調(diào)整,并將其結(jié)果輸入到SP 層,對池化后的特征進(jìn)行加法操作,將整個(gè)步態(tài)周期的特征組合到一起,再利用最大池化層得到最終輸出特征。其中SP 層包含3 個(gè)平行的池化層,分別為最大池化層、平均池化層和中值池化層。
遞歸神經(jīng)網(wǎng)絡(luò)[9](recurrent neural network,RNN)是一種結(jié)構(gòu)簡單且能分析處理時(shí)間序列數(shù)據(jù)的強(qiáng)大學(xué)習(xí)算法。相比于多層感知器,該算法能處理序列隱藏狀態(tài)關(guān)鍵數(shù)據(jù),并更新序列數(shù)據(jù)的先前和現(xiàn)存信息。長期短期記憶序列(long short term memory,LSTM)[10]和門控循環(huán)單元(gated recurrent unit,GRU)[11]是遞歸神經(jīng)網(wǎng)絡(luò)的流行結(jié)構(gòu),其解決了遞歸神經(jīng)網(wǎng)絡(luò)梯度爆炸的問題,且在處理時(shí)間序列數(shù)據(jù)的問題上表現(xiàn)出良好的性能,例如語音識別、機(jī)器翻譯、 音頻分析以及基于骨架的動(dòng)作識別等方面,故利用遞歸神經(jīng)網(wǎng)絡(luò)處理骨架步態(tài)數(shù)據(jù)是可行的。
從網(wǎng)絡(luò)結(jié)構(gòu)來看,GRU 和LSTM 具有相似性能,但至今仍未證明前者可替代LSTM,故LSTM 仍具有研究價(jià)值。LSTM 細(xì)胞結(jié)構(gòu)如圖3 所示,其巧妙之處在于通過增加輸入門限、遺忘門限和輸出門限以調(diào)整自循環(huán)的權(quán)重,從而解決梯度消失和梯度膨脹的問題。
圖3 LSTM 細(xì)胞示意圖Fig.3 Schematic diagram of LSTM cells
每個(gè)LSTM 單元的計(jì)算公式如下:
式中:ft表示遺忘限;it表示輸入門限表示前一時(shí)刻cell 狀態(tài);Ct表示cell 狀態(tài);ot表示輸出門限;ht表示當(dāng)前輸入單元;ht-1表示前一時(shí)刻單元的輸出。
在訓(xùn)練期間,門具有自主處理內(nèi)部結(jié)構(gòu)狀態(tài)的能力,但會(huì)學(xué)習(xí)一些冗余信息,而長時(shí)間的學(xué)習(xí)會(huì)導(dǎo)致門僅處理相似信息。針對此問題,在基于LSTM的結(jié)構(gòu)上,增加新的可訓(xùn)練的鏈接[12]以設(shè)計(jì)出動(dòng)態(tài)門記憶學(xué)習(xí)網(wǎng)絡(luò)(dynamic gated memory learning,DGML)。該網(wǎng)絡(luò)采用可訓(xùn)練的鏈條將輸入門、輸出門和忘記門兩兩相連,以產(chǎn)生自循環(huán)狀態(tài)。細(xì)胞被每個(gè)門自循環(huán)連接和3 個(gè)門互循環(huán)連接所包圍。DGML 結(jié)構(gòu)如圖4 所示,其核心在于門信息共享。在圖像識別模式中,3 個(gè)門可以通過彼此協(xié)作以緩解學(xué)習(xí)壓力,轉(zhuǎn)移并減小系統(tǒng)誤差。
圖4 DGML 結(jié)構(gòu)圖Fig.4 DGML structure diagram
(1)DGML 正向通道學(xué)習(xí)
在DGML 正向通道學(xué)習(xí)中,假設(shè)一個(gè)神經(jīng)網(wǎng)絡(luò)包含輸入層I,循環(huán)隱藏層H(其包含模塊A,一個(gè)模塊A 包含多個(gè)細(xì)胞c)和輸出層K,且所有的層都是全連接的。其中,當(dāng)單元j=w,φ,l 時(shí),vj表示輸入;φj表示網(wǎng)絡(luò)的激活函數(shù);χj為一個(gè)單元的激活函數(shù);fc表示輸入門的擠壓信息;gc表示一個(gè)內(nèi)部細(xì)胞c 擠壓信息。定義和在t=0 時(shí)為0。
輸入門:
忘記門:
細(xì)胞輸入:
細(xì)胞狀態(tài):
輸出門:
細(xì)胞輸出:
(2)DGML 反向通道學(xué)習(xí)
細(xì)胞輸出:
輸出門:
細(xì)胞狀態(tài):
細(xì)胞輸入:
忘記門:
輸入門:
為了測試算法的魯棒性,利用新型體感外設(shè)Kinect2.0 采集身高體型不同的10 位測試者各自骨架步態(tài)信息。在鏡頭方向與行走方向呈90°的視角下,測試者1 到測試者10 獨(dú)自在Kinect2.0 攝影范圍內(nèi)正常行走20 次,每次30~40 s,得到200 個(gè)運(yùn)動(dòng)視頻序列,然后將每段視頻平均分成10 段,以形成10 類姓名標(biāo)簽的2000 個(gè)骨架步態(tài)短視頻序列數(shù)據(jù)集。
本文在這一部分列出相關(guān)實(shí)驗(yàn)參數(shù)[13],優(yōu)化和分析所提模型并討論實(shí)驗(yàn)結(jié)果,以證明系統(tǒng)的可靠性。最后將實(shí)驗(yàn)結(jié)果和幾種最先進(jìn)的競爭網(wǎng)絡(luò)進(jìn)行比較。
數(shù)據(jù)集分為90%訓(xùn)練集和10%測試集,該算法將網(wǎng)絡(luò)模型根據(jù)骨架步態(tài)特征的目標(biāo)參數(shù)進(jìn)行優(yōu)化。網(wǎng)絡(luò)設(shè)置的最佳超參數(shù)值如表1 所示。
表1 超參數(shù)Tab.1 Hyperparameters
為了清晰地看到網(wǎng)絡(luò)在訓(xùn)練期間精確度和損失度的變化,實(shí)驗(yàn)記錄了訓(xùn)練集和驗(yàn)證集每500 步迭代的結(jié)果,如圖5 所示??梢钥闯?,隨著迭代次數(shù)的增加,精確度也在增加,損失函數(shù)急速下降。
圖5 組合網(wǎng)絡(luò)模型Fig.5 Combined network model
復(fù)雜背景下的步態(tài)識別所產(chǎn)生的混淆矩陣(confusion matrix),如圖6 所示。矩陣中位于主對角線上的元素表示骨架步態(tài)數(shù)據(jù)集按照身份特征被正確分類的比例及個(gè)數(shù),其它位置為骨架步態(tài)數(shù)據(jù)集被誤識為其它個(gè)體的比例和個(gè)數(shù)。從圖6 骨架步態(tài)識別結(jié)果可以看出,1 個(gè)標(biāo)簽為“xue”的骨架序列被誤認(rèn)為標(biāo)簽“gao”;1 個(gè)標(biāo)簽為“xue”的骨架序列被誤認(rèn)為標(biāo)簽“yu”;1 個(gè)標(biāo)簽為“yan”的骨架序列被誤認(rèn)為標(biāo)簽“yang”;其它標(biāo)簽為全部被正確識別的骨架序列。
圖6 DCNN+DGML 融合架構(gòu)的混淆矩陣Fig.6 Confusion matrix of DCNN+DGML fusion architecture
學(xué)習(xí)率是最重要的超參數(shù),能直接影響模型收斂速度和找到最佳下坡路徑的能力。故學(xué)習(xí)率設(shè)置太小或太大都不適合。參數(shù)設(shè)置太小會(huì)使系統(tǒng)更新得很慢,需要很長的訓(xùn)練時(shí)間;參數(shù)設(shè)置太大,會(huì)直接引起損失函數(shù)震蕩,甚至不能收斂,模型的分類能力也會(huì)變得很差。通過調(diào)整學(xué)習(xí)率對網(wǎng)絡(luò)模型進(jìn)行優(yōu)化,分類準(zhǔn)確率的結(jié)果展示如表2所示。
表2 學(xué)習(xí)率對模型分類準(zhǔn)確率的影響Tab.2 Effect of learning rate on model classification accuracy
從表2 可以看出當(dāng)學(xué)習(xí)率設(shè)置為0.0001 時(shí),精確度最高為96%。
為了觀察DGML 的層數(shù)對分類精確度的影響,保持DCNN 的參數(shù)不變,設(shè)置DGML 的層數(shù)在1,2,3 范圍內(nèi)變化,每層單元數(shù)為2000,以建立此網(wǎng)絡(luò)模型。層數(shù)對網(wǎng)絡(luò)模型的影響曲線如圖7所示,DGML 不同層的分類精度統(tǒng)計(jì)結(jié)果如表3所示。
圖7 DGML 層數(shù)和精度之間的曲線關(guān)系Fig.7 Curve relationship between the number of DGML layers and accuracy
表3 不同DGML 層數(shù)的分類準(zhǔn)確率Tab.3 Classification accuracy of different DGML layers
從圖7 可以看到DGML 的層數(shù)對于網(wǎng)絡(luò)收斂速度和迭代的影響。訓(xùn)練在迭代300 步之前,層數(shù)k=1 的迭代速度快,但是隨著迭代步數(shù)的增加,層數(shù)k=3 的收斂速度趕上層數(shù)k=1 的網(wǎng)絡(luò),原因在于層數(shù)越多訓(xùn)練的參數(shù)多,但層數(shù)k=1 的網(wǎng)絡(luò)一直平穩(wěn)上升,最后達(dá)到最高精確度。
從表3 可以看出,實(shí)驗(yàn)效果最佳的是1 層的DGML,精確度達(dá)到93%。隨著DGML 層數(shù)目的增加,分類精確度并沒有隨之增加,反而DGML 層數(shù)為1 的實(shí)驗(yàn)效果優(yōu)于層數(shù)為2,3 的分類結(jié)果。這表明并不是層數(shù)越深,效果越好。因此本文選擇一層的DGML。
為了驗(yàn)證DGML 的性能,基于同一數(shù)據(jù)集將本文提出模型和biLSTM,GRU 進(jìn)行比較。模型迭代曲線結(jié)果如圖8 所示。
圖8 DGML,biLSTM 和GRU 系統(tǒng)的迭代曲線Fig.8 Iterative graph of DGML,biLSTM and GRU models
從圖8 發(fā)現(xiàn),DGML 模型相較于biLSTM 和GRU 系統(tǒng)表現(xiàn)出良好的收斂性能,精度-迭代速度和損失-迭代速度最快且精確度最高。雖然增加了門連接機(jī)制,但是并沒有產(chǎn)生額外的計(jì)算成本。通過門之間的合作機(jī)制可以提取更完整且數(shù)量更多的步態(tài)特征。隨著訓(xùn)練時(shí)間的加長,分類分?jǐn)?shù)也在提高。從另一方面來說,在小數(shù)據(jù)集上GRU 的收斂速度較biLSTM 稍快。
為了驗(yàn)證改進(jìn)后的GoogleNet 對于步態(tài)各層空間特征的融合效果,本文將具有特征融合機(jī)制的GoogleNet 和GoogleNet,AlexNet,ResNet 在相同的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)比較,并進(jìn)行重復(fù)實(shí)驗(yàn)以避免誤差。各個(gè)模型的分類結(jié)果如表4 所示。
從表4 可以看出,在此研究中,改進(jìn)GoogleNet網(wǎng)絡(luò)在數(shù)據(jù)集上的平均精確度最高,比原始的GoogleNet 的分類精度高約3.5%,ResNet 網(wǎng)絡(luò)雖然比GoogleNet 結(jié)構(gòu)好,但在數(shù)據(jù)集上過擬合,識別效果并不好。
表4 各種模型對骨架步態(tài)分類的準(zhǔn)確性(均值)Tab.4 Accuracy of various models for skeletal gait classification(mean value)
本文提出的DCNN+DGML 模型在自建步態(tài)數(shù)據(jù)庫上表現(xiàn)突出。證明了此模型是可以通過訓(xùn)練來捕獲時(shí)空狀態(tài)相關(guān)性的視覺識別模型。與其它算法相比,該算法不用手動(dòng)提取骨架步態(tài)特征,避免了選擇最佳特征的復(fù)雜性,對于骨架步態(tài)識別達(dá)到了顯著的成果。此融合模型在空間和時(shí)間上都很深,可以處理輸入數(shù)據(jù)中的時(shí)空相關(guān)性強(qiáng)的信息。