💡 为什么开发这个应用?
作为一个懒得去外面锻炼的人,我在家做仰卧起坐等运动时,一直有两个“痒点”:
- 记不住数:练到力竭时大脑一片空白,经常忘掉做了几个。
- 动作划水:没人在旁边监督,动作往往不到位,健身效果大打折扣。
为了解决这个问题,我通过Vibe Coding,参考了各种开源方案后,开发了这款应用。它能让你的飞牛NAS变身智能健身中枢,通过AI视觉技术实时识别动作并自动报数。
✨ 核心功能亮点
-
🤖 AI 实时动作识别:采用 MediaPipe Pose Landmarker 技术,精准追踪身体关键点,动作不够标准不计次数。
-
🔊 智能语音播报:每完成一个动作自动语音报数,让你彻底解放头脑,专注呼吸。
-
🎬 强大的硬件兼容性:支持 RTSP 网络摄像头(海康/TP-Link等),甚至可以用旧安卓手机安装“IP摄像头”APP 充当传感器。

-
🏃 支持 10+ 种运动:涵盖深蹲、俯卧撑、仰卧起坐、弯举、侧平举、卷腹等常见动作,满足日常健身需求。
| 运动类型 |
中文名 |
关键部位 (角度计算点) |
计数逻辑 (角度阈值) |
说明 |
| Squat 蹲 |
深蹲 |
髋部-膝盖-脚踝 |
>160° 站立 -> <110° 下蹲 |
站直后下蹲到大腿约为水平位置 |
| Push-up 俯卧撑 |
俯卧撑 |
肩膀-手肘-手腕 |
>160° 手臂伸直 -> <110° 手臂弯曲 |
手臂伸直后下放身体直到手肘弯曲约90度 |
| Sit-up 仰卧起坐 |
仰卧起坐 |
肩膀-髋部-膝盖 |
>170° 躺平 -> <145° 坐起 |
平躺后上半身坐起,使身体折叠 |
| Bicep Curl 二头肌弯举 |
弯举 |
肩膀-手肘-手腕 |
<60° 手臂弯曲 (反向) -> >160° 下放 |
注意:此处逻辑为手臂先弯曲(举起)再下放复位 |
| Lateral Raise 侧平举 |
侧平举 |
髋部-肩膀-手肘 |
<80° 手臂平举 -> >30° 手臂放下 |
注意:测量的是腋下角度。手臂抬平后放下复位 |
| Overhead Press 过头推举 |
推举 |
髋部-肩膀-手肘 |
>150° 手臂上举 -> <30° 手臂放下 |
测量腋下角度,手臂上举伸直后下放 |
| Leg Raise 抬腿 |
抬腿 |
肩膀-髋部-膝盖 |
>160° 腿部伸直 -> <130° 抬腿 |
身体平躺,腿部伸直后向上抬起 |
| Knee Raise 抬膝 |
抬膝 |
髋部-膝盖-脚踝 |
>160° 腿部伸直 -> <110° 提膝 |
站立状态下将膝盖提起 |
| Knee Press 膝部推举 |
压膝 |
髋部-膝盖-脚踝 |
>160° 腿部伸直 -> <110° 弯曲 |
膝盖按压运动,检测腿部角度变化 |
| Crunch 嘎吱 |
卷腹 |
肩膀-髋部-膝盖 |
>175° 躺平 -> <150° 卷起 |
类似仰卧起坐,亦检测上半身抬起角度 |
- 优雅的 Web 界面:支持实时显示骨骼追踪与角度分析,数据一目了然。
📺 效果演示
为了方便社区的小伙伴,我已经将应用通过 Docker 打包成了 FPK ,感兴趣的朋友可以自取:

下载地址:https://github.com/yanfeng17/Good-GYM/blob/master/fpk/goodgym.fpk
⚙️ 实用小贴士
- 摆放位置:AI 检测基于特定角度,建议运动时将摄像头合理摆放,确保全身或核心关节(如髋、膝、踝)在画面内。
- 自定义阈值:觉得动作太难触发?你可以通过
data/exercises.json 自行修改触发角度。
- 移动端播报:受限于浏览器权限,手机端访问可能无法直接 TTS 播报。推荐接入 Home Assistant API 调用智能音箱进行播报,体验更佳。
📝 结语
本项目代码已在 GitHub 开源:yanfeng17/Good-GYM。目前应用还存在一些不足(如画面遮挡导致的误报),欢迎各位网友下载体验、提交 PR 或在评论区交流反馈~