YOLO火焰/烟雾检测系统

YOLO火焰/烟雾检测系统

1. 软件概述

本软件基于 YOLOv8/v11/v26 深度学习模型,提供了一个简洁美观的图形界面,用于对图片视频中的火焰(Fire)与烟雾(Smoke)目标进行智能检测。支持实时显示检测结果、保存带标注框的输出文件,并允许用户灵活调整置信度阈值等参数。


2. 主要功能

功能模块 描述
图片检测 选择单张图片,一键检测并显示火焰/烟雾的位置、置信度及坐标。
视频检测 支持 .mp4, .avi, .mov 等常见视频格式,可设置跳帧间隔,实时显示检测进度。
模型加载 加载用户自己的 .pt 格式 YOLO 模型(也支持官方预训练模型)。
置信度调节 通过滑块调整检测阈值(0~1),过滤低置信度目标。
结果保存 可选自动保存检测后的图片(_detected.jpg)或视频(_detected.mp4)。
实时预览 检测过程中右侧窗口实时显示带标注框的画面。
详细日志 左侧文本框逐帧列出检测到的目标类别、置信度及边界框坐标。
停止检测 视频检测过程中可随时中断任务。
进度条 视频检测时显示当前帧进度百分比。

3. 系统要求

  • 操作系统:Windows 10/11
  • Python 版本:3.8 ~ 3.11
  • 硬件建议
    • 推荐使用 NVIDIA GPU(显存 ≥ 4GB)以获得较快推理速度
    • CPU模式也可运行,但视频检测会较慢
  • 依赖库(见下一节)

4. 安装与配置

4.1 安装 Python 环境

如果你还没有 Python,请从 python.org 下载安装(安装时勾选"Add Python to PATH")。

4.2 安装依赖库

打开终端(cmd 或 PowerShell),执行以下命令:

bash 复制代码
pip install ultralytics opencv-python pillow customtkinter

如果下载缓慢,可使用国内镜像,例如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ultralytics opencv-python pillow customtkinter

4.3 准备模型文件

  • 你可以使用自己训练好的 .pt 模型(如 best.pt
  • 或者直接使用 Ultralytics 官方预训练模型(软件会自动下载,但建议预先下载好 yolov8n.pt 等)

注意:本软件默认期望检测的类别为 firesmoke(索引 0 和 1)。如果你的模型类别不同,需修改代码中的类别映射逻辑。

4.4 下载或保存软件代码

将提供的完整 Python 代码保存为 fire_detector.py(或其他名称)。


5. 使用说明

5.1 启动软件

在终端中导航到代码所在目录,执行:

bash 复制代码
python fire_detector.py

稍等片刻,主窗口会弹出。

5.2 界面布局

  • 左侧区域:所有控制选项(选择模型、选择文件、调节参数等)
  • 右侧区域:显示原始图片/视频预览,以及检测后的结果画面
  • 底部状态栏 :显示当前操作状态(加载中、检测完成等)

5.3 图片检测流程

  1. 加载模型

    点击"模型文件 (.pt)"旁的 浏览 按钮,选择你的 .pt 模型文件。若已加载成功,状态栏会显示模型名称。

  2. 选择图片

    确保顶部"输入类型"为 图片 (默认)。点击"文件路径"旁的 浏览 ,选择一张待检测的图片(支持 .jpg, .png, .bmp 等)。

  3. 调整置信度(可选)

    拖动"置信度阈值"滑块,数值越高,检测结果越严格(漏检增多,误检减少)。推荐设置在 0.3~0.7 之间。

  4. 是否保存结果

    勾选"保存检测结果图片"后,检测完成时会在图片同目录下生成 原文件名_detected.jpg

  5. 开始检测

    点击 开始检测 按钮。右侧会立即显示带标注框的图片,左侧文本框列出检测到的目标详情(类别、置信度、坐标)。

  6. 查看结果

    检测完成后,状态栏会提示"图片检测完成"。如需再次检测,更换图片即可。

5.4 视频检测流程

  1. 切换到视频模式

    点击"输入类型"中的 视频 按钮,界面会显示"跳帧"设置和进度条,同时出现"停止检测"按钮(初始为灰色)。

  2. 选择模型(若之前未加载,请先加载模型)

  3. 选择视频文件

    点击 浏览 ,选择 .mp4 / .avi / .mov 等格式的视频。

  4. 设置跳帧(可选)

    "视频检测跳帧"表示每 N 帧检测一次

    • 数值 = 1:每一帧都检测(精度最高,但较慢)
    • 数值 = 5:每 5 帧检测一次(速度提升约 5 倍,适合对实时性要求较高的场景)
  5. 调整置信度阈值(同图片模式)

  6. 是否保存结果视频

    勾选后,检测完成后会在视频同目录下生成 原文件名_detected.mp4

  7. 开始检测

    点击 开始检测,右侧窗口会实时显示当前检测帧的画面,左侧增量显示每一帧的检测结果,下方进度条显示处理进度。

  8. 中途停止

    点击 停止检测(红色按钮),检测任务会尽快终止。

  9. 检测完成

    正常结束后,状态栏会提示"视频检测完成"。若勾选了保存,会弹窗告知输出路径。


6. 常见问题与注意事项

6.1 启动时提示缺少模块?

请确保已安装所有依赖:pip install -r requirements.txt(可自行创建该文件列出上述库)。

6.2 加载模型时提示 "C3k2" 不存在?

说明你的 ultralytics 版本过低(低于 8.2.x)。请升级:

bash 复制代码
pip install --upgrade ultralytics

6.3 视频检测卡顿或显存不足?

  • 适当增大 跳帧 数值(如 3 或 5)
  • 降低 置信度阈值(不会减少显存但能加快后处理)
  • 在代码中可将 imgsz 显式降低(例如 model(frame, imgsz=320)

6.4 检测结果中类别名称错误?

本软件会从模型的 .names 属性中自动读取类别名称。如果你的模型训练时的类别顺序不是 ['fire','smoke'],输出会显示你自定义的类别名(如 ['fire','smoke','other'])。

6.5 保存的视频无法播放?

  • 确保已安装 opencv-python(视频编码依赖)
  • 可尝试将输出编码改为 'avc1' 或直接保存为 .avi 格式

6.6 界面显示异常(按钮不全/布局错乱)?

  • 请确保屏幕分辨率 ≥ 1280×800
  • 如果使用 Windows 缩放(125% 等),CustomTkinter 会自动适配,但偶尔需重启软件

源代码如下

相关推荐
浔川python社1 小时前
浔川社团第一次福利数据公布
人工智能·python·deepseek
方也_arkling2 小时前
【大模型】初步认识RAG
人工智能·python
迁旭2 小时前
prompt_toolkit 3.0.52 API 参考手册
python
WL_Aurora2 小时前
Python 算法基础篇之堆和优先队列
python·算法
早日退休!!!2 小时前
PyTorch适配NPU
人工智能·pytorch·python
刀法如飞2 小时前
一款开箱即用的Flask 3.0 MVC工程脚手架,面向AI开发
后端·python·flask
xingpanvip2 小时前
星盘接口开发文档:组合三限盘接口指南
android·开发语言·前端·python·php·lua
vortex53 小时前
Villain:新一代轻量级 C2 框架完整使用指南
python·网络安全·kali·c2
测试员周周3 小时前
【AI测试系统】第5篇:AI 编码工具抛硬币?我们用 LangGraph 做了个“确定性+AI”的测试系统(附自愈架构)
人工智能·python·功能测试·测试工具·架构·langchain·单元测试