Skip to content

GodWay-Tq/fire-detection

Repository files navigation

基于 YOLOv8 的火灾检测系统

项目概述

本项目是一个基于 YOLOv8 的火灾检测系统,实现了从数据标注、模型训练到多源检测、历史记录、指标可视化的完整流程。适用于本科生/研究生课程设计。

核心功能

  1. 多源检测:支持图片、视频、摄像头三种输入方式
  2. 完整闭环:数据集配置 → YOLOv8 训练 → 权重保存 → 推理部署 → 界面展示
  3. 指标可视化:训练曲线、mAP、精确率、召回率、混淆矩阵等自动生成并展示
  4. 桌面应用:PyQt6/PyQt5 界面,支持模型加载、参数配置、检测历史管理
  5. 用户系统:登录/注册功能
  6. 双类别检测:同时检测 Fire(火灾)与 Smoke(烟雾)

项目结构

fire_detection/
├── main.py              # 应用程序入口
├── train_yolo.py        # 模型训练脚本
├── data/
│   └── FireData/        # 数据集
│       └── data.yaml    # 数据集配置
├── ui/                  # UI 模块
│   ├── login_window.py  # 登录窗口
│   ├── main_window.py   # 主窗口
│   ├── image_detection.py  # 图片检测
│   ├── video_detection.py  # 视频检测
│   ├── camera_detection.py  # 摄像头检测
│   ├── detection_history.py  # 检测历史
│   ├── model_management.py  # 模型管理
│   └── metrics_display.py  # 指标展示
└── models/              # 模型权重

环境要求

  • Python 3.8+
  • PyQt5 或 PyQt6
  • OpenCV
  • Ultralytics YOLOv8
  • Pandas
  • Matplotlib
  • NumPy
  • Seaborn
  • Scikit-learn

安装依赖

# 安装 PyQt5
pip install PyQt5==5.15.11

# 安装其他依赖
pip install opencv-python==4.8.0.76 ultralytics==8.4.33 pandas==2.0.3 matplotlib==3.7.1 numpy==1.24.3 seaborn==0.12.2 scikit-learn==1.3.0

运行应用

  1. 训练模型(可选):

    python train_yolo.py
  2. 运行应用

    python main.py
  3. 登录系统

    • 用户名:admin
    • 密码:admin123

功能使用

图片检测

  • 点击「打开图片」按钮选择本地图片
  • 点击「开始检测」按钮进行火灾/烟雾检测
  • 查看检测结果和统计信息

视频检测

  • 点击「打开视频」按钮选择本地视频
  • 调整检测间隔(可选)
  • 点击「开始检测」按钮进行视频检测
  • 查看实时检测结果

摄像头检测

  • 点击「开始检测」按钮启动摄像头
  • 调整检测间隔(可选)
  • 查看实时检测结果

检测历史

  • 查看历史检测记录
  • 筛选和搜索记录
  • 导出记录为 CSV 文件

模型管理

  • 加载和切换模型权重
  • 配置置信度、IoU、最大检测数等参数
  • 查看模型信息

指标展示

  • 查看训练曲线
  • 查看 mAP、精确率、召回率等指标
  • 查看混淆矩阵

注意事项

  1. 在 Trae IDE 中运行:由于 Trae IDE 环境限制,GUI 应用程序可能无法正常显示。建议在本地环境中运行。

  2. 模型训练:首次运行时,系统会下载预训练模型,可能需要一些时间。

  3. GPU 训练:如果您有 GPU,可以在 data/FireData/data.yaml 中设置 device: 0 来启用 GPU 训练。

  4. 数据集:确保 data/FireData 目录中包含训练、验证和测试数据集。

故障排除

1. 缺少 PyQt5 模块

pip install PyQt5==5.15.11

2. 缺少 OpenCV 模块

pip install opencv-python==4.8.0.76

3. 缺少 YOLOv8 模块

pip install ultralytics==8.4.33

4. 模型文件不存在

  • 运行 train_yolo.py 训练模型
  • 或使用预训练模型 yolov8n.pt

联系方式

如果您有任何问题或建议,请随时联系我们。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages