基于YOLOv5的火焰烟雾检测算法实战

这篇具有很好参考价值的文章主要介绍了基于YOLOv5的火焰烟雾检测算法实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一个不知名大学生,江湖人称菜狗
original author: Jacky Li
Email : 3435673055@qq.com

Time of completion:2023.6.11
Last edited: 2023.6.11

导读:

火焰烟雾检测是智慧安防业务场景中重要的功能之一,本文提出了一种基于YOLOv5的火焰烟雾检测算法,具有更强的泛化性,对火焰烟雾的检测效果更加准确。

目录

一:摘要

 二:介绍

三:模型

A. YOLOv5网络模型及算法改进

损失函数的改进

激活函数的改进

四:实验结果与分析

A. 获取数据集

B. 自适应图像缩放

C. 数据标注

D. 模型训练

E. 基于YOLOv5的工厂火焰烟雾检测及结果分析

五:结论

作者有言

文章信息


基于YOLOv5的火焰烟雾检测算法实战

一:摘要

石油化工装置火灾烟雾检测,可以预防火灾,保证生产安全和生命安全。文章旨在解决复杂工厂背景下火焰烟雾检测中的漏检和误检问题。

文章提出了一种基于YOLOv5的火焰烟雾检测算法。目标回归损失函数(CIoU)用于改善目标检测中的漏检和误检,提高模型的检测性能。改进后的激活函数避免了梯度消失,保持了算法较高的实时性。数据增强技术用于增强网络提取特征的能力,提高小目标检测模型的准确性。根据火焰烟雾的实际情况,改进了YOLOv5模型的损失函数和激活函数。基于改进的YOLOv5模型,建立了一种具有泛化性能的火焰烟雾检测算法。将改进后的模型与SSD和YOLOv4-tiny进行了比较。改进后的YOLOv5模型精度可达99.5%,对火焰烟雾的检测效果更加准确。改进后的网络模型在运行时间和精度上均优于现有方法。

针对火焰烟雾检测的实际特殊性,建立了一种改进的基于YOLOv5的火焰烟雾检测网络模型。通过改进损失函数来达到优化模型的目的,并结合非线性能力较强的激活函数来避免网络的过拟合。该方法有助于改善火焰烟雾检测中的漏检和误检问题,可进一步推广到行人目标检测和车辆行驶识别中。

 二:介绍

工厂的安全生产一直是一个不容忽视的问题。以石化工厂为例,由于生产车间密集,存在大量易燃易爆危险品,一旦发生火灾,极易诱发灾难性后果,造成环境污染,严重威胁生产安全和人员生命财产安全。因此,及时发现和预警控制早期火灾是安全生产的现实需求。厂区内火焰烟雾检测报警技术已受到国际、国内的重视。

火灾早期探测主要通过烟雾传感器和温度传感器来实现。例如,烟雾传感器通过检测烟雾浓度来完成防火。这种方法在室内或一些小场所有很好的表现。但在复杂环境中,由于气流环境、热障效应等因素的影响,再加上传感器检测距离较近、稳定性较低,依靠传感器检测温度、浓度等指标,很难准确获取现场实时信号数据信息。

虽然现有的目标检测研究已经取得了重大突破,但在实际的目标检测中,需要对整个图像进行卷积,需要更大的视场来满足算法的简洁快速。YOLO是一种目标检测器,它使用深度卷积神经网络学习的特征来检测目标。近年来,大量研究将其用于不同类型图像的智能检测,然而,模型结构复杂,火焰检测精度不够。

针对YOLOv5算法模型体积小、检测速度快的优异性能,以及处理厂区火焰烟雾检测问题的复杂性,文章在专门改进的YOLOv5的基础上建立了一种植物火焰烟雾检测算法,用于解决火焰烟雾漏检和误检问题。该算法将原有的GIoU _ Loss替换为CIoU _ Loss作为边界盒的损失函数,并利用SiLU激活函数来避免网络的过拟合。最后,通过与SSD、YOLOv4-tiny和YOLOv7算法的比较,验证了所提算法的有效性和可达性。

三:模型

A. YOLOv5网络模型及算法改进

损失函数的改进

损失函数是评估回归和分类问题的重要指标。在深度学习网络中,反向传播时间对误差估计至关重要。因此,本节通过引入更好的理论CIoU _ Loss 损失函数,改进了GIoU _ Loss 。

