基于改进YOLOv5的阻燃材料燃烧时间检测

作者: 王林

基于改进YOLOv5的阻燃材料燃烧时间检测0

摘要:阻燃材料的阻燃性能主要通过对其进行火焰延燃性能测试,如延燃时间、火焰扩展长度等指标。传统的人工秒表计时、基于图像匹配的计算机视觉检测等方法都具有明显的不足之处,如延时过高、识别精度不高等。将深度学习技术运用在阻燃性能测试中,可以实现延燃时间计算的自动化,有效降低人工秒表计时产生的延迟,是一个非常具有实用价值的研究方向,受到了各类研究人员的关注。相对于传统的基于匹配的目标识别算法,深度学习技术可以大大提高识别的精确度,更能从图像中提取高级特征。然而,现有的深度学习模型也存在泛化能力较弱、对小目标检测能力较弱的问题。为了解决这些问题,本文提出了一种改进的YOLOv5s模型,检测阻燃材料的燃烧时间。该模型对原有YOLOv5模型的颈部进行调整,将用于多尺度特征融合的路径聚合网络替换成同样具有多尺度特征融合能力的特征金字塔,在维持原有功能的前提下提高了模型的精度;同时,通过更换颈部核心的方法,降低了模型推理所需的计算量。实验表明,使用阻燃实验专用数据集,可以使模型识别出阻燃材料的小火星;使用改进后的YOLOv5s模型,模型的精确度得到了提高:在0.2置信度上,火焰识别精确率提升了0.43,所有类别精确度提升了0.26。同时在自有数据集下能够准确检测阻燃材料的燃烧时间。

关键词:阻燃材料;延燃测试;YOLOv5;特征金字塔

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2023)36-0025-05

开放科学(资源服务)标识码(OSID)

1背景

阻燃材料的阻燃性能测试是通过对阻燃材料进行火焰延燃性能测试,评估其阻燃性能,如延燃时间、火焰扩展长度等指标。其中,阻燃材料燃烧时间是检验材料是否符合标准的主要方法,传统的燃烧时间检测采用人工秒表计时的方法,受限于测试员的反应时间等,该方法很难准确且自动给出阻燃材料的燃烧时间。因此本文采用人工智能方法,对阻燃材料的燃烧视频进行分析,自动检测点火装置移开后,阻燃材料的燃烧时间。其中,燃烧时间的检测关键是火焰识别。

火焰识别是指通过计算机视觉和图像处理技术来自动检测、定位和识别图像或视频中的火焰[5]。这项技术具有广泛的应用领域,包括火灾安全、工业监测、安防系统等;其中,将火焰识别技术运用于待测材料燃烧时间的检测,具有很高的研究价值。在火焰识别中,常用的算法和技术包括基于颜色模型的阈值分割[1]、纹理分析、形状匹配、光流估计、机器学习(如支持向量机[2]、随机森林)和深度学习(如卷积神经网络)等。根据具体的应用场景和需求,可以选择合适的技术和方法进行火焰识别的研究和开发。

传统的火焰识别方法,如基于颜色模型的阈值分割[4]、纹理特征、光流估计等,大都存在适用性窄、检测精度易受火焰种类的干扰等问题。基于颜色模型的阈值分割[6]:火焰通常具有明亮的红、橙、黄色调,因此可以通过检测图像中的特定颜色范围来定位火焰区域,但如果火焰的颜色不是红橙黄色调,如酒精喷灯的火焰等,就容易出现检测失败的情况。基于纹理特征的火焰识别[7]:火焰的纹理通常具有高频变化和不规则性,可以使用纹理分析技术来检测这种特征并识别火焰,但提取有效的纹理特征并对其进行分析和选择是一项具有挑战性的任务。纹理特征可能需要复杂的计算和处理步骤,而且不同的纹理描述符对于不同类型的火焰可能表现不同的效果。光流分析法检测火焰[3]:利用光流估计算法来分析图像序列中像素的运动模式,火焰的移动模式与其他背景元素不同,可以通过光流分析来检测火焰,但光流分析通常基于像素级的运动检测,而图像中的其他移动物体或背景噪声也可能引起光流的变化,从而产生误报或误识别。在待测材料燃烧时间的检测中,由于待测材料燃烧时会产生烟雾,传统的火焰识别方法难以应对这种噪声。

