腾讯微信和QQ的计步功能是怎么实现的呢?抖腿也算步数吗?

编辑:chenbx123 来源:U大侠 时间:2017-03-20

  腾讯微信和QQ都有自己的计步功能和排行榜,很多人都喜欢霸占排行榜,有些人就尝试过把运动守护绑在狗狗身上尝试计步功能,这个真的算步数吗?手机计步功能是如何实现的呢?下面U大侠为你解答。

  计数原理:加速度

  即使看似匀速的闲庭信步,对我们携带的设备来说(如手机、运动手环),每一步都经历了过山车般的“加速度”变化。 一般来说,抬腿迈出一步的时候,加速度是最大的。我们把它放到一个坐标轴上,加速度的变化看起来就像一个cos波形。

  两个波峰之间,可以被认为是一步。如果连续出现了8个(不同硬件厂商有不同标准)波峰,就可以基本确定这个人在运动状态。设备就开始把这些前面的波动以及后面的波动,算成步数。这就是最基本的计步原理了。

  在实际场景中,算法还要去掉一系列的“噪音”。比如我们走路时,手机放兜里会上下抖动,产生不同方向的加速度。这时算法就要判断并去掉“噪音”,只留下最主要的运动特征。

  而这些工作是由一个采集器(加速度传感器)和一个处理器(Sensor Hub,协处理器)共同完成的。采集器采集加速度信息,并提供给处理器进行分析。目前iPhone5s及以上的苹果手机和部分安卓手机都集成了这个采集、分析的框架。而运动手环等外接设备,也是基于类似框架对数据采集和分析后,通过蓝牙传给手机。(是的,以上都是硬件厂商解决的,还没有说到微信,稍安毋躁。)

  那么,现在你已经对计步的基本原理有了一定了解。顿时觉得好简单有没有!就让我们看一看下面几个简单的例子吧。

  问:原地踏步算吗?

  答:算啊,跟走路一样的。因为你原地踏步,虽然没有相对于地面的位移,但加速度是存在的。同理,在跑步机上跑步,放心,步数都记着呢。

  问:坐着抖腿算吗?

  答:这与你抖腿的幅度和频率都有关,如果你抖腿的频率非常快而且幅度又很大肯定是可以的。

  问:绑狗身上行吗?

  答:大狗可以,小狗就不好说了,小型犬类一般步伐较小,因此产生的加速度也不高所以有可能是不会计算进去的。

  问:坐车能计算步数吗?

  答:当然是不可以的啦,一般情况下,在车上是匀速运动的,产生加速度的情况很少,启动、刹车、减速、加速,在车上只有这四种情况能够产生加速度,因此即使计算进去了,也没几步的。

  问:那摇手机呢?

  答:摇也是可以的,你不怕手酸拿不住手机摔坏了就行。

  问:为什么我坐公交车就算步数了呢?

  答:这就是为什么公交车上会有拉环的原因了,因为公交车基本上都会路过繁忙的街道,走走停停是常事,所以在公交车上非常容易产生加速度计算步数。

  问:微信运动的步数计算周期是什么?晚上10点排行榜以后步数还算吗?

  答:零点到夜里24点。但微信运动排行榜在晚上10点推送,用户一般都在那个时候查看排行、相互点赞。如果你晚上11点去跑步的话,记上是记上了,但别人都没看到,就少了一些攀比的乐趣。步数过零点清零。

  问:厂商各有算法,不同设备用户在微信运动上一起排名,如何公平呢?

  答:实际上,在抖腿、公交之外,走路、跑步才是日常运动最主要的场景。这些基本场景的算法,业界是较为统一的。微信对主要场景也有一套测试流程,确保不同设备计入的步数差距不大。对极端场景,也会持续优化算法。

  最后还有你们一直想问的,作弊问题。

  其实可以作弊的地方有很多。特别是安卓,作为一个开源的系统,人为变更上报数据都是可能的。微信有一套反作弊机制,比如在用户手机端对速度做简单的合法性校验。假如一秒钟就走了10步,这种数据就可能被系统直接抹掉。而且还给他暂停计步,让他觉得作弊没用。

  如你所想,抖腿、绑狗,小小“作弊”,完全杜绝是不太可能的。对于严重、明显的连续作弊,微信会请他进入黑名单,他的数据不会再被别人看到,就只能自嗨了。

  更多精彩内容,请关注U大侠官网或者关注U大侠官方微信公众号(搜索“U大侠”,或者扫描下方二维码即可)。

U大侠微信公众号
U大侠微信公众号

  有问题的小伙伴们也可以加入U大侠官方Q群(129073998),U大侠以及众多电脑大神将为大家一一解答。

分享: