智能健身教练¶
Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.
本项目以 Quectel Pi M2 智能主控板作为 AI 边缘计算平台,通过 USB 摄像头实时识别 17 个人体关键点,对深蹲、开合跳、高抬腿、弓步蹲、侧平举、马步蹲六种健身动作进行 实时计次(计时)、动作纠错和语音播报,打造一块开箱即用的 AI 健身镜。
应用由 M2 板载 NPU(6 TOPS)完成 AI 姿态识别推理(约 55 毫秒/帧),全程 离线运行,画面与数据不离开设备;界面为中英双语漫画风格,语音支持中文(晓晓)与英文(Jenny)两种音色,适合边缘 AI 能力展示和智能健身产品原型评估。
开发配件清单¶
说明:以下为推荐开发配件,实际使用时可根据展示场景灵活调整。
配件名称 |
数量 |
规格参数 |
|---|---|---|
Quectel Pi M2 智能主控板 |
1 块 |
- |
USB 摄像头(含麦克风) |
1 个 |
UVC 协议,支持 720p MJPG |
扬声器 |
1 个 |
|
HDMI 显示器(可选) |
1 个 |
有 HDMI 显示器也可,无屏可运行无界面模式 |
网线 |
1 根 |
用于 SSH 登录与代码拉取 |
Type-C 电源适配器 |
1 个 |
主控板供电 |
杜邦线/螺丝刀 |
若干 |
- |
配件实物参考¶
快速上手¶
环境要求¶
Quectel Pi M2 智能主控板,运行出厂 Debian 13 桌面环境(无需任何额外系统配置)。
一台可以进入 M2 桌面的 HDMI 显示器。
一个 USB UVC 摄像头和一只喇叭(3.5mm 或蓝牙)。
无需联网、无需安装任何依赖、无需编译——安装包已内置全部运行环境(Python、AI 推理引擎、界面库)、AI 模型和中英文语音资源(解压后约 1GB)。
普通用户需在
video、audio用户组,摄像头和声音才能正常使用。
关键技术指标¶
应用的关键技术指标如下:
项目 |
参数 |
|---|---|
姿态识别模型 |
YOLO11n-pose,fp16 精度(不量化) |
人体关键点 |
17 个,实时骨架跟随 |
AI 推理 |
板载 NPU(6 TOPS),约 55 毫秒/帧 |
支持动作 |
深蹲、开合跳、高抬腿、弓步蹲、侧平举(计次)+ 马步蹲(计时) |
语音与界面 |
中英双语一键切换;语音离线播报,中文晓晓 / 英文 Jenny |
运行方式 |
完全离线,画面与数据不离开设备 |
安装体积 |
安装包约 215MB,解压后约 1GB(内置全部运行环境、模型与语音资源) |
硬件连接¶
完成以下所有硬件的连接操作,连接接口示意图如下:
显示连接:HDMI线一端接主控板HDMI接口,另一端接显示器HDMI接口;
网络连接:千兆网线一端接主控板千兆网口,另一端接路由器网口(替代方案:通过Wi-Fi接入同一局域网);
输入设备连接:USB键盘、鼠标接入主控板的两个USB-A接口,无线输入设备则将接收器插入USB口即可;
供电连接:USB-A电源线的USB-A端接电源适配器,USB-C端接入主控板标注 POWER IN 的电源口。
一键部署¶
整个应用打包成一个自解压安装包 ai-fitness-coach-installer.run(约 215MB)。把它送到板子上执行一次即可,安装过程约 1~2 分钟。
第 1 步:把安装包送到开发板(两种方式任选其一)
方式 A —— U 盘拷贝(最直观):
把
ai-fitness-coach-installer.run拷入 U 盘;U 盘插入开发板,在文件管理器中把它复制到家目录。
方式 B —— adb 推送(开发调试常用):
adb push ai-fitness-coach-installer.run /home/q/
第 2 步:在开发板终端执行一条命令
打开终端,进入安装包所在目录执行:
./ai-fitness-coach-installer.run
默认安装到当前用户主目录
~/ai-fitness-coach;也可以在命令后跟一个目录参数指定安装位置。root 用户与普通用户均可安装;重复执行会自动清理旧版本并重装。
第 3 步:完成,双击启动
安装完成后,打开文件管理器,进入 ai-fitness-coach/code/,双击ai-fitness-coach 即可运行——不是脚本,是编译好的启动器,双击直接执行,不会弹出「运行还是显示」对话框。
重复双击 = 自动重启应用(会先停掉旧实例);
按 Esc 退出应用;
运行日志自动记录在
~/.local/state/fitness-coach/app.log。
应用使用方法¶
主界面¶
主界面主要包含以下区域:
顶部标题栏与语言切换(右上角 EN / 中 按钮)。
实时预览区:镜像画面(符合自拍直觉)+ 17 个关键点骨架实时跟随,下方一排是「− + 1.0x」数字变焦按钮。
计数/计时卡片:显示当前动作的成绩。
阶段栏:显示当前状态(待机中/站立/下蹲中/未检测到人等)和纠错提示。
控制按钮:▶ 开始训练(训练中变橙色「暂停」)、归零、结束训练。
动作选择框:点击展开动作列表弹层,六种动作即选即练,每行附「▶ 演示」参考视频按钮。
开始训练:待机 → 训练中 → 暂停¶
应用启动后默认处于 待机 状态——只预览、不计次。这是有意设计的防干扰机制:
点击蓝色 ▶ 开始训练,语音播报「三、二、一,开始」,正式开始计次;
训练中按钮变为橙色 暂停,点一下冻结成绩;暂停期间在镜头前随意走动、休息都不会被计入;
再点 ▶ 继续训练 恢复,成绩接着累计;
归零 按钮把次数和计时清零,重新开始一轮。
切换训练动作¶
点击右侧选择框,在窗口内展开动作列表:深蹲、开合跳、高抬腿、弓步蹲、侧平举、马步蹲 六种动作任选(马步蹲显示坚持秒数,其余显示次数)。每一行右侧带「▶ 演示」按钮,点击后在视频区播放该动作的标准示范视频,播完自动收起,也可点 ✕ 提前关闭,跟练时作为动作参照;马步蹲暂未收录示范视频,点击时提示「该动作暂无演示视频」。
当前选中的动作前有 ▶ 箭头指示;
切换时语音播报动作名称 + 「三、二、一,开始」;
切换有 1.5 秒冷却和防误触保护,运动中手扫到屏幕不会误切。
点击弹层外的任意位置可收起列表;弹层固定在窗口内、紧贴选择框正下方展开。
数字变焦¶
预览区下方提供「− + 1.0x」三个变焦按钮:+ 放大、− 缩小、1.0x 一键复位,右侧实时显示当前倍数。变焦范围 0.5~3 倍,步进 0.25 倍,也可以用键盘快捷键 +(放大)、-(缩小)、0(复位)控制。
变焦采用中心裁剪放大,AI 识别与骨架跟随在放大后的画面上进行——距离较远、人物在画面中偏小时,适当放大可以让关键点识别更稳定。
中英文切换¶
点击右上角 EN 按钮,界面文案、提示信息与语音播报整体切换为英文;再点 中 切回中文。
语音播报¶
喇叭直接接在主控板 3.5mm 音频口即可听到全部语音(也支持蓝牙音箱,跟随系统输出设备):
启动欢迎语与动作模式名(如「深蹲模式」);
「三、二、一,开始」倒计时;
每次完成动作报数,每 10 个播报一次鼓励语;
实时纠错提醒,例如「膝盖出镜了,后退一点」「弯腰了,请蹲下而非弯腰」。
站位与动作要领¶
要点 |
建议 |
|---|---|
深蹲站位 |
距摄像头 2.5~3.5 米,正面朝向摄像头;下蹲时 膝盖保持在画面内(出镜会语音提醒) |
深蹲标准 |
蹲到大腿差不多与地面平行(膝角约 115°)才计一次;蹲不到位会提示「上次蹲不够深(角度) 未计次」 |
开合跳站位 |
全身入镜,距 2.5~4 米;双脚分开超过 1.35 倍肩宽且手腕过头顶算「打开」,回到并拢计一次 |
高抬腿 |
全身入镜;任一膝抬至髋部高度(大腿抬平)再落地计 1 次,左右腿独立计次 |
弓步蹲 |
正面朝向摄像头,一腿向前弓步下蹲;弯曲腿膝角低于约 135° 才计次,上身保持挺直(过度前倾不计次) |
侧平举 |
双臂 同时 抬起、手腕过肩线计 1 次,双臂回落开始下一次;侧平举、前平举均可识别 |
马步蹲 |
双脚分开超过 1.1 倍肩宽、蹲至膝角约 135° 以下开始计时;中途起身休息 不清零,坚持秒数持续累计 |
光线 |
环境光线充足、避免逆光,识别更稳定 |
应用演示¶
演示视频¶
完整功能导览视频(约 81 秒,1280×810):以 USB 摄像头实时画面为背景,自动走一遍应用全部功能入口——动作列表与标准动作示范(播完自动收起)、开始训练、计次演示、暂停/继续、归零、数字变焦、中英文切换、结束训练,配 AI 旁白与字幕。
常见问题排查¶
启动后画面全黑或提示「未检测到人」¶
确认 USB 摄像头已插好(可换一个 USB 口)。
检查环境光线是否充足、是否逆光。
确认人物在画面内且距离适中(2.5~3.5 米)。
确认当前用户在
video用户组:终端执行groups查看,缺失时执行sudo usermod -aG video "$USER"后重新登录。
没有声音¶
确认喇叭已接在主控板 3.5mm 音频口(或蓝牙已配对连接)。
检查系统音量与输出设备(设置 → 声音,选择对应输出)。
确认当前用户在
audio用户组,缺失时执行sudo usermod -aG audio "$USER"后重新登录。
深蹲不计数¶
按顺序检查:
是否处于待机或暂停状态(需先点「▶ 开始训练 / 继续训练」)。
是否站得太近:蹲下时膝盖或髋部出画面,界面会提示「膝盖出镜了,后退一点」——后退到 2.5 米以外。
是否蹲得不够深:阶段栏会显示「上次蹲不够深(角度) 未计次」,蹲到大腿接近平行地面即可。
开合跳不计数¶
开合跳要求 全身入镜。后退到 2.5~4 米,确保头顶和脚都在画面内;跳开时双脚间距超过 1.35 倍肩宽、双手手腕过头才算完整动作。
双击启动器没反应¶
确认双击的是
ai-fitness-coach(无扩展名的启动器),不是run.sh。再双击一次即可——启动器会自动停掉旧实例并重启应用。
想查看运行日志¶
tail -f ~/.local/state/fitness-coach/app.log
技术支持与贡献¶
如在使用或二次开发过程中遇到问题,建议提供:系统固件版本、摄像头型号、完整界面提示与 app.log 日志片段。欢迎在 移远官方论坛 提交技术咨询,我们的技术支持团队将及时为您解答。
项目开源地址: https://github.com/Quectel-Pi/demo-ai-fitness-coach