魏 芬,鄧海琴
(南京航空航天大學(xué)金城學(xué)院教學(xué)實驗中心,南京211156)
基于加速度傳感器的運動步數(shù)檢測算法研究
魏芬*,鄧海琴
(南京航空航天大學(xué)金城學(xué)院教學(xué)實驗中心,南京211156)
為解決人體運動過程中手腕擺動對步數(shù)檢測干擾的影響,提出了一種區(qū)域峰值步數(shù)檢測算法。該算法根據(jù)人體運動時的加速度信號特征,使用高斯濾波去除噪聲對加速度信號的影響,基于三軸合加速度數(shù)據(jù)采用區(qū)域峰值檢測方法判定有效步伐,同時利用提取的加速度信號幅值的變化量作為特征值,準(zhǔn)確實現(xiàn)了穩(wěn)定狀態(tài)下的跑步、走路兩種動作的自動識別,并根據(jù)人體不同的運動狀態(tài)自動調(diào)整采樣速率,有效降低了系統(tǒng)功耗。實驗結(jié)果表明,區(qū)域峰值算法相比于動態(tài)閥值和單一峰值的算法具有更高的步數(shù)檢測精確度,可達(dá)到95%以上。
傳感器應(yīng)用;步數(shù)檢測;信號矢量幅值;區(qū)域峰值檢測;加速度傳感器
隨著人們對健康體育鍛煉的越來越重視,對日常運動量進(jìn)行量化就成為了一個關(guān)鍵因數(shù)。計步器是一種可以定量監(jiān)測人體運動量的熱門戶外設(shè)備,通過內(nèi)含的加速度傳感器計算人體行走的步數(shù),進(jìn)而計算出運動距離和消耗的卡路里數(shù),方便人們準(zhǔn)確把握自身的運動情況。
加速度傳感器采集的是三軸加速度的數(shù)據(jù),有文獻(xiàn)建議把加速度變化最大的那個軸作為有效軸來表征人體運動狀態(tài),然后利用有效軸的數(shù)據(jù)進(jìn)行分析和計算步數(shù)[1],但是由于加速度的有效軸在運動過程中會不停的變換[2],從而導(dǎo)致計步的不準(zhǔn)確。本文在對加速度傳感器的三軸數(shù)據(jù)進(jìn)行融合的基礎(chǔ)上,提出了一種區(qū)域峰值檢測方法來計算有效步數(shù),該算法可以有效提高腕式計步器步數(shù)檢測的精確度,給上位機軟件在計算用戶消耗的能量時提供更加詳細(xì)、準(zhǔn)確的數(shù)據(jù),為用戶提供更加優(yōu)質(zhì)的體驗。
人體在跑步或走路運動時會產(chǎn)生3個方向(側(cè)向、前向和豎向)的加速度分量,這3個加速度分量相互正交,對應(yīng)加速度傳感器3個軸—x、y、z軸上的加速度[3],圖1所示為一次跑步運動時x、y、z軸上測得的波形。

圖1 三軸加速度數(shù)據(jù)曲線圖
由于獲得的三軸加速度信號中包含著許多不同類型復(fù)雜的噪聲信號和手腕抖動產(chǎn)生的噪聲,本文首先采用高斯濾波器[4]對信號進(jìn)行預(yù)處理,去除噪聲。高斯濾波器在頻率域是一個十分有效的低通濾波器,用ax(t)、ay(t)、az(t)分別表示t時刻x軸、y軸、z軸的加速度信號,記A(t)=[ax(t),ay(t),az(t)],則高斯濾波公式為


圖2 高斯濾波前后加速度波形
對于腕式穿戴的計步器,由于運動過程中手腕的翻轉(zhuǎn)而導(dǎo)致加速度數(shù)據(jù)的有效軸不停的變換,單純的提取某一個軸的加速度數(shù)據(jù)不足以表示真正的運動特征。但是,無論如何穿戴計步器,x、y、z 3軸中總有至少一個軸具有相對較大的周期性加速度變化。因此,本文采用三軸合一的方法,計算三軸加速度的信號矢量幅值SVM(Signal Vector Magnitude)[5-6]來確定加速度,以提高計步的準(zhǔn)確性,計算公式如下:

其中,ax(t)、ay(t)、az(t)分別為t時刻加速度傳感器在x、y、z軸所測得的數(shù)據(jù)。圖3為跑步狀態(tài)時測得的三軸SVM輸出,從圖3可以看出,三軸合一后的SVM數(shù)據(jù)波形與實際步數(shù)相對應(yīng),一個波峰的變化正好對應(yīng)一個步伐。

圖3 三軸合一SVM輸出
從文獻(xiàn)中分析,現(xiàn)有的步數(shù)檢測算法大致有2種:一種是文獻(xiàn)[1]中提出的動態(tài)閥值判斷方法[1],該方法通過檢測加速度曲線從上往下跨過動態(tài)閥值,加速度曲線的斜率為負(fù)時判定為有效步伐。但這種算法在判斷走路的有效步伐時會出現(xiàn)漏檢的現(xiàn)象,如圖4所示,由于走路時手臂向前擺動時加速度幅值變化較大,而向后擺動時幅值變化較小,動態(tài)閥值不能有效捕捉到所有小幅值變化的波形,如圖中圓圈所示處,導(dǎo)致漏檢步伐。另一種是文獻(xiàn)[7]提出的峰值檢測方法,當(dāng)加速度曲線斜率由正到負(fù)變化時出現(xiàn)峰值[7],但是單純地依靠峰值判斷有效步伐要求加速度波形非常平滑,否則任何干擾所引起的微小波動都會導(dǎo)致找到的峰值遠(yuǎn)遠(yuǎn)大于實際步伐數(shù),引起誤判。

圖4 動態(tài)閥值漏檢步伐示意圖
為解決以上2種步數(shù)檢測算法的不足,本文基于峰值檢測的方法提出一種綜合性的區(qū)域峰值判斷方法,從以下3種特征進(jìn)行判決,只有同時滿足了這3種特征,才判定為有效步伐。
(1)區(qū)域峰值檢測設(shè)人體運動時采集到的加速度傳感器數(shù)據(jù)經(jīng)過三軸合一和濾波處理后的加速度為a(t),則定義u=a(t)-a(t-1),v=a(t+1)-a(t),u和v為有正負(fù)值的標(biāo)量,當(dāng)u或v為正時,表示斜率為正,加速度數(shù)據(jù)呈現(xiàn)上升趨勢;當(dāng)u或v為負(fù)時,表示斜率為負(fù),加速度數(shù)據(jù)呈現(xiàn)下降趨勢。因此,當(dāng)在t時刻,u>0且v<0時,加速度數(shù)據(jù)曲線斜率由正變?yōu)樨?fù),出現(xiàn)數(shù)據(jù)轉(zhuǎn)折點,但僅憑斜率的變化來判斷峰值會太過敏感,容易受到一些小尖刺干擾信號的影響。本文對其進(jìn)行改進(jìn),采用區(qū)域峰值檢測方法,即設(shè)置滑動查找窗口,窗口設(shè)置過大,會導(dǎo)致漏檢峰值信號;窗口設(shè)置過小,容易將干擾信號誤判為峰值信號[8],經(jīng)過實際多次分析測試,本文把滑動窗口設(shè)置為7,即在t時刻的左右各取3個采樣點,當(dāng)(a(t-1)>a(t-2)>a(t-3)且a(t+1)>a(t+2)>a(t+3))時,可以正確判斷出峰值。綜上所述,當(dāng)在t時刻加速度a(t)同時滿足

