基于yolov8的火灾火焰烟雾检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

发布时间:2025-07-25 15:07

安装烟雾报警器,一旦检测到火灾,系统会立即发送警报。 #生活技巧# #居家生活技巧# #家庭安全技巧# #智能家居安全#

【算法介绍】

基于YOLOv8的火焰烟雾检测系统是一款高效、实时的智能安全监控解决方案。该系统利用YOLOv8这一先进的深度学习模型,以其卓越的速度和准确性,能够在复杂环境中快速定位并分类火焰与烟雾,即使是微小的火源或稀薄的烟雾也能被精准识别。

系统集成了用户友好的图形界面,支持图片、视频及摄像头等多种输入方式,并配备了模型切换功能,可以更换不同模型检测。通过深度学习技术,系统能够不间断地分析实时视频流,一旦发现火灾或烟雾迹象,立即触发声音与视觉警报。

此外,该系统还具备自定义报警阈值,适用于工业场所、森林防火、住宅安全监控等多种场景。其开放性和扩展性设计也为持续创新和适应未来安全挑战提供了坚实的基础。

综上所述,基于YOLOv8的火焰烟雾检测系统不仅是一个实用的检测工具,更是一个面向未来的智能安全平台。

【效果展示】

【测试环境】

windows10 anaconda3+python3.8 torch==1.9.0+cu111 ultralytics==8.2.70

【模型可以检测出类别】

fire

smoke

【训练数据集】

https://download.csdn.net/download/FL1623863129/85775558

【部分实现源码】

代码语言:javascript

代码运行次数:0

运行

AI代码解释

复制