在目标检测中,需要对检测盒与真实盒的检测效果进行比较。通用网络中使用的GIoU _ Loss解决了在IoU的基础上,由于不同目标盒重叠而导致的比值无法优化的问题。GIoU的计算过程如下式第一个算式所示。

基于YOLOv5的火焰烟雾检测算法实战

上式第二个算式中,A为预测箱,B为实箱,IoU为传统的交点-并集比,即预测箱与实箱的交点面积与并集面积之比;Ac为预测框与实框最小包围矩形的面积。U为预测框和实框的面积。第三个算式中,LGIOU为GIoU的损失。

当预测框包含在目标框内时,GIoU _ Loss退化为IoU _ Loss,相对位置关系无法区分。为了更好地优化目标盒和预测盒,本文提出用CIoU _ Loss代替原来的GIoU _ Loss作为包围盒损失函数。CIoU的计算过程如下边第一个算式所示。

基于YOLOv5的火焰烟雾检测算法实战

上述第二个算式中,ωA, hA为实际帧宽,ωB, hB为预测帧宽,α是权重,υ度量长宽比的相似度。C为两个矩形的最小对角线限定比例尺;ρ是A和B的中心点的欧氏距离;上述第三个算式中,LCIoU为CIoU的损失。

激活函数的改进

激活函数的目的是提高神经网络的非线性拟合能力。在YOLOv5网络结构中,骨干网中的LeakyReLU激活函数替换为SiLU(Sigmoid-Weighted Linear Units)激活函数。SiLU激活函数借鉴了ReLU函数族的思想,但更流畅。由于SiLU激活函数具有较强的非线性能力,可以解决LeakyReLU梯度爆炸的问题。如下图所示,改进后的CBS模块表示卷积层、批处理归一层和SiLU激活函数的串联模式。

基于YOLOv5的火焰烟雾检测算法实战

SiLU激活函数表达式如下:

基于YOLOv5的火焰烟雾检测算法实战

如上式第一个算式中,Sigmoid是常用的激活单元,SiLU函数表示Sigmoid的加权组合。由于SiLU激活函数本身具有自稳定特性,如上述第二个算式所示,它可以有效抑制大量权重的学习,从而避免网络过拟合,降低网络泛化性能。

四:实验结果与分析

A. 获取数据集

所获得的数据包含图像和视频两种格式类型。将得到的视频转换为视频图像序列,去除部分相似度高的图片。经过处理的样本图片被打乱,生成一个新的数据集用于训练。为了更好地评价工厂中火焰烟雾的目标识别性能,实验选择火焰和烟雾两种类型作为目标识别对象如下图,可以更好地反映YOLO模型在真实环境中的效果。

基于YOLOv5的火焰烟雾检测算法实战

为了从有限的工厂火焰烟雾数据集中充分获取目标特征信息,通过随机变换剔除模型中部分相似度较高的样本图像,防止过拟合导致特征学习停止,有利于模型的泛化。随机变换包括翻转、旋转、尺度变换、随机抠图、高斯噪声、随机模糊、颜色抖动等,以达到扩展数据集的目的。文章采用马赛克数据增强技术,通过随机缩放、随机裁剪和随机发射,将4张随机图像拼接成1张图像,丰富了数据集,提高了小目标的检测精度,增强了网络特征提取能力。下图显示了Mosaic数据增强结果。

基于YOLOv5的火焰烟雾检测算法实战

B. 自适应图像缩放

在一般的检测任务中,数据集图像的长度和宽度是不同的。由于小目标分布不均匀,严重影响了网络运行效率。

常见的处理方法是在训练和测试时将样本图像缩放到固定大小,然后将其发送到网络进行学习。如果在输入端仅以马赛克增强作为小样本图像处理的主要手段,则提高了小目标的检测精度,而减少了大目标的数据集,导致算法的平均精度下降。因此,传统的数据处理方法效果并不理想。

文章采用自适应缩放技术对数据输入端的数据进行处理。通过将原始图像缩放到标准尺寸,解决了原始数据集样本大小不同的问题。通过计算缩放后的尺度大小,得到黑边的填充值,在图像周围自适应添加最小黑边,减少计算量,从而加快检测速度。向这个示例添加黑边的效果如下图所示。

基于YOLOv5的火焰烟雾检测算法实战

C. 数据标注

