手機(jī)上實(shí)現(xiàn)高精度自適應(yīng)場(chǎng)景的計(jì)步器算法

·#前言
隨著當(dāng)前智能終端的普及浅妆,人們可做的事情變得越來(lái)越有趣变秦,比如計(jì)步器。傳統(tǒng)的計(jì)步器一般是一個(gè)單獨(dú)的設(shè)備席爽,戴在身體的某個(gè)位置意荤,由于必須在用戶身上增加一個(gè)設(shè)備,推廣起來(lái)有一定阻力只锻。其實(shí)玖像,計(jì)步器只需要一個(gè)3-軸加速度傳感器就能做到較高的記步精度,類似三星note3的計(jì)步器精度在95%以上齐饮。當(dāng)前智能手機(jī)一般都含有加速度傳感器捐寥,許多人開(kāi)始在手機(jī)上做計(jì)步器笤昨。可惜目前Android市場(chǎng)上大多數(shù)計(jì)步器精度都不理想握恳,經(jīng)本人測(cè)試瞒窒,目前最好的是三星的note3的健康伙伴,更關(guān)鍵的是三星使用了sensorhub的技術(shù)乡洼,在保持精度的同時(shí)崇裁,做到了超低功耗。
在手機(jī)上做計(jì)步器相較于傳統(tǒng)的計(jì)步器最大的難點(diǎn)在于手機(jī)使用時(shí)位置不固定束昵,計(jì)步器要能適應(yīng)不同放置位置和不同走路場(chǎng)景拔稳,這就要求計(jì)步器算法有很好的動(dòng)態(tài)調(diào)整能力。

計(jì)步器模型介紹

關(guān)于人走路的模型锹雏,前人[1]已經(jīng)做了很多研究巴比,不再累贅”普欤總結(jié)來(lái)講匿辩,人在走路時(shí),加速度傳感器會(huì)形成一個(gè)類似正弦波形圖榛丢,因此可以根據(jù)檢測(cè)波峰波谷記步铲球。見(jiàn)下圖:

步伐傳感器數(shù)據(jù)波形圖
步伐傳感器數(shù)據(jù)波形圖

算法

概述

  1. 特征選取
  2. 濾波
  3. 基于動(dòng)態(tài)閾值檢測(cè)步數(shù)
  4. 步數(shù)矯正

特征選取

考慮到手機(jī)在不同放置情況下傳感器的每個(gè)軸會(huì)有不同表現(xiàn),因此晰赞,取其強(qiáng)度特征可以避免該類問(wèn)題稼病,即取三軸平方和。

濾波

濾波是一種常見(jiàn)的數(shù)據(jù)預(yù)處理方法掖鱼,特別是手機(jī)上加速度傳感器數(shù)據(jù)存在一定的噪音然走,經(jīng)過(guò)濾波后能得到較平滑的數(shù)據(jù)。濾波算法有許多中戏挡,常見(jiàn)的有數(shù)字濾波芍瑞,也可以叫中值濾波、高斯濾波褐墅、快速傅里葉變換拆檬。本人試過(guò)幾種濾波算法后,發(fā)現(xiàn)采用中值濾波即可滿足需求妥凳,因?yàn)樗惴ǖ钠款i并不在此竟贯。另一個(gè)考慮是終端的計(jì)算資源有限,過(guò)多的計(jì)算將造成大量的耗電逝钥。

簡(jiǎn)單來(lái)講屑那,即取一個(gè)時(shí)間窗做平滑,假設(shè)以50HZ的頻率采集加速度傳感器數(shù)值,即在Android中注冊(cè)Sensor頻率為Fastest(不同手機(jī)可能會(huì)有差異)持际。我采用5個(gè)數(shù)據(jù)做一次平滑沃琅,即收到5個(gè)數(shù)據(jù)算一次平均值,當(dāng)做當(dāng)前值选酗。當(dāng)然阵难,你可以增加時(shí)間窗長(zhǎng)度,但是需要考慮用戶體驗(yàn)芒填,不能延遲太久呜叫。

動(dòng)態(tài)閾值

