孫小華
摘 ? 要:文章提出一種基于長短期記憶網(wǎng)絡(luò)的人體運動狀態(tài)識別方法。通過手機內(nèi)置的加速度傳感器采集相關(guān)數(shù)據(jù),對采集的數(shù)據(jù)進(jìn)行預(yù)處理,采用LSTM算法對人體運動狀態(tài)進(jìn)行分類。此算法不需要人工進(jìn)行特征提取,在TensorFlow環(huán)境下的實驗結(jié)果顯示,此算法分類精度較高,對靜止、走路、慢跑、上樓梯、騎車5種運動狀態(tài)的識別率超過90%。
關(guān)鍵詞:長短期記憶網(wǎng)絡(luò);人體行為識別;加速度傳感器
人體運動狀態(tài)識別系統(tǒng)根據(jù)輸入的信息對人體的運動狀態(tài)進(jìn)行分類,可以用于老人或病人的監(jiān)護(hù)、智能家居、安全監(jiān)控、運動追蹤等系統(tǒng)。隨著現(xiàn)代生活方式的轉(zhuǎn)變,人們的日常運動量變得越來越少。日常的運動情況不僅能夠為醫(yī)生診斷和治療疾病提供豐富的參考信息,而且可靠的運動監(jiān)測技術(shù)還能夠更智能地提醒人們保持健康的生活方式,如子女可以隨時獲得家中老人的運動狀態(tài),當(dāng)老人出現(xiàn)跌倒、昏迷等意外情況時,系統(tǒng)自動發(fā)出報警信息,這對老年人的健康安全和及時救助具有十分重要的意義。
傳統(tǒng)人體運動狀態(tài)的識別主要通過可穿戴式設(shè)備采集相關(guān)的數(shù)據(jù)進(jìn)行分析,但穿戴這些設(shè)備會導(dǎo)致人體運動不便。近年來,隨著移動互聯(lián)網(wǎng)技術(shù)及傳感器技術(shù)的發(fā)展,智能手機內(nèi)置了加速度、陀螺儀、光、磁場、氣壓等傳感器,可以采集手機的狀態(tài)數(shù)據(jù),通過對采集的手機各類傳感器數(shù)據(jù)進(jìn)行算法分析,對運動狀態(tài)進(jìn)行分類識別,從而判斷出人體當(dāng)前的運動狀態(tài)。與傳統(tǒng)的可穿戴式設(shè)備相比,采用智能手機進(jìn)行人體運動狀態(tài)識別具有便捷性的優(yōu)點。
常用的人體運動狀態(tài)識別分類算法有貝葉斯網(wǎng)絡(luò)、支持向量機(Support Vector Machine,SVM)、K-means聚類、BP神經(jīng)網(wǎng)絡(luò)、隱馬爾可夫模型(Hidden Markov Model,HMM)、決策樹等,但這些方法的效果都與選擇的特征相關(guān),如加速度的最大值、最小值、方差等,如果特征選擇的不合適,識別的精度將受到影響。本文基于深度學(xué)習(xí)算法對人體運動狀態(tài)進(jìn)行識別,根據(jù)智能手機內(nèi)置傳感器監(jiān)測到的數(shù)據(jù)判斷人體處于何種運動狀態(tài),是靜止、慢步還是上樓梯等,處理過程中不需要對原始數(shù)據(jù)進(jìn)行人工特征提取及選擇[1-3]。
1 ? ?長短期記憶網(wǎng)絡(luò)
長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)是一種時間循環(huán)神經(jīng)網(wǎng)絡(luò),由Schmidhuber教授于1997年為解決傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的長程依賴問題而提出。LSTM不需要特別復(fù)雜地調(diào)試超參數(shù),默認(rèn)就可以記住長期的信息,近年來,在文本分類、語音識別、圖像識別、自動標(biāo)注、自動對話等領(lǐng)域取得了廣泛的應(yīng)用。
在某一時刻t,LSTM單元的輸入有3個:當(dāng)前時刻網(wǎng)絡(luò)的輸入值xt,上一時刻LSTM的輸出值ht-1以及上一時刻的單元狀態(tài)Ct-1。LSTM單元的輸出有2個:當(dāng)前時刻LSTM輸出值h和當(dāng)前時刻的單元狀態(tài)Ct。LSTM通過3個門結(jié)構(gòu)來維護(hù)和控制單元的狀態(tài)信息,把LSTM關(guān)于當(dāng)前的記憶和長期的記憶組合在一起,形成了新的單元狀態(tài)。遺忘門負(fù)責(zé)控制繼續(xù)保存長期狀態(tài);輸入門負(fù)責(zé)控制把即時狀態(tài)輸入到長期狀態(tài);輸出門負(fù)責(zé)控制是否把長期狀態(tài)作為當(dāng)前的LSTM的輸出。
2 ? ?處理流程
2.1 ?原始數(shù)據(jù)集
本文研究人體靜止、走路、跑步、上樓梯、騎自行車等狀態(tài)的識別,實驗選取5名實驗者進(jìn)行,實驗手機為華為Mate9型號,采集手機的加速度傳感器數(shù)據(jù)。原始數(shù)據(jù)為人體各種運動狀態(tài)下Android智能手機加速度傳感器采集的數(shù)據(jù),對采集的數(shù)據(jù)人工進(jìn)行類別標(biāo)注,如靜止設(shè)為0,走路設(shè)為1,跑步設(shè)為2等。將數(shù)據(jù)的采樣頻率設(shè)為50 Hz,原始數(shù)據(jù)為手機傳感器在0.02 s內(nèi)采集到的x,y,z 3個方向的加速度信息,即原始數(shù)據(jù)為具有三維特征的數(shù)據(jù)集,每條數(shù)據(jù)對應(yīng)一種人體運動狀態(tài)(即類別),如靜止、走路、跑步等運動狀態(tài),用one-hot編碼表示。
走路時采集的加速度傳感器在3軸方向上的原始數(shù)據(jù)波形如圖1所示,跑步時采集的加速度傳感器在3軸方向上的原始數(shù)據(jù)波形如圖2所示??梢钥闯?,雖然加速度數(shù)據(jù)比較混亂,但3個維度的數(shù)據(jù)變化還是大致呈現(xiàn)規(guī)律性的周期變化[4-5]。
2.2 ?數(shù)據(jù)預(yù)處理
為充分挖掘運動狀態(tài)信息,通過滑動窗口技術(shù)進(jìn)行特征提取,將每秒采集的數(shù)據(jù)作為一個樣本,即滑動窗口的長度為1 s。因為采樣頻率設(shè)為50 Hz,因此,每秒采集的數(shù)據(jù)有50條,維數(shù)為3×50=150維;同時,為了獲取人體運動狀態(tài)的變化信息,將采集到的加速度數(shù)據(jù)進(jìn)行增量計算,計算每次采集到的加速度數(shù)據(jù)與上一次采集到的加速度數(shù)據(jù)的差值,并將差值放大10倍。類似,每秒獲得的增量數(shù)據(jù)有50條,維數(shù)為3×50=150維,因此通過預(yù)處理之后得到的數(shù)據(jù)維數(shù)為300,另外自動增加24維全為0的數(shù)據(jù),使數(shù)據(jù)的總維數(shù)剛好為18×18=324維。
2.3 ?LSTM參數(shù)設(shè)置及運行流程
將經(jīng)過預(yù)處理的數(shù)據(jù)導(dǎo)入TensorFlow深度學(xué)習(xí)框架進(jìn)行處理。使用tf.nn.rnn_cell.BasicLSTMCell設(shè)置默認(rèn)的LSTM單元。采用單層LSTM結(jié)構(gòu),添加一個softmax層用于分類。初始化模型中的隱藏層神經(jīng)元數(shù)目為128,迭代次數(shù)為500次,模型的學(xué)習(xí)速率設(shè)置為0.001,優(yōu)化器采用Adam。
為了訓(xùn)練模型,需要定義一個損失函數(shù)來描述模型對人體行為狀態(tài)分類的精度,在此采用交叉熵作為損失函數(shù)。接下來采用隨機梯度下降方法進(jìn)行訓(xùn)練,優(yōu)化目標(biāo)設(shè)為交叉熵cross_entropy。迭代執(zhí)行訓(xùn)練操作,每次只使用一小部分?jǐn)?shù)據(jù)進(jìn)行隨機梯度下降,隨機從訓(xùn)練集中抽取200條作為一個mini-batch,即批大小batch_size設(shè)為200,這種方法比采用全樣本進(jìn)行訓(xùn)練的收斂速度要快。
完成訓(xùn)練后就可以對模型的準(zhǔn)確率進(jìn)行驗證,求出各種預(yù)測的人體行為狀態(tài)中概率最大的那一個,然后與實際的人體行為狀態(tài)標(biāo)簽相比較,如果一致則判別正確,否則判別錯誤。將測試數(shù)據(jù)的特征和標(biāo)簽輸入評測流程accuracy,計算模型中在測試數(shù)據(jù)集上的準(zhǔn)確率。
3 ? ?實驗結(jié)果及分析
3.1 ?實驗數(shù)據(jù)集
實驗數(shù)據(jù)由5名用戶使用華為Mate9的Android手機采集的三軸加速度傳感器數(shù)據(jù)組成。數(shù)據(jù)的采樣頻率為50 Hz,采集的數(shù)據(jù)分為靜止、行走、慢跑、上樓梯、騎自行車等5個日常行為動作。采集的數(shù)據(jù)一共有49 200條,其中42 150條作為訓(xùn)練數(shù)據(jù),7 050條作為測試數(shù)據(jù)。
3.2 ?實驗結(jié)果
訓(xùn)練集上的精確度變化過程如圖3所示,可以看出,隨著迭代次數(shù)的增加,精確度迅速上升,并穩(wěn)定保持在0.95以上。
通過對訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練生成模型,在測試數(shù)據(jù)集上用生成的模型進(jìn)行測試,得到靜止、走路、跑步、上樓梯和騎自行車5種人體行為狀態(tài)的綜合分類精度為91.5%。與常用的人體運動狀態(tài)識別分類算法相比,此方法不需要對原始數(shù)據(jù)進(jìn)行人工特征提取,分類精度較高[6-8]。
4 ? ?結(jié)語
本文提出了采用基于長短期記憶網(wǎng)絡(luò)的分類算法對人體運動狀態(tài)進(jìn)行識別,可實現(xiàn)對靜止、走路、跑步、上樓梯和騎自行車等狀態(tài)的識別。實驗結(jié)果可以看出,分類算法判別效果良好,分類精度超過90%,后續(xù)仍可以增加陀螺儀、磁力計等傳感器獲取更多的原始數(shù)據(jù),以獲得更高的分類準(zhǔn)確度。
[參考文獻(xiàn)]
[1]匡曉華,何軍,胡昭華,等.面向人體行為識別的深度特征學(xué)習(xí)方法比較[J].計算機應(yīng)用研究,2018(9):261-261,268.
[2]宿通通,孫華志,馬春梅,等.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的人體行為識別[J].天津師范大學(xué)學(xué)報(自然科學(xué)版),2018(6):61-65,79.
[3]陳波,余秋婷,陳鐵明.基于傳感器人體行為識別深度學(xué)習(xí)模型的研究[J].浙江工業(yè)大學(xué)學(xué)報,2018(4):25-31.
[4]吳軍,肖克聰.基于深度卷積神經(jīng)網(wǎng)絡(luò)的人體動作識別[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2016(S1):190-194.
[5]李鋒,潘敬奎.基于三軸加速度傳感器的人體運動識別[J].計算機研究與發(fā)展,2016(3):621-631.
[6]RODOLFO B.TensorFlow機器學(xué)習(xí)項目實戰(zhàn)[M].北京:人民郵電出版社,2017.
[7]王忠民,張琮,衡霞.CNN與決策樹結(jié)合的新型人體行為識別方法研究[J].計算機應(yīng)用研究,2017(12):3569-3572.
[8]黃文堅,唐源.TensorFlow實戰(zhàn)[M].北京:電子工業(yè)出版社,2017.