人体姿态检测系统
Go to file
2025-08-19 15:37:56 +08:00
.vercel 初始提交 2025-07-28 11:59:56 +08:00
.vscode 提交修改 2025-07-31 17:23:05 +08:00
backend 修改了配置参数修改方法 2025-08-19 15:37:56 +08:00
data 提交我的更新内容 2025-08-02 16:52:17 +08:00
document 提交深度相机配置及其他采集功能 2025-08-03 21:50:50 +08:00
frontend/src/renderer 优化代码 2025-08-19 15:31:59 +08:00
install 增加了前后端打包验证功能 2025-08-15 10:12:38 +08:00
.gitignore 修正了打包对socket模式的支持 2025-08-19 13:59:40 +08:00
config.ini 优化系统框架结构,设备独立管理,实现并行数据推送 2025-08-17 12:48:10 +08:00
memory_config.py 视频播放、截图、录像功能提交 2025-07-30 19:09:15 +08:00
README.md 提交深度相机配置及其他采集功能 2025-08-03 21:50:50 +08:00
设备管理优化方案.md 提交变动修改 2025-08-16 12:11:08 +08:00

身体平衡评估系统

一个基于多传感器融合技术的专业身体平衡评估与分析系统,为用户提供准确的平衡能力评估和康复指导。

系统特性

🎯 核心功能

  • 实时姿态检测: 基于MediaPipe的高精度人体姿态识别
  • 多传感器融合: 整合摄像头、IMU传感器和压力传感器数据
  • 智能分析引擎: 多维度平衡能力评估算法
  • 实时视频流: WebSocket实时视频传输和显示
  • 检测数据采集: 一键采集当前检测状态的数据快照
  • 视频录制功能: 支持检测过程的视频录制和回放
  • 可视化报告: 直观的数据图表和分析报告
  • 历史数据管理: 完整的检测记录存储和对比分析

🔧 技术特点

  • 现代化架构: Vue 3 + Python Flask 前后端分离
  • 实时通信: WebSocket 实时数据传输和视频流
  • 多媒体支持: 集成视频录制、截图和数据采集功能
  • 跨平台支持: Windows、macOS、Linux
  • 模块化设计: 清晰的目录结构,易于扩展和维护
  • 数据安全: 本地存储,保护用户隐私
  • 开发友好: 独立的前后端开发环境,支持热重载
  • 部署简化: 一键安装和启动脚本,降低部署复杂度

系统架构

身体平衡评估系统/
├── backend/                 # 后端服务
│   ├── main.py             # 主启动脚本
│   ├── app.py              # Flask 主应用
│   ├── database.py         # 数据库管理
│   ├── device_manager.py   # 设备管理
│   ├── detection_engine.py # 检测引擎
│   ├── data_processor.py   # 数据处理
│   ├── utils.py            # 工具函数
│   └── requirements.txt    # Python 依赖
├── frontend/               # 前端应用
│   └── src/renderer/       # 前端源码
│       ├── src/
│       │   ├── views/      # 页面组件
│       │   ├── stores/     # 状态管理
│       │   ├── services/   # API 服务
│       │   └── router/     # 路由配置
│       ├── package.json    # Node.js 依赖
│       └── vite.config.js  # 构建配置
├── data/                   # 数据目录
├── logs/                   # 日志目录
├── venv/                   # Python 虚拟环境
├── install.bat             # 安装脚本
├── start_dev.bat           # 开发模式启动脚本
└── start_prod.bat          # 生产模式启动脚本

快速开始

环境要求

  • Python: 3.8 或更高版本
  • Node.js: 16.0 或更高版本 (开发模式)
  • 操作系统: Windows 10/11, macOS 10.15+, Ubuntu 18.04+

安装步骤

方式一:一键安装 (Windows 推荐)

  1. 克隆项目

    git clone <repository-url>
    cd BodyBalanceEvaluation
    
  2. 运行安装脚本

    install.bat
    

    安装脚本会自动完成:

    • 检查 Python 和 Node.js 环境
    • 创建 Python 虚拟环境
    • 安装后端依赖
    • 安装前端依赖
    • 创建必要的目录结构

方式二:手动安装

  1. 克隆项目

    git clone <repository-url>
    cd BodyBalanceEvaluation
    
  2. 创建虚拟环境

    python -m venv venv
    venv\Scripts\activate  # Windows
    # source venv/bin/activate  # macOS/Linux
    
  3. 安装 Python 依赖

    pip install -r backend/requirements.txt
    
  4. 安装前端依赖 (开发模式)

    cd frontend/src/renderer
    npm install
    cd ../../..
    