近年来,随着深度学习技术的发展,深度学习在火焰识别领域中取得了较好的成果[9]。因此可以将深度学习模型应用到燃烧时间的检测中来:运用深度学习模型对待测材料燃烧视频进行识别,统计点火装置移开后出现火焰的连续帧数,即可计算出燃烧时间。深度学习通过构建和训练深度神经网络模型,能够从原始图像数据中自动学习火焰的特征表示和识别模式,具有以下优势:自动特征学习:传统的火焰识别方法需要手工设计和选择特征,而深度学习能够通过大规模数据的训练,自动学习并能够从图像中提取更丰富、更高级的特征,以更好地区分火焰和其他干扰物。高准确性:深度学习模型在火焰识别任务中通常能够达到较高的准确性。通过使用深度卷积神经网络(CNN)等模型,能够捕捉到火焰的局部和全局特征[8,12-14],从而实现更精确的火焰识别。尽管深度学习在火焰识别中具有诸多优势,但也需要注意一些问题,例如:深度学习模型的性能和泛化能力取决于训练数据的质量和多样性,需要充分考虑数据的采集和标注过程。

针对上述挑战,本文提出了基于YOLOv5的阻燃材料燃烧时间检测方法。用改进的YOLOv5对燃烧视频中火焰进行识别,计算出点火装置移开后出现火焰的连续帧数,再结合视频的帧率,计算出燃烧的持续时间。本方法先对采集到的视频数据进行清洗、抽帧、标注,获得符合项目需求的数据集,并通过提高训练数据质量和多样性,来减少神经网络泛化能力带来的不良影响,从而提高识别的准确率。最后,本文设计了时间计算模块,使得模型可以输出火焰燃烧持续的时间,减少人工检测时间带来的误差,从而达到精确识别火焰燃烧持续时间的目的。

2改进的YOLOv5方法

尽管现有的方法能在一定程度上实现火焰识别,但它们的识别精度和推理速度限制了它们在实际生产环境中的部署。相比之下,基于 YOLO 的模型[10-11]由于速度更快、模型尺寸更小,因此适用于实时推理。然而,在实际检测中,使用公开数据集训练出来的模型对酒精喷灯和小火焰的检测性能较低。因此,本文构建了适用于酒精喷灯和阻燃材料的火焰识别数据集,并通过在Neck模块使用特征金字塔、引入核心缩放的方式,改进了 YOLOv5s 模型,以实现更高的识别精度和模型推理速度。

使用特征金字塔替换YOLOv5中的PANet可以实现更简单、更快速的多尺度特征融合。YOLOv5中的PANet解决了在不同尺度上检测对象并实现精确的实例分割的挑战,它引入了自顶向下和自底向上的路径,聚合来自卷积神经网络(CNN)不同层级的特征,这使得PANet能够捕捉到低层次和高层次的上下文信息。因此,本文在特征金字塔中引入可学习的权重,使其能够学习不同输入特征的重要性,并将自上而下和自下而上的多尺度特征融合。和YOLOv5原来的PANet相比,特征金字塔在起到融合多尺度特征作用的同时,还具有更少的参数和更好的性能。特征金字塔使得模型的性能得以提升,火焰识别更具有实时性,提高了对于待检材料稍纵即逝的小火焰识别速度。

在特征聚合模块之前,YOLOv5网络为了增加感受野并提取关键的特征,设置了模块。传统CNN模型大都由完全连接层组成,并且这些全连接层仅接受特定维度的图像输入,而SSP可以生成固定大小的输出。此外,SSP还通过池化多尺度特征来提取关键特征。虽然这可以带来可观的检测精度,但对于待测材料火焰检测这一特定业务场景,多尺度和大核心的策略不太适用:待测材料的火焰较为细小且稍纵即逝,因此需要模型有更高的推理速度。为了在提高推理速度的同时不大幅降低模型精度,本文在保留SSP模块的同时,减小了核心的大小,例如从原来的6×6、10×10减少为2×2、4×4。修改后的SSP模块如图1所示。

