刷步数跟朋友拼个“你死我活”不如出来走两步
文/记者 刘昭
关注了“微信运动”公众号的小伙伴们应该都有一种类似的感受,其记录的健康步数比较“魔性”。有的晚上睡一觉,醒来发现数据多了一两百步;两个人走了相同的距离,但步数差异巨大。是什么原因导致了如此之大的误差呢?健康应用的数据究竟准确吗?
iPhone的健康数据如何得来?
要想知道数据准不准确,我们先要搞清楚数据是怎么得来的。在最新的iOS9.0.2系统中,健康应用包括了本人信息、健身数据、身体测量、生殖健康、睡眠状况、营养摄入和主要体征等方面。其中大部分均为静态数据,需要用户手动上传输入,应用后台对数据进行处理然后给出健康状况参考。而能够自动获取的人体行为信息,只有步数、步行+跑步距离以及已爬楼层。
就现在最火的计步数据而言,目前获取人体行为信息的方法基本有两种:一种基于视觉,另一种基于传感器。基于视觉的人体行为识别技术起步较早,理论研究比较成熟。但是视觉识别存在明显的缺陷,除了光线、背景条件的限制,最主要的是没有任何一个用户希望随时在摄像仪器下上演真人秀。所以,无论是iPhone还是其他手机,或是可穿戴式智能设备,其数据来源均是基于传感器来获取。
目前,iPhone 6S等主流产品中内置的传感器有5种,分别为三轴陀螺仪、加速度传感器、距离传感器、环境光传感器及气压计。更早期的iPhone 5S中没有内置气压传感器,其余均都包括。
iPhone 6上使用了加速度传感器、陀螺仪、距离与环境光传感器、气压传感器等。
人体行为信息的收集主要是通过加速度传感器来完成的。加速度传感器是一种可以测量物体加速力的电子设备,它首先将待测点测量到的加速度信号转换为相应的电信号,然后利用模数转换将模拟信号转换为相应的数字信号,最后送入处理器与存储器进行数据存储和显示。相对于远距离传感的装置,它测量的是自身的运动。
当传感器收集到运动信号之后,开发人员通过相应的特征参数提取以及算法识别,就可以估算出人所走的步数、路程,或者是走路、跑步以及上下楼梯的变化。
现代手机大多数使用了加速度传感器、陀螺仪、距离与环境光传感器、气压传感器等,它们才是测量步数的工具
步数误差是怎么产生的?
作为生活中的个体,每个人的习惯千差万别,不可能达到实验室中的理想状态,这本身就会造成很大的误差。
华南理工大学电子与信息学院金连文教授进行过一组手机加速度传感器的信号监测实验,在相同的加速度传感器及算法条件下,不同的手机摆放方式会产生不同的振动信号。将所得到的监测数据与实际计步数进行对照,发现当手机被固定在腰间时,所得到的振动信号与实际情况误差最小;其次为放在裤兜之中,而把手机放在包中或其他宽松的环境中,结果与实际误差最大。这是由于除了人体的运动之外,手机本身也会产生较大的位置变化,从而影响了数据的准确。
“手机及其他移动设备中内置的基本是电容式加速度传感器,它是基于电容的瞬间变化来测量加速度变化的,具有灵敏度高、受周围的环境影响小、线性度较好的优点,但由于外界对电容的干扰的客观存在,精度受外界干扰较大。在实验室最理想的状态下,我们可以实现97%~98%的准确率,但在实际生活中很难实现。”金连文教授如是说。
按照以上结果,检测健康的终端设备被固定在身体上得到的数据相对最为准确,那么是不是意味着,像iWatch或者手环类可穿戴设备更能准确反映出身体状况呢?也不尽然。据南京邮电大学计算机学院、软件学院徐小龙教授介绍,虽说手环手表类设备位置相对固定,能够获得连续稳定的信号,但除了行走摆臂外,我们的手还在做着其他的事情,比如端茶杯、移动鼠标,甚至在开车手握方向盘时也会有信号输出,这些都可以干扰数据的准确性,误差依然不可避免。
最土的佩戴手机方式确实是得到运动数据误差最小的办法
算法不同,数据千差万别
除了不可控的人为因素,手机本身的软、硬件更新换代是不是也能影响到监测结果呢?iPhone手机的健康数据监测识别主要有三个过程:通过加速度传感器进行数据采集,开发人员通过针对iOS系统的objective-c语言对特征参数进行提取,最后利用算法识别显示在终端上。
不同设备、软件有着不同的算法,朋友圈比步数没有实际意义。
在特征参数提取和算法识别上,误差就是不可避免的了。不同的终端公司或科研单位都有自己开发的健康数据算法,利用到的特征参数也不尽相同。即便是同一公司的终端设备,在每次推出新一代产品时,手机系统环境及相应的算法开发都会进行优化。
“像手机等智能移动设备,开发者一般只利用单个加速度传感器的健康数据进行识别;而目前一些运动手环,有可能会把三轴陀螺仪及其他传感器的数据也提取出来,算法也相应复杂。但不意味着复杂的算法就比简单的更准确,计算量的加大更多带来的是数据处理成本的增加和电量的损耗。找到一个更简单的数据收集及识别方法,更准确地反映出人体运动状况,一直是科研人员和开发人员努力的目标。”徐小龙教授说。
但现实往往不是那么理想,目前并没有针对算法识别程度的统一测试标准。各个公司的算法接口和数据是不公开的,而我们要从实际的应用中来反推还原它的算法过程和测试环境非常困难。这好比面对一座巨大的金矿,每个人都用自己的方式来挖掘,方法千奇百怪,但没有一个标准去衡量以哪种方式挖出的金子最多最有效率。■