启动应用程序

Windows 用户 (推荐):

# 一键安装 (首次使用)
install.bat

# 开发模式
start_dev.bat

# 生产模式
start_prod.bat

手动启动:

# 激活虚拟环境
venv\Scripts\activate

# 进入后端目录
cd backend

# 开发模式
python main.py --mode development

# 生产模式
python main.py --mode production

命令行参数

cd backend
python main.py [选项]

选项:
  --mode {development,production}  运行模式 (默认: development)
  --host HOST                     服务器主机 (默认: 127.0.0.1)
  --port PORT                     服务器端口 (默认: 5000)
  --no-browser                    不自动打开浏览器
  --log-level {DEBUG,INFO,WARNING,ERROR}  日志级别 (默认: INFO)

使用指南

1. 系统设置

首次使用前,请进入「系统设置」页面配置:

  • 设备配置: 选择摄像头、配置串口设备
  • 检测参数: 设置默认检测时长、采样频率等
  • 数据管理: 配置数据存储路径和清理策略

2. 患者管理

  • 添加患者基本信息(姓名、年龄、性别等)
  • 记录患者病史和康复目标
  • 管理患者档案和检测记录

3. 姿态检测

  1. 选择患者: 从患者列表中选择或新建患者
  2. 设备准备: 确保摄像头和传感器正常连接
  3. 开始检测: 点击开始按钮进行实时检测
  4. 实时监控: 通过实时视频流观察检测过程
  5. 数据采集: 在检测过程中点击"检测数据采集"按钮获取当前状态数据
  6. 视频录制: 使用"开始录制"/"停止录制"按钮记录检测过程
  7. 停止检测: 完成检测并自动计算检测时长
  8. 查看结果: 检测完成后查看分析结果和建议

4. 数据分析

  • 单次分析: 查看单次检测的详细数据和图表
  • 对比分析: 比较多次检测结果,观察变化趋势
  • 报告生成: 生成 PDF 格式的专业评估报告
  • 数据导出: 导出原始数据用于进一步分析

5. 历史记录

  • 浏览所有历史检测记录
  • 按患者、日期、状态等条件筛选
  • 批量导出和删除操作
  • 时间线视图查看检测历史

设备支持

摄像头

  • USB 摄像头 (推荐 1080p 30fps)
  • 内置摄像头
  • 网络摄像头

IMU 传感器

  • 支持串口通信的 9 轴 IMU
  • 波特率: 9600, 115200, 230400
  • 数据格式: 加速度、陀螺仪、磁力计

压力传感器

  • 多点压力传感器阵列
  • 串口通信接口
  • 支持 1-16 个传感器点

开发指南

后端开发

后端使用 Flask 框架,主要模块:

  • main.py: 主启动脚本和进程管理
  • app.py: 主应用和 API 路由
  • database.py: SQLite 数据库操作
  • device_manager.py: 硬件设备管理和视频流处理
  • detection_engine.py: 检测算法引擎
  • data_processor.py: 数据分析和处理

主要API端点

  • POST /api/detection/start: 开始检测会话
  • POST /api/detection/{session_id}/stop: 停止检测会话
  • POST /api/detection/{session_id}/collect: 采集检测数据
  • WebSocket /ws: 实时数据和视频流传输

前端开发

前端使用 Vue 3 + Element Plus主要特性

  • 组合式 API: 使用 Vue 3 Composition API
  • 状态管理: Pinia 状态管理库
  • UI 组件: Element Plus 组件库
  • 图表库: ECharts 数据可视化
  • 构建工具: Vite 快速构建

添加新功能

  1. 后端 API:

    @app.route('/api/new-feature', methods=['POST'])
    def new_feature():
        # 实现新功能逻辑
        return jsonify({'status': 'success'})
    
  2. 前端服务:

    // frontend/src/renderer/src/services/api.js
    export const newFeatureAPI = {
      doSomething: (data) => api.post('/new-feature', data)
    }
    
  3. 前端组件:

    <template>
      <!-- 新功能界面 -->
    </template>
    
    <script setup>
    import { newFeatureAPI } from '../services/api'
    </script>
    

项目结构优势

