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

2024-01-27 13:41王林
电脑知识与技术 2023年36期

王林

摘要:阻燃材料的阻燃性能主要通过对其进行火焰延燃性能测试,如延燃时间、火焰扩展长度等指标。传统的人工秒表计时、基于图像匹配的计算机视觉检测等方法都具有明显的不足之处,如延时过高、识别精度不高等。将深度学习技术运用在阻燃性能测试中,可以实现延燃时间计算的自动化,有效降低人工秒表计时产生的延迟,是一个非常具有实用价值的研究方向,受到了各类研究人员的关注。相对于传统的基于匹配的目标识别算法,深度学习技术可以大大提高识别的精确度,更能从图像中提取高级特征。然而,现有的深度学习模型也存在泛化能力较弱、对小目标检测能力较弱的问题。为了解决这些问题,本文提出了一种改进的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所示。

从图5中可以看出:使用公开数据集训练模板匹配模型,模型难以识别出酒精喷灯火焰。

使用自建数据集训练模板匹配模型,识别效果如图6所示。

从图6中可以看出:使用自建数据集训练模板匹配模型,效果相对于公开数据集+模型匹配的方法有了一定的提升,能识别出部分火焰,可以证明自建数据集的有效性。与此同时,在实验中可以观察到:即便是使用自建数据集,模型更多的是匹配部分“红色”和“黄色”的火焰。由于模板匹配方法受限于红黄色系颜色特征和特定形状火焰特征的匹配机制,对于实际业务中酒精喷灯的蓝色柱状火焰识别效果不佳,难以达到实用的效果。

3.4.2自建数据集+YOLOv5s模型

本实验用GIOU Loss作为评价指标,GIOU是衡量预测框和真实框之间的重叠程度的函数,计算公式为:

[GIOU=IOU-C-UC]

其中,IOU为预测框和真实框的交并比,C为预测框和真实框的最小闭合矩形面积,U为预测框和真实框的并集的面积。

将自建数据集输入改进的YOLOv5s模型,分别训练50个epoch和300的epoch,不同的epoch训练效果差异如图7和图8所示:

从图7和图8中可以观察到:使用 GIOU Loss作为bounding box的损失,Box推测为GIoU損失函数均值,训练300次的效果相对于50次更加准确,但也存在边界效应,在100次左右即可达到较好的效果。同样的,在precision中,模型收敛速度较快,但是随着训练次数的增加,精度有所下降。经过多次实验,最终选取epoch的值为100,以平衡训练时间和预测精度。

3.4.3模型验证

选取训练100个epoch的最佳模型用于实际测试,测试结果如下:val_batch1_labels为验证集第1轮的实际标签,val_batch1_pred为验证集第1轮的预测标签,如图9和图10所示,模型在验证集上的实际和预测边界差距很小,可以证明模型的预测能力有效。

将原始录制的待测材料燃烧过程视频输入模型进行推理,推理结果如下:如图11所示,模型准确识别酒精喷灯火焰;如图12所示,若移走酒精喷灯,模型准确识别出未熄灭的材料,并开始计算时间。

模型持续检测火焰燃烧持续时间如图13所示。

如图14所示,若待测材料燃烧结束,材料熄灭,则模型不再出现“fire”框。此时停止计算时间,并输出火焰燃烧的持续时间。

从以上实验可以观察到:模型可以准确识别出酒精灯撤走后,待测材料中未熄灭的火焰,说明模型对本研究的应用场景有一定的检测能力。

3.4.4燃烧时间计算

基于上述实验,进一步在模型推理过程中加入对“fire”识别的结果的计算,计算公式如下:

[Duration=count×1fps]

其中,Duration为燃烧持续时间,count为出现待测材料出现火焰的帧数,fps为待检测视频的帧率;为了防止检测抖动对检测结果的影响,本文在程序中加入了抖动抑制:只有连续三次检测到火焰,才会作为有效帧,否则将count置零。经过以上计算,程序可以输出待测材料燃烧的持续时间。模型计算火焰燃烧时间的精度取决于录制的视频的帧率,为了验证模型的鲁棒性,本实验将帧率为60帧/s的待测视频连续3次输入模型进行火焰检测的结果如表3所示:

连续3次对同一段视频进行检测,模型的输出结果皆为0.267s。

实验表明:加入了时间计算模块的火焰检测程序能输出火焰的燃烧持续时间,并且具有较好的稳定性。

4总结

使用公开数据集和开源模型对酒精喷灯火焰、燃烧中的材料进行识别,仅能识别出“黄色”的火焰,识别效果欠佳;使用自有数据进行手工标注,经过训练后,可以准确地识别出燃烧中的酒精喷灯,在移走酒精喷灯后,可以准确识别出未熄灭的火焰,最后,当材料火焰熄灭时,“fire”标注框消失。加入时间检测模块后,模型可以输出材料燃烧的持续时间,并且模型的检测稳定性较好。

参考文献:

[1] 吴一全,宋昱,周怀春.基于灰度熵多阈值分割和SVM的火焰图像状态识别[J].中国电机工程学报,2013,33(20):66-73,13.

[2] 李玉妍.基于显著性的火灾早期火焰烟雾检测方法研究[D].大连:大连海事大学,2019.

[3] 蔺瑞,俞孟蕻,宋英磊,等.基于帧间动态和纹理特征的邮轮舱室火焰识别[J].计算机与数字工程,2021,49(1):185-189,201.

[4] 卞永明,高飞,李梦如,等.结合Kmeans++聚类和颜色几何特征的火焰检测方法[J].中国工程机械学报,2020,18(1):1-6.

[5] 曹江涛,秦跃雁,姬晓飞.基于视频的火焰检测算法综述[J].数据采集与处理,2020,35(1):35-52.

[6] 严云洋,吴茜茵,杜静,等.基于色彩和闪频特征的视频火焰检测[J].计算机科学与探索,2014,8(10):1271-1279.

[7] 严云洋,唐岩岩,郭志波,等.融合色彩和轮廓特征的火焰检测[J].微电子学与计算机,2011,28(10):137-141,145.

[8] KANG T H,KIM H J,NOH H K.Convolution neural network of deep learning for detection of fire blight on pear tree[J].Horticultural Science and Technology,2020,38(6):763-775.

[9] DEWANGAN A,PANDE Y,BRAUN H W,et al.FIgLib & SmokeyNet:dataset and deep learning model for real-time wildland fire smoke detection[J].Remote Sensing,2022,14(4):1007.

[10] 任嘉锋,熊卫华,吴之昊,等.基于改进YOLOv3的火灾检测与识别[J].计算机系统应用,2019,28(12):171-176.

[11] ZHANG R,WEN C B.SOD-YOLO:a small target defect detection algorithm for wind turbine blades based on improved YOLOv5[J].Advanced Theory and Simulations,2022,5(7):5.

[12] MAJID S,ALENEZI F,MASOOD S,et al.Attention based CNN model for fire detection and localization in real-world images[J].Expert Systems with Applications,2022,189:116114.

[13] GARGIULO M,DELL’ AGLIO D A G,IODICE A,et al.A CNN-based super-resolution technique for active fire detection on sentinel-2 data[C]//2019 PhotonIcs & Electromagnetics Research Symposium -Spring (PIERS-Spring).Rome,Italy.IEEE,2019:418-426.

[14] KIM Y J , KIM E G.Fire detection system using faster R-CNN[J].International Conference On Future Information & Communication Engineering,2017,9(1):261-264.

【通联编辑:唐一东】