孫小華

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