通常,計(jì)步器有兩種思路:一種是通過(guò)計(jì)算過(guò)零率來(lái)記步殿衰;另外一種是計(jì)算極大值和極小值朱庆,判斷峰谷值來(lái)記步。兩種算法的思想類似闷祥,都需要設(shè)置閾值娱颊。為了適應(yīng)各種不同的位置和走路姿勢(shì),你不能簡(jiǎn)單設(shè)一個(gè)閾值來(lái)檢測(cè)步數(shù)凯砍。第一種方法容易出現(xiàn)誤記箱硕,需要結(jié)合其他方法排除在mean值附近抖動(dòng)的數(shù)據(jù)。第二種方法容易出現(xiàn)漏檢悟衩,同時(shí)如果誤記剧罩,還會(huì)影響到后續(xù)的記步,因?yàn)樵谝淮尾椒ブ谐霈F(xiàn)好幾個(gè)峰谷是很正常的座泳,如何去除這些數(shù)據(jù)的影響需要良好的設(shè)計(jì)惠昔。

本人采用的檢測(cè)峰谷值得方法記步,但不是通過(guò)計(jì)算極大值和極小值挑势,而是設(shè)置波峰的閾值和波谷的閾值镇防,即當(dāng)數(shù)據(jù)大于波峰閾值時(shí),都記為未確認(rèn)峰值潮饱,保存其中最大的一個(gè)来氧,這樣可以避免數(shù)據(jù)在上升途中偶爾出現(xiàn)的抖動(dòng)。同理香拉,作用于峰谷饲漾。
檢測(cè)出峰谷之后,通過(guò)保存一個(gè)時(shí)間窗,通過(guò)里面的峰谷個(gè)數(shù)記步袄友。這里更多的是工程上的設(shè)計(jì)蕉朵。

步數(shù)矯正

基本思想是人類走路的特性,人的步伐速度在200-2000ms之間镜盯,通過(guò)記錄記步的時(shí)間戳别凤,矯正步數(shù)似嗤。步伐間隔<200ms和>2000ms枉层,認(rèn)為是無(wú)效步數(shù)泉褐。這部分也是目前終端計(jì)步器算法的核心,做的好的公司都有相應(yīng)的矯正機(jī)制鸟蜡。

總結(jié)

計(jì)步器算法的基本思想大致如此膜赃,最終產(chǎn)品的表現(xiàn)還要不斷打磨,針對(duì)異常場(chǎng)景進(jìn)行優(yōu)化揉忘。最后跳座,終端設(shè)備上應(yīng)用不可避免的是功耗問(wèn)題,如果開(kāi)了計(jì)步器泣矛,你的手機(jī)用半天就沒(méi)電疲眷,估計(jì)沒(méi)人愿意用。目前市場(chǎng)上許多低功耗計(jì)步器算法您朽,大多以降低精度為代價(jià)狂丝。目前看來(lái)只有三星采用高通的sensorhub方案有較好的表現(xiàn)。

參考:

[1] 利用3軸數(shù)字加速度計(jì)實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

[2] Github上的一個(gè)計(jì)步器實(shí)現(xiàn)代碼 改代碼直接使用效果不好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哗总,一起剝皮案震驚了整個(gè)濱河市几颜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讯屈,老刑警劉巖蛋哭,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異耻煤,居然都是意外死亡具壮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門哈蝇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)棺妓,“玉大人,你說(shuō)我怎么就攤上這事炮赦×埽” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵吠勘,是天一觀的道長(zhǎng)性芬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)剧防,這世上最難降的妖魔是什么植锉? 我笑而不...
    開(kāi)封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮峭拘,結(jié)果婚禮上俊庇,老公的妹妹穿的比我還像新娘狮暑。我一直安慰自己,他們只是感情好辉饱,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布搬男。 她就那樣靜靜地躺著,像睡著了一般彭沼。 火紅的嫁衣襯著肌膚如雪缔逛。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天姓惑,我揣著相機(jī)與錄音褐奴,去河邊找鬼。 笑死挺益,一個(gè)胖子當(dāng)著我的面吹牛歉糜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播望众,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼匪补,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了烂翰?” 一聲冷哼從身側(cè)響起夯缺,我...
    開(kāi)封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甘耿,沒(méi)想到半個(gè)月后踊兜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡佳恬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年捏境,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毁葱。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垫言,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出倾剿,到底是詐尸還是另有隱情筷频,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布前痘,位于F島的核電站凛捏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏芹缔。R本人自食惡果不足惜坯癣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望最欠。 院中可真熱鬧坡锡,春花似錦蓬网、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吵取。三九已至禽额,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間皮官,已是汗流浹背脯倒。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捺氢,地道東北人藻丢。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像摄乒,于是被迫代替她去往敵國(guó)和親悠反。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容