小小手环,记录每日步数,面对数据叠加问题,如何精确处理呢?

小米手环怎么设置运动目标(小米手环如何保证运动数据的准确性)(1)

上个月买了小米4手环,初心有二:体验新鲜电子产品;用来计算步数 。在使用过程中我一直对其计算方式比较好奇,索性今天满足下自己的好奇心。

一、小米手环怎么解决数据叠加问题呢?

简单列举两个场景:

  1. 早上我只带了手环去了篮球场,显示步数5000;下午我只带了手机外出,显示步数3000;
  2. 早上我只带了手环去了篮球场,显示步数5000;中午我同时带了手机和手环走了1小时,手机显示步数3000。

那么,今天我的微信运动步数是多少呢?

这个问题,我小侄子都能算出,正确应该是5000 3000=8000步。

但我想表达的是,微信运动在读取数据时,是如何做到精确统计呢?

我的推理是这样的:

小米手环和iPhone的健康数据作为一个数据源,可以简单理解为数据ID。那么在汇总统计时,会对每一条上传的数据打上数据来源标签。对于在同一时间段内的重复数据进行合并处理。

即将一天24小时按照时间长度依次叠加数据,这样就可以保证数据的准确性。

那么,事实上是不是这样呢?

二、揭秘时刻

下面这张图是我选取上周日的数据。

可以看到,每条数据由3部分构成:数据来源 步数 时间点。每个上传的数据都按照时间进行展示,最终一天的数据就是这些数据的累加。

小米手环怎么设置运动目标(小米手环如何保证运动数据的准确性)(2)

完美!

三、小米手环的计步原理是什么呢?

是的,我就是来自本山大叔刨根问底栏目组的那个谁谁谁。根据小米官方文档看出,小米手环能够精准计步由硬件和软件算法两方面组成。

硬件

是指小米手环里内置的那枚强悍的三轴加速度传感器,军用级。

那么,啥是三轴加速度传感器呢?

这里的三轴是指空间坐标轴X/Y/Z。物理知识告诉我们,运动就会产生加速度,通过传感器获取这些数据,接下来的事情交给软件算法。

软件算法

程序猿根据三轴加速度实时捕捉到的三维数据,经过滤波、峰谷检测等过程,使用各种算法和逻辑计算,最终将这些数据转变成手环里的可读数字,包括步数、距离、消耗的卡路里等数值。

好了,大概就是这些了,算是给自己在这块的一个基本交代。下周有时间好好学习下硬件传感器方面的知识。

作者:六六老爹;4年PM,涉及BIM、游戏电商和AI领域

来源:https://www.jianshu.com/p/95bb5e7377c4

本文由 @六六老爹 授权发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

,