時,則確定當(dāng)前t時刻為峰值點,否則,則為干擾信號。用類似的方法可以查找出波谷。當(dāng)查找到一對峰谷值時認(rèn)為出現(xiàn)一個步伐,該步伐是否為有效步伐則需根據(jù)幅度閥值和時間窗口閥值進(jìn)一步判定。
(2)在檢測出峰谷值后,提取加速度數(shù)據(jù)a(t)的相鄰波峰和波谷值的差作為特征值,記為CSVM(Change of SVM),計算公式如下:

其中ap(t)為t采樣時刻波峰值,av(t-k)為t-k采樣時刻波谷值,k為相鄰波峰波谷值之間的采樣點數(shù)。為消除由于人體運動過程中的因手腕抖動等原因而導(dǎo)致的無效峰谷值數(shù)據(jù),經(jīng)過多次測試確定,當(dāng)CSVM>0.2 gn時,為一次有效峰谷值數(shù)據(jù),否則,予以丟棄。
(3)當(dāng)系統(tǒng)由于非正常運動狀態(tài)的原因而快速或緩慢地振動時,也會被誤認(rèn)為是有效步伐。利用時間窗口可以排除這種無效振動。一般人體最快跑步速度為每秒5步,最慢走路為每2 s 1步[9],兩個有效步伐的時間間隔在[0.2 s~2.0 s]之間,當(dāng)采樣率為50 Hz時,兩個有效步伐的采樣點次數(shù)間隔值在[10~100]之間;當(dāng)采樣率為25 Hz時,有效步伐采樣點次數(shù)間隔值在[5~50]之間。系統(tǒng)實時更新兩步之間的采樣點次數(shù),如果落在有效間隔值范圍之外,則視為無效擾動,不計入步數(shù)寄存器。
利用加速度傳感器的輸出估計人體運動的能量消耗已經(jīng)被廣泛接收,對人體運動步態(tài)的自動識別在對能量進(jìn)行精確估計時能提供有價值的信息[10]。人體在做周期性動作的時候,波峰波谷的差值呈現(xiàn)規(guī)律性,當(dāng)速度快的時候加速度幅度變化比較大,而速度慢的時候加速度變化比較小,不同狀態(tài)下SVM的幅值變化穩(wěn)定在一定的范圍之內(nèi)。圖5為實驗中跑步-走路-靜止站立的加速度SVM和CSVM的效果圖,本文以CSVM為特征值自主進(jìn)行運動步態(tài)識別。從圖中可知,當(dāng)人體靜止站立時,加速度的幅值變化(CSVM)很小,趨近于0。算法中設(shè)定以2 s為一個判斷周期,當(dāng)CSVM的值穩(wěn)定在>1.2 gn范圍內(nèi)時判定人體為跑步狀態(tài),當(dāng)CSVM的值穩(wěn)定在0.2 gn~1.2 gn范圍內(nèi)時判定為走路狀態(tài),當(dāng)CSVM的值穩(wěn)定在<0.2 gn范圍內(nèi)時判定為靜止站立狀態(tài)。

圖5 加速度SVM和CSVM波形圖
系統(tǒng)采用區(qū)域峰值判斷方法進(jìn)行步數(shù)檢測,在此基礎(chǔ)上,為有效減少系統(tǒng)的功耗,算法中采用了根據(jù)人體的運動狀態(tài)(跑步或走路)自適應(yīng)調(diào)節(jié)數(shù)據(jù)采樣率的方法[2],當(dāng)處于跑步這種高速運動時,采用高采樣率以保證計數(shù)的準(zhǔn)確性,當(dāng)處于走路這種低速運動時,采用較低的采樣率。
自適應(yīng)采樣速率調(diào)整是指根據(jù)前期對人體運動狀態(tài)(跑步或走路)的判定,動態(tài)地調(diào)整采樣速率。自適應(yīng)采樣速率步數(shù)檢測方法的流程圖如圖6所示。由于人體運動時身體的振動頻率范圍在0~20 Hz之間[11],初始化時采用50 Hz的高速采樣速率,每秒采集50個數(shù)據(jù),即初始化時默認(rèn)系統(tǒng)處于跑步的運動狀態(tài)。然后,根據(jù)CSVM的特征值對人體的運動狀態(tài)進(jìn)行判定,當(dāng)系統(tǒng)判定為處于走路狀態(tài)時,則認(rèn)為當(dāng)前為低速運動狀態(tài),在下一個周期內(nèi)將加速度采樣率設(shè)置為25 Hz;當(dāng)系統(tǒng)判斷為跑步狀態(tài)時,則認(rèn)為處于高速運動狀態(tài),在下一周期內(nèi)將采樣率設(shè)置為50 Hz。如此循環(huán)往復(fù),不斷根據(jù)人體的運動狀態(tài)實時調(diào)整采樣率,以達(dá)到降低系統(tǒng)功耗、節(jié)省系統(tǒng)資源的目的。

