余 佩,韓勇強(qiáng)
(北京理工大學(xué) 自動(dòng)化學(xué)院,北京 100081)
步態(tài)是用來(lái)描述行人行走方式的一個(gè)詞語(yǔ),對(duì)不同的人而言,步態(tài)雖會(huì)因人而異有所差別,但是整體上來(lái)說(shuō),運(yùn)動(dòng)本身就是連續(xù)周期性的,因而步態(tài)也具有總體性的一般規(guī)律[1]。行人步態(tài)檢測(cè)主要就是根據(jù)這種一般規(guī)律進(jìn)行檢測(cè)從而實(shí)現(xiàn)計(jì)步的。行人的行走過程就是一種周期性運(yùn)動(dòng)過程 ,這時(shí),行人的身體重心在水平方向上會(huì)大致維持著一個(gè)恒定的速度,同時(shí)在垂直方向上會(huì)產(chǎn)生具有一定規(guī)律性的變速運(yùn)動(dòng)。因此,通過三軸加速度計(jì)感知行人的運(yùn)動(dòng)加速度就可以對(duì)其行走過程進(jìn)行步態(tài)分析。
目前為止,已經(jīng)有許多研究者在行人導(dǎo)航的研究中選擇不同步態(tài)檢測(cè)算法對(duì)步態(tài)進(jìn)行識(shí)別和記步,文獻(xiàn)[2-5]選用了峰值檢測(cè)法進(jìn)行步態(tài)檢測(cè),文獻(xiàn)[6-9]選用了過零檢測(cè)法,文獻(xiàn)[10]選用了一種改進(jìn)了的自適應(yīng)峰值檢測(cè)算法,文獻(xiàn)[11-12]選用了一種自相關(guān)分析算法。除此之外,還有很多種不同的步態(tài)檢測(cè)方法,如站立期檢測(cè)法、快速傅里葉變換(Fast Fourier Transform, FFT)法、步頻探測(cè)傳感器等。
本次實(shí)驗(yàn)研究,在各種步態(tài)檢測(cè)算法中,選擇了三種應(yīng)用比較廣泛的基礎(chǔ)算法,峰值檢測(cè)算法、過零檢測(cè)算法和自適應(yīng)峰值檢測(cè)算法。針對(duì)這三種不同的步態(tài)檢測(cè)算法,在相同的環(huán)境下,分別進(jìn)行設(shè)計(jì)實(shí)驗(yàn),比較它們的實(shí)驗(yàn)數(shù)據(jù)和測(cè)量效果,對(duì)其可靠性和精確性進(jìn)行分析,總結(jié)了三種算法各自的優(yōu)缺點(diǎn)。
行人的行走是一個(gè)雙腳交替前進(jìn)的過程,因此行人的步態(tài)模型通常有兩種,單步和復(fù)步[13],如圖1所示。
單步模型是指1個(gè)周期里只包含1次跨步動(dòng)作,其步長(zhǎng)等于運(yùn)動(dòng)時(shí)左右兩腳的腳后跟相鄰落地點(diǎn)間的距離;復(fù)步模型是指1個(gè)周期里包含2次跨步動(dòng)作,其步長(zhǎng)等于運(yùn)動(dòng)時(shí)同1只腳的腳后跟相鄰落地點(diǎn)間的距離。一般來(lái)說(shuō),將加速度計(jì)置于行人腰部通常得到的是單步所對(duì)應(yīng)的步態(tài)周期信號(hào);而置于腿部的加速度計(jì)得到的是復(fù)步所對(duì)應(yīng)的步態(tài)周期信號(hào)。
以一個(gè)復(fù)步為例,行人的步態(tài)周期可以分為站立期和擺動(dòng)期。站立期指從右腳跟接觸地面開始到右腳腳趾離開地面結(jié)束,其余時(shí)間為擺動(dòng)期。同時(shí),站立期又可以分為腳觸地期、站立中期、站立后期和腳離地期,具體的步態(tài)劃分示意圖如圖2所示。
以圖2所示的復(fù)步模型為例,觸地期是行人右腳腳后跟接觸地面開始到其左腳即將完全離開地面為止,離地期是左腳腳后跟剛接觸地面開始到右腳即將完全離開地面為止。因此,觸地期和離地期里,行人的身體是由雙腳支撐的,其余時(shí)間則都為單腳支撐。
根據(jù)上面對(duì)行人步態(tài)周期的詳細(xì)劃分,可以分析行人行走過程中加速度的變化。起始時(shí)刻為右腳腳后跟觸地時(shí),隨后左腳運(yùn)動(dòng),蹬地前進(jìn),因?yàn)榈诺胤醋饔昧Φ拇嬖?,垂向加速度和前向加速度?huì)增大,直到右腳站立中期達(dá)到最大值。之后,左腳向前跨步,垂向加速度開始減小,行人的重心下降,直到左腳腳后跟觸地,垂向加速度減小到最小值。至此,一個(gè)單步過程完成,行人進(jìn)入到下一個(gè)單步過程。
這樣將步態(tài)周期進(jìn)行清晰的劃分有利于分析行人在行走時(shí)加速度的變化,尤其是針對(duì)垂向加速度的變化。起始時(shí)刻為右腳腳后跟觸地時(shí)刻,隨后左腳起步,借助蹬地時(shí)的反作用力,垂向加速度和前向加速度會(huì)增大并在右腳的站立中期達(dá)到最大值,而后隨著左腳繼續(xù)向前跨步,垂向加速度會(huì)開始減小,行人重心下降,到左腳腳后跟觸地時(shí)的垂向加速度達(dá)到最小值。然后進(jìn)入下一個(gè)單步過程,行人的行走過程就是這樣一個(gè)重復(fù)周期性的過程,腰部垂向加速度計(jì)的輸出信號(hào)圖如圖3所示,輸出信號(hào)基本近似于正弦波。
由于行人在行走時(shí)加速度計(jì)輸出的信號(hào)可以近似于正弦波波形,根據(jù)正弦波的特點(diǎn),通過檢測(cè)加速度計(jì)輸出信號(hào)的波峰或者波谷可以識(shí)別行人步數(shù),2個(gè)連續(xù)波峰之間即為一步。
峰值檢測(cè)法的原理可以簡(jiǎn)單地描述為式(1),其中,xi為當(dāng)前時(shí)刻采樣點(diǎn),xi-1和xi+1分別為上一時(shí)刻和下一時(shí)刻的采樣點(diǎn)。
xi-1
(1)
但是外界干擾的作用下,加速度計(jì)信號(hào)輸出存在偽波峰和偽波谷。所以在具體的實(shí)現(xiàn)過程中需要消除極值帶來(lái)的影響,以保證使用真實(shí)極值實(shí)現(xiàn)步態(tài)檢測(cè)。通過對(duì)行人的行走特征分析可以知道,行人行走頻率在1~2.5Hz之間,即使是跑步階段也不會(huì)超過5Hz,同時(shí)行人的加速度一般在0.2~2g之間??紤]到行人行走過程中,行走速度過快會(huì)因?yàn)椴筋l較大而丟失步態(tài)信息,選擇采樣頻率為100Hz對(duì)加速度計(jì)輸出信號(hào)進(jìn)行檢測(cè)和數(shù)據(jù)采集。
算法具體步驟流程如下:
1)選取40個(gè)數(shù)據(jù)點(diǎn)作為滑動(dòng)窗口以獲得可能的峰值,并以[1.2g, 3g]作為閾值做峰值檢測(cè)的初判,過濾數(shù)據(jù)波動(dòng)。
2)計(jì)算可能峰值與前一個(gè)峰值相隔時(shí)間,保持在行人正常走路時(shí)間[0.4s,1s]之間。
3)峰值前后領(lǐng)域各取20個(gè)數(shù)據(jù)點(diǎn)比較,過濾偽波峰。通過判斷的峰值點(diǎn)視為真波峰并將步數(shù)加計(jì)一步;否則返回重新滑動(dòng)窗口選取采樣點(diǎn)。
行人行走的垂直向加速度計(jì)輸出信號(hào)可以近似于一個(gè)正弦波信號(hào),即加速度先增后減存在著重復(fù)上升與下降的過程。在過濾掉重力加速度之后,垂向加速度計(jì)的輸出信號(hào)波形有正有負(fù)。并且,由負(fù)變正的過程對(duì)應(yīng)于抬腳,由正到負(fù)的過程對(duì)應(yīng)于落腳。因此,可以通過檢測(cè)信號(hào)的零點(diǎn)實(shí)現(xiàn)步態(tài)檢測(cè)[6-9]。
算法開始之前,要將垂直方向的加速度計(jì)輸出減去靜止時(shí)垂向加速度計(jì)輸出再進(jìn)行檢測(cè)。算法的具體步驟流程如下:
1)取采樣點(diǎn)進(jìn)行判斷,若此點(diǎn)的值恰好為0,或者當(dāng)前采樣值與下一時(shí)刻采樣值的乘積小于0,則記為潛在零點(diǎn)。
2)判斷潛在零點(diǎn)是否處于下降階段。
3)排除噪聲波形產(chǎn)生的錯(cuò)誤零點(diǎn),取潛在零點(diǎn)左右鄰域的20個(gè)采樣點(diǎn),選擇鄰域內(nèi)最小值小于-g的點(diǎn)。
4)通過行走時(shí)的步頻閾值排除錯(cuò)誤零點(diǎn)。
在普通的峰值檢測(cè)算法中,一般都采用固定閾值以及固定長(zhǎng)度的滑動(dòng)窗口完成行人的步態(tài)檢測(cè)。但是當(dāng)行人運(yùn)動(dòng)速度由慢變快時(shí),由于行人腳部觸地時(shí)用力程度和步頻不同,加速度模值會(huì)隨之逐漸增大,輸出峰值的頻率也會(huì)增大,導(dǎo)致步態(tài)檢測(cè)精度的下降[14-15]。因此,對(duì)于不同的運(yùn)動(dòng)狀態(tài),應(yīng)該給出不同的閾值進(jìn)行判斷。基于加速度輸出模值的分布特點(diǎn),可以將運(yùn)動(dòng)分為靜止、行走、跑步三種狀態(tài),在普通峰值檢測(cè)算法的基礎(chǔ)上設(shè)置行人行走時(shí)間閾值為[0.1s,0.3s],跑步時(shí)間閾值為[0.2s,0.5s],以此來(lái)過濾偽波峰及其他錯(cuò)誤信息。
針對(duì)三種不同的步態(tài)檢測(cè)算法,設(shè)計(jì)在北京理工大學(xué)東操場(chǎng)實(shí)驗(yàn)檢驗(yàn)算法的優(yōu)越性和普適性。實(shí)驗(yàn)選擇的設(shè)備為MTi-G-710 GNSS/INS,將實(shí)驗(yàn)設(shè)備固定于腰帶上,佩戴在實(shí)驗(yàn)員腰部,設(shè)備通過一個(gè)USB接口與電腦相連接,實(shí)驗(yàn)員手持電腦采集相關(guān)數(shù)據(jù),如圖4和圖5所示。
為了更直觀地比較三種不同算法在恒定速度、變化步速以及不同運(yùn)動(dòng)狀態(tài)下的測(cè)量精確度,在相同環(huán)境下,設(shè)置了6大組實(shí)驗(yàn)進(jìn)行對(duì)比。實(shí)驗(yàn)由同一實(shí)驗(yàn)員完成,每次行走100步,為了避免算法的偶然性,每大組實(shí)驗(yàn)測(cè)試2次,共采集12組實(shí)驗(yàn)數(shù)據(jù)。其中,1~2組為勻慢速行走、3~4組為勻速行走、5~6組為勻快速行走、7~8組為勻速跑步、9~10組為由慢到快變速行走、11~12組為前50步行走后50步跑步。實(shí)驗(yàn)數(shù)據(jù)結(jié)果如表1所示。
表1 步態(tài)檢測(cè)算法優(yōu)越性對(duì)比實(shí)驗(yàn)數(shù)據(jù)結(jié)果
由實(shí)驗(yàn)結(jié)果可以看到,在行人的行走實(shí)驗(yàn)中,三種算法對(duì)行人步數(shù)檢測(cè)的準(zhǔn)確率都可以達(dá)到100%,這說(shuō)明,在行人處于勻速行走狀態(tài)下時(shí),加速度輸出信號(hào)變化的確呈現(xiàn)近似正弦波形式。但是,當(dāng)行人行走步速變快時(shí),由于步頻和加速度峰值的變化超出了峰值檢測(cè)算法的檢測(cè)范圍,所以只能測(cè)出91步和94步,精度有所下降。這種情況在實(shí)驗(yàn)員處于跑步狀態(tài)時(shí)更加明顯,此時(shí)的檢測(cè)率只有大約50%;而在50步行走和50步跑步的實(shí)驗(yàn)中,峰值檢測(cè)結(jié)果為75步,行走的50步基本全部被檢測(cè)到,而跑步狀態(tài)下的步數(shù)只被檢測(cè)到一半。相比之下,自適應(yīng)峰值檢測(cè)法和過零檢測(cè)法在步速過快,步頻過高的情況下的檢測(cè)結(jié)果更加精確。
針對(duì)檢測(cè)步數(shù)不完全準(zhǔn)確有所波動(dòng)的情況分析可知,行人行走的整個(gè)過程通常并不是一個(gè)完整的步態(tài)周期,當(dāng)加速度計(jì)輸出具備算法檢測(cè)條件時(shí)會(huì)計(jì)一步,然而實(shí)際情況中是以腳落地一次為一步,因此會(huì)出現(xiàn)多計(jì)一步和少計(jì)一步的現(xiàn)象,都屬于正常的步數(shù)計(jì)量誤差。所以說(shuō),普通的峰值檢測(cè)法適用于勻速行走的情況,對(duì)于步頻較快的情況誤差較大,相比之下,自適應(yīng)檢測(cè)算法和過零檢測(cè)算法整體的優(yōu)越性良好。
鑒于對(duì)每種算法精確度的分析結(jié)果,由于基礎(chǔ)峰值檢測(cè)算法對(duì)于不同運(yùn)動(dòng)狀態(tài)下行人的步態(tài)檢測(cè)率并不高,所以只針對(duì)自適應(yīng)的峰值檢測(cè)算法和過零檢測(cè)算法進(jìn)行算法普適性的分析,讓2個(gè)實(shí)驗(yàn)者(身高與體重均有一定差距)在與上述實(shí)驗(yàn)相同的條件下完成實(shí)驗(yàn)測(cè)試,每名實(shí)驗(yàn)者以同一步速進(jìn)行2組實(shí)驗(yàn),數(shù)據(jù)和檢測(cè)結(jié)果如表2所示。
表2 步態(tài)檢測(cè)算法普適性對(duì)比實(shí)驗(yàn)數(shù)據(jù)結(jié)果
由實(shí)驗(yàn)結(jié)果對(duì)比分析可知,自適應(yīng)峰值檢測(cè)和過零檢測(cè)兩種算法對(duì)于不同的實(shí)驗(yàn)者檢測(cè)的結(jié)果大致相同,在行走條件下都可以達(dá)到相當(dāng)?shù)臏?zhǔn)確率,在跑步檢測(cè)時(shí)更容易出現(xiàn)如上面分析的檢測(cè)步數(shù)大于實(shí)際步數(shù)的情況,但總體上,基本都可以滿足行人步態(tài)檢測(cè)的精度要求。
針對(duì)優(yōu)越性比較良好的自適應(yīng)檢測(cè)算法和過零檢測(cè)算法,設(shè)計(jì)組合相同步長(zhǎng)估計(jì)算法的組合實(shí)驗(yàn),比較兩種算法在組合算法環(huán)境下的檢測(cè)情況。在相同的環(huán)境中,由同一實(shí)驗(yàn)員步行100m的方式進(jìn)行對(duì)比實(shí)驗(yàn),選擇同一種非線性步長(zhǎng)估計(jì)算法分別與兩種檢測(cè)算法組合。為了避免偶然錯(cuò)誤,每種組合方式測(cè)量2次數(shù)據(jù)。將自適應(yīng)峰值+非線性步長(zhǎng)算法定義為方案一,將過零檢測(cè)+非線性步長(zhǎng)算法定義為方案二。其中,方案一的2組實(shí)驗(yàn)序號(hào)記為1和2,方案二的2組實(shí)驗(yàn)序號(hào)記為3和4,實(shí)驗(yàn)結(jié)果如表3所示。
表3 含不同步態(tài)算法的組合系統(tǒng)實(shí)驗(yàn)測(cè)量數(shù)據(jù)結(jié)果
從實(shí)驗(yàn)數(shù)據(jù)結(jié)果中可以得到,方案一的行走距離誤差為10%,方案二的行走距離誤差僅為1%,可見盡管在單獨(dú)的步態(tài)檢測(cè)中兩種步態(tài)算法得到的結(jié)果都有較高的精度,但是組合測(cè)量系統(tǒng)中,數(shù)據(jù)精度存在較大的差別。這主要是因?yàn)閱尾讲介L(zhǎng)的計(jì)算結(jié)果有所不同,實(shí)驗(yàn)采用的非線性步長(zhǎng)估計(jì)算法中,步長(zhǎng)的計(jì)算公式與一步內(nèi)加速度模值的最大值和最小值有很大的關(guān)系。而自適應(yīng)峰值檢測(cè)算法截取的行人步態(tài)周期是從一個(gè)峰值到下一個(gè)峰值間的加速度模值,所以,加速度模值最大值的獲取會(huì)因?yàn)榍昂笙噜彿逯档牟煌斐芍貜?fù)獲取同一峰值的結(jié)果,這就會(huì)造成單步步長(zhǎng)的計(jì)算整體變大,從而使得檢測(cè)出的行走距離變大。
本次研究設(shè)計(jì)了相同環(huán)境下的實(shí)驗(yàn),從算法的優(yōu)越性和普適性2個(gè)角度對(duì)三種步態(tài)檢測(cè)算法進(jìn)行設(shè)計(jì)和比較。實(shí)驗(yàn)結(jié)果可以看出,自適應(yīng)峰值檢測(cè)算法和過零檢測(cè)算法,相對(duì)于普通峰值檢測(cè)算法而言具有明顯的優(yōu)越性,測(cè)量精確度基本可以達(dá)到100%,而且適應(yīng)的運(yùn)動(dòng)狀態(tài)范圍更廣,普適性更強(qiáng)。隨后,將這兩種算法結(jié)合相同的步長(zhǎng)估計(jì)算法,測(cè)試行人直線行走的距離,對(duì)比了兩種算法在組合算法中的檢測(cè)精確度。結(jié)果表明,由于所選步長(zhǎng)估計(jì)算法工作流程的原因,兩種步態(tài)檢測(cè)下的組合算法表現(xiàn)出了不同的測(cè)量精度。分析知道,組合不同的步長(zhǎng)估計(jì)算法,兩種步態(tài)檢測(cè)算法會(huì)表現(xiàn)出不同的優(yōu)越性能,需要考慮所組合算法的工作原理進(jìn)行更具體的選擇。