歐陽銀濤,孫彥璽,屈敬朝,李雯雯,王 崇
(鄭州輕工業(yè)大學 建筑環(huán)境工程學院,河南 鄭州 450000)
隨著微電子機械系統(tǒng)(MEMS)、機器學習等技術的快速發(fā)展,同時人們對健康狀況的關注和對更高生活品質的追求,使得基于慣性傳感器的人體活動識別成為當下熱門的研究課題?;趹T性傳感器的人體活動識別技術在輔助老年人生活、醫(yī)療保健、體育運動和人機交互等方面[1]發(fā)揮著重要作用。用于人體活動數據采集的慣性傳感器主要由加速度計、陀螺儀和磁力計等構成,能夠準確采集人體活動時產生的加速度信號、角速度信號和磁場[2]。傳感器器件的發(fā)展促使慣性傳感器朝著小體積、低成本、低功耗、高靈敏度的方向不斷進步,使其被集成在智能手環(huán)、智能手機和可穿戴設備上成為可能,相信在未來,其在人體活動識別領域的應用也將越來越廣泛。
人體活動識別中常見的機器學習算法模型有決策樹、樸素貝葉斯、人工神經網絡、支持向量機、K最近鄰和隱馬爾科夫模型等[3]。文獻[4]提出了一種基于多傳感器的分布式人體定位方法,該多傳感器系統(tǒng)采用決策樹分類器(DT)、均值和方差特征,整體識別準確率達96.4%。文獻[5]提出了一種基于樸素貝葉斯分類器(NB)的早期手勢識別方法,實驗結果表明,所提出的新方法優(yōu)于許多專門為早期手勢識別而設計的更復雜的方法。文獻[6]建立了支持向量機(SVM)分類模型,用于體操動作的識別,該模型對6種體操動作的平均識別率超97%。文獻[7]采用K最近鄰分類器(KNN)進行人體活動識別,采用粒子群優(yōu)化算法(PSO-KNN)搜索KNN分類器中k參數的最優(yōu)值。實驗結果表明,優(yōu)化后的算法提高了對人體動作的識別精度。本文提出了基于BP神經網絡的人體活動識別方法,并在公開的DaLiAc(Daily Life Activities, DaLiAc)數據集上驗證了我們所提分類模型用于人體活動識別的有效性。
多層網絡的學習能力較單層感知器增強很多,但要訓練多層網絡,則需要更強大的學習算法。誤差逆?zhèn)鞑ィ‥rror Back Propagation, BP)算法是迄今為止最成功的神經網絡學習算法,現實任務中使用神經網絡時,大多使用BP算法進行訓練[8]。BP算法不僅可用于多層前饋神經網絡,還可適用于其他類型的神經網絡,通常所說的BP網絡一般是指用BP算法訓練的多層前饋神經網絡。三層BP神經網絡結構如圖1所示。
圖1 三層BP神經網絡模型
由圖1可知,輸入層由n個神經元組成,xi(i=1, 2,...,n)表示其輸入;隱層由q個神經元組成,zk(k=1, 2,...,q)表示其輸出;輸出層由m個神經元組成,yj(j=1, 2,...,m)表示其輸出。vki(i=1, 2,...,n;k=1, 2,...,q)表示輸入層到隱層的連接權值;wjk(k=1, 2,...,q;j=1, 2,...,m)表示隱層到輸出層的連接權值。
(1)隱層的輸入與輸出分別為:
(2)輸出層的輸入與輸出分別為:
基于傳感器的人體活動識別一般流程包括:數據預處理、窗口分割、特征提取及降維和分類識別。由于慣性傳感器采集的人體運動信號包含豐富的活動信息,而僅使用原始運動信號進行識別分類的準確度往往不高,因此常通過特征提取的方式從原始信號中提取主要特征以構成特征向量(特征向量包含了可以區(qū)分不同動作或活動的重要線索)。但當特征向量維數太高時將帶來維度災難問題,特征降維的操作將為降低特征向量的維度、簡化計算、縮短分類執(zhí)行時間帶來益處。
本研究利用公開的DaLiAc數據集作為實驗數據集[9],該數據集的采集過程由放置在人體右臀部、胸部、右手腕和左腳踝上的3個傳感器節(jié)點完成。每個傳感器節(jié)點由1個三軸加速度計(A1,A2,A3)和1個三軸陀螺儀(G1,G2,G3)組成。其中,加速度計的量程為±6g,手腕、胸部、臀部傳感器節(jié)點的陀螺儀量程為±500°/s,腳踝處傳感器節(jié)點的陀螺儀量程為±2 000°/s。實驗采樣率為204.8 Hz,對19名健康受試者(8位女性和11位男性,年齡(26±8)歲,身高(177±11)cm,體重(75.2±14.2)kg)采集了13種不同的人體活動。DaLiAc數據集的活動名稱及標簽見表1所列。
表1 人體活動名稱及標簽
本研究以時間長度為2 s的滑動窗口進行人體活動數據分割,取相鄰滑動窗口間50%的數據重疊,以防止窗口邊緣處信息丟失。提取分割后樣本數據的方差、平均絕對值、裕度因子、脈沖因子、均方根、峰值因子等時域參數作為分類特征,采用主成分分析法(PCA)降低特征參數的維度,從而簡化網絡計算,縮短訓練時間。采用獨熱編碼對13種人體活動標簽進行編碼,隨機打亂經過數據處理后的樣本數據的順序,以達到隨機選擇訓練集和測試集的目的。實驗時選取受試者活動數據的前80%作為訓練樣本集,剩下20%作為測試樣本集,并將所有樣本數據歸一化到[0,1]。
本文提出的BP神經網絡模型包括1個輸入層、2個隱藏層和1個輸出層,輸入和輸出節(jié)點的數量分別為50(主成分降維后的維度)和13(13種不同的人體活動),2個隱藏層的神經元個數分別為200和100,epochs設置為50,學習率lr設置為0.001,采用LM(Levenberg-Marquart, LM)反向傳播算法[10]進行網絡訓練。實驗時讀取數據集中第一個志愿者的人體活動數據,BP神經網絡的訓練和預測分別在訓練樣本集和測試樣本集上進行。其中,訓練集和測試集樣本個數分別為935和234,分別占總樣本數量的80%和20%。該模型在MATLAB上的仿真結果如圖2、圖3和圖4所示。
圖2 訓練樣本預測值與實際值的對比
圖3 測試樣本的預測值與實際值的對比
圖4 BP神經網絡模型測試集的預測分類混淆矩陣
圖2和圖3分別是建立的BP神經網絡模型在訓練集和測試集上的預測標簽值和真實標簽值對比曲線,從圖中可以明顯看出,該模型很好地實現了對13種人體活動的預測分類。圖4是BP神經網絡模型在測試集的預測分類混淆矩陣,其底側數字和左側數字的1~13分別代表待分類的13種人體活動和預測分類出的13種人體活動。最后一行格子(右下角格子除外)上方和下方的百分比分別表示模型對某一人體活動做出正確或錯誤分類的準確率和錯誤率。最后一列格子(右下角格子除外)上方和下方的百分比分別表示模型預測分類為某一人體活動的準確率和錯誤率。右下角格子上方的百分比代表模型對13種人體活動做出正確分類的總體準確率,下方的百分比為總體分類錯誤率。從混淆矩陣中可以看出,該方法對13種人體活動的總體識別率達到了96.6%,證明了我們所提方法的有效性。
本文建立了BP神經網絡模型用于人體活動識別,實驗中提取了樣本數據的方差、平均絕對值等時域參數作為分類特征,并采用PCA實現特征向量降維。利用DaLiAc公開數據集,通過對比樣本標簽的預測值和實際值,以及模型在測試集上預測分類混淆矩陣展現出的高識別率,表明了該模型用于人體活動識別的高效性。未來的研究中,應當充分考慮人體活動識別的時效性,找到識別速度和識別準確率的最佳平衡,更好地實現實時分類監(jiān)測。