【项目】火灾烟雾检测管理系统。PyQT5+QT Designe+YOLOv8_ssod半监督算法+OpenCV
- 0.摘要
- 1.引言
- 2.烟雾检测算法
- 2.0图像标注
- 2.1 YOLOv8全监督算法结构
- 2.2 Efficient-Teacher半监督算法结构
- 3.性能对比图
- 4.源码、论文获取
0.摘要
火灾是常见而危险的自然灾害,不仅对人类生命和财产安全构成严重威胁,还给社会和环境带来巨大的损失。烟雾是火灾的主要伴生现象,但在实际火灾中,烟雾往往最早出现,且具有更明显的可观测性,因此检测烟雾能更早发现火灾,对消防减灾具有重要的意义。为此,设计一种自动化检测火灾烟雾的方法对消防减灾尤为重要,现有的自动化火灾烟雾检测方法主要分为基于烟雾报警器等传感器的检测、方法基于传统图像处理的烟雾检测算法和基于深度学习的烟雾检测算法三大类。
本文在这三种方法中选择了精度最高、效果最好的深度学习方法,结合改进的半监督YOLOv8_ssod算法和PyQt5和Qt Designer界面设计框架,设计了一个的烟雾检测系统,其中,改进的YOLOv8_ssod用于火灾烟雾检测,PyQt5和Qt Designer用于界面设计以及火灾视频实时处理。通过简洁的界面设计,以便于用户对视频图像进行火灾烟雾识别,改进的YOLOv8_ssod算法能够在不同场景下识别各种类型的烟雾,实现了高精度实时性烟雾检测的目的,为促进智能化的消防减灾提供了新的技术支撑。
1.引言
博主上半年主要做了烟雾检测的一些算法(【项目】YOLOv8/YOLOv5/YOLOv9半监督ssod火灾烟雾检测(YOLOv8_ssod)),因此想着能否用这些算法做一些更直观一点的应用,因此结合QT做了一个检测系统,除此之外,该系统还可以实现外置摄像头调用以满足动态检测烟雾的效果。
检测效果图如下:
用户选取图像后,点击“开始预测”按钮,系统将图像传入算法中。该算法首先识别图像中的烟雾并确定其位置和边界框。最终,系统将输出识别的结果,如果有检测到存在烟雾,则显示在用户界面上供用户查看。整个过程将在用户点击预测按钮后自动完成,用户将获得即时的识别结果。
这个过程的设计旨在为用户提供一种便捷、简单的烟雾检测体验。用户只需点击一次按钮,系统就会自动完成图像传入、字符检测和识别等一系列操作,并即时将识别结果显示在用户界面上。这种即时反馈的设计有助于用户及时了解图像中是否存在烟雾,并采取相应的措施。
在整个预测过程中,系统需要确保算法的准确性和效率。字符检测算法需要能够准确地识别图像中的烟雾,并确定其位置和边界框。同时,系统还需要保证预测过程的速度,以便在用户点击按钮后能够尽快地给出识别结果。
视频检测效果如下:
应用于视频检测更为直观,除应用于手机/电脑摄像头外,还可以部署于边缘设备比如无人机等设备上。
2.烟雾检测算法
2.0图像标注
标注方式除了最大外接矩形还有其他不同的方式,由于在开始标注时,本文采用的如上所示的标注方式(即分段进行标注,这样做的好处是样本中的背景信息更少),但这样会导致训练效果较差,因此最后方案采用最大外接矩形。通过网络收集以及自行标注的方法,博主得到大约6000张标注图像,5000张未标注图像。
标签分布图
标签大小图
2.1 YOLOv8全监督算法结构
改进后的全监督YOLOv8网络结构图:
本文采用改进的YOLOv8算法进行烟雾检测。改进的YOLOv8算法主要由Input、Backbone、Neck、Head四部分组成,总结构框架如上图所示。Backbone主要负责从输入图像中提取特征,其中包含了本文引入的注意力机制;Neck部分负责将backbone提取到的特征进一步处理和融合;Head部分负责将融合后的特征进行处理,输出目标的类别和位置,生成最终的检测结果,由此完成对不同环境和浓度下烟雾的检测。
2.2 Efficient-Teacher半监督算法结构
半监督网络结构图
半监督算法具体的网络结构就不在这里过多赘述了,详细见博主之前发的半基于半监督学习和YOLOv8的烟雾检测算法:(【项目】YOLOv8/YOLOv5/YOLOv9半监督ssod火灾烟雾检测(YOLOv8_ssod))。
3.性能对比图
在全监督算法中,选取了几种最常用的目标检测算法进行对比实验,结果如下图所示。
可以看出,YOLOv8算法相对较好
通过图上图可知,本文算法在loss下降方面较为稳定,且随着loss的稳定下降,Precision、Recall以及mAP等精度都在稳定提升,最终稳定与0.9左右,可以满足于火灾烟雾的检测。
4.源码、论文获取
除上文所述的源码之外,博主还写了一份两万字的说明文档,可以作为大论文参考使用.
博主q:1831255794