王麗敬,趙澤陽,劉亞樓,楊愛民,,韓陽,,
(1. 華北理工大學(xué) 冶金與能源學(xué)院,河北 唐山 063210;2. 華北理工大學(xué) 理學(xué)院,河北 唐山 063210;3. 華北理工大學(xué) 發(fā)展規(guī)劃與學(xué)科建設(shè)處,河北 唐山 063210)
隨著科技的發(fā)展和人們生活水平的提高,健身動作智能識別是對當(dāng)前市場上的健身系統(tǒng)方案的優(yōu)化。由于身體形變和歪曲等原因,導(dǎo)致對人體動作檢測具有一定的挑戰(zhàn)性。但在基于傳統(tǒng)的RGB彩色視頻進(jìn)行識別的基礎(chǔ)上,已有越來越多的學(xué)者投入到深度圖像識別序列研究中[1,2],其中,較為廣泛的是使用3D骨骼數(shù)據(jù)進(jìn)行研究[3]。
最近,循環(huán)神經(jīng)網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于骨骼的3D動作識別。長短記憶神經(jīng)網(wǎng)絡(luò)(Long Short Term Memory, LSTM)是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)非常成功的擴(kuò)展。它們利用內(nèi)部存儲單元上的門控機(jī)制來學(xué)習(xí),并將輸入順序數(shù)據(jù)之間長期依賴性更好、更復(fù)雜地表示出來,因此它們適合于按時間數(shù)據(jù)序列進(jìn)行特征學(xué)習(xí)。
人類行為的特征是身體部位隨時間的運(yùn)動。在3D人體動作識別中,在每一幀中都有主要人體關(guān)節(jié)的三維位置。最近,循環(huán)神經(jīng)網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于骨骼的3D動作識別。
典型的LSTM單元包含一個輸入門it,一個遺忘門ft,一個輸出門ot和一個輸出狀態(tài)ht以及一個內(nèi)部存儲單元狀態(tài)ct.LSTM轉(zhuǎn)換方程式表示為:
ct=itΘut+ftΘct-1
(1)
(2)
ht=otΘtanh(ct)
(3)
其中,Θ表示元素乘積,xt表示在時間步長t到網(wǎng)絡(luò)的輸入,而ut表示調(diào)制后的輸入 ,σ是sigmoid激活函數(shù),M:RD+d→R4d是由模型參數(shù)組成的仿射變換,其中D是輸入xt的維數(shù),d是LSTM單元狀態(tài)單元的數(shù)量。
輸入門決定了在時間t調(diào)制的輸入信息(ut)應(yīng)該更新存儲單元的程度。遺忘門ft確定存儲單元的先前狀態(tài)(ct-1)對其當(dāng)前狀態(tài)(ct)的有效性。最后,輸出門ot控制著從存儲單元輸出的信息量[6,7]。
在簡單鏈中布置關(guān)節(jié)會在身體關(guān)節(jié)之間添加虛假的聯(lián)系,與此同時會忽略關(guān)節(jié)之間的運(yùn)動學(xué)依賴關(guān)系,而這些錯誤的聯(lián)系并沒有很強(qiáng)的關(guān)聯(lián)性[8]。在人體分析中,骨骼關(guān)節(jié)通常被建模為基于樹的圖形結(jié)構(gòu),如圖1所示。
圖1 人體骨骼關(guān)節(jié)樹
在圖1(a)中人體的骨骼關(guān)節(jié)在簡單的聯(lián)合鏈模型中,聯(lián)合訪問順序?yàn)?-2-3 -...- 16;圖1(b)將骨骼轉(zhuǎn)換為樹形結(jié)構(gòu);圖1(c)在空間步長上遍歷樹;可以通過遍歷將樹展開為鏈,聯(lián)合訪問順序?yàn)?-2-3-2-4-5-6-5-4-2-7-8-9-8-7-2-1-10-11-12-13-12-11-10-14-15-16-15-14-10- 1[9,10]。
基于樹結(jié)構(gòu)的遍歷策略使在鄰接樹結(jié)構(gòu)內(nèi)的數(shù)據(jù)傳輸?shù)?個方向(自上而下和自下而上)得以保證。因此,每個節(jié)點(diǎn)都將具有來自其祖先和后代的上下文信息,基于樹結(jié)構(gòu)的遍歷能由關(guān)節(jié)的鄰接結(jié)構(gòu)得到更強(qiáng)的長期空間依賴性模式[11]。
與其他LSTM實(shí)現(xiàn)類似,可以通過堆疊多層樹結(jié)構(gòu)的ST-LSTM并構(gòu)建一個深層但完全易處理的網(wǎng)絡(luò)來提高網(wǎng)絡(luò)的表示能力,如圖2所示。
圖2 深樹結(jié)構(gòu)的ST-LSTM網(wǎng)絡(luò)圖形模型
在圖2中,為了清楚起見,在堆疊網(wǎng)絡(luò)中省略了一些箭頭(從顏色上更好看)。第一ST-LSTM層的輸出被饋送到第二ST-LSTM層作為其輸入,第二ST-LSTM層的輸出被饋送到softmax層[12,13]。
基于前文提出的對人體結(jié)構(gòu)化信息的骨骼數(shù)據(jù)處理及多層級LSTM動作識別網(wǎng)絡(luò),通過對系統(tǒng)進(jìn)行設(shè)計與實(shí)現(xiàn),并與其他方法進(jìn)行比對,分析所提出改進(jìn)方法的有效性。
健身動作智能識別的設(shè)計及實(shí)現(xiàn)的實(shí)驗(yàn)環(huán)境為:基本Python環(huán)境、Flask、UWSGI、Nginx、Docker、TensorFlow Serving.該研究所選的框架為TensorFlow深度學(xué)習(xí)框架,目前作為深受歡迎的深度學(xué)習(xí)框架,TensorFlow的數(shù)據(jù)流圖編程思想十分適用于神經(jīng)網(wǎng)絡(luò)各個參數(shù)的計算。與此同時,其靈活的架構(gòu)可以與多種平臺兼容,支持Windows、Linux、macOS、Web、Android,適配圖形處理器和中央處理器。
NTU RGB + D數(shù)據(jù)集集中提供了25個關(guān)節(jié)的3D坐標(biāo)。類內(nèi)和觀點(diǎn)的較大差異使此數(shù)據(jù)集非常具有挑戰(zhàn)性。由于樣本數(shù)量眾多,該數(shù)據(jù)集非常適合基于深度學(xué)習(xí)的動作識別。
實(shí)現(xiàn)健身動作識別智能指導(dǎo)系統(tǒng)首先需要對數(shù)據(jù)進(jìn)行數(shù)據(jù)收集、分割數(shù)據(jù)、特征提取,然后選擇并訓(xùn)練模型,最后通過對比算法選擇最優(yōu)算法。
2.2.1數(shù)據(jù)收集
大腿內(nèi)側(cè)動態(tài)拉伸、緩沖深蹲跳、臀部動態(tài)拉伸及早安式體前屈相關(guān)動作分別進(jìn)行數(shù)據(jù)收集。其中,在一次數(shù)據(jù)采集時,采集者左手持手機(jī)并使手機(jī)屏幕方向與手臂垂直,持續(xù)做同一動作。傳感器采集一次數(shù)據(jù)為20 ms,取樣率為50 Hz。微信程序?qū)⑹占降臄?shù)據(jù)通過json格式發(fā)送到云服務(wù)器上;有超過10位用戶參與數(shù)據(jù)采集,每位用戶都進(jìn)行了4個動作的數(shù)據(jù)采集。為了保證算法的可泛化,除規(guī)定手持手機(jī)姿勢外,不對用戶設(shè)置其他規(guī)定。數(shù)據(jù)字段如表1所示。
表1 數(shù)據(jù)字段表
在表1數(shù)據(jù)字段中,所有數(shù)據(jù)均正常,且沒有缺失值,數(shù)據(jù)還包括用戶的性別、身高、體重等信息。為使模型更好地泛化,僅選取6軸數(shù)據(jù)。
2.2.2數(shù)據(jù)分割及特征提取
將整個數(shù)據(jù)集分為:訓(xùn)練集(60%)、驗(yàn)證集(20%)、測試集(20%)。將數(shù)據(jù)分割為2.56 s的窗口(128個數(shù)據(jù)點(diǎn)),其中窗口之間有50%的重合,從而便于模型更好地學(xué)習(xí)出特征。原始時間序列加速度不能直接用標(biāo)準(zhǔn)分類算法計數(shù)據(jù),所以,需將原始時間序列轉(zhuǎn)變?yōu)槟承┨卣鳌J紫葘?shù)據(jù)分為2.56 s的窗口,再將每個2.56 s時間段中的128*6個讀數(shù)轉(zhuǎn)化為特征。
2.2.3選擇并訓(xùn)練模型
在這項(xiàng)任務(wù)中,所需模型應(yīng)可以準(zhǔn)確通過2.56 s內(nèi)手機(jī)6軸的數(shù)據(jù),并識別出用戶所做的動作給出相應(yīng)的反饋。希望看到模型可以盡可能多地識別出用戶當(dāng)前的動作,故在選擇算法時,側(cè)重于模型在測試集上的準(zhǔn)確率與召回率,為了實(shí)現(xiàn)單一指標(biāo)選擇,引入二者的調(diào)和平均F-1 score作為判斷指標(biāo)。通過對SVM模型、Random forest模型及一維CNN網(wǎng)絡(luò)模型進(jìn)行相應(yīng)比對,可選擇出最優(yōu)算法并對該模型進(jìn)行訓(xùn)練。
SVM模型、Random forest模型及一維CNN網(wǎng)絡(luò)模型進(jìn)行相應(yīng)比對結(jié)果如圖3所示。
圖3 SVM、Random Forest及CNN分類器的分類結(jié)果混淆矩陣示意圖
通過研究實(shí)驗(yàn)可知,在使用傳感器的人體動作識別任務(wù)上SVM模型與Random forest模型具有最優(yōu)的表現(xiàn),在測試集上一維CNN網(wǎng)絡(luò)的表現(xiàn)最優(yōu)。由于判斷指標(biāo)為F1 score,故選取一維CNN模型來做圖像的特征提取,對原始數(shù)據(jù)進(jìn)行相關(guān)處理,利用LSTM來生成描述。表2所示為SVM模型、Random forest模型及一維CNN網(wǎng)絡(luò)模型對比。
表2 SVM模型、Random forest模型及一維CNN網(wǎng)絡(luò)模型對比
表2所示為SVM模型、Random forest模型及一維CNN網(wǎng)絡(luò)模型對比。由表2可以看出一維CNN網(wǎng)絡(luò)模型F1score最高可達(dá)0.995 33,SVM模型F1score最低可達(dá)0.974 71.由于此任務(wù)為多分類問題,loss function選為Cross Entrop,優(yōu)化器選為Adam,可以加快收斂速度。具體超參數(shù)為 learning_rate = 0.001,epsilon = 1e-07,amsgrad = False,訓(xùn)練過程中,訓(xùn)練次數(shù)選為17 300次,方式訓(xùn)練采取Mini-batch方式訓(xùn)練,batch size選為300。訓(xùn)練過程的正確率曲線如圖4所示,訓(xùn)練過程的loss曲線如圖5所示。
圖4 訓(xùn)練過程正確率曲線示意圖 圖5 訓(xùn)練過程loss曲線示意圖
保存并讀取模型,評估模型并查看在測試集上模型平均正確率與損失。
健身動作智能識別實(shí)現(xiàn)功能界面的實(shí)現(xiàn)是基于web服務(wù)器之上,它包括4個基本模塊:說明須知界面、標(biāo)準(zhǔn)動作展示界面、開始測試界面和結(jié)束測試界面。
運(yùn)用Docker+TensorFlow Serving的算法部署運(yùn)行之前訓(xùn)練好的模型;API開發(fā)選用Flask框架,接收并處理小程序傳來的數(shù)據(jù)TensorFlow Serving連接,F(xiàn)lask框架將這些預(yù)測結(jié)果返回給小程序;除此之外,需要在Web服務(wù)器上配置Nginx(配置Https訪問)、UWSGI軟件,從而實(shí)現(xiàn)小程序端到微信Web服務(wù)器再到Flask框架的連接過程。
調(diào)用小程序文檔中的API進(jìn)行數(shù)據(jù)采集,傳感器采集一次數(shù)據(jù)為20 ms,取樣率為50 Hz,微信程序?qū)⑹占降臄?shù)據(jù)通過json格式發(fā)送到云服務(wù)器上,并在數(shù)據(jù)采集階段將數(shù)據(jù)上傳至微信云數(shù)據(jù)庫。
圖6和圖7分別為訓(xùn)練過程結(jié)果展示圖和標(biāo)準(zhǔn)動作展示示意圖基于人體結(jié)構(gòu)化信息的骨骼數(shù)據(jù)處理方法對動作中的空間特征進(jìn)行較為準(zhǔn)確提取,與圖7中的標(biāo)準(zhǔn)動作進(jìn)行比對,在很大程度上提高了算法的魯棒性和識別精度;該項(xiàng)研究提出的對人體結(jié)構(gòu)化信息的骨骼數(shù)據(jù)處理及多層級LSTM動作識別網(wǎng)絡(luò)用于動作識別,該方法使得動作識別的整體性能在很大程度上得到提升,最終應(yīng)用于實(shí)踐,實(shí)現(xiàn)健身動作智能識別的長短期記憶網(wǎng)絡(luò)模型的研究。
圖6 訓(xùn)練過程結(jié)果展示圖
圖7 標(biāo)準(zhǔn)動作展示示意圖
(1)提出了基于人體結(jié)構(gòu)化信息的骨骼數(shù)據(jù)處理方法。該方法能對動作中的空間特征進(jìn)行較為準(zhǔn)確的提取,在很大程度上提高了算法的魯棒性和識別精度。
(2)提出了對人體結(jié)構(gòu)化信息的骨骼數(shù)據(jù)處理及多層級LSTM動作識別網(wǎng)絡(luò)用于動作識別。通過分析標(biāo)準(zhǔn)的LSTM網(wǎng)絡(luò),提出時空LSTM模型和基于骨架的樹遍歷; LSTM引入了有效的門控方案,以處理輸入數(shù)據(jù)(人體關(guān)節(jié)位置)中的測量噪聲,并應(yīng)用于3D健身動作識別,從而提高動作識別度。該方法使得動作識別的整體性能在很大程度上得到提升,最終應(yīng)用于實(shí)踐,實(shí)現(xiàn)基于LSTM的健身動作智能識別。