FitPose AI 健身教练
面向健身训练场景的 AI Coach MVP,使用 OpenCV + MediaPipe Pose、FastAPI、Vue3 和模型管理链路,打通深蹲识别、主动学习、模型训练与 AI 问答。
01
我的工作
- 围绕深蹲训练场景拆分实时训练、姿态识别、动作分析、训练 Session、样本标注、模型训练和 AI 教练等模块。
- 使用 OpenCV + MediaPipe Pose 解析摄像头画面,通过 WebSocket 将前端视频帧送入 FastAPI 后端进行实时关键点检测。
- 实现深蹲阶段识别、自动计数、动作评分和错误姿势提示,覆盖站立、下蹲、最低点和起身等训练状态。
- 设计主动学习流程,将训练帧保存为训练样本,并支持标准/不标准标注、错误原因选择和样本质量评估。
- 实现模型版本管理能力,支持重新训练、指标查看、历史模型启用、模型删除、artifact 清理和训练报告查看。
- 封装 AI Coach 能力,支持本地规则教练以及 OpenAI / DeepSeek 等兼容 Chat Completions 的 Provider。
- 整理训练历史、最近训练帧、当前模型版本和训练报告作为 AI 问答上下文,使教练回答能够结合用户训练数据。
- 采用 FastAPI + Clean Architecture 组织后端目录,将 Pose Engine、分析器、数据集、模型训练和 AI Provider 保持可替换边界。
- 构建 Vue3 + TypeScript 前端页面,覆盖训练、分析、数据集、模型管理和 AI 教练等核心演示路径。
02
技术流程
- 浏览器采集摄像头画面并通过 WebSocket 发送视频帧
- FastAPI 后端调用 Pose Engine 提取人体关键点
- Feature Extractor 和 Action Analyzer 计算深蹲阶段、计数、评分和反馈
- 训练过程生成 Workout Session,并可将训练帧保存为标注样本
- Dataset Manager 评估样本质量并保留 Session 来源血缘
- Model Trainer 使用可训练样本生成新模型版本和训练报告
- AI Coach 读取训练历史、模型版本和训练报告,生成总结或问答回复
03
问题与约束
这个项目的难点不只是做一个姿态识别 Demo,而是把实时识别、训练数据沉淀、样本标注、模型训练、模型版本管理和 AI 教练解释串成一条可持续优化的产品闭环。实现时需要同时处理实时 WebSocket 链路、计算机视觉结果的不确定性、训练样本质量和 AI 回答边界。
04
关键技术决策
先聚焦深蹲 MVP
先把深蹲一个动作的实时识别、计数、评分、样本标注、模型训练和 AI 问答闭环打通,再预留后续扩展俯卧撑、平板支撑等动作的空间。
以 Session 建立数据血缘
训练样本能够追溯到对应 Workout Session,模型训练报告也能回到样本和 Session 来源,便于解释模型效果和发现样本来源单一等问题。
本地规则教练兜底
默认提供无需 API Key 的本地规则模式,同时保留 OpenAI / DeepSeek 兼容 Provider,避免项目演示强依赖外部大模型服务。
后端保持可替换边界
通过 Clean Architecture 拆分领域实体、用例、基础设施和接口层,让 MediaPipe、模型训练器、数据库和 AI Provider 后续可以替换。
05
结果与复盘
完成一个面向求职展示的 AI 健身教练 MVP:已覆盖实时姿态识别、深蹲阶段分析、训练 Session、主动学习样本、模型版本管理、训练报告和 AI 教练问答等核心链路。项目 README 提供本地启动、演示路径、常用接口、AI Provider 配置和后续计划。
06
项目边界
公开个人项目,当前聚焦深蹲 MVP,不是商业化健身产品或医疗康复建议系统;默认使用本地 SQLite 和规则教练,可配置 MySQL 与外部大模型。AI 参与了较多编码和文档生成,本人主要负责方向定义、功能拆解、验收、调试与持续迭代。