通过修改颈部组件的策略,YOLOv5s模型在结构上更加轻量化,并且由于保留了上下文多尺度特征融合的设计,精度受到的影响微乎其微。特征金字塔的引入和卷积核的替换使得模型具有更快的推理能力和更高的模型精确度,能更好地适用于待检材料小火焰的检测。

3实验与分析

本文实验基于采集的材料检测过程视频数据集。数据集包含35个时长为一分钟的检测过程视频,总共大小为1.69GB,涵盖待检材料的左侧、右侧、正前方和左下方、右下方等多个拍摄角度。经过抽帧、打标签等预处理后,共获得大小为6.58GB,包括60 814张图片数据的数据集。

由表1可知,训练集为包含42 570张火焰图片,覆盖待检材料的多个拍摄角度,测试集包含18 244张火焰图片,同样覆盖待检材料的多个拍摄角度。

本文实验所用软件环境如下:Window11 操作系统,Pycharm IDE,Python3.9.13开发环境。所用设备主要硬件参数为:AMD 5600G 六核十二线程处理器,英伟达2060super 8G显卡,32G运行内存。

3.1 数据集的建立

火焰识别的精度除了受到模型的影响外,也会受到数据集质量的影响。由于火焰识别领域目前尚未出现认可度高且覆盖火焰类型面广的数据集,现有的火焰数据集大都从网上随机抓取火焰图片,火焰类型混杂、各种干扰因素多,缺乏标注,难以实现高质量的模型训练。而且实际业务场景中,酒精喷灯的火焰以蓝色长条形居多,和常见的黄色、红色火焰颜色相差较远,因此本文使用待测材料燃烧过程的视频制作数据集,从数据采集到预处理、标注完全贴合实际业务场景。

数据集的建立过程如下:

1) 采集燃烧视频数据:将摄像头固定在燃烧箱内,从待检材料的左侧、右侧、正前方和左下方、右下方采集燃烧视频数据,共采集到大小为1.69GB的35个原始视频。

2) 数据预处理:使用ffmpeg剪辑视频,剔除视频中没有酒精喷灯和待测材料的片段。

3) 视频抽帧:将预处理后的视频使用ffmpeg抽帧,每秒抽出60帧,形成图片数据。

4) 创建数据集文件树:安装labelimage,并安装运行时所需要的依赖如Python、PyQt5、Lxml等;创建images文件夹,用于存放待标注的图片,创建labels文件夹,用于存放标注的xml文件;

5) 标注图片数据:如图2~图4所示,在labelimage标注界面框住需要检测的目标,如酒精喷灯火焰、待检材料、燃烧中的小火苗等,并输入对应的目标标签:Alcohol_blowtorch、material、fire。

6) 处理标签序号:由于标签默认加在预设的类别后面,所以“0”号类别实际显示是“15”,以此类推,因此使用Python遍历标注文件,将标注文件中每行的“15”替换成“0”“16”替换成“1”,以此类推。

7) 划分训练集和验证集:根据实际业务需求,将数据集划分为训练集和验证集,其中训练集包含42 570张火焰图片,覆盖待检材料的多个拍摄角度,测试集包含18 244张火焰图片,同样覆盖待检材料的多个拍摄角度。

最终得到数据集:包括训练集和验证集,其中训练集和验证集中分别包含存放图片数据的images文件夹以及存放对应标签数据的labels文件夹。

3.2 参数设置

训练参数设置如表2所示:学习率LR设置为0.01,批大小batch-size设置为16,训练次数epochs设置为300,初始权重使用YOLOv5原始权重,训练设备使用GPU。

3.3 实验内容

通过对不同数据集和模型进行组合,来验证本文方法的有效性。实验设置遵循控制变量原则。组合方式如下:1)公开数据集+模板匹配模型;2)自建数据集+模板匹配模型;3)自建数据集+ YOLOv5s模型。

根据以上组合方式,本文设计两个对照实验如下:1)比较公开数据集+模板匹配模型和自建数据集+模板匹配模型,验证自建数据集对提升实际应用中识别率的有效性;2)比较自建数据集+模板匹配模型和自建数据集+ YOLOv5s模型,验证YOLOv5s模型的有效性。

3.4 实验结果分析

3.4.1数据集训练模板匹配模型对比

公开数据集+模板匹配模型识别效果如图5所示。

上一篇 点击页面呼出菜单 下一篇