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),执行以下命令:
pipinstallultralytics 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等)
注意:本软件默认期望检测的类别为fire和smoke(索引 0 和 1)。如果你的模型类别不同,需修改代码中的类别映射逻辑。
4.4 下载或保存软件代码
将提供的完整 Python 代码保存为fire_detector.py(或其他名称)。
5. 使用说明
5.1 启动软件
在终端中导航到代码所在目录,执行:
python fire_detector.py稍等片刻,主窗口会弹出。
5.2 界面布局
- 左侧区域:所有控制选项(选择模型、选择文件、调节参数等)
- 右侧区域:显示原始图片/视频预览,以及检测后的结果画面
- 底部状态栏:显示当前操作状态(加载中、检测完成等)
5.3 图片检测流程
加载模型
点击“模型文件 (.pt)”旁的浏览按钮,选择你的.pt模型文件。若已加载成功,状态栏会显示模型名称。选择图片
确保顶部“输入类型”为图片(默认)。点击“文件路径”旁的浏览,选择一张待检测的图片(支持.jpg,.png,.bmp等)。调整置信度(可选)
拖动“置信度阈值”滑块,数值越高,检测结果越严格(漏检增多,误检减少)。推荐设置在 0.3~0.7 之间。是否保存结果
勾选“保存检测结果图片”后,检测完成时会在图片同目录下生成原文件名_detected.jpg。开始检测
点击开始检测按钮。右侧会立即显示带标注框的图片,左侧文本框列出检测到的目标详情(类别、置信度、坐标)。查看结果
检测完成后,状态栏会提示“图片检测完成”。如需再次检测,更换图片即可。
5.4 视频检测流程
切换到视频模式
点击“输入类型”中的视频按钮,界面会显示“跳帧”设置和进度条,同时出现“停止检测”按钮(初始为灰色)。选择模型(若之前未加载,请先加载模型)
选择视频文件
点击浏览,选择.mp4/.avi/.mov等格式的视频。设置跳帧(可选)
“视频检测跳帧”表示每 N 帧检测一次。- 数值 = 1:每一帧都检测(精度最高,但较慢)
- 数值 = 5:每 5 帧检测一次(速度提升约 5 倍,适合对实时性要求较高的场景)
调整置信度阈值(同图片模式)
是否保存结果视频
勾选后,检测完成后会在视频同目录下生成原文件名_detected.mp4。开始检测
点击开始检测,右侧窗口会实时显示当前检测帧的画面,左侧增量显示每一帧的检测结果,下方进度条显示处理进度。中途停止
点击停止检测(红色按钮),检测任务会尽快终止。检测完成
正常结束后,状态栏会提示“视频检测完成”。若勾选了保存,会弹窗告知输出路径。
6. 常见问题与注意事项
6.1 启动时提示缺少模块?
请确保已安装所有依赖:pip install -r requirements.txt(可自行创建该文件列出上述库)。
6.2 加载模型时提示 “C3k2” 不存在?
说明你的ultralytics版本过低(低于 8.2.x)。请升级:
pipinstall--upgradeultralytics6.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 会自动适配,但偶尔需重启软件
源代码如下