小米手环如何保证运动数据的准确性?
小小手环,记录每日步数,面对数据叠加问题,如何精确处理呢?
上个月买了小米4手环,初心有二:体验新鲜电子产品;用来计算步数 。在使用过程中我一直对其计算方式比较好奇,索性今天满足下自己的好奇心。
一、小米手环怎么解决数据叠加问题呢?
简单列举两个场景:
- 早上我只带了手环去了篮球场,显示步数5000;下午我只带了手机外出,显示步数3000;
- 早上我只带了手环去了篮球场,显示步数5000;中午我同时带了手机和手环走了1小时,手机显示步数3000。
那么,今天我的微信运动步数是多少呢?
这个问题,我小侄子都能算出,正确应该是5000+3000=8000步。
但我想表达的是,微信运动在读取数据时,是如何做到精确统计呢?
我的推理是这样的:
小米手环和iPhone的健康数据作为一个数据源,可以简单理解为数据ID。那么在汇总统计时,会对每一条上传的数据打上数据来源标签。对于在同一时间段内的重复数据进行合并处理。
即将一天24小时按照时间长度依次叠加数据,这样就可以保证数据的准确性。
那么,事实上是不是这样呢?
二、揭秘时刻
下面这张图是我选取上周日的数据。
可以看到,每条数据由3部分构成:数据来源+步数+时间点。每个上传的数据都按照时间进行展示,最终一天的数据就是这些数据的累加。
完美!
三、小米手环的计步原理是什么呢?
是的,我就是来自本山大叔刨根问底栏目组的那个谁谁谁。根据小米官方文档看出,小米手环能够精准计步由硬件和软件算法两方面组成。
硬件
是指小米手环里内置的那枚强悍的三轴加速度传感器,军用级。
那么,啥是三轴加速度传感器呢?
这里的三轴是指空间坐标轴X/Y/Z。物理知识告诉我们,运动就会产生加速度,通过传感器获取这些数据,接下来的事情交给软件算法。
软件算法
程序猿根据三轴加速度实时捕捉到的三维数据,经过滤波、峰谷检测等过程,使用各种算法和逻辑计算,最终将这些数据转变成手环里的可读数字,包括步数、距离、消耗的卡路里等数值。
好了,大概就是这些了,算是给自己在这块的一个基本交代。下周有时间好好学习下硬件传感器方面的知识。
作者:六六老爹;4年PM,涉及BIM、游戏电商和AI领域
来源:https://www.jianshu.com/p/95bb5e7377c4
本文由 @六六老爹 授权发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: