151 lines
4.8 KiB
Markdown
151 lines
4.8 KiB
Markdown
|
||
# 平衡体态检测系统 - 软件开发技术方案(Electron + Python,Windows单机版)
|
||
|
||
## 一、项目目标
|
||
|
||
构建一套适用于康复医学、运动健康等场景的 **单机本地运行型体态检测系统**,具备图形界面、设备数据采集、实时可视化、视频记录、数据管理与导出等能力。用户可在 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 基础文件。
|