段小虎, 蔣 剛, 留滄海
(西南科技大學(xué) 制造科學(xué)與工程學(xué)院,四川 綿陽621000)
運(yùn)動狀態(tài)識別為解決運(yùn)動監(jiān)測提供了技術(shù)基礎(chǔ),建立一種有效的人體步態(tài)識別方法,推斷人的運(yùn)動狀態(tài),進(jìn)而評估人的運(yùn)動狀態(tài),給人們提供運(yùn)動建議,引導(dǎo)人們制定健康計(jì)劃[1]。目前人體步態(tài)識別的研究主要有以下兩種途徑:1)基于圖片或視頻的運(yùn)動狀態(tài)識別[2,3],通過攝像頭采集人行走時的不同步態(tài)圖像進(jìn)行分類,這類技術(shù)可以應(yīng)用于戶外公共場所和室內(nèi)監(jiān)護(hù),對攝像頭的布置比較敏感,不能實(shí)現(xiàn)對個體長時間的運(yùn)動步態(tài)的跟蹤識別。楊文璐等使用Kinect傳感器建立下肢康復(fù)動作評估系統(tǒng),識別和引導(dǎo)受試者的康復(fù)動作[4]。2)基于傳感器的行走步態(tài)識別[5],通過帶有心率、加速度等傳感器的可穿戴設(shè)備,對個體行走步態(tài)的24 h跟蹤識別。張乾勇等設(shè)計(jì)了一種基于加速度信息與腳底壓力的下肢運(yùn)動信息采集系統(tǒng),對4種常見行為(走路、跑步、上樓和下樓)進(jìn)行識別[6]?;趥鞲衅鞯男凶卟綉B(tài)識別可以看作是一個時間序列分類問題,常用的算法有決策樹[5]、K最近鄰(K nearest neighbour,KNN)[7]、支持向量機(jī)(support vector machine,SVM)[8]、神經(jīng)網(wǎng)絡(luò)[9,10]等。
隨著深度學(xué)習(xí)的發(fā)展,深度學(xué)習(xí)算法已被應(yīng)用于模式識別的研究中,Zhan L等人使用深度神經(jīng)網(wǎng)絡(luò)替代人工提取步態(tài)特征進(jìn)行步態(tài)識別[11]。Sainath T N等人使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)和長短期記憶(long short term memory,LSTM)組合模型,用CNN提取語音抽象特征,LSTM進(jìn)行特征分類,取得了較好的效果[12]。張加加等人使用CNN與SVM融合的方法識別步態(tài)圖片[13]。深度學(xué)習(xí)雖然有較好的識別率,但其計(jì)算量較大,目前的便攜設(shè)備如手機(jī)等難以滿足深度學(xué)習(xí)算法的計(jì)算量。隨著智能手機(jī)的大規(guī)模普及,利用手機(jī)中內(nèi)置的傳感器識別人的日常行為具有可行性和應(yīng)用前景[14]。
本文采用手機(jī)加速度傳感器采集的數(shù)據(jù),首先對數(shù)據(jù)集進(jìn)行預(yù)處理和特征提取,再采用SVM、KNN和隨機(jī)森林算法對樣本的6種類別進(jìn)行訓(xùn)練、測試和驗(yàn)證。
本文的數(shù)據(jù)集是福坦莫大學(xué)無線數(shù)據(jù)挖掘?qū)嶒?yàn)室的公開數(shù)據(jù)集[15],該數(shù)據(jù)集使用手機(jī)加速度傳感器采集,共收集了步行、慢跑、上樓梯、下樓梯、靜坐、站立6種步態(tài),數(shù)據(jù)采樣頻率是20 Hz,采集過程中手機(jī)放在大腿的便攜包里。手機(jī)的坐標(biāo)軸方向和放置位置如圖1左圖所示,手機(jī)的放置方向固定,手機(jī)X軸、Y軸的放置方向如圖1右側(cè)所示,Z軸指向前進(jìn)方向。
圖1 手機(jī)的坐標(biāo)軸方向和放置位置
該數(shù)據(jù)集收集的樣本數(shù)量為1 098 212條,使用Python選取其中224 920條數(shù)據(jù)。6種步態(tài)的加速度傳感器波形如圖2所示。
圖2 6種步態(tài)的加速度傳感器波形
6種步態(tài)具有較為明顯的特征。
數(shù)據(jù)預(yù)處理主要包括數(shù)據(jù)平滑和數(shù)據(jù)分窗。
數(shù)據(jù)平滑使數(shù)據(jù)特征更加明顯并過濾噪點(diǎn)。使用2次三點(diǎn)均值平滑,公式如下
(1)
式中xi為傳感器某一軸的加速度值,xi+1,xi+2,xi+3,xi+4分別為之后加速度傳感器的4次采集值。采用2次三點(diǎn)均值平滑后,采樣點(diǎn)會減少4個,不影響總體數(shù)據(jù)分布。平滑后的步行波形如圖3所示。
圖3 原始數(shù)據(jù)平滑和加窗
采集到的數(shù)據(jù)為時間序列數(shù)據(jù),通過分窗把數(shù)據(jù)分組,以便對窗口內(nèi)的數(shù)據(jù)進(jìn)行特征提取。文獻(xiàn)[12]使用10 s的窗口,識別會有延遲,考慮到手機(jī)步態(tài)識別的實(shí)時性和健康人行走一步所需要的時間為0.4~0.6 s[16],本文選取的窗口大小為2 s。窗口含有的數(shù)據(jù)量為40條,原始數(shù)據(jù)分窗后共產(chǎn)生5 623個窗口,如圖3為在平滑后的數(shù)據(jù)上加窗。
為了使用機(jī)器學(xué)習(xí)算法進(jìn)行分類,需要人工提取特征。本文使用時域上的加速度作為樣本,提取均值、標(biāo)準(zhǔn)差、軸間的相關(guān)系數(shù)共9個特征。方差:X軸、Y軸、Z軸的方差,共3個;均值:X軸、Y軸、Z軸的平均值,共3個;相關(guān)系數(shù):XY軸、YZ軸、XZ軸的相關(guān)系數(shù),共3個;以一個窗口的40條數(shù)據(jù)作為一個樣本,統(tǒng)計(jì)9個特征。
X軸加速度的均值E(X)、方差σ(X)以及和Y軸的相關(guān)系數(shù)Corr(X,Y)計(jì)算如下
(2)
(3)
(4)
特征提取之后,步行所對應(yīng)的樣本數(shù)量為2 322條,慢跑為2 013條,上樓梯為586,下樓梯為310,靜坐為52,站立為 40條,樣本分布并不均衡,對于非均衡問題使用混淆矩陣和AUC評估。
本文采用SVM、KNN和隨機(jī)森林算法進(jìn)行分類和對比,使用Scikit-learn作為算法構(gòu)建工具。
常用分類性能度量指標(biāo)有正確率,混淆矩陣、受試者工作特征曲線(receiver operating characteristic curve,ROC)曲線。
正確率是指在所有測試樣例中錯分的樣例的比例。計(jì)算如下
(5)
正確率掩蓋了樣本如何被分錯的事實(shí),混淆矩陣能更好地幫助人們了解分類中的錯誤。本文使用多分類混淆矩陣。
ROC曲線是另外一個度量分類中非均衡問題的工具。對于不同的ROC曲線進(jìn)行比較的一個指標(biāo)是曲線下的面積,簡稱AUC。AUC能夠給出分類器的平均性能,一個完美分類器的AUC為1,而隨機(jī)預(yù)測的AUC為0.5。
使用70 %的樣本對SVM算法進(jìn)行訓(xùn)練,使用的核函數(shù)為線性核與高斯核。線性核函數(shù)的懲罰參數(shù)為C,C值大則對分類誤差的懲罰增大,C值小則對誤分類的懲罰減小。所以最小化目標(biāo)函數(shù)包含兩層含義:使‖w‖2/2盡可能的小,也就是間隔盡可能大,同時使分類點(diǎn)的個數(shù)盡可能的少。
3.2.1 線性核函數(shù)的分類實(shí)驗(yàn)
使用線性核函數(shù),選用不同C,使用十折交叉驗(yàn)證得出C和準(zhǔn)確率的關(guān)系如圖4所示。
圖4 C和準(zhǔn)確率的關(guān)系
當(dāng)C值選取到1.0時,平均準(zhǔn)確率較高。使用C=1.0作為參數(shù),取30 %的樣本作為測試集,生成的混淆矩陣如表1所示,平均準(zhǔn)確率為82.5 %。
表1 不同算法的混淆矩陣
3.2.2 高斯核函數(shù)的分類實(shí)驗(yàn)
選用不同C和γ,使用十折交叉驗(yàn)證得出高斯核函數(shù)SVM模型的C和γ與準(zhǔn)確率的關(guān)系如表2所示。
表2 C和γ與準(zhǔn)確率的關(guān)系
C對準(zhǔn)確率的影響較小,γ對準(zhǔn)確率的影響較大,所以重點(diǎn)關(guān)注γ值的選擇。取C=5,從0.005到10遍歷γ值之后,得出最優(yōu)γ值為0.01。使用30 %的數(shù)據(jù)作為測試集,得到的混淆矩陣如表1所示,平均準(zhǔn)確率為91.1 %。
KNN算法主要考慮2個要素:K值的選取和分類決策規(guī)則。K值表示距離待分類樣本距離最近的K個樣本。本文通過交叉驗(yàn)證選擇一個合適的K值。對于分類決策規(guī)則,一般使用多數(shù)表決法[18]。取30 %的樣本作為測試集,選擇K值為4,得到混淆矩陣如表1所示,平均準(zhǔn)確率為78.3 %。
常見的決策樹算法有 ID3、C4.5、CART[19]。本文用隨機(jī)森林算法建立多棵CART算法決策樹,針對每棵決策樹,從5 623個樣本中隨機(jī)有放回的抽取n個樣本,并從9個特征中隨機(jī)選取k個特征,建立決策樹。重復(fù)100次,建立100棵決策樹,通過投票決定步態(tài)樣本的類別。取30 %的樣本作為測試集,得到的混淆矩陣如表1所示,隨機(jī)森林算法的平均準(zhǔn)確率為88.9 %。
各個分類算法的準(zhǔn)確率、AUC和測試集計(jì)算時間如表3所示。
表3 算法的準(zhǔn)確率、AUC和測試集計(jì)算時間
可以看出,以三軸加速度的平均值、方差和相關(guān)系數(shù)作為特征的模型,平均準(zhǔn)確率達(dá)到80 %以上,但上下樓梯的準(zhǔn)確率較低。僅以數(shù)據(jù)集作為訓(xùn)練和測試難以說明實(shí)際中運(yùn)用手機(jī)加速度傳感器進(jìn)行步態(tài)識別的效果,本文接下來設(shè)計(jì)了驗(yàn)證實(shí)驗(yàn)。
為了驗(yàn)證特征提取的有效性,本實(shí)驗(yàn)利用實(shí)際生活中的場景進(jìn)行驗(yàn)證,用手機(jī)采集加速度,采集界面如圖5所示。
圖5 采集界面
每種步態(tài)各采集了4 000條數(shù)據(jù)組成了100個樣本。得到不同算法的準(zhǔn)確率百分比如表4所示。
表4 不同算法的準(zhǔn)確率百分比 %
驗(yàn)證實(shí)驗(yàn)的準(zhǔn)確率并沒有測試集高,尤其是上樓梯和下樓梯的準(zhǔn)確率較低,一方面是因?yàn)闊o法保證實(shí)驗(yàn)設(shè)備和實(shí)驗(yàn)場地與WISDM數(shù)據(jù)集完全相同;另一方面實(shí)際生活中上下樓梯時在樓梯的轉(zhuǎn)折處存在平地,導(dǎo)致上樓梯時會被誤識別為下樓梯,下樓梯時會被誤識別為走路或慢跑。以識別效果較好的SVM線性核為例,上樓梯的準(zhǔn)確率為57 %,識別錯誤的樣本中37 %被誤識別為下樓梯,6 %被誤識別為步行;下樓梯的準(zhǔn)確率為71 %,識別錯誤的樣本中9 %被誤識別為上樓梯,12 %被誤識別為慢跑,8 %被識別為步行。
站立和靜坐的狀態(tài)很好識別,因?yàn)檫@兩種活動的加速的幾乎不會變化。結(jié)果表明四種算法中相對表現(xiàn)較好的為兩個SVM算法。
本文提出了一種基于加速度傳感器的人體步態(tài)識別方法,使用常用的統(tǒng)計(jì)量作為模型特征,設(shè)計(jì)了4個算法模型來進(jìn)行實(shí)驗(yàn),能夠較好地識別步行、慢跑、靜坐、站立4種行走狀態(tài),但對上下樓梯的識別效果一般。算法的平均正確率達(dá)到80 %以上,并進(jìn)行了實(shí)驗(yàn)驗(yàn)證,說明了本文提出的特征提取及識別算法方法的有效性。另一方面,測試集的計(jì)算時間較短,與文獻(xiàn)[18]等提取步態(tài)峰度,偏度,峰值強(qiáng)度等特征[20]和文獻(xiàn)[10]等深度學(xué)習(xí)方法相比,本文特征提取方法較簡單和模型計(jì)算量較小。