魏 芬,鄧海琴
(南京航空航天大學(xué)金城學(xué)院教學(xué)實(shí)驗(yàn)中心,南京211156)
基于加速度傳感器的運(yùn)動(dòng)步數(shù)檢測(cè)算法研究
魏芬*,鄧海琴
(南京航空航天大學(xué)金城學(xué)院教學(xué)實(shí)驗(yàn)中心,南京211156)
為解決人體運(yùn)動(dòng)過(guò)程中手腕擺動(dòng)對(duì)步數(shù)檢測(cè)干擾的影響,提出了一種區(qū)域峰值步數(shù)檢測(cè)算法。該算法根據(jù)人體運(yùn)動(dòng)時(shí)的加速度信號(hào)特征,使用高斯濾波去除噪聲對(duì)加速度信號(hào)的影響,基于三軸合加速度數(shù)據(jù)采用區(qū)域峰值檢測(cè)方法判定有效步伐,同時(shí)利用提取的加速度信號(hào)幅值的變化量作為特征值,準(zhǔn)確實(shí)現(xiàn)了穩(wěn)定狀態(tài)下的跑步、走路兩種動(dòng)作的自動(dòng)識(shí)別,并根據(jù)人體不同的運(yùn)動(dòng)狀態(tài)自動(dòng)調(diào)整采樣速率,有效降低了系統(tǒng)功耗。實(shí)驗(yàn)結(jié)果表明,區(qū)域峰值算法相比于動(dòng)態(tài)閥值和單一峰值的算法具有更高的步數(shù)檢測(cè)精確度,可達(dá)到95%以上。
傳感器應(yīng)用;步數(shù)檢測(cè);信號(hào)矢量幅值;區(qū)域峰值檢測(cè);加速度傳感器
隨著人們對(duì)健康體育鍛煉的越來(lái)越重視,對(duì)日常運(yùn)動(dòng)量進(jìn)行量化就成為了一個(gè)關(guān)鍵因數(shù)。計(jì)步器是一種可以定量監(jiān)測(cè)人體運(yùn)動(dòng)量的熱門(mén)戶(hù)外設(shè)備,通過(guò)內(nèi)含的加速度傳感器計(jì)算人體行走的步數(shù),進(jìn)而計(jì)算出運(yùn)動(dòng)距離和消耗的卡路里數(shù),方便人們準(zhǔn)確把握自身的運(yùn)動(dòng)情況。
加速度傳感器采集的是三軸加速度的數(shù)據(jù),有文獻(xiàn)建議把加速度變化最大的那個(gè)軸作為有效軸來(lái)表征人體運(yùn)動(dòng)狀態(tài),然后利用有效軸的數(shù)據(jù)進(jìn)行分析和計(jì)算步數(shù)[1],但是由于加速度的有效軸在運(yùn)動(dòng)過(guò)程中會(huì)不停的變換[2],從而導(dǎo)致計(jì)步的不準(zhǔn)確。本文在對(duì)加速度傳感器的三軸數(shù)據(jù)進(jìn)行融合的基礎(chǔ)上,提出了一種區(qū)域峰值檢測(cè)方法來(lái)計(jì)算有效步數(shù),該算法可以有效提高腕式計(jì)步器步數(shù)檢測(cè)的精確度,給上位機(jī)軟件在計(jì)算用戶(hù)消耗的能量時(shí)提供更加詳細(xì)、準(zhǔn)確的數(shù)據(jù),為用戶(hù)提供更加優(yōu)質(zhì)的體驗(yàn)。
人體在跑步或走路運(yùn)動(dòng)時(shí)會(huì)產(chǎn)生3個(gè)方向(側(cè)向、前向和豎向)的加速度分量,這3個(gè)加速度分量相互正交,對(duì)應(yīng)加速度傳感器3個(gè)軸—x、y、z軸上的加速度[3],圖1所示為一次跑步運(yùn)動(dòng)時(shí)x、y、z軸上測(cè)得的波形。
圖1 三軸加速度數(shù)據(jù)曲線(xiàn)圖
由于獲得的三軸加速度信號(hào)中包含著許多不同類(lèi)型復(fù)雜的噪聲信號(hào)和手腕抖動(dòng)產(chǎn)生的噪聲,本文首先采用高斯濾波器[4]對(duì)信號(hào)進(jìn)行預(yù)處理,去除噪聲。高斯濾波器在頻率域是一個(gè)十分有效的低通濾波器,用ax(t)、ay(t)、az(t)分別表示t時(shí)刻x軸、y軸、z軸的加速度信號(hào),記A(t)=[ax(t),ay(t),az(t)],則高斯濾波公式為
圖2 高斯濾波前后加速度波形
對(duì)于腕式穿戴的計(jì)步器,由于運(yùn)動(dòng)過(guò)程中手腕的翻轉(zhuǎn)而導(dǎo)致加速度數(shù)據(jù)的有效軸不停的變換,單純的提取某一個(gè)軸的加速度數(shù)據(jù)不足以表示真正的運(yùn)動(dòng)特征。但是,無(wú)論如何穿戴計(jì)步器,x、y、z 3軸中總有至少一個(gè)軸具有相對(duì)較大的周期性加速度變化。因此,本文采用三軸合一的方法,計(jì)算三軸加速度的信號(hào)矢量幅值SVM(Signal Vector Magnitude)[5-6]來(lái)確定加速度,以提高計(jì)步的準(zhǔn)確性,計(jì)算公式如下:
其中,ax(t)、ay(t)、az(t)分別為t時(shí)刻加速度傳感器在x、y、z軸所測(cè)得的數(shù)據(jù)。圖3為跑步狀態(tài)時(shí)測(cè)得的三軸SVM輸出,從圖3可以看出,三軸合一后的SVM數(shù)據(jù)波形與實(shí)際步數(shù)相對(duì)應(yīng),一個(gè)波峰的變化正好對(duì)應(yīng)一個(gè)步伐。
圖3 三軸合一SVM輸出
從文獻(xiàn)中分析,現(xiàn)有的步數(shù)檢測(cè)算法大致有2種:一種是文獻(xiàn)[1]中提出的動(dòng)態(tài)閥值判斷方法[1],該方法通過(guò)檢測(cè)加速度曲線(xiàn)從上往下跨過(guò)動(dòng)態(tài)閥值,加速度曲線(xiàn)的斜率為負(fù)時(shí)判定為有效步伐。但這種算法在判斷走路的有效步伐時(shí)會(huì)出現(xiàn)漏檢的現(xiàn)象,如圖4所示,由于走路時(shí)手臂向前擺動(dòng)時(shí)加速度幅值變化較大,而向后擺動(dòng)時(shí)幅值變化較小,動(dòng)態(tài)閥值不能有效捕捉到所有小幅值變化的波形,如圖中圓圈所示處,導(dǎo)致漏檢步伐。另一種是文獻(xiàn)[7]提出的峰值檢測(cè)方法,當(dāng)加速度曲線(xiàn)斜率由正到負(fù)變化時(shí)出現(xiàn)峰值[7],但是單純地依靠峰值判斷有效步伐要求加速度波形非常平滑,否則任何干擾所引起的微小波動(dòng)都會(huì)導(dǎo)致找到的峰值遠(yuǎn)遠(yuǎn)大于實(shí)際步伐數(shù),引起誤判。
圖4 動(dòng)態(tài)閥值漏檢步伐示意圖
為解決以上2種步數(shù)檢測(cè)算法的不足,本文基于峰值檢測(cè)的方法提出一種綜合性的區(qū)域峰值判斷方法,從以下3種特征進(jìn)行判決,只有同時(shí)滿(mǎn)足了這3種特征,才判定為有效步伐。
(1)區(qū)域峰值檢測(cè)設(shè)人體運(yùn)動(dòng)時(shí)采集到的加速度傳感器數(shù)據(jù)經(jīng)過(guò)三軸合一和濾波處理后的加速度為a(t),則定義u=a(t)-a(t-1),v=a(t+1)-a(t),u和v為有正負(fù)值的標(biāo)量,當(dāng)u或v為正時(shí),表示斜率為正,加速度數(shù)據(jù)呈現(xiàn)上升趨勢(shì);當(dāng)u或v為負(fù)時(shí),表示斜率為負(fù),加速度數(shù)據(jù)呈現(xiàn)下降趨勢(shì)。因此,當(dāng)在t時(shí)刻,u>0且v<0時(shí),加速度數(shù)據(jù)曲線(xiàn)斜率由正變?yōu)樨?fù),出現(xiàn)數(shù)據(jù)轉(zhuǎn)折點(diǎn),但僅憑斜率的變化來(lái)判斷峰值會(huì)太過(guò)敏感,容易受到一些小尖刺干擾信號(hào)的影響。本文對(duì)其進(jìn)行改進(jìn),采用區(qū)域峰值檢測(cè)方法,即設(shè)置滑動(dòng)查找窗口,窗口設(shè)置過(guò)大,會(huì)導(dǎo)致漏檢峰值信號(hào);窗口設(shè)置過(guò)小,容易將干擾信號(hào)誤判為峰值信號(hào)[8],經(jīng)過(guò)實(shí)際多次分析測(cè)試,本文把滑動(dòng)窗口設(shè)置為7,即在t時(shí)刻的左右各取3個(gè)采樣點(diǎn),當(dāng)(a(t-1)>a(t-2)>a(t-3)且a(t+1)>a(t+2)>a(t+3))時(shí),可以正確判斷出峰值。綜上所述,當(dāng)在t時(shí)刻加速度a(t)同時(shí)滿(mǎn)足
時(shí),則確定當(dāng)前t時(shí)刻為峰值點(diǎn),否則,則為干擾信號(hào)。用類(lèi)似的方法可以查找出波谷。當(dāng)查找到一對(duì)峰谷值時(shí)認(rèn)為出現(xiàn)一個(gè)步伐,該步伐是否為有效步伐則需根據(jù)幅度閥值和時(shí)間窗口閥值進(jìn)一步判定。
(2)在檢測(cè)出峰谷值后,提取加速度數(shù)據(jù)a(t)的相鄰波峰和波谷值的差作為特征值,記為CSVM(Change of SVM),計(jì)算公式如下:
其中ap(t)為t采樣時(shí)刻波峰值,av(t-k)為t-k采樣時(shí)刻波谷值,k為相鄰波峰波谷值之間的采樣點(diǎn)數(shù)。為消除由于人體運(yùn)動(dòng)過(guò)程中的因手腕抖動(dòng)等原因而導(dǎo)致的無(wú)效峰谷值數(shù)據(jù),經(jīng)過(guò)多次測(cè)試確定,當(dāng)CSVM>0.2 gn時(shí),為一次有效峰谷值數(shù)據(jù),否則,予以丟棄。
(3)當(dāng)系統(tǒng)由于非正常運(yùn)動(dòng)狀態(tài)的原因而快速或緩慢地振動(dòng)時(shí),也會(huì)被誤認(rèn)為是有效步伐。利用時(shí)間窗口可以排除這種無(wú)效振動(dòng)。一般人體最快跑步速度為每秒5步,最慢走路為每2 s 1步[9],兩個(gè)有效步伐的時(shí)間間隔在[0.2 s~2.0 s]之間,當(dāng)采樣率為50 Hz時(shí),兩個(gè)有效步伐的采樣點(diǎn)次數(shù)間隔值在[10~100]之間;當(dāng)采樣率為25 Hz時(shí),有效步伐采樣點(diǎn)次數(shù)間隔值在[5~50]之間。系統(tǒng)實(shí)時(shí)更新兩步之間的采樣點(diǎn)次數(shù),如果落在有效間隔值范圍之外,則視為無(wú)效擾動(dòng),不計(jì)入步數(shù)寄存器。
利用加速度傳感器的輸出估計(jì)人體運(yùn)動(dòng)的能量消耗已經(jīng)被廣泛接收,對(duì)人體運(yùn)動(dòng)步態(tài)的自動(dòng)識(shí)別在對(duì)能量進(jìn)行精確估計(jì)時(shí)能提供有價(jià)值的信息[10]。人體在做周期性動(dòng)作的時(shí)候,波峰波谷的差值呈現(xiàn)規(guī)律性,當(dāng)速度快的時(shí)候加速度幅度變化比較大,而速度慢的時(shí)候加速度變化比較小,不同狀態(tài)下SVM的幅值變化穩(wěn)定在一定的范圍之內(nèi)。圖5為實(shí)驗(yàn)中跑步-走路-靜止站立的加速度SVM和CSVM的效果圖,本文以CSVM為特征值自主進(jìn)行運(yùn)動(dòng)步態(tài)識(shí)別。從圖中可知,當(dāng)人體靜止站立時(shí),加速度的幅值變化(CSVM)很小,趨近于0。算法中設(shè)定以2 s為一個(gè)判斷周期,當(dāng)CSVM的值穩(wěn)定在>1.2 gn范圍內(nèi)時(shí)判定人體為跑步狀態(tài),當(dāng)CSVM的值穩(wěn)定在0.2 gn~1.2 gn范圍內(nèi)時(shí)判定為走路狀態(tài),當(dāng)CSVM的值穩(wěn)定在<0.2 gn范圍內(nèi)時(shí)判定為靜止站立狀態(tài)。
圖5 加速度SVM和CSVM波形圖
系統(tǒng)采用區(qū)域峰值判斷方法進(jìn)行步數(shù)檢測(cè),在此基礎(chǔ)上,為有效減少系統(tǒng)的功耗,算法中采用了根據(jù)人體的運(yùn)動(dòng)狀態(tài)(跑步或走路)自適應(yīng)調(diào)節(jié)數(shù)據(jù)采樣率的方法[2],當(dāng)處于跑步這種高速運(yùn)動(dòng)時(shí),采用高采樣率以保證計(jì)數(shù)的準(zhǔn)確性,當(dāng)處于走路這種低速運(yùn)動(dòng)時(shí),采用較低的采樣率。
自適應(yīng)采樣速率調(diào)整是指根據(jù)前期對(duì)人體運(yùn)動(dòng)狀態(tài)(跑步或走路)的判定,動(dòng)態(tài)地調(diào)整采樣速率。自適應(yīng)采樣速率步數(shù)檢測(cè)方法的流程圖如圖6所示。由于人體運(yùn)動(dòng)時(shí)身體的振動(dòng)頻率范圍在0~20 Hz之間[11],初始化時(shí)采用50 Hz的高速采樣速率,每秒采集50個(gè)數(shù)據(jù),即初始化時(shí)默認(rèn)系統(tǒng)處于跑步的運(yùn)動(dòng)狀態(tài)。然后,根據(jù)CSVM的特征值對(duì)人體的運(yùn)動(dòng)狀態(tài)進(jìn)行判定,當(dāng)系統(tǒng)判定為處于走路狀態(tài)時(shí),則認(rèn)為當(dāng)前為低速運(yùn)動(dòng)狀態(tài),在下一個(gè)周期內(nèi)將加速度采樣率設(shè)置為25 Hz;當(dāng)系統(tǒng)判斷為跑步狀態(tài)時(shí),則認(rèn)為處于高速運(yùn)動(dòng)狀態(tài),在下一周期內(nèi)將采樣率設(shè)置為50 Hz。如此循環(huán)往復(fù),不斷根據(jù)人體的運(yùn)動(dòng)狀態(tài)實(shí)時(shí)調(diào)整采樣率,以達(dá)到降低系統(tǒng)功耗、節(jié)省系統(tǒng)資源的目的。
圖6 步數(shù)檢測(cè)流程圖
6.1測(cè)試平臺(tái)
實(shí)驗(yàn)測(cè)試平臺(tái)采用STM32F103C8為CPU,傳感器選用MPU-6050模塊,外加HM-11藍(lán)牙模塊和LED顯示屏組成。MPU6050內(nèi)集成了三軸MEMS陀螺儀和三軸MEMS加速度計(jì),加速度計(jì)可選量程為±2 gn,±4 gn,±8 gn,±16 gn[12],實(shí)驗(yàn)時(shí)選用量程±4 gn。MPU6050和CPU之間采用I2C的總線(xiàn)接口,系統(tǒng)工作時(shí),由MPU6050實(shí)時(shí)采集x、y、z 3軸上的加速度數(shù)據(jù),經(jīng)過(guò)計(jì)步算法處理后得到人體運(yùn)動(dòng)數(shù)據(jù),接著將數(shù)據(jù)打包后通過(guò)藍(lán)牙模塊傳輸給Android智能手機(jī),Android手機(jī)上安裝有上位機(jī)軟件程序,上位機(jī)采用Java編寫(xiě)顯示界面,將接收到的數(shù)據(jù)進(jìn)行處理整合后顯示人體運(yùn)動(dòng)數(shù)據(jù)。系統(tǒng)的硬件結(jié)構(gòu)和顯示界面如圖7所示。
圖7 系統(tǒng)的硬件結(jié)構(gòu)與顯示界面
6.2實(shí)驗(yàn)結(jié)果分析
實(shí)驗(yàn)抽取多名測(cè)試者作為實(shí)驗(yàn)對(duì)象(記為A、B、C、…),實(shí)驗(yàn)時(shí)將計(jì)步器戴于手腕上,按照如下連續(xù)動(dòng)作進(jìn)行:靜止站立—跑步—走路—靜止站立,分別測(cè)試一個(gè)連續(xù)動(dòng)作中跑步和走路的步數(shù)。測(cè)試時(shí)將本文的區(qū)域峰值步數(shù)檢測(cè)方法、動(dòng)態(tài)閥值方法和單一峰值檢測(cè)方法依次燒寫(xiě)到CPU中,分別進(jìn)行步數(shù)檢測(cè)。測(cè)試結(jié)果如表1所示。
表1 測(cè)試算法比較
表中計(jì)步精確度計(jì)算公式為:
從表1測(cè)試結(jié)果可知,對(duì)于跑步運(yùn)動(dòng)來(lái)說(shuō),3種計(jì)步算法的精確度都比較高;而當(dāng)走路的時(shí)候,動(dòng)態(tài)閥值和單一峰值的計(jì)步方法精確度較低,這是因?yàn)閯?dòng)態(tài)閥值的方法會(huì)出現(xiàn)如圖4中的情形,導(dǎo)致步數(shù)漏檢,而單一峰值的方法會(huì)將一些微小的振動(dòng)干擾也記入步數(shù)中,導(dǎo)致測(cè)試結(jié)果不準(zhǔn)確。對(duì)比測(cè)試結(jié)果發(fā)現(xiàn),利用本算法設(shè)計(jì)的腕式計(jì)步器在走路和跑步兩種狀態(tài)下的測(cè)量值與其真值的接近程度較高,步數(shù)檢測(cè)的誤差在可以接收的范圍內(nèi),進(jìn)一步說(shuō)明了本文設(shè)計(jì)算法的可行性和準(zhǔn)確性。
本文設(shè)計(jì)了一套腕式計(jì)步器步數(shù)檢測(cè)方法,根據(jù)三軸加速度的信號(hào)幅值SVM及其變化量CSVM來(lái)實(shí)時(shí)自動(dòng)判斷人體處于跑步/走路的運(yùn)動(dòng)狀態(tài),并分別進(jìn)行步數(shù)檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該算法在腕式計(jì)步器的步數(shù)檢測(cè)平均精確度在95%以上,具有準(zhǔn)確度高、抗干擾能力強(qiáng)和低功耗等優(yōu)點(diǎn)。
[1]Neil Zhao.Full-Featured Pedometer Design Realized with 3-Axis Digital Accelerometer[J].Analog Dialogue,2010,44(2):17-21.
[2]李越,黃凱,張曉濛,等.基于加速度傳感器的無(wú)按鍵計(jì)步腕表低功耗算法[J].傳感器與微系統(tǒng),2015,34(3):144-147.
[3]卓叢彬,楊龍頻,周林,等.基于MPU6050加速度傳感器的跌倒檢測(cè)與報(bào)警系統(tǒng)設(shè)計(jì)[J].電子器件,2015,38(4):821-825.
[4]薛洋.基于單個(gè)加速度傳感器的人體運(yùn)動(dòng)模式識(shí)別[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三軸加速度傳感器的摔倒檢測(cè)[J].傳感技術(shù)學(xué)報(bào),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ù)檢測(cè)方法及在手腕式計(jì)步器中的應(yīng)用研究[D].蘭州:蘭州交通大學(xué),2013.
[9]韓文正,馮迪,李鵬,等.基于加速度傳感器LIS3DH的計(jì)步器設(shè)計(jì)[J].傳感器與微系統(tǒng),2012,31(11):97-99.
[10]朱國(guó)忠,韋彩虹,潘敏.基于三維加速度傳感器的人體運(yùn)動(dòng)能耗檢測(cè)算法的研究[J].傳感技術(shù)學(xué)報(bào),2011,24(8):1217-1222.
[11]李娜.基于人體運(yùn)動(dòng)狀態(tài)識(shí)別的可穿戴健康監(jiān)測(cè)系統(tǒng)研究[D].北京:北京工業(yè)大學(xué),2013.
[12]谷麗華,崔暢,高松巍,等.基于MPU-6050的步態(tài)信號(hào)采集系統(tǒng)[J].沈陽(yáng)工業(yè)大學(xué)學(xué)報(bào),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