本文使用图像标注软件labellmg对样本图像的真实值进行手动标注,选择对应目标区域的标注矩形框,自定义目标类别,标注信息将以.xml格式保存。双击打开“saved.xml”文件,文件中包含箱子所属类别、图像文件名、路径信息、目标类型和数量、箱子大小和中心点坐标。使用LabImage标注工具完成标注,最终获得2585张样本图像,包括火和烟2类,按照8:2的比例分为训练集和测试集,其中训练集图像2068张,测试集图像517张。

D. 模型训练

用于模型训练的硬件环境:Intel (R) Core (TM) i9-10900K CPU, 32.0 GB内存,NVIDIAGeForceRTX3090。软件环境:Windows10操作系统,Python3.10开发语言,PyTorch深度学习框架。在超参数设置中,batch-size设置为16,最大迭代次数的epoch设置为300,num-workers设置为2。Adam优化器可以在训练过程中达到参数优化的目的,同时保证网络检测精度,减小网络规模和参数数量,增强网络的检测和识别能力。随着训练轮数的增加,总损失值呈下降趋势。当训练轮数为300轮时,模型的精度趋于稳定,总损失值基本稳定在0.03,满足模型收敛的基本要求。可以确定300为模型的最佳训练轮,模型达到了较好的拟合效果。

E. 基于YOLOv5的工厂火焰烟雾检测及结果分析

为了更直观地感受三种算法的测试结果,选取了一组复杂背景和小目标样本图像进行检测。将选取的样本组发送到三种算法的网络模型中进行测试。YOLOv5l、SSD和YOLOv4-tiny算法的检测结果分别如下三图所示。

基于YOLOv5的火焰烟雾检测算法实战

YOLOv5l检测四张样本图像的时间分别为0.196s、0.075s、0.082s和0.07s。从上述的检测结果可以得出,在保证目标盒位置准确的前提下,检测小目标的可靠性达到80%以上,检测大目标的可靠性达到90%以上,满足厂区火焰烟雾检测要求,具有良好的检测性能。使用SSD算法对样本组进行测试,从图中可以看出,部分目标未被检测到,被检测目标的可靠性为60%-70%。可以看出,使用SSD算法检测样本组存在目标漏检、置信度低等问题。出现这种现象的原因可能是样本中的背景比较复杂,目标比较小。该模型在训练和学习过程中无法充分提取目标特征。因此SSD算法不能较好地满足厂区火焰烟雾目标检测的指标要求。使用YOLOv4-tiny算法检测样本组的结果如上图所示。yolov -tiny算法对样本组的检测时间分别为0.81 s、0.94 s、0.75 s和0.60 s,是改进YOLOv5算法的8-9倍。

从以上性能指标分析可以看出,基于我们提出的改进YOLOv5算法的火焰烟雾检测结果AP值高于99%,提高了目标检测精度,总损失率下降到0.03,显著低于一般目标检测算法的损失值。与SSD、YOLOv4-tiny和YOLOv7算法相比,基于改进YOLOv5算法的石化工厂火焰烟雾检测具有速度快、体积小的优点,较好地满足了石化工厂火焰烟雾检测的基本要求。

五:结论

文章提出了一种基于改进YOLOv5的工厂背景下火焰烟雾实时检测算法。目的是解决复杂背景、小目标和多目标火焰烟雾检测中的漏检和误检问题。

该模型采用速度快、精度高、尺寸自适应的YOLOv5l作为基本模型。文章的主要贡献如下:

(1)为了更好地优化目标盒和预测盒,采用CIoU _ Loss代替原有的GIoU _ Loss作为包围盒损失函数,加快了模型的收敛速度,提高了模型的检测性能;

(2)为避免网络过拟合,将卷积模块的LeakyReLU激活函数替换为SiLU激活函数,解决LeakyReLU梯度消失和梯度爆炸的问题,防止其泛化性能降低;

(3)针对数据集中目标小、背景复杂的问题,采用马赛克数据增强技术,提高小目标的检测精度,增强网络特征提取能力。自适应图像调整技术可以自适应地在图像周围添加最少的黑边,减少参数计算量,从而更好地平衡网络模型的精度和速度。

(4)对预训练的YOLOv5进行火焰烟雾测试和评估,并与其他算法进行比较。

实验结果表明,该算法能够很好地检测出火焰烟雾样本图像中的多目标和小目标,对于数据集中的复杂背景、漏检、误检等问题有较好的改善。该方法在火焰烟雾检测的实际场景中具有一定的优势。但是需要考虑的是,当检测背景与烟雾的相似度过高时,算法在检测视频样本时会出现较低的帧率。原因是数据集本身存在很多小目标,使用马赛克数据增强会导致模型泛化能力较差。

