本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。
一、项目描述
FitVision 是一个基于 Django + Vue 3 的 AI 健身教练 Web 平台,通过摄像头实时捕捉用户姿态,结合 MediaPipe 姿态检测、规则引擎评分和视觉大模型(豆包 VLM)多模态分析,提供动作纠错、计数统计、语音教练、个性化训练计划推荐与数据分析的一站式健身服务。
二、项目功能
– 用户系统 :注册登录(JWT)、个人资料、BMI、活动水平等健康档案
– 实时姿态检测 :深蹲、俯卧撑、平板支撑、开合跳四种动作的关键点识别、角度计算、OneEuro 滤波平滑、动作计数与质量评分
– AI 语音教练 :根据动作阶段(下沉/起身/计数)和评分,按鼓励/严格/激情三种风格播报纠错提示
– VLM 姿态诊断 :首个动作或动作变形时自动抽帧,调用豆包视觉大模型给出结构化纠错建议
– 动作库管理 :分类、难度、器械、目标肌群、动作要领、纠正提示、前置解锁关系
– 推荐系统 :基于 M3E 中文向量库做语义检索 + 知识图谱 + 马尔可夫链的下一动作推荐
– 训练计划 :多日训练方案编排与执行追踪
– 数据分析 :训练记录统计与 ECharts 可视化趋势展示
三、运行环境
– 操作系统 :Windows 10/11(也支持 macOS/Linux)
– Python :3.11(需 ≥3.10,Django 5.2 要求)
– Node.js :≥16(推荐 LTS v18/v20/v22,当前 v22.6.0 可用)
– 数据库 :PostgreSQL(默认,端口 5432)/ SQLite(开发可降级)
– 缓存与任务队列 :Redis(端口 6379,Celery 异步任务)
– 外部服务 :豆包 VLM(通过 openkey.cloud)、DeepSeek LLM、HuggingFace(M3E 模型下载)、jsDelivr CDN(MediaPipe WASM 资源)
四、项目技术
– 后端 :Django 5.2 + DRF 3.16 + SimpleJWT + Celery 5.5 + Channels/Daphne(ASGI 异步)+ drf-spectacular(OpenAPI 文档)+ django-cors-headers
– AI/数据 :OpenAI Python SDK(调用豆包 VLM)、ChromaDB(向量库)、sentence-transformers(M3E 嵌入)、pandas/numpy/matplotlib/seaborn(数据分析)
– 前端 :Vue 3.5 + TypeScript + Vite 7 + Pinia(状态)+ Vue Router 4 + Element Plus + ECharts + axios + @mediapipe/pose(浏览器端姿态识别)+ Web Speech API(语音合成)
– 架构 :前后端分离、RESTful API、JWT 认证、ASGI 异步支持 VLM 调用、CORS 跨域配置
– 开发工具 :Conda(Python 环境管理)、ESLint/Prettier/Husky/lint-staged(前端代码规范)、black/isort/flake8/pylint/coverage(后端代码规范与测试)
以上系统源码经过技术整理与调试,确保能正常运行
五、项目截图