# 健康监测系统 ## 项目概述 这是一个基于计算机视觉和人工智能的健康监测系统。该系统利用摄像头实时捕获用户图像,并通过多个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/ # 皮肤类型检测模型 ``` ## 系统流程 ```mermaid 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 ``` ## 主要组件 1. **主线程(GUI线程)** - 运行PyQt5的事件循环和处理用户交互 - 显示摄像头画面和AI处理结果 - 协调其他线程和进程的工作 2. **摄像头读取线程** - 专门负责从摄像头读取画面 - 使用QTimer定时触发画面捕获 - 通过信号机制将捕获的帧传递给主线程显示和存储线程 3. **帧序列存储线程** - 接收来自摄像头读取线程的帧 - 将帧序列存储到磁盘或内存缓冲区 - 实现循环缓冲,只保留最近的N帧 4. **AI处理进程** - 使用多进程以充分利用多核CPU - 定期从存储的帧序列中获取数据 - 运行多个AI算法来计算各项生理指标 - 将处理结果通过进程间通信(如Queue)发送回主进程 5. **结果更新线程** - 接收来自AI处理进程的结果 - 通过信号机制将结果传递给主线程进行UI更新 ## 功能模块 - 年龄和性别预测 - 血压预测 - 情绪检测 - 心率检测 - 呼吸率检测 - 皮肤疾病检测 - 皮肤类型检测