作者有言

如果需要代码,请私聊博主,博主看见回。
如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

文章信息

本次介绍的文章是广东石油化工学院发表的一篇火焰烟雾检测的文章,题目为《Flame smoke detection algorithm based on YOLOv5 in petrochemical plant》。文章来源地址https://www.toymoban.com/news/detail-489993.html

到了这里,关于基于YOLOv5的火焰烟雾检测算法实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于深度学习的高精度烟雾检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度烟雾检测识别系统可用于日常生活中或野外来检测与定位烟雾目标,利用深度学习算法可实现图片、视频、摄像头等方式的烟雾目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月11日
    浏览(52)
  • 基于YOLOv8的烟雾检测:自研模块 BSAM注意力 PK CBAM注意力,提升一个多点

    💡💡💡 本文全网首发独家改进: 提出新颖的注意力BSAM(BiLevel Spatial  Attention Module),创新度极佳,适合科研创新,效果秒杀CBAM, Channel Attention+Spartial Attention升级为新颖的  BiLevel   Attention+Spartial Attention  1)作为注意力BSAM使用; 推荐指数:五星 BSAM VS CBAM |   野外烟雾

    2024年02月05日
    浏览(43)
  • 烟雾和火灾检测从零开始使用YOLOv5+PyQt5+OpenCV实现(支持图片、视频、摄像头实时检测)

    全流程 教程,从数据采集到模型使用到最终展示。若有任何疑问和建议欢迎评论区讨论。 先放上最终实现效果 图片检测效果 视频检测效果 针对住宅、加油站、公路、森林等火灾高发场景,可以自动检测监控区域内的烟雾和火灾,帮助相关人员及时应对,最大程度降低人员

    2024年02月11日
    浏览(57)
  • 基于GUI用户界面的yolov5人脸口罩检测实战项目

    文章目录 前言 一、运行环境 二、环境配置 三、yolov5网络结构图介绍 四、 损失函数 五、数据集

    2024年02月03日
    浏览(61)
  • 视频实时行为检测——基于yolov5+deepsort+slowfast算法

    前段时间打算做一个目标行为检测的项目,翻阅了大量资料,也借鉴了不少项目,于是打算通过 yolov5 实现目标检测, deepsort 实现目标跟踪以及 slowfast 实现动作识别,最终实现端到端的目标行为检测模型。 总的来说,我们需要能够实现实时检测视频中的人物,并且能够识别

    2024年02月03日
    浏览(46)
  • 《基于改进YOLOv5的无人机图像检测算法》论文阅读

    原文链接:UAV Recognition and Tracking Method Based on YOLOv5 | IEEE Conference Publication | IEEE Xplore 《基于改进YOLOv5的无人机图像检测算法》论文阅读        基于深度学习的目标检测算法通常对传统目标检测效果较好,但对小目标的检测精度较低。针对该问题,该文通过对无人机采集图像

    2024年02月14日
    浏览(48)
  • 目标检测论文解读复现之十六:基于改进YOLOv5的小目标检测算法

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创

    2024年02月03日
    浏览(47)
  • 目标检测YOLO实战应用案例100讲-基于深度学习的航拍图像YOLOv5目标检测(论文篇)(续)

    目录 基础理论及相关技术  2.1 深度学习基础理论 

    2024年04月16日
    浏览(48)
  • 计算机视觉基础——基于yolov5-face算法的车牌检测

    torch==1.8.1 torchvision==0.9.1 2.1 CCPD数据集介绍 2.1.1 ccpd2019及2020 CCPD数据集主要采集于安徽某停车场一段时间内的数据, 所有图片尺寸固定为720×1160(w×h), 大约包含25w+的各种场景图片,如下图所示: 类别 描述 图片数 CCPD-Base 通用车牌图片 200k CCPD-FN 车牌离摄像头拍摄位置相对

    2024年02月06日
    浏览(54)
  • 基于Yolov5+Deepsort+SlowFast算法实现视频目标识别、追踪与行为实时检测

    前段时间打算做一个目标行为检测的项目,翻阅了大量资料,也借鉴了不少项目,最终感觉Yolov5+Deepsort+Slowfast实现实时动作检测这个项目不错,因此进行了实现。 总的来说,我们需要能够实现实时检测视频中的人物,并且能够识别目标的动作,所以我们拆解需求后,整理核心

    2024年01月20日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包