tjy/demo
PEAandDA b6f672389e 更新Demo 2024-07-22 20:12:25 +08:00
..
apis 更新Demo 2024-07-16 16:28:35 +08:00
core 更新Demo 2024-07-22 20:12:25 +08:00
images 更新Demo 2024-07-16 16:28:35 +08:00
labels 更新Demo 2024-07-16 16:28:35 +08:00
ui 更新Demo 2024-07-16 16:28:35 +08:00
weights 更新Demo 2024-07-22 18:18:12 +08:00
main.py 更新Demo 2024-07-16 16:28:35 +08:00
readme.md 更新Demo 2024-07-16 16:36:17 +08:00
requirements.txt 更新Demo 2024-07-22 18:18:12 +08:00

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

主要组件

  1. 主线程GUI线程

    • 运行PyQt5的事件循环和处理用户交互
    • 显示摄像头画面和AI处理结果
    • 协调其他线程和进程的工作
  2. 摄像头读取线程

    • 专门负责从摄像头读取画面
    • 使用QTimer定时触发画面捕获
    • 通过信号机制将捕获的帧传递给主线程显示和存储线程
  3. 帧序列存储线程

    • 接收来自摄像头读取线程的帧
    • 将帧序列存储到磁盘或内存缓冲区
    • 实现循环缓冲只保留最近的N帧
  4. AI处理进程

    • 使用多进程以充分利用多核CPU
    • 定期从存储的帧序列中获取数据
    • 运行多个AI算法来计算各项生理指标
    • 将处理结果通过进程间通信如Queue发送回主进程
  5. 结果更新线程

    • 接收来自AI处理进程的结果
    • 通过信号机制将结果传递给主线程进行UI更新

功能模块

  • 年龄和性别预测
  • 血压预测
  • 情绪检测
  • 心率检测
  • 呼吸率检测
  • 皮肤疾病检测
  • 皮肤类型检测