新的项目结构带来以下优势:

  1. 清晰分离: 前后端代码完全分离,便于团队协作开发
  2. 独立部署: 前后端可以独立部署和扩展
  3. 开发效率: 前后端可以并行开发,提高开发效率
  4. 维护性: 模块化结构便于代码维护和功能扩展
  5. 版本管理: 前后端可以独立进行版本控制
  6. 技术栈: 前后端可以选择最适合的技术栈

开发环境配置

后端开发:

# 激活虚拟环境
venv\Scripts\activate

# 进入后端目录
cd backend

# 启动开发服务器
python main.py --mode development --log-level DEBUG

python debug_server.py

前端开发:

# 进入前端目录
cd frontend/src/renderer

# 启动开发服务器
npm run dev

同时开发 (推荐):

# 使用开发脚本同时启动前后端
start_dev.bat

故障排除

常见问题

Q: 摄像头无法识别 A: 检查摄像头连接,确保没有被其他应用占用,在设备设置中刷新摄像头列表。

Q: 传感器连接失败 A: 确认串口设置正确,检查设备驱动是否安装,尝试不同的波特率设置。

Q: 前端页面无法加载 A: 检查后端服务是否正常启动,确认防火墙设置,查看浏览器控制台错误信息。

Q: 检测结果不准确 A: 确保设备已正确校准,检查环境光线条件,调整检测参数设置。

Q: 视频录制失败 A: 检查磁盘空间是否充足,确认录制权限设置,查看后端日志中的错误信息。

Q: WebSocket连接断开 A: 检查网络连接稳定性确认防火墙未阻止WebSocket连接尝试刷新页面重新连接。

日志查看

系统日志保存在 logs/ 目录下:

  • app.log: 应用程序主日志
  • device.log: 设备管理日志
  • detection.log: 检测引擎日志
  • error.log: 错误日志

性能优化

  1. 硬件要求:

    • CPU: Intel i5 或同等性能
    • 内存: 8GB RAM
    • 存储: 10GB 可用空间
  2. 软件优化:

    • 关闭不必要的后台程序
    • 使用 SSD 存储提高 I/O 性能
    • 定期清理历史数据和日志

数据格式

检测数据结构

{
  "session_id": "uuid",
  "patient_id": "patient_uuid",
  "timestamp": "2024-01-01T12:00:00Z",
  "duration": 60,
  "data": {
    "camera": {
      "landmarks": [...],
      "confidence": 0.95
    },
    "imu": {
      "acceleration": [x, y, z],
      "gyroscope": [x, y, z],
      "magnetometer": [x, y, z]
    },
    "pressure": {
      "sensors": [p1, p2, p3, p4],
      "center_of_pressure": [x, y]
    }
  },
  "recording": {
    "video_path": "path/to/video.mp4",
    "screenshots": ["path/to/screenshot1.png"]
  }
}

分析结果格式

{
  "session_id": "uuid",
  "analysis_time": "2024-01-01T12:01:00Z",
  "overall_assessment": "good",
  "balance_score": 85,
  "posture_score": 78,
  "metrics": {
    "sway_area": 2.5,
    "sway_velocity": 1.2,
    "postural_stability": 0.85
  },
  "recommendations": [
    "建议加强核心肌群训练",
    "注意保持正确站姿"
  ]
}

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

支持

如果您遇到问题或有建议,请:

更新日志

v1.2.0 (2024-01-20)

  • 检测功能增强: 新增检测数据采集功能,支持实时数据快照
  • 视频录制: 集成视频录制功能,支持检测过程的完整记录
  • 实时视频流: 优化WebSocket视频传输提供流畅的实时监控
  • API优化: 重构检测相关API使用RESTful设计模式
  • 用户体验: 改进检测界面,添加录制控制和数据采集按钮
  • 生命周期管理: 完善组件生命周期处理,确保资源正确释放

v1.1.0 (2024-01-15)

  • 项目重构: 前后端完全分离,优化项目结构
  • 新增脚本: 添加一键安装和启动脚本 (install.bat, start_dev.bat, start_prod.bat)
  • 开发体验: 改进开发环境配置,支持独立的前后端开发
  • 文档更新: 完善 README 文档,添加详细的安装和使用说明
  • 路径优化: 统一使用虚拟环境,规范化依赖管理

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 基础检测功能
  • 患者管理系统
  • 数据分析和报告生成

身体平衡评估系统 - 专业的平衡能力评估解决方案