PEAandDA b6f672389e | ||
---|---|---|
.. | ||
apis | ||
core | ||
images | ||
labels | ||
ui | ||
weights | ||
main.py | ||
readme.md | ||
requirements.txt |
readme.md
健康监测系统
项目概述
这是一个基于计算机视觉和人工智能的健康监测系统。该系统利用摄像头实时捕获用户图像,并通过多个AI模型分析各种健康指标,包括年龄、性别、血压、情绪状态、心率、呼吸率、皮肤疾病和皮肤类型。
系统架构
project/
│
├── main.py # 主程序入口
├── ui/
│ ├── main_window.py # 主窗口UI逻辑代码
│ └── ui.py # 主窗口UI布局代码
├── images/ # UI相关图片
├── labels/ # 模型识别分类标签
├── weights/ # 模型权重
├── core/
│ ├── camera_thread.py # 摄像头读取线程
│ ├── storage_thread.py # 帧序列存储线程
│ ├── update_thread.py # 结果更新线程
│ └── api_process.py # AI处理进程
└── apis/
├── age/ # 年龄性别预测模型
├── bp/ # 血压预测模型
├── emotion/ # 情绪检测模型
├── hr/ # 心率检测模型
├── rr/ # 呼吸检测模型
├── sd/ # 皮肤疾病检测模型
└── st/ # 皮肤类型检测模型
系统流程
graph TD
A[主线程: GUI] --> B[线程1: 摄像头读取]
A --> C[线程2: 帧序列存储]
A --> D[进程1: AI处理]
A --> E[线程3: 结果更新]
B -->|帧数据| A
B -->|帧数据| C
C -->|帧序列| D
D -->|处理结果| E
E -->|更新UI| A
主要组件
-
主线程(GUI线程)
- 运行PyQt5的事件循环和处理用户交互
- 显示摄像头画面和AI处理结果
- 协调其他线程和进程的工作
-
摄像头读取线程
- 专门负责从摄像头读取画面
- 使用QTimer定时触发画面捕获
- 通过信号机制将捕获的帧传递给主线程显示和存储线程
-
帧序列存储线程
- 接收来自摄像头读取线程的帧
- 将帧序列存储到磁盘或内存缓冲区
- 实现循环缓冲,只保留最近的N帧
-
AI处理进程
- 使用多进程以充分利用多核CPU
- 定期从存储的帧序列中获取数据
- 运行多个AI算法来计算各项生理指标
- 将处理结果通过进程间通信(如Queue)发送回主进程
-
结果更新线程
- 接收来自AI处理进程的结果
- 通过信号机制将结果传递给主线程进行UI更新
功能模块
- 年龄和性别预测
- 血压预测
- 情绪检测
- 心率检测
- 呼吸率检测
- 皮肤疾病检测
- 皮肤类型检测