# 身体平衡评估系统 一个基于多传感器融合技术的专业身体平衡评估与分析系统,为用户提供准确的平衡能力评估和康复指导。 ## 系统特性 ### 🎯 核心功能 - **实时姿态检测**: 基于MediaPipe的高精度人体姿态识别 - **多传感器融合**: 整合摄像头、IMU传感器和压力传感器数据 - **智能分析引擎**: 多维度平衡能力评估算法 - **可视化报告**: 直观的数据图表和分析报告 - **历史数据管理**: 完整的检测记录存储和对比分析 ### 🔧 技术特点 - **现代化架构**: 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. **克隆项目** ```bash git clone cd BodyBalanceEvaluation ``` 2. **运行安装脚本** ```bash install.bat ``` 安装脚本会自动完成: - 检查 Python 和 Node.js 环境 - 创建 Python 虚拟环境 - 安装后端依赖 - 安装前端依赖 - 创建必要的目录结构 #### 方式二:手动安装 1. **克隆项目** ```bash git clone cd BodyBalanceEvaluation ``` 2. **创建虚拟环境** ```bash python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # macOS/Linux ``` 3. **安装 Python 依赖** ```bash pip install -r backend/requirements.txt ``` 4. **安装前端依赖** (开发模式) ```bash cd frontend/src/renderer npm install cd ../../.. ``` ### 启动应用程序 **Windows 用户 (推荐)**: ```bash # 一键安装 (首次使用) install.bat # 开发模式 start_dev.bat # 生产模式 start_prod.bat ``` **手动启动**: ```bash # 激活虚拟环境 venv\Scripts\activate # 进入后端目录 cd backend # 开发模式 python main.py --mode development # 生产模式 python main.py --mode production ``` ### 命令行参数 ```bash 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. **查看结果**: 检测完成后查看分析结果和建议 ### 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`: 数据分析和处理 ### 前端开发 前端使用 Vue 3 + Element Plus,主要特性: - **组合式 API**: 使用 Vue 3 Composition API - **状态管理**: Pinia 状态管理库 - **UI 组件**: Element Plus 组件库 - **图表库**: ECharts 数据可视化 - **构建工具**: Vite 快速构建 ### 添加新功能 1. **后端 API**: ```python @app.route('/api/new-feature', methods=['POST']) def new_feature(): # 实现新功能逻辑 return jsonify({'status': 'success'}) ``` 2. **前端服务**: ```javascript // frontend/src/renderer/src/services/api.js export const newFeatureAPI = { doSomething: (data) => api.post('/new-feature', data) } ``` 3. **前端组件**: ```vue ``` ### 项目结构优势 新的项目结构带来以下优势: 1. **清晰分离**: 前后端代码完全分离,便于团队协作开发 2. **独立部署**: 前后端可以独立部署和扩展 3. **开发效率**: 前后端可以并行开发,提高开发效率 4. **维护性**: 模块化结构便于代码维护和功能扩展 5. **版本管理**: 前后端可以独立进行版本控制 6. **技术栈**: 前后端可以选择最适合的技术栈 ### 开发环境配置 **后端开发**: ```bash # 激活虚拟环境 venv\Scripts\activate # 进入后端目录 cd backend # 启动开发服务器 python main.py --mode development --log-level DEBUG ``` **前端开发**: ```bash # 进入前端目录 cd frontend/src/renderer # 启动开发服务器 npm run dev ``` **同时开发** (推荐): ```bash # 使用开发脚本同时启动前后端 start_dev.bat ``` ## 故障排除 ### 常见问题 **Q: 摄像头无法识别** A: 检查摄像头连接,确保没有被其他应用占用,在设备设置中刷新摄像头列表。 **Q: 传感器连接失败** A: 确认串口设置正确,检查设备驱动是否安装,尝试不同的波特率设置。 **Q: 前端页面无法加载** A: 检查后端服务是否正常启动,确认防火墙设置,查看浏览器控制台错误信息。 **Q: 检测结果不准确** A: 确保设备已正确校准,检查环境光线条件,调整检测参数设置。 ### 日志查看 系统日志保存在 `logs/` 目录下: - `app.log`: 应用程序主日志 - `device.log`: 设备管理日志 - `detection.log`: 检测引擎日志 - `error.log`: 错误日志 ### 性能优化 1. **硬件要求**: - CPU: Intel i5 或同等性能 - 内存: 8GB RAM - 存储: 10GB 可用空间 2. **软件优化**: - 关闭不必要的后台程序 - 使用 SSD 存储提高 I/O 性能 - 定期清理历史数据和日志 ## 数据格式 ### 检测数据结构 ```json { "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] } } } ``` ### 分析结果格式 ```json { "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](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 ## 支持 如果您遇到问题或有建议,请: - 查看 [FAQ](docs/FAQ.md) - 提交 [Issue](issues) - 发送邮件至: support@example.com ## 更新日志 ### v1.1.0 (2024-01-15) - **项目重构**: 前后端完全分离,优化项目结构 - **新增脚本**: 添加一键安装和启动脚本 (install.bat, start_dev.bat, start_prod.bat) - **开发体验**: 改进开发环境配置,支持独立的前后端开发 - **文档更新**: 完善 README 文档,添加详细的安装和使用说明 - **路径优化**: 统一使用虚拟环境,规范化依赖管理 ### v1.0.0 (2024-01-01) - 初始版本发布 - 基础检测功能 - 患者管理系统 - 数据分析和报告生成 --- **身体平衡评估系统** - 专业的平衡能力评估解决方案