本项目是一个基于 YOLOv8 的火灾检测系统,实现了从数据标注、模型训练到多源检测、历史记录、指标可视化的完整流程。适用于本科生/研究生课程设计。
- 多源检测:支持图片、视频、摄像头三种输入方式
- 完整闭环:数据集配置 → YOLOv8 训练 → 权重保存 → 推理部署 → 界面展示
- 指标可视化:训练曲线、mAP、精确率、召回率、混淆矩阵等自动生成并展示
- 桌面应用:PyQt6/PyQt5 界面,支持模型加载、参数配置、检测历史管理
- 用户系统:登录/注册功能
- 双类别检测:同时检测 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-
训练模型(可选):
python train_yolo.py
-
运行应用:
python main.py
-
登录系统:
- 用户名:admin
- 密码:admin123
- 点击「打开图片」按钮选择本地图片
- 点击「开始检测」按钮进行火灾/烟雾检测
- 查看检测结果和统计信息
- 点击「打开视频」按钮选择本地视频
- 调整检测间隔(可选)
- 点击「开始检测」按钮进行视频检测
- 查看实时检测结果
- 点击「开始检测」按钮启动摄像头
- 调整检测间隔(可选)
- 查看实时检测结果
- 查看历史检测记录
- 筛选和搜索记录
- 导出记录为 CSV 文件
- 加载和切换模型权重
- 配置置信度、IoU、最大检测数等参数
- 查看模型信息
- 查看训练曲线
- 查看 mAP、精确率、召回率等指标
- 查看混淆矩阵
-
在 Trae IDE 中运行:由于 Trae IDE 环境限制,GUI 应用程序可能无法正常显示。建议在本地环境中运行。
-
模型训练:首次运行时,系统会下载预训练模型,可能需要一些时间。
-
GPU 训练:如果您有 GPU,可以在
data/FireData/data.yaml中设置device: 0来启用 GPU 训练。 -
数据集:确保
data/FireData目录中包含训练、验证和测试数据集。
pip install PyQt5==5.15.11pip install opencv-python==4.8.0.76pip install ultralytics==8.4.33- 运行
train_yolo.py训练模型 - 或使用预训练模型
yolov8n.pt
如果您有任何问题或建议,请随时联系我们。