原创项目合集 基于 YOLOv8 的森林火灾检测系统

基于 YOLOv8 的森林火灾检测系统

一、项目简介

基于 YOLOv8 的森林火灾和烟雾智能检测系统,提供图形化界面,支持图片、视频和实时摄像头检测。

本项目是一个基于深度学习的森林火灾检测系统,使用 YOLOv8 目标检测模型,能够准确识别图像和视频中的火灾和烟雾。系统提供友好的图形界面,支持用户登录注册、历史记录查询、训练指标可视化等功能。

二、功能特性

检测功能

  • 图片检测:支持 JPG、PNG、BMP 等常见图片格式
  • 视频检测:支持 MP4、AVI、MOV、MKV 等视频格式,可保存检测结果
  • 实时检测:支持摄像头实时检测,实时显示检测结果

系统功能

  • 用户管理:用户注册、登录功能
  • 历史记录:自动保存检测历史,支持查询和删除
  • 模型管理:支持切换不同的训练模型
  • 训练可视化:可视化训练指标和损失曲线
  • 结果保存:检测结果可保存为图片或视频

界面特色

  • 现代化的绿色主题界面
  • 直观的操作流程
  • 实时显示检测统计信息
  • 美观的结果展示

三、技术栈

  • 深度学习框架:PyTorch, Ultralytics YOLOv8
  • 图形界面:PyQt6
  • 图像处理:OpenCV, NumPy
  • 数据处理:Pandas, Matplotlib
  • 其他:PyYAML, Pillow

四、项目结构

c102/
├── main.py                 # 主程序入口(图形界面)
├── detector.py              # 检测功能模块
├── database.py              # 数据库管理模块
├── train.py                 # 模型训练脚本
├── visualize_training.py   # 训练结果可视化脚本
├── requirements.txt        # 依赖包列表
├── data/                   # 数据存储目录
│   ├── users.json          # 用户数据
│   └── history.json        # 检测历史记录
├── datasets/               # 数据集目录
│   ├── fire_smoke.yaml    # 数据集配置文件
│   ├── classes.txt         # 类别名称文件
│   ├── best.pt            # 预训练模型权重
│   └── datasets/           # 训练数据集
│       ├── train/         # 训练集
│       ├── val/           # 验证集
│       └── test/          # 测试集
└── runs/                   # 训练结果目录
    └── train/
        └── fire_detection_*/  # 训练输出
            ├── weights/      # 模型权重
            ├── results.csv   # 训练指标
            └── *.png        # 可视化图表

五、安装说明

环境要求

  • Python 3.8+
  • CUDA(可选,用于GPU加速)
  • Windows/Linux/macOS

安装步骤

  1. 克隆项目
git clone <repository-url>
cd c102
  1. 创建虚拟环境(推荐)
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
  1. 安装依赖
pip install -r requirements.txt
  1. 下载预训练模型(可选)如果使用默认模型路径,确保以下路径存在:
runs/train/fire_detection_20260201_191621/weights/best.pt

或者使用 datasets/best.pt 作为模型文件。

六、使用方法

启动程序

python main.py

使用流程

  1. 登录/注册
  2. 首次使用需要注册账号
  3. 密码长度至少6位
  4. 注册成功后使用账号登录
基于 YOLOv8 的森林火灾检测系统项目截图1
  1. 加载模型
  2. 系统会自动加载默认模型
  3. 可在"模型选择"页面切换其他模型
基于 YOLOv8 的森林火灾检测系统项目截图1
  1. 图片检测
  2. 点击"图片检测"页面
  3. 选择图片文件
  4. 点击"开始检测"
  5. 查看检测结果,可保存结果图片
基于 YOLOv8 的森林火灾检测系统项目截图1
  1. 视频检测
  2. 点击"视频检测"页面
  3. 选择视频文件
  4. 点击"开始检测"
  5. 选择保存路径
  6. 等待处理完成
  7. 摄像头检测
  8. 点击"摄像头检测"页面
  9. 点击"开启摄像头"
  10. 实时查看检测结果
  11. 点击"停止检测"结束
  12. 查看历史记录
  13. 点击"历史记录"页面
  14. 查看所有检测历史
  15. 可删除不需要的记录
基于 YOLOv8 的森林火灾检测系统项目截图1
  1. 训练指标可视化
  2. 点击"训练指标可视化"页面
  3. 输入训练结果路径
  4. 点击"加载指标"查看训练曲线
基于 YOLOv8 的森林火灾检测系统项目截图1

七、模型训练

准备数据集

基于 YOLOv8 的森林火灾检测系统项目截图1 基于 YOLOv8 的森林火灾检测系统项目截图1 基于 YOLOv8 的森林火灾检测系统项目截图2
  1. 按照 YOLO 格式组织数据集:
datasets/datasets/
├── train/
│   ├── images/
│   └── labels/
├── val/
│   ├── images/
│   └── labels/
└── test/
    ├── images/
    └── labels/
  1. 配置 datasets/fire_smoke.yaml
path: datasets/datasets
train: train/images
val: val/images
nc: 2
names:
  '0': Fire
  '1': Smoke

开始训练

python train.py

训练参数配置

train.pymain() 函数中修改训练参数:

trainer.train(
    epochs=100,        # 训练轮数
    imgsz=640,         # 图像尺寸
    batch=16,          # 批次大小(根据GPU显存调整)
    device='0'         # '0' for GPU, 'cpu' for CPU
)

训练结果

训练完成后,结果保存在 runs/train/fire_detection_<timestamp>/ 目录下:

  • weights/best.pt - 最佳模型权重
  • weights/last.pt - 最后一轮模型权重
  • results.csv - 训练指标CSV文件
  • *.png - 各种可视化图表
基于 YOLOv8 的森林火灾检测系统项目截图1 基于 YOLOv8 的森林火灾检测系统项目截图1 基于 YOLOv8 的森林火灾检测系统项目截图2

可视化训练结果

python visualize_training.py

或修改脚本中的CSV路径后运行。

八、检测类别

  • Fire (火灾):检测图像中的火焰
  • Smoke (烟雾):检测图像中的烟雾

九、配置说明

模型配置

  • 默认模型路径:runs/train/fire_detection_20260201_191621/weights/best.pt
  • 可在"模型选择"页面切换其他 .pt 模型文件

检测参数

  • 置信度阈值:默认 0.25(可在代码中修改)
  • 输入图像尺寸:640x640

十、注意事项

  1. GPU支持:如果有NVIDIA GPU,建议安装CUDA版本的PyTorch以加速训练和检测
  2. 模型文件:确保模型文件路径正确,否则无法进行检测
  3. 摄像头权限:使用摄像头检测时,确保系统已授予摄像头访问权限
  4. 数据集路径:训练时确保数据集路径配置正确
  5. 内存要求:视频检测需要足够的系统内存,大视频文件建议分批处理

本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和个人学习使用。如需购买项目成品或定制化需求可以联系作者。

微信二维码
Jay 微信二维码