项目场景:
睡眠是人体正常生理活动的一部分,对人体的健康和身体功能恢复具有重要作用。睡眠监测功能已成健康手表手环等穿戴设备标配。在价格高度敏感的深圳电子消费市场,硬件配置的高低,使用算法的成熟度也能极大影响到睡眠数据精准度,但这都不是本文讨论的重点。全文主要探讨如何在现有输入即现有传感器及已集成的第三方算法基础上,完成睡眠时长及睡眠中各阶段(浅睡, 深睡, 清醒, 眼动)时长的精确计算。
问题描述
- 硬件已支持六轴传感器,心率传感器,睡眠算法能在输入ACC条件下能输出睡眠状态。
- 算法输出的睡眠主要状态如下,
0:非睡眠状态;--类型3--( 不做睡眠清醒)
7:睡眠中的清醒状态;--类型3
8:快速眼动期;--类型4
9:浅睡眠;--类型1
10:深度睡眠;--类型2
99:未定义的状态;(等同0,都是非睡眠状态)
- 目标需要准确监测到睡眠的各个状态时长及起始点及get up点。
浅睡时间 类型1
深睡时间 类型2
清晰时间 类型3
快速眼动时间 类型4
解决方案:
要说明的是,这里探讨的只是方案之一。已有产品达人对华为,小米等大厂的方案实现做过深度挖掘,这里不做进一步探讨。有兴趣的朋友,我们一起线下沟通,期待更多更优的发现。以下的方案希望只是抛砖引玉。
- 监测时间段 当日21点至次日10点
- 入睡判断规则 睡眠算法返回第1个非3时开始记录睡眠数据。
- 起床判断规则
如果出现了3,并且在接下来的45分钟内没有任何睡眠状态,结束睡眠;
5点以后,如果检测到5次未佩戴,结束睡眠;
8点以后,如果连续2个3或检测到两次未佩戴,结束睡眠。
- 数据清零逻辑
标签:实战,睡眠,状态,--,清除,算法,类型,精准 From: https://blog.csdn.net/weixin_42118782/article/details/14254864621点清除手表端已生成睡眠数据,睡眠显示时长数值变为“--”;
20:55清除睡眠数据。如正常清除时间段,设备在关机状态,开机做数据有效性判断并清除历史数据。
有入睡产生时再判断1次是否已变--,如果不是--,清除数据变为--;
其他规则
入睡后(已出现非3),21点至1点之间,如果连续出现2个3,并且两个状态出现间隔超过50分钟,清除之前的睡眠记录,重新计算睡眠;
1点前如果深睡超过1小时,清除之前的睡眠记录,重新计算睡眠;