熊晶
(中國地震局地震研究所,湖北 武漢430071;中國地震局地震大地測量重點實驗室,湖北 武漢430071;湖北省地震局,湖北 武漢430071;武漢地震計量檢定與測量工程研究院有限公司,湖北 武漢430071)
基于智能手機的增值服務(wù)是未來人類娛樂與商業(yè)活動的核心增長點,智能手機作為優(yōu)秀的個人定位導(dǎo)航平臺,基于其位置服務(wù)的應(yīng)用具有巨大的社會價值。目前智能手機上已經(jīng)基本全部配備GPS 芯片,結(jié)合行人航跡推算PDR(Pedestrian Dead Reckoning)算法,利用手機傳感器測量的步數(shù)和估計的步長來估算運動距離,并結(jié)合姿態(tài)傳感器獲得航向,從而推算出行人的相對位置[1],實現(xiàn)復(fù)雜環(huán)境下行人的導(dǎo)航定位。而其中,步長模型的研究是PDR 算法實現(xiàn)的關(guān)鍵環(huán)節(jié),其合理性和可靠性是行人導(dǎo)航定位的重要影響因素。
行人步行或跑步過程中,其步長是不斷變化的,比如路上步行、轉(zhuǎn)彎、快走、上下樓梯等,步長都不是定值。而且不同行人的步長也是不同的,與行人的性別、身高、體重、年齡、心情甚至個人行為習(xí)慣有關(guān)[2]。本文僅建立行人在不同場景下的步長模型,暫時不考慮各種用戶群體的種類。
目前的研究表明,行人的步長與其加速度的某些統(tǒng)計值有很好的相關(guān)性,如最大最小加速度、方差、步頻等,目前有4 種步長模型:常數(shù)步長模型、線性步長模型、非線性步長模型和神經(jīng)網(wǎng)絡(luò)步長模型[3]。
常數(shù)步長模型是最簡單的步長模型,假設(shè)步長為常數(shù)。常數(shù)由手機GPS 定位結(jié)果計算得出,當(dāng)沒有GPS 信號時,步長默認(rèn)為最后一次GPS 定位計算的結(jié)果:
式(1)中:Sk為k 時刻步長;SGPS為GPS 實時計算的步長;wG、ws是高斯白噪聲;S0為GPS 無信號之前定位結(jié)果計算的最后步長。
雖然在室外GPS 定位精度最好,但仍然有10 m左右的誤差,所以據(jù)此計算的步長精度很難到達米級,而且誤差積累更大。
線性步長模型認(rèn)為步長和步頻、加速度之間存在線性關(guān)系[4],為:
式(2)中:L 為步長;A、B、C 為線性模型系數(shù),可由實驗線性模擬得出;F 為步頻,即該步所用時間的倒數(shù);SV 為該步的加速度方差。
非線性步長模型是通過步行過程中加速度的最大值和最小值為參數(shù)建立的,優(yōu)于難以證明步長和運動參數(shù)的線性關(guān)系,所以線性關(guān)系只是一種簡單估計,而步行過程中的加速度是在不斷動態(tài)變化的,總有2個極值的存在。所以有學(xué)者提出基于加速度極值的模型公式:
式(3)中:K 為模型的系數(shù);Amax是該步過程中最大的加速度值;Amin為最小的加速度值。
人工智能步長模型不是建立步長與運動參數(shù)之間的關(guān)系,而是將運動數(shù)據(jù)作為樣本輸入,進行反復(fù)訓(xùn)練,自適應(yīng)估算出步長,比如輸入該步的加速度最大值、加速度最小值、方差及步頻等。最后,通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,估計出步長[5]。
3 種步長估計模型的比較如表1 所示,這3 種步長估計模型線性估計模型效果最好,所以本文擬選用線性估計模型,通過最小二乘法線性擬合求出線性估計模型參數(shù)A、B、C。
表1 3 種步長估計模型的比較
最小二乘法擬合是以最小化誤差平方的思路來得出數(shù)據(jù)的最佳匹配函數(shù),利用最小二乘法可以擬合出未知數(shù)據(jù),并使其與實際數(shù)據(jù)之間誤差的平方和最小[6]。
步長線性估計模型可表示為:
假設(shè)有n 組實驗數(shù)據(jù)(n 至少為3),每組數(shù)據(jù)都是由GPS 和步數(shù)計算的步長、步頻F、加速度方差SV組成,設(shè)A、B、C 為參數(shù)X,并給定估值,組成n 個觀測方程,利用最小二乘間接平差的原理,可得出以下公式:
A0、B0、C0為近似值,根據(jù)最小二乘原理,VTV=min,最優(yōu)解為,參數(shù)協(xié)方差
根據(jù)實驗得出步行狀態(tài)模型參數(shù)結(jié)果,考慮到實際情況,用戶在使用計步軟件之前一般不會專門做實驗來求出精確步長模型,所以本文設(shè)計了一個通過后期訓(xùn)練方式的模型建立算法。前提條件是用戶首次使用定位軟件是在GPS 信號良好的情況下進行,因為融合定位需要GPS 定位結(jié)果作為初始值。用戶在GPS 定位精度較高的情況下,行走一段距離,記錄步數(shù)和每一步的加速度方差及步頻等參數(shù),然后通過距離和步數(shù)計算步長,最后擬合一次線性步長模型求取A、B、C 的參數(shù)值。
算法流程是在室外GPS 信號良好情況下,每5 步估算一次步長L,通過每步的起始位置和結(jié)束位置求取GPS 定位距離估算,這里假設(shè)5 步步長一樣,并記錄平均加速度方差SV 和平均步頻F;然后每走20 步,擬合一次步長模型,有4 個步長模型方程,計算出參數(shù)A、B、C。然后和下一個20 步步長模型求取參數(shù)的平均值,當(dāng)步數(shù)積累足夠多時,模型參數(shù)會越來越準(zhǔn)確,在收斂到一定精度后,就不再繼續(xù)模擬,具體流程如圖1 所示。
圖1 后期訓(xùn)練步行估計模型算法流程圖
在能夠準(zhǔn)確測量步數(shù)之前,需要了解人體步行瞬間動作。人體步行動作分解如圖2 所示,人體在連續(xù)正常行走過程中,總是會按照圖2 流程循環(huán)進行。首先是身體向前傾斜,準(zhǔn)備邁出左腳,左腳跟離地,即認(rèn)為是一步起點。身體向前傾斜后會有向下跌倒的趨勢,此時右腳尖會蹬地,以便左腳抬起后邁出,使人體重心前移并上升。然后左腳擺至一步的距離落下,左腳跟著地,重心前移并下降。最后左腳尖著地,右腳往前收回,直至與左腳平行,計作一步。下一步是右腳繼續(xù)向前邁出,重復(fù)上述動作[7]。
圖2 人體步行動作分解
目前,計步器得到了廣泛的研究和應(yīng)用。早期是計步器硬件,隨后是手機等移動設(shè)備的計步功能,到現(xiàn)在流行的穿戴設(shè)備如手環(huán)計步等,其原理都是通過采集加速度傳感器的數(shù)據(jù),進行數(shù)據(jù)的峰值檢測。
鑒于人體行走時,手機的姿態(tài)是隨機的,手機的三軸加速度不能取某一軸來代表豎直方向的加速度變化,所以應(yīng)隨三軸加速度數(shù)據(jù)取模,利用三軸的合加速度進行步態(tài)分析。步行狀態(tài)加速度數(shù)據(jù)有明顯的周期性變化,而且一個周期剛好是一步,一步的周期里有一個大波峰、一個小波峰以及一個波谷,所以只要能檢測出一段時間內(nèi)的大波峰數(shù)量,就可以估算步數(shù)。
本文的計步原理是通過設(shè)置一個檢測窗口,計算窗口內(nèi)的合加速度方差,然后根據(jù)設(shè)定閾值,判斷該窗口內(nèi)步行的行為,從而判斷是否為一步。根據(jù)人體步行規(guī)律,此處設(shè)置2 種閾值:一種是檢測是否達到大幅邁步時期的加速度方差閾值T1,另一種是檢測是否達到腳和地面接觸站立時期的加速度方差閾值T2[8]。
其算法步驟如下。
第一步,每個采樣點都要求算出合加速度ai:
第二步,計算滑動窗口w(w=15)內(nèi)的合加速度平均值:
第三步,計算w 窗口內(nèi)的方差:
第四步,判斷是否達到了閾值T1和T2。
判斷為一步必須滿足以下2 個條件:①邁步時期必須是從高加速度向低加速度轉(zhuǎn)變;②在當(dāng)前樣本i之前窗口大小w 之中,至少有一個低加速度被檢測到。
考慮到人體步行或跑步的情形下,正常人的步頻會在1~5 Hz 范圍內(nèi)變化,也就是0.2~2 s 走一步,如果某一步的步頻不在此范圍,可以認(rèn)為是錯誤判斷,這樣可以提高計步的準(zhǔn)確度。而且根據(jù)香農(nóng)定理,采樣頻率應(yīng)至少達到最大頻率的2 倍。
本實驗分別行走了具備不同路面的路段,標(biāo)準(zhǔn)步數(shù)為100 步,均是直線行走,為了驗證本文計步算法的性能,實驗測試了5 組,結(jié)果如表2 所示。
從統(tǒng)計結(jié)果來看,本文計步算法準(zhǔn)確性較好,平均準(zhǔn)確率為97%,平均誤差為-1.4%,最大誤差僅為-6.0%,充分驗證了本步數(shù)探測算法能夠有效地探測步數(shù)。但本算法很難避免錯誤計步,可能是因為手機在其他情況下,也會計步,比如手動搖晃,計步算法也會增加步數(shù)。但總體來說,該計步算法能夠滿足融合定位的行人航跡推算要求。
表2 步數(shù)探測實驗
本文介紹了步長估算模型的原理,通過最小二乘法擬合線性步長模型。介紹了人體步行規(guī)律和計步器的原理,設(shè)計了一種適合智能手機融合定位算法的步長模型,通過實驗驗證,證明本步長模型能夠滿足融合定位中行人航跡推算的要求。