class Ui_MainWindow(QtWidgets.QMainWindow): signal = QtCore.pyqtSignal(str, str) def setupUi(self): self.setObjectName("MainWindow") self.resize(1280, 728) self.centralwidget = QtWidgets.QWidget(self) self.centralwidget.setObjectName("centralwidget") self.weights_dir = './weights' self.picture = QtWidgets.QLabel(self.centralwidget) self.picture.setGeometry(QtCore.QRect(260, 10, 1010, 630)) self.picture.setStyleSheet("background:black") self.picture.setObjectName("picture") self.picture.setScaledContents(True) self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(10, 10, 81, 21)) self.label_2.setObjectName("label_2") self.cb_weights = QtWidgets.QComboBox(self.centralwidget) self.cb_weights.setGeometry(QtCore.QRect(10, 40, 241, 21)) self.cb_weights.setObjectName("cb_weights") self.cb_weights.currentIndexChanged.connect(self.cb_weights_changed) self.label_3 = QtWidgets.QLabel(self.centralwidget) self.label_3.setGeometry(QtCore.QRect(10, 70, 72, 21)) self.label_3.setObjectName("label_3") self.hs_conf = QtWidgets.QSlider(self.centralwidget) self.hs_conf.setGeometry(QtCore.QRect(10, 100, 181, 22)) self.hs_conf.setProperty("value", 25) self.hs_conf.setOrientation(QtCore.Qt.Horizontal) self.hs_conf.setObjectName("hs_conf") self.hs_conf.valueChanged.connect(self.conf_change) self.dsb_conf = QtWidgets.QDoubleSpinBox(self.centralwidget) self.dsb_conf.setGeometry(QtCore.QRect(200, 100, 51, 22)) self.dsb_conf.setMaximum(1.0) self.dsb_conf.setSingleStep(0.01) self.dsb_conf.setProperty("value", 0.25) self.dsb_conf.setObjectName("dsb_conf") self.dsb_conf.valueChanged.connect(self.dsb_conf_change) self.dsb_iou = QtWidgets.QDoubleSpinBox(self.centralwidget) self.dsb_iou.setGeometry(QtCore.QRect(200, 160, 51, 22)) self.dsb_iou.setMaximum(1.0) self.dsb_iou.setSingleStep(0.01) self.dsb_iou.setProperty("value", 0.45) self.dsb_iou.setObjectName("dsb_iou") self.dsb_iou.valueChanged.connect(self.dsb_iou_change) self.hs_iou = QtWidgets.QSlider(self.centralwidget) self.hs_iou.setGeometry(QtCore.QRect(10, 160, 181, 22)) self.hs_iou.setProperty("value", 45) self.hs_iou.setOrientation(QtCore.Qt.Horizontal) self.hs_iou.setObjectName("hs_iou") self.hs_iou.valueChanged.connect(self.iou_change) self.label_4 = QtWidgets.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(10, 130, 72, 21)) self.label_4.setObjectName("label_4") self.label_5 = QtWidgets.QLabel(self.centralwidget) self.label_5.setGeometry(QtCore.QRect(10, 210, 72, 21)) self.label_5.setObjectName("label_5") self.le_res = QtWidgets.QTextEdit(self.centralwidget) self.le_res.setGeometry(QtCore.QRect(10, 240, 241, 400)) self.le_res.setObjectName("le_res") self.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(self) self.menubar.setGeometry(QtCore.QRect(0, 0, 1110, 30)) self.menubar.setObjectName("menubar") self.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(self) self.statusbar.setObjectName("statusbar") self.setStatusBar(self.statusbar) self.toolBar = QtWidgets.QToolBar(self) self.toolBar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) self.toolBar.setObjectName("toolBar") self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar) self.actionopenpic = QtWidgets.QAction(self) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/images/1.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionopenpic.setIcon(icon) self.actionopenpic.setObjectName("actionopenpic") self.actionopenpic.triggered.connect(self.open_image) self.action = QtWidgets.QAction(self) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(":/images/2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.action.setIcon(icon1) self.action.setObjectName("action") self.action.triggered.connect(self.open_video) self.action_2 = QtWidgets.QAction(self) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(":/images/3.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.action_2.setIcon(icon2) self.action_2.setObjectName("action_2") self.action_2.triggered.connect(self.open_camera) self.actionexit = QtWidgets.QAction(self) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(":/images/4.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionexit.setIcon(icon3) self.actionexit.setObjectName("actionexit") self.actionexit.triggered.connect(self.exit) self.toolBar.addAction(self.actionopenpic) self.toolBar.addAction(self.action) self.toolBar.addAction(self.action_2) self.toolBar.addAction(self.actionexit) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) self.init_all()

【使用步骤】

使用步骤: (1)首先根据官方框架https://github.com/ultralytics/ultralytics安装教程安装好yolov8环境,并安装好pyqt5 (2)切换到自己安装的yolov8环境后,并切换到源码目录,执行python main.py即可运行启动界面,进行相应的操作即可

【提供文件】

python源码 yolov8n.onnx模型(不提供pytorch模型) 训练的map,P,R曲线图(在weights\results.png) 测试图片(在test_img文件夹下面)

【视频演示】

基于yolov8的火焰烟雾检测系统python源码+onnx模型+评估指标曲线+精美GUI界面_哔哩哔哩_bilibili测试环境】windows10anaconda3+python3.8torch==1.9.0+cu111ultralytics==8.2.70【模型可以检测出类别】firesmoke更多信息参考博文:https://blog.csdn.net/FL1623863129/article/details/141671242, 视频播放量 0、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:

https://www.bilibili.com/video/BV1dqsVeHEtJ/

【源码下载地址】

https://download.csdn.net/download/FL1623863129/89689889

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。

原始发表:2024-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

网址:基于yolov8的火灾火焰烟雾检测系统python源码+onnx模型+评估指标曲线+精美GUI界面 https://www.yuejiaxmz.com/news/view/1193645

相关内容

基于深度学习的生活垃圾检测与分类系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
助力火灾安防预警,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建公共生活场景下的火点检测预警系统
构建厨房灶火监控与提醒系统:基于NanoDet的深度学习目标检测解决方案
基于深度学习的维修工具检测识别系统
基于STM32+NBIOT设计的宿舍安防控制系统
基于MATLAB语音识别系统GUI界面
基于STM32+WiFi的厨房安全系统设计(代码+原理图+PCB+全部资料)
BRAHMA 系列火焰检测控制器
基于Python实现智能能源消耗预测和管理系统毕设源码
【本科毕业设计】基于单片机的智能家居防火防盗报警系统

随便看看