圖6 步數(shù)檢測流程圖
6.1測試平臺
實驗測試平臺采用STM32F103C8為CPU,傳感器選用MPU-6050模塊,外加HM-11藍(lán)牙模塊和LED顯示屏組成。MPU6050內(nèi)集成了三軸MEMS陀螺儀和三軸MEMS加速度計,加速度計可選量程為±2 gn,±4 gn,±8 gn,±16 gn[12],實驗時選用量程±4 gn。MPU6050和CPU之間采用I2C的總線接口,系統(tǒng)工作時,由MPU6050實時采集x、y、z 3軸上的加速度數(shù)據(jù),經(jīng)過計步算法處理后得到人體運動數(shù)據(jù),接著將數(shù)據(jù)打包后通過藍(lán)牙模塊傳輸給Android智能手機,Android手機上安裝有上位機軟件程序,上位機采用Java編寫顯示界面,將接收到的數(shù)據(jù)進(jìn)行處理整合后顯示人體運動數(shù)據(jù)。系統(tǒng)的硬件結(jié)構(gòu)和顯示界面如圖7所示。

圖7 系統(tǒng)的硬件結(jié)構(gòu)與顯示界面
6.2實驗結(jié)果分析
實驗抽取多名測試者作為實驗對象(記為A、B、C、…),實驗時將計步器戴于手腕上,按照如下連續(xù)動作進(jìn)行:靜止站立—跑步—走路—靜止站立,分別測試一個連續(xù)動作中跑步和走路的步數(shù)。測試時將本文的區(qū)域峰值步數(shù)檢測方法、動態(tài)閥值方法和單一峰值檢測方法依次燒寫到CPU中,分別進(jìn)行步數(shù)檢測。測試結(jié)果如表1所示。

表1 測試算法比較
表中計步精確度計算公式為:

