李雪梅,車愛靜
(衡水學院 電子信息工程學院,河北 衡水 053000)
計步器作為一種運動檢測設備,可以計算人們行走的步數和距離以及估算消耗的熱量,幫助人們了解自己的運動情況,由此根據健康情況隨時調整運動量。目前的電子計步器計步精度普遍不高,在單純步行時計步準確率尚可,一旦運動狀態改變,如跑步、上下樓梯時,準確率則會大幅度下降。為了實現更準確的計步,本文提出一種基于加速度傳感器的自適應計步算法。
人體行走時可產生前向、側向以及垂直方向三個方向的加速度[1]。人體行走模型如圖1所示。

圖1 人體行走模型
從上圖可以看出,在行走過程中,人體軀干的加速度主要集中在水平和垂直方向,完整的一步大致經過蹬地、邁步、落地到支撐的4個步驟[2],在每個步驟中人體各個方向的加速度變化特點也不一樣,在一個邁步周期中,人體加速度變化趨勢如表1所示[3]。

表1 運動過程中人體加速度變化情況
通過步態加速度信號提取人步行的特征參數,行走時產生加速度的3個方向正好與3軸加速度傳感器的3個方向相對應。在任意時刻采集3軸加速度值,計算合加速度,發現人體的合加速度是呈周期性變化的,近似正弦波,因此計步問題可轉化為計算合加速度正弦波個數的問題。計步檢測算法關鍵就是針對不同運動狀態的步態產生的加速度信號,準確地計算出正弦波的個數。一般求合加速度的方法是對3軸加速度傳感器采集的數據進行如下計算[4]:
人在靜止不動的情況下,加速度值保持穩定,近似于重力加速度值,步行、上下樓梯以及跑步這幾種情況的加速度波形會呈現很明顯的周期性,與正三角函數波形相似,但不同運動方式的加速度波形又不完全一樣。跑步的時候,人體產生的加速度會比走路和上下樓梯時要大很多,而且由于跑步運動的速度較快,加速度變化的周期明顯比走路和上下樓梯小;而上下樓梯時,身體重心短時間內發生明顯變化,垂直方向加速度分量加大,所以產生的合加速度也會大于正常走路。
目前的計步算法有以下幾種:文獻[5-8]采用的是峰值檢測法,即通過采集人體行走過程的加速度數據,計算合加速度信號波形的峰值和谷值,由此計算有效的步數,此方法容易受噪聲影響而產生誤差。文獻[9-10]采用動態閾值判定法,即通過檢測正弦波的下降區間,來檢測正弦波的個數,以此計算步數,雖可減小噪聲等不利影響,但是在人體行走狀態發生改變時,檢測效果則不理想。文獻[11-12]采用零速率修正算法,就是利用人體在行走過程中的某個時刻,行走速率的最低極值會垂直于水平方向,即速率為零,通過計算零值的多少,來達到計步的目的,但是由于外部環境或元器件的誤差,使得計算的速率有時不為零,使計步出現誤差。
本文提出的自適應算法是在上述計步算法基礎上,根據人在步行、上下樓梯和跑步幾種狀態下每個邁步周期的加速度和時間的不同,將改進的人工免疫算法用于對人的運動狀態進行分類,即首先區分人體目前的運動狀態,然后再對已確定的狀態進行計步。整個過程分為訓練和計步兩個階段,如圖2所示。

