孫宇航,周建欽,張學(xué)鋒
(安徽工業(yè)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,馬鞍山 243002)
隨著微型智能穿戴設(shè)備的普及與應(yīng)用,以及智能設(shè)備內(nèi)置處理器運算能力越來越強(qiáng),人體運動識別成為了當(dāng)代一個很有價值的研究.很多應(yīng)用包括健康和健身監(jiān)測[1,2]、運動記錄等都是基于該研究.此外,通過佩戴智能手環(huán)及攜帶智能手機(jī)可以實現(xiàn)對用戶進(jìn)行不同運動模式的記錄,這樣可以幫助用戶及時了解運動的情況,及時做出調(diào)節(jié),使用戶可以更加科學(xué)地安排各類運動的時間.運動手環(huán)上配備了越來越多的傳感器,比如溫度傳感器、加速度傳感器、壓力傳感器等,可以隨時隨地采集用戶的運動信息,這為我們研究人體運動模式提供了硬件支持.同時,伴隨著人工智能的發(fā)展,機(jī)器學(xué)習(xí),數(shù)據(jù)挖掘算法為我們提供了算法支持.不過市面上的智能手環(huán)大多只局限于計步和脈搏測量等簡單功能,現(xiàn)有的研究也大多只針對一些簡單動作如走路,上樓、下樓、靜止等,并沒有對球類和劃船等體育運動進(jìn)行識別記錄.
目前國內(nèi)外學(xué)者已經(jīng)展開對人體運動模式識別算法的研究,也取得了相應(yīng)的成果.張旭[3]利用表面肌電(SEMG)傳感器在相應(yīng)肌群皮膚表面捕獲的肌肉活動信息進(jìn)行了手勢命令的檢測與識別.該方法只針對手勢動作、頸部動作和腿部動作的識別進(jìn)行了研究,在運動識別種類上有很大的局限性,無法對一些常見戶外運動如球類運動、劃船等進(jìn)行識別.陳燕湄[4]利用計算機(jī)視覺相關(guān)算法,處理捕獲攝像機(jī)拍攝的手勢圖像并對圖像加以分析進(jìn)行手勢識別.此外,江超等[5]通過提取攝像頭動態(tài)手勢軌跡來識別動作,準(zhǔn)確率達(dá)到了90%以上.這兩種主要是基于圖像和視頻處理來設(shè)計運動識別算法,對拍攝圖片和視頻的背景要求比較苛刻,在復(fù)雜的環(huán)境中難以準(zhǔn)確捕捉人體的運動動作,而且基于圖像處理算法復(fù)雜度較高.張毅等[6]通過將加速度傳感器和陀螺儀相結(jié)合,融合兩個傳感器的數(shù)據(jù),再構(gòu)建隱馬爾科夫模型實現(xiàn)日常行為的識別.這種方法需要處理兩種傳感器的數(shù)據(jù),大大增加了系統(tǒng)的開銷,而且隱馬爾科夫模型只依賴于每一個運動狀態(tài),而傳感器輸出的數(shù)據(jù)為長序列,此模型對于長期運動識別并不理想.
本文描述一種對走路、跑步、羽毛球正手揮拍、劃船、打乒乓球5 種運動模式的識別方法.只需要佩戴單個智能手環(huán)即可實現(xiàn),不需要依賴復(fù)雜的硬件設(shè)施,手環(huán)如圖1所示.首先通過手環(huán)內(nèi)嵌的MPU-9250獲取5 種運動產(chǎn)生的加速度數(shù)據(jù).其次經(jīng)過低通濾波后對數(shù)據(jù)分段處理,確定每一個完整動作的開始位置和結(jié)束位置,再對每個動作進(jìn)行特征提取.本實驗分別在時域和頻域上提取特征,歸納了不同運動的不同特性,然后通過計算信息增益的方法進(jìn)行特征的規(guī)約,以去除非關(guān)鍵特征來提高整個系統(tǒng)的計算效率.最后選取支持向量機(jī)[7,8]、決策樹[9]、隨機(jī)森林算法分別對5 種模式分類,從中選取出最優(yōu)的分類模型.整個過程分為5 個模塊,各個模塊之間的流程如圖2所示.
圖1 佩戴示意圖
圖2 流程圖
MPU9250 芯片主要由三軸加速度傳感器,三軸角速度傳感器以及磁力計組成.3 個方向加速度單獨測量,輸出均為16 位的數(shù)字量.實驗主要分析由芯片內(nèi)的加速度傳感器采集的數(shù)據(jù).由于要識別的5 種運動相互之間有很大差異,所以需要頻率足夠高的傳感器來收集數(shù)據(jù).將內(nèi)置MPU9250 傳感器頻率設(shè)置為200 Hz.這樣的采集頻率足夠收集到5 種運動模式的細(xì)節(jié),會給后續(xù)的識別算法帶來更高的識別率[10].整個軟件系統(tǒng)客戶端使用MFC 框架完成,算法部分使用Python 語言編寫.
本實驗所有的數(shù)據(jù)先儲存在手環(huán)內(nèi)置的存儲卡中,以文本格式保存,文本內(nèi)的數(shù)據(jù)以向量集 <xi,yi,zi>,i=1,2,3,···的形式展現(xiàn).實驗過程中使用讀卡器讀取所有采集的數(shù)據(jù).
因為不同性別和年齡的人運動有很大的差異性,所以本次實驗的數(shù)據(jù)采集一共由實驗室5 名男性和5 名女性完成,年齡分布在20~45 歲.采集數(shù)據(jù)前統(tǒng)一規(guī)定手環(huán)的佩戴方向和位置(如圖1所示),用來消除不同穿戴方式對實驗的干擾,這樣采集的樣本更具科學(xué)性.原始數(shù)據(jù)采集完成后進(jìn)行手動標(biāo)記[11],用數(shù)字1,2,3,4,5 分別標(biāo)記走路、跑步、羽毛球正手揮拍、劃船以及打乒乓球動作.
加速度信號在時域中以數(shù)據(jù)流的形式呈現(xiàn),不能直接進(jìn)行特征工程.常規(guī)的方法是設(shè)置滑動窗口進(jìn)行處理,這種方法已經(jīng)被廣泛地應(yīng)用于人體運動狀態(tài)識別中.滑動窗口是一種簡潔有效的數(shù)據(jù)分割方法,這種方法的核心是確定滑動窗口的大小.如果窗口設(shè)置太大,可能會造成運動識別延遲,還可能導(dǎo)致一個窗口包含不同類型動作,造成訓(xùn)練誤差.如果窗口設(shè)置太小,會導(dǎo)致一個窗口中不能包含一個完整動作,導(dǎo)致運動信息的缺失,從而影響識別結(jié)果.文獻(xiàn)[12]采用了200個采樣點大小的窗口,并且相鄰的窗口之間沒有重疊;文獻(xiàn)[13]則將采樣窗口設(shè)置為128 個采樣點,相鄰窗口重疊50%.近年來許多學(xué)者經(jīng)過多次實驗研究,發(fā)現(xiàn)將滑動窗口重疊率設(shè)置為50%是一種比較有效的方法.
實驗綜合分析了5 種運動模式的特點并統(tǒng)計完成每種動作需要的時間,選用4 s 作為一段動作的默認(rèn)時長,為一個滑動窗口,寬度為800 個采樣點,每兩個相鄰窗口重疊50%.以走路X 方向加速度數(shù)據(jù)為例,選用4 s 作為窗口的寬度,如圖3,這樣規(guī)整了不同動作的加速度信號的長度,對接下來的特征提取和運動識別尤為重要.
相對于機(jī)器運動,人體運動較為緩慢,主要包含低頻信號,在實際應(yīng)用中,加速度信號不可避免地會受到硬件電路、傳輸噪聲、擾動頻率噪聲和抖動的影響,輸出的信號往往夾雜著很多無關(guān)信號.當(dāng)加速度為零時,輸出的結(jié)果不為零,而是一個非零向量的輸出areal,即測量值ameasured如式(1)所示.
式中,areal為真實的加速度值,aerror為傳感器的測量誤差.為了使測量的加速度信號更接近真實值,實驗采用了自適應(yīng)的平滑濾波方法[14].
圖3 信號加窗處理示意圖
常見的平滑濾波方法有兩種:滑動平均濾波方法以及一階慣性低通濾波方法[15].滑動平均法雖然簡單,但是實驗證明實用性較差.在靜態(tài)情況下,一階慣性低通濾波效果明顯,但是在運動狀態(tài),相位滯后,所以原始的方法不適合動態(tài)信號的處理,為了適應(yīng)信號的實時性,采用增加閾值的方式去更新濾波參數(shù).定義新的輸出值為當(dāng)前采樣值和上一次輸出值進(jìn)行加權(quán),得到本次輸出值.具體算法如式(2)所示.
式中,Y(n)為當(dāng)前濾波輸出值;m為濾波系數(shù)(通常是一個大于0 小于1 的數(shù)),它對濾波的效果影響很大;X(n)為本次采樣值;Y(n-1)為上次濾波輸出值.可以看出,本次采樣值對于本次輸出值只占很小的比例,但能夠起到一定的修正作用,這樣做使加速度數(shù)據(jù)保持較大的慣性,模擬了低通濾波的功能.接下來引入判定運動狀態(tài)的條件閾值 Δa,根據(jù)式(3)和式(4)進(jìn)行修改濾波系數(shù)m,即:
式中,Δ為本次濾波輸出值和上次濾波輸出值的差;Δa為運動狀態(tài)閾值;k0為默認(rèn)參數(shù).
選取走路模式X 方向某段8 s 原始數(shù)據(jù)為例,采用上述濾波算法進(jìn)行濾波處理,濾波前后波形圖如圖4和圖5所示.
圖4 濾波前的加速度信號
圖5 濾波后的加速度信號
對原始的加速度信號進(jìn)行分割和平滑之后,接下來從時域和頻域中提取相關(guān)的特征量[16].根據(jù)X,Y,Z 3 個方向上的加速度分別從時域和頻域中提取了34 個特征量,包括3 個方向加速度的均值、合成加速度均值、3 個方向加速度方差、3 個方向加速度最大值、3 個方向加速度最小值、3 個方向加速度兩兩相關(guān)系數(shù)、3 個方向加速度峰谷值、合成加速度峰谷值、合成加速度方差、以及頻域中通過小波變換得到的加速度信號的能量值.
式中,ax,k,ay,k,az,k為一個窗體中第k個采樣點得到的X,Y,Z 三軸加速度信號;n為每個窗口采樣點數(shù).
合成加速度均值能夠體現(xiàn)某一個運動模式的綜合劇烈程度.計算公式如下:
式中,ak為窗口中第k個采樣點三軸合加速度的模.將ak帶入式(9)可得合成加速度均值aˉ.
3個方向加速度標(biāo)準(zhǔn)差,以X 方向為例,加速度方差 σ2x計算公式如下:
同理可得σ2y,σ2z:
合成加速度方差σ2的算式為:
加速度峰谷值表示在一個窗口中,加速度的最大值和最小值的差值,用apv表示:
利用式(14)可以計算出合加速度的峰谷值以及3 個方向加速度峰谷值.
3個方向加速度兩兩相關(guān)系數(shù)分別為:
小波的組成成分是一組小波基函數(shù),它可以在局部范圍內(nèi)對信號時間(空間)域和頻率(尺度)域的特征進(jìn)行描述,這也是小波變換相對于傅里葉變換的優(yōu)勢.在任意的時間域或空間域中,小波分析都能夠很有效地對信號進(jìn)行分析,自適應(yīng)信號分析的要求,有利于聚焦信號的細(xì)節(jié),而這些特性對信號分析是尤為重要的.常用的小波函數(shù)有Haar、Daubechies (dbN)小波等15 種.信號經(jīng)過小波分析之后可得到在各個層級中的能量特征.信號f(t)的二進(jìn)小波分解可表示為:
其中,A是近似信號,為低頻部分;D是細(xì)節(jié)信號,為高頻部分,此時信號的頻帶分布如圖6所示.
圖6 多尺度分解的信號頻帶分布
信號的總能量為:
選擇第j層的近似信號和各層的細(xì)節(jié)信號的能量作為特征,構(gòu)造特征向量[17]:
本次實驗直接調(diào)用Python 中的PyWavelets 信號處理庫,設(shè)置j為2,對加速度信號進(jìn)行特征提取,輸出特征向量:
特征選擇是一個重要的“數(shù)據(jù)預(yù)處理”過程,能夠去除與當(dāng)前學(xué)習(xí)任務(wù)無關(guān)的特征,以減輕學(xué)習(xí)負(fù)擔(dān),降低學(xué)習(xí)難度.常用的特征選擇算法可分為4 種:過濾式(filter)、包裹式(wrapper)、嵌入式(embedding)以及基于信息增益的方法.由于前三類算法比較復(fù)雜,不管是內(nèi)存開銷還是時間開銷都很大,所以實驗采用基于信息增益(Information Gain,IG)的特征選擇算法[18],這也是一種常用且高效的特征選擇算法.
計算信息增益首先定義信息熵(information entropy).信息熵是一般用作反映樣本集合純度的一種指標(biāo).假設(shè)pk(k=1,2,···,|y|)為當(dāng)前樣本集合D中第k類樣本所占的比例,則D的信息熵定義為:
式中,|y|代表標(biāo)簽類別個數(shù),信息熵Ent(D)值越小,則集合D的純度越高.下面定義信息增益.
由于從信號中提取的特征均為連續(xù)值,連續(xù)值屬性的可取值數(shù)目不是有限的,因此不能直接根據(jù)連續(xù)值來直接計算信息增益,實驗采用連續(xù)值離散化技術(shù).給定樣本集D和連續(xù)屬性v,假定v在D上出現(xiàn)了n個不同的取值{v1,v2,···,vn},基于劃分點t可將D分為子集D-t和D+t.對相鄰的屬性取值vi和vi+1來說,t在區(qū)間[vi,vi+1)中取任意值所產(chǎn)生的劃分結(jié)果相同.定義包含n-1 個元素的候選劃分點集合.
把區(qū)間[vi,vi+1)的中位點作為候選劃分點,選取最優(yōu)的劃分點進(jìn)行樣本集合的劃分,即:
式中,Gain(D,v,t)是樣本集D基于劃分點t二分后的信息增益,這樣我們將每個特征v帶入,得到所有特征的信息增益值,從而計算出每個特征的重要性值.實驗我們直接使用scikit-learn 中的feature_importance_庫函數(shù)計算所有特征的重要性值,根據(jù)計算結(jié)果我們從中選擇出了16 個特征,如表1所示.
由表1數(shù)據(jù)可得,Y 方向加速度標(biāo)準(zhǔn)差重要性值最大,體現(xiàn)了不同運動模式左右方向上的偏離程度.Z 方向加速度最大值能夠很準(zhǔn)確地區(qū)分豎直方向上加速度變化幅度較大或較小的運動.X 方向加速度最小值能夠體現(xiàn)水平方向最小的運動力度.同樣的,其它13 個特征都在不同的方面對運動數(shù)據(jù)的分類起著至關(guān)重要的作用.以上16 個特征的重要性值都是基于訓(xùn)練樣本計算而來,而訓(xùn)練樣本由不同年齡和不同性別的人產(chǎn)生的運動加速度數(shù)據(jù)整理而來,所以通過以上16 個特征來構(gòu)建出的分類模型對于不同類型人的運動識別均有很強(qiáng)的泛化能力和較好的普適性.其次,本文的特征選擇算法采用了特征子集搜索和評價機(jī)制相結(jié)合的方式得出特征的重要性值并篩選出最優(yōu)特征子集,使訓(xùn)練出的分類模型擁有更高更穩(wěn)定的識別準(zhǔn)確率.
表1 特征重要性值
第3 節(jié)我們已經(jīng)提取并計算出用于分類算法的特征,并計算出特征重要性值,選擇出16 個比較重要的特征.利用被選取的特征值,制作訓(xùn)練樣本集和測試樣本集.實驗中我們根據(jù)樣本的數(shù)量和樣本特征的特性,選取支持向量機(jī)、決策樹、隨機(jī)森林3 種分類模型進(jìn)行了比較實驗,分別調(diào)整模型參數(shù)使分類模型對于5 種運動模式的分類準(zhǔn)確度達(dá)到最優(yōu).對每一個分類模型進(jìn)行了性能的評估,并結(jié)合在測試樣本集上的準(zhǔn)確度來判別最優(yōu)模型.
選用支持向量機(jī)進(jìn)行分類是因為這個模型適用于樣本量較小的數(shù)據(jù)集,而且運算速度快,運算復(fù)雜度低.決策樹算法主要基于概率統(tǒng)計,不需要對數(shù)據(jù)進(jìn)行歸一化,直接使用原始的數(shù)據(jù)樣本進(jìn)行計算,避免了數(shù)據(jù)的失真,且魯棒性很強(qiáng).
隨機(jī)森林是基于Bagging 的擴(kuò)展變體,是一種可以同時兼顧分類和回歸的機(jī)器學(xué)習(xí)算法.通過引入兩次隨機(jī),使得該模型在訓(xùn)練樣本較少時不容易陷入過擬合.這樣即使在實驗中無法保證能夠整理出足夠的運動數(shù)據(jù)集進(jìn)行模型訓(xùn)練,也能確保最終的模型在測試數(shù)據(jù)識別上的表現(xiàn)比支持向量機(jī)和決策樹更加穩(wěn)定.其次,隨機(jī)森林在訓(xùn)練過程中能夠檢測到特征之間的影響,所以給定運動數(shù)據(jù)集,該模型就能夠判斷某種運動各個特征之間的相互影響,更加準(zhǔn)確地識別當(dāng)前運動的類別.最后,相比較支持向量機(jī)和決策樹,隨機(jī)森林更適合解決樣本不均衡問題.本文中5 種運動模式的樣本數(shù)并不是均衡的,所以使用隨機(jī)森林能夠帶來更好的效果.圖7的柱狀圖表示3 種分類算法分別針對5 種運動模式進(jìn)行分類的準(zhǔn)確率以及對于5 種運動模式的統(tǒng)計比較.
圖7 3 種分類模型的動作模式識別準(zhǔn)確率
由圖7可以得出結(jié)論.3 種分類模型對于劃船動作的識別都為100%,支持向量機(jī)對于打羽毛球動作的識別準(zhǔn)確率較高,效果好于另外兩個模型,而決策樹則是在乒乓球動作識別中表現(xiàn)最好.總體來說,隨機(jī)森林算法對所有運動模式識別率都很高,且平均準(zhǔn)確率最高,達(dá)到97.37%,所以系統(tǒng)最終采用隨機(jī)森林作為分類模塊.圖8~圖10分別為3 種分類算法的混淆矩陣.
從混淆矩陣中可以看出,走路和跑步可能被誤識別為打羽毛球,少量打羽毛球數(shù)據(jù)被誤分類為走路和跑步.個別打乒乓球動作被誤分類為走路,總體上隨機(jī)森林表現(xiàn)最佳.
圖8 支持向量機(jī)算法產(chǎn)生的混淆矩陣
圖9 決策樹算法產(chǎn)生的混淆矩陣
圖10 隨機(jī)森林算法產(chǎn)生的混淆矩陣
本文我們是對走路、跑步、打羽毛球、打乒乓球、劃船5 種運動模式識別的研究.首先參與采集數(shù)據(jù)的實驗人員分別做5 種動作并記錄數(shù)據(jù),然后對數(shù)據(jù)進(jìn)行預(yù)處理,根據(jù)運動模式的特點提取出對分類貢獻(xiàn)比較大的特征,并通過特征選擇選取最終貢獻(xiàn)值較大的特征,之后使用分類算法進(jìn)行運動模式的識別.從而實現(xiàn)對用戶行為的記錄和分析.
獲取原始數(shù)據(jù)之后,首先對數(shù)據(jù)進(jìn)行了預(yù)處理,包括濾波、數(shù)據(jù)加窗等預(yù)處理.特別在加窗處理中,我們采用相鄰的兩個窗口重疊50%,以保證樣本的連續(xù)性.綜合分析了信號在時域和頻域的特征,選取了16 個最重要的特征,又保證了較高的識別率.我們將同樣的測試數(shù)據(jù)分別輸入到支持向量機(jī)、決策樹、隨機(jī)森林中,結(jié)果顯示隨機(jī)森林算法準(zhǔn)確率最高.
本文研究的人體運動識別算法可直接應(yīng)用于智能手環(huán)中,通過自動分析數(shù)據(jù),識別并統(tǒng)計該用戶一天內(nèi)的各類運動,將信息反饋給用戶,這種能識別多運動模式的手環(huán)比單一的計步手環(huán)提供更加豐富的運動信息.在接下的研究中來將繼續(xù)優(yōu)化算法,減小識別誤差,同時識別更多的運動模式.