PushClock 的摄像头怎么自动计数——设备端姿势检测原理
什么是"设备端 ML"
PushClock 的俯卧撑和深蹲计数依赖设备端机器学习模型(on-device ML)。简单说:你的手机里内置了一个轻量的神经网络,不需要联网、不需要上传视频帧,就在手机本地实时分析摄像头画面。
这件事有两个好处:
- 隐私:画面帧用完即弃,没有任何东西离开你的设备
- 低延迟:本地处理,不需要网络往返,计数几乎和你的动作同步
它到底追踪什么
摄像头每秒抓取若干帧图像,模型在每一帧里识别大约 17 个人体关键点(头部、颈部、肩膀、手肘、手腕、躯干、臀部、膝盖、脚踝等)。然后追踪这些点在连续帧之间的位置变化,判断你是否完成了一个"完整动作周期"。

以俯卧撑为例,模型需要看到:
- 头部和躯干保持一条直线(不是塌腰也不是撅屁股)
- 手肘弯曲到接近 90° (下压到底)
- 然后手肘伸直、身体完全回到起始位置(起来)
- 这两个状态之间的切换才算一次完整的俯卧撑
挥挥手臂不算数、只做半程不算数、身体姿势塌了不算数——这就是"防作弊"的第一关。
为什么要用前置摄像头
运动任务的计数用的是前置摄像头,因为闹钟响的时候你大概率正躺着面对天花板,把手机放在床头柜(或拿在手里),前置摄像头正好能拍到上半身的姿势。
深蹲任务同理——摄像头对准上半身,模型通过肩膀、躯干和臀部的相对位置变化来判断你是否完成了下蹲和起身。
计数不准怎么办
摄像头计数是最接近 PushClock 核心的功能,也是最容易出问题的环节。常见原因:
- 光线太暗或太亮:模型识别关键点需要足够的对比度
- 摄像头没擦干净:指纹或灰尘会让画面模糊
- 位置不对:手机放太低或太高,身体超出了摄像头画面范围
- 动作不标准:塌腰、撅屁股、半程俯卧撑都过不了姿势验证
调整光线、擦干净摄像头、手机放在能拍到完整上半身的位置、动作尽量标准——这几点做好之后计数准确率会明显提升。如果还是有问题,可以先从 运动计数不准或失败 看看。