從表1測試結(jié)果可知,對于跑步運動來說,3種計步算法的精確度都比較高;而當(dāng)走路的時候,動態(tài)閥值和單一峰值的計步方法精確度較低,這是因為動態(tài)閥值的方法會出現(xiàn)如圖4中的情形,導(dǎo)致步數(shù)漏檢,而單一峰值的方法會將一些微小的振動干擾也記入步數(shù)中,導(dǎo)致測試結(jié)果不準(zhǔn)確。對比測試結(jié)果發(fā)現(xiàn),利用本算法設(shè)計的腕式計步器在走路和跑步兩種狀態(tài)下的測量值與其真值的接近程度較高,步數(shù)檢測的誤差在可以接收的范圍內(nèi),進(jìn)一步說明了本文設(shè)計算法的可行性和準(zhǔn)確性。
本文設(shè)計了一套腕式計步器步數(shù)檢測方法,根據(jù)三軸加速度的信號幅值SVM及其變化量CSVM來實時自動判斷人體處于跑步/走路的運動狀態(tài),并分別進(jìn)行步數(shù)檢測。實驗結(jié)果表明,該算法在腕式計步器的步數(shù)檢測平均精確度在95%以上,具有準(zhǔn)確度高、抗干擾能力強和低功耗等優(yōu)點。
[1]Neil Zhao.Full-Featured Pedometer Design Realized with 3-Axis Digital Accelerometer[J].Analog Dialogue,2010,44(2):17-21.
[2]李越,黃凱,張曉濛,等.基于加速度傳感器的無按鍵計步腕表低功耗算法[J].傳感器與微系統(tǒng),2015,34(3):144-147.
[3]卓叢彬,楊龍頻,周林,等.基于MPU6050加速度傳感器的跌倒檢測與報警系統(tǒng)設(shè)計[J].電子器件,2015,38(4):821-825.
[4]薛洋.基于單個加速度傳感器的人體運動模式識別[D].廣州:華南理工大學(xué),2011.
[5]Ermes M,Parka J,Mantyjarvi J,et al.Detection of Daily Activities and Sports with Wearable Sensors in Controlled and Uncontrolled Conditions[J].IEEE Transactions on Information Technology in Biomedicine.2008,2(1):20-26.
[6]劉鵬,盧潭城,呂愿愿,等.基于MEMS三軸加速度傳感器的摔倒檢測[J].傳感技術(shù)學(xué)報,2014,27(4):570-574.
[7]Khalil A,Glal S.StepUp:A Step Counter Mobile Application to Promote Healthy Lifestyle[C]//IEEE International Conference on the Current Trends in Information Technology,2009:1-5.
[8]謝如花.步數(shù)檢測方法及在手腕式計步器中的應(yīng)用研究[D].蘭州:蘭州交通大學(xué),2013.
[9]韓文正,馮迪,李鵬,等.基于加速度傳感器LIS3DH的計步器設(shè)計[J].傳感器與微系統(tǒng),2012,31(11):97-99.
[10]朱國忠,韋彩虹,潘敏.基于三維加速度傳感器的人體運動能耗檢測算法的研究[J].傳感技術(shù)學(xué)報,2011,24(8):1217-1222.
[11]李娜.基于人體運動狀態(tài)識別的可穿戴健康監(jiān)測系統(tǒng)研究[D].北京:北京工業(yè)大學(xué),2013.
[12]谷麗華,崔暢,高松巍,等.基于MPU-6050的步態(tài)信號采集系統(tǒng)[J].沈陽工業(yè)大學(xué)學(xué)報,2015,37(2):176-182.

魏芬(1978-),女,漢族,江蘇南京人,南京航空航天大學(xué)金城學(xué)院,講師,碩士,主要從事電子信息通信、嵌入式系統(tǒng)方面的研究,wfen1229@126.com。
Research of Motion Step Detection Algorithm Based on Acceleration Sensor
WEI Fen*,DENG Haiqin
(Teaching Experiment Center,Nanjing University of Aeronautics and Astronautics Jincheng College,Nanjing 211156,China)
A new area peak step detection algorithm was presented to decrease the interference of wrist swing to the step detection in the human motion.It was based on the characteristics of the acceleration signal of human motion,using Gaussian filter to cut down the noise effect on acceleration signal,and applying area peak detection to determine the effective step on the basis of the data of triaxial resultant acceleration.Besides,the variation of the amplitude of the acceleration signal was used as the eigenvalue,making realization of the automatic recognition of steady-state walk and run as well as the automatic adjustment of the sampling rate on various motional state,effectively reducing power dissipation.The experimental results show that,compared with dynamic threshold algorithm and single peak algorithm,the area peak step detection algorithm has highly precision in step detection,up to more than 95%.
sensors application;step detection;signal vector magnitude;area peak detection;acceleration sensor
TP212.9
A
1005-9490(2016)05-1175-05
2015-11-15修改日期:2015-12-15
EEACC:7230;7320E10.3969/j.issn.1005-9490.2016.05.031