BodyBalanceEvaluation/document/软件开发技术方案.md

151 lines
4.8 KiB
Markdown
Raw Normal View History

2025-07-28 11:59:56 +08:00
# 平衡体态检测系统 - 软件开发技术方案Electron + PythonWindows单机版
## 一、项目目标
构建一套适用于康复医学、运动健康等场景的 **单机本地运行型体态检测系统**,具备图形界面、设备数据采集、实时可视化、视频记录、数据管理与导出等能力。用户可在 Windows 系统中一键安装、双击运行,无需联网与额外配置。
---
## 二、系统架构与技术栈
### 2.1 总体架构图
```
+---------------------------+
| Electron 桌面客户端 |
| +----------------------+ |
| | Vue3/React 前端界面 | |
| +----------------------+ |
| ⇅ API调用 |
| +----------------------+ |
| | Python 后端服务Flask|
| +----------------------+ |
+---------------------------+
⇅ 硬件通信
+---------------------------+
| 深度相机 / IMU / 足底压力板 |
+---------------------------+
```
### 2.2 技术选型
| 层级 | 技术选型 | 说明 |
|------|----------|------|
| 前端界面 | Electron + Vue3 / React | 构建跨平台 GUI 桌面应用 |
| 后端服务 | Python Flask / FastAPI | 提供设备控制、数据处理、本地API |
| 本地数据库 | SQLite | 嵌入式数据库,无需独立部署 |
| 视频处理 | FFmpeg | 实现屏幕与摄像视频录制 |
| 打包工具 | electron-builder | 生成 Windows `.exe` 安装包 |
| Python打包 | PyInstaller | 将 Python 服务打包为 `.exe` 可执行程序 |
---
## 三、模块功能与实现
### 3.1 Electron 主程序
- 负责显示用户界面(患者档案、检测流程、视频回放)
- 在启动时自动调用后端 Python `.exe` 服务
- 与本地后端通信HTTP API
- 控制设备数据展示与交互逻辑
### 3.2 Python 后端服务
- 使用 Flask/FastAPI 提供本地接口127.0.0.1:5000
- 管理设备连接、数据采集、滤波处理、存储与导出
- 可扩展实现深度图处理、压力图分析、IMU姿态分析等功能
### 3.3 视频录制模块
- 利用 FFmpeg 实现屏幕+外部摄像头录制
- 支持时间戳叠加、截图保存、同步回放
- 可打包进 Electron 安装目录中统一调用
---
## 四、部署方式与启动流程
### 4.1 打包流程
1. 将 Python 服务使用 PyInstaller 打包:
```bash
pyinstaller -F -n app backend/app.py
```
2. Electron 主进程中启动 Python 服务:
```js
const { spawn } = require("child_process");
const scriptPath = path.join(__dirname, "backend", "app.exe");
const pythonProcess = spawn(scriptPath, { detached: true, stdio: 'ignore' });
pythonProcess.unref();
```
3. 使用 electron-builder 打包为安装包:
```bash
npm run build
electron-builder --win --x64
```
### 4.2 安装后运行流程(用户视角)
- 用户双击安装包 `.exe` 安装程序;
- 桌面自动生成快捷方式;
- 双击运行程序:
- 启动 Electron 界面;
- 自动后台启动 Python 服务;
- 自动检测设备连接;
- 进入检测界面,开始数据采集。
---
## 五、目录结构(部署后)
```
体态检测系统/
├─ main.exe # 主程序Electron 打包)
├─ backend/
│ ├─ app.exe # Python 后端打包文件
│ └─ model/ # AI模型文件可选
├─ ffmpeg/ # 视频录制工具
├─ resources/ # 前端界面构建产物
├─ logs/ # 日志输出目录
└─ uninstall.exe # 卸载程序
```
---
## 六、安全性与稳定性设计
| 项目 | 说明 |
|------|------|
| 端口限制 | 后端服务仅监听 127.0.0.1,防止外部访问 |
| 自动重启 | Electron 检测后端未启动可尝试自动重启 |
| 日志记录 | 所有错误输出写入 logs 目录,便于故障排查 |
| 安全存储 | 用户/患者数据保存至 SQLite本地隔离存储 |
| 进程管理 | Python 服务进程随 Electron 一起退出或独立运行 |
---
## 七、后续拓展建议
| 版本 | 升级方向 |
|------|----------|
| V2.0 | 加入关键点识别、自动评估报告导出、双次记录对比 |
| V3.0 | 云端同步、在线远程管理、多终端协同 |
| V4.0 | 移动版Android/iOS测量与数据同步 |
---
## 八、推荐工具与资源
- Electron 官网:[https://www.electronjs.org/](https://www.electronjs.org/)
- electron-builder[https://www.electron.build/](https://www.electron.build/)
- Flask[https://flask.palletsprojects.com/](https://flask.palletsprojects.com/)
- PyInstaller[https://pyinstaller.org/](https://pyinstaller.org/)
- FFmpeg[https://ffmpeg.org/](https://ffmpeg.org/)
---
> 本技术方案支持通过 AI 代码生成平台辅助开发,可作为 ChatGPT Copilot、CodeWhisperer 等平台的 Prompt 基础文件。