自從微信推出走路排行榜以來,不少小伙伴想出了各種方法來霸占排行榜,其中就有人將運動手環綁在狗狗身上。那么手環綁在狗身上,算不算微信步數呢?微信官方首次揭秘:要理解這些問題,需要先用1分鐘解釋一個簡單的道理,“步數”的依據究竟是什么?
步數背后的秘密:加速度
即使看似勻速的閑庭信步,對我們攜帶的設備來說(如手機、運動手環),每一步都經歷了過山車般的“加速度”變化。一般來說,抬腿邁出一步的時候,加速度是最大的。我們把它放到一個坐標軸上,加速度的變化看起來就像一個cos波形。
(x軸表示時間,y軸表示加速度)
兩個波峰之間,可以被認為是一步。如果連續出現了8個(不同硬件廠商有不同標準)波峰,就可以基本確定這個人在運動狀態。設備就開始把這些前面的波動以及后面的波動,算成步數。這就是最基本的計步原理了。
在實際場景中,算法還要去掉一系列的“噪音”。比如我們走路時,手機放兜里會上下抖動,產生不同方向的加速度。這時算法就要判斷并去掉“噪音”,只留下最主要的運動特征。
而這些工作是由一個采集器(加速度傳感器)和一個處理器(SensorHub,協處理器)共同完成的。采集器采集加速度信息,并提供給處理器進行分析。目前iPhone5s及以上的蘋果手機和部分安卓手機都集成了這個采集、分析的框架。而運動手環等外接設備,也是基于類似框架對數據采集和分析后,通過藍牙傳給手機。(是的,以上都是硬件廠商解決的,還沒有說到微信,稍安毋躁。)
那么,現在你已經對計步的基本原理有了一定的了解。頓時覺得好簡單有沒有!就讓我們看一看下面幾個簡單的例子吧。
問:原地踏步算嗎?
答:算啊,跟走路一樣的。因為你原地踏步,雖然沒有相對于地面的位移,但加速度是存在的。同理,在跑步機上跑步,放心,步數都記著呢。
問:坐著抖腿呢?
答:這與你抖腿的幅度和頻率都有關,且看少年你骨骼驚奇還是手機廠商算法高深。任何震動會被采集到,但不同硬件廠商算法對這些場景處理可能不一樣。
問:綁狗身上行嗎?
答:既然你這么問了,那我恐怕只能說這與狗狗的性格有關。文靜一些的,或者幼犬,走路比較慢的話,它邁步產生的加速度不一定有人那么高,達不到算法的閥值。性格活潑的,或者大一些的狗狗,運動加速度特征與人相似,“騙過”算法的可能性較高。不同手機廠商也有不同的算法優化方案。
問:我生活三點一線,一天就幾千步,如果有機會坐火車,是不是可以狠狠刷一把步數?
答:計步的基本原理不是采集距離,也不是采集速度,而是采集加速度。不管火車走多遠、跑多快,大多數情況是勻速(或勻加減速)運動,加速度變化不顯著,且無法形成與走路相似的波形。火車上,如果你不走路的話,計算步數的可能性是非常小的。
追問:那在火車上搖手機呢?
答:搖也可以啊,因為有一個縱向加速度,在縱向上會產生波紋。但這與火車無關,和原地抖腿沒有本質區別。
問:為什么我坐公交車就算步數了呢?
答:對,公交車上被計算步數的概率是比較高的。路況有一定影響,繁忙路段行駛時,走走停停都會產生加速度的變化。還和司機的開車習慣有關,如果司機不停地剎車,或者顛得厲害,加速度影響就大。如果遇上開車開得平穩又熟悉路況的本地老司機,車上乘客比較不容易計步。
問:微信運動的步數計算周期是什么?晚上10點排行榜以后步數還算嗎?
答:零點到夜里24點。但微信運動排行榜在晚上10點推送,用戶一般都在那個時候查看排行、相互點贊。如果你晚上11點去跑步的話,記上是記上了,但別人都沒看到,就少了一些攀比的樂趣。步數過零點清零。
問:廠商各有算法,不同設備用戶在微信運動上一起排名,如何公平呢?
答:實際上,在抖腿、公交之外,走路、跑步才是日常運動最主要的場景。這些基本場景的算法,業界是較為統一的。微信對主要場景也有一套測試流程,確保不同設備計入的步數差距不大。對極端場景,也會持續優化算法。
最后還有你們一直想問的,作弊問題。
其實可以作弊的地方有很多。特別是安卓,作為一個開源的系統,人為變更上報數據都是可能的。微信有一套反作弊機制,比如在用戶手機端對速度做簡單的合法性校驗。假如一秒鐘就走了10步,這種數據就可能被系統直接抹掉。而且還給他暫停計步,讓他覺得作弊沒用。
如你所想,抖腿、綁狗,小小“作弊”,完全杜絕是不太可能的。對于嚴重、明顯的連續作弊,微信會請他進入黑名單,他的數據不會再被別人看到,就只能自嗨了。