圖2 自適應計步算法框圖
訓練階段,采集4種運動狀態下的數據,盡量保證樣本的多樣性,對3軸加速度傳感器的信號數據進行平滑濾波后,分別提取樣本中的特征[13]:波峰均值(PM)、波峰方差(PV)、單步間隔均值(IM)、單步間隔方差(IV)以及波峰之間的時間間隔方差(TIV),并使用人工免疫算法對特征進行分類訓練。計步階段,利用加速度傳感器采集實時信號數據,對采集的數據進行平滑濾波和特征狀態提取,然后將此特征跟樣本庫中的樣本特征進行對比,將5個特征中與樣本庫中運動狀態特征最接近的歸類為同種運動狀態。
人體運動狀態的判定最終是利用分類算法來實現,所以選擇哪種算法來進行分類很重要。目前最常用的是貝葉斯分類算法[14],貝葉斯算法的基礎是貝葉斯定理,P(A|B)表示事件B已經發生的前提下事件A發生的概率,叫做事件B發生下事件A的條件概率,其基本公式為:
貝葉斯分類算法的求解過程是計算待分類信號數據在各種類型中所出現的概率,并比較其大小,該信號數據在哪種類型的概率最大就認為此待分類的信號數據為哪一類別。但貝葉斯分類算法沒有自學習性,所以當待分類項和樣本有差異時,分類效果不佳。
生物免疫系統是生物體內抵御病原體(如病毒等)入侵,防止生物體受破壞的一種相互依賴又相互制約的生物學系統。在生物體內,有很多淋巴細胞和其他一些免疫細胞,將它們統稱為抗體。當有病原體即抗原侵害生物體時,體內的免疫系統一般都能迅速地選擇出一種或幾種能和該種抗原對抗的抗體去抵御入侵的病原體。如果有相同或相似的抗原侵害生物體時,那些能識別并能對抗該類抗原的抗體會馬上根據信號對其進行抵御。我們把抗體和抗原之間的這種結合強度稱為親和力,通過求解它們之間的親和力大小來獲得相似度,根據相似度的大小進行識別分類。
本文對親和力的計算采用歐氏距離,對隨機抗原Xi和隨機抗體Yj之間的歐氏距離[15]用下式進行計算:
定義affx,y=1-d(i,j)為抗原Xi和抗體Yj的親和力大小。抗原與抗體之間的親和力的大小與二者的匹配度成正比,親和力越大,匹配度越高,反之亦然。
基于人工免疫算法在分類和自學習方面的機理,同時具有自適應性和魯棒性的優點,對計步過程中判斷人體的運動狀態方面有重要借鑒意義,因此本文將人工免疫算法的原理應用到計步過程中。首先是樣本庫的生成。要想判斷人體目前的運動狀態,就要分別通過加速度傳感器對步行、上樓梯、下樓梯以及跑步這4種狀態進行數據采集。為了保證樣本庫的全面性,采集的數據要具有多樣性,最好涉及不同人群,包括兒童、男青年、女青年、老人等。然后對采集的數據進行預處理,分別提取出4種運動狀態的波峰均值(PM)、波峰方差(PV)、單步間隔均值(IM)、單步間隔方差(IV)以及波峰之間的時間間隔方差(TIV),形成初始樣本庫。計步開始時,采集加速度傳感器的信號數據,在數據中提取出加速度信號的5個特征值作為抗原,將樣本庫中的特征值作為抗體,運用人工免疫算法通過計算抗原和抗體的親和力大小,來判斷當前數據和哪種運動狀態的特征值最接近。它們的親和力越大,說明二者的匹配度越高,則歸為同類。然后再對已判斷出的運動狀態進行步數統計。表2為生物免疫系統與運動狀態分類算法的對照。

表2 生物免疫系統與運動狀態分類算法對照表
分別對步行、上樓梯、下樓梯以及跑步這4種狀態進行單獨以及組合實驗,測試結果如表3所示。

表3 測試結果
由表3可以看出,本文提出的基于加速度傳感器的自適應計步算法在步行運動狀態下計步準確率最高,可以達到98%,在上樓梯、下樓梯、跑步狀態以及組合運動狀態下準確率有所下降,但仍能達到96%以上。總體來說,這種自適應計步算法準確率比較高,克服了因運動狀態改變導致的計步準確率嚴重下降的缺點,是一種智能化、自適應性較強的算法。
本文提出的這種基于加速度傳感器的自適應計步算法首先采集步行、上下樓梯、跑步狀態下的數據,提取特征值,建立樣本庫,在計步階段將采集的數據提取特征值與樣本庫中的特征值進行匹配,判斷狀態后再進行計步。這種計步方法具有較高的精確度和魯棒性,是對當前計步算法智能化的改進和完善,有比較廣闊的應用前景。