1. 引言
火灾是各种灾害中最常见的一种,它具有极强的破坏力,不仅对森林资源造成巨大损失,而且严重威胁到林业生产[1]。当居民区发生火灾时,它对人们的生命安全构成了严重威胁,尤其是高层建筑的火灾,更是对居民生命安全的极大挑战[2]。因此,及时识别火灾的发生至关重要,它是防止火势蔓延的关键措施。
传统的烟火识别技术通常依赖于光学传感器或三原色RGB摄像机,这些设备通过分析火焰和烟雾的物理特性,如颜色、运动、光谱、空间、时间和纹理特征来进行识别[3]。Chen等[4]通过RGB模型的色度和无序度量来提取火像素和烟像素,从而改进了真实火灾的验证方法。尽管这些方法在烟火识别方面取得了一定的进展,但它们仍然存在一些局限性。主要问题在于对烟火物理特性的建模较为困难,并且这些方法对图像颜色的变化非常敏感,这导致了较高的误报率和较差的检测稳定性。
近年来,随着计算机算力的飞速发展,深度学习下目标识别技术也在飞速发展,深度学习使得烟火检测精度得到提高[5]。目前,应用较广的深度学习网络模型有AlexNet [6]、VGG Net (Visual Geometry Group Net) [7]、YOLO [8]等。CNN卷积神经网络(Convolutional Neural Networks)的开创,使得视觉识别和分类应用得到飞速发展。李宏[9]以Fast R-CNN检测模型为基准框架,设计了烟火增量学习网络结构ILOD,提出三分支权值共享卷积网络,以增加模型对不同尺度目标下的感受野,虽然提高了模型对烟火特征,但使得模型复杂度增加。Dilshad [10]受到VGG16的启发,提出了E-FireNet高效火灾检测框架,通过删除Block-5和调整Block-4的卷积层,使得学习过程中的参数减少,并且对于自建的火灾数据集有99%的召回率。以上方法对烟火预测有较好的检测效果,但由于烟火的形状不定且范围模糊,特征提取较为困难,因此对较广范围的火灾烟火的检测效果较差。
YOLO系列是近年来在目标检测领域广受关注的模型。自2016年在国际计算机视觉与模式识别会议上首次发表以来[11],YOLO通过卷积神经网络对输入图像进行特征提取和学习,最终生成检测结果。YOLO系列的更迭速度较快,YOLOv5模型结构清晰,并且计算量较小,适合在资源有限的环境下使用。王晶磊[12]引入基于Slimneck特征金字塔结构,进一步减少烟火识别模型的计算量。同时YOLO模型在推理速度和计算效率方面具有显著优势,这也是它受到广泛研究和应用的主要原因[13]。唐锐[14]提出了一种基于小波变换的YOLOv5火灾检测改进算法,该方法通过小波变换和注意力机制的加入,虽然提高了目标检测评价精度,但增加了模型计算复杂度。以上方法均对YOLOv5网络模型改进,从增强感受野、改进特征金字塔结构和提高图片特征提取能力等思路上改进模型。本研究旨在不显著增加计算量的前提下,提高YOLOv5s烟火检测模型的检测精度。
为了克服传统烟火识别方法在检测精度和特征提取能力方面的不足,本文提出了一种基于改进YOLOv5s的火灾烟火检测模型。第一,该模型结合了可学习中心模块[15],以增强对烟火边缘特征的识别能力;第二,受到Resnet残差网络[16]结构的启发,改进了主干网络中的残差模块,用多尺度Res2Net模块替换了C3模块中的Bottleneck模块,以提升模型在火灾环境下的烟火检测效果。通过这些创新性的改进,本文提出一种既高效又准确的烟火检测模型,以更好地服务于公共安全和灾害预防领域。
2. 数据集采集及处理
网络上火灾烟火的权威数据集较少,本文数据集来源于网络收集,共2000张图片,过滤其中一些分辨率过低的图片,剩下1800张烟火图片,分割训练集1400张,测试集为400张,使用LabelImg标注工具进行标注烟火图片,分类如表1所示,并上传至Kaggle网站 (https://www.kaggle.com/datasets/caihangyu/fire-and-smoke)上。
Table 1. Classification of the smoke and fire datasets
表1. 烟火图片分类
烟火类别 |
训练图像数 |
测试图像数 |
仅有烟雾 |
478 |
130 |
仅有火 |
505 |
160 |
包含烟火 |
417 |
110 |
3. 改进YOLOv5s
Figure 1. Improved YOLOv5s network architecture
图1. 改进的YOLOv5s网络结构
本文提出的基于改进YOLOv5s烟火检测模型网络如图1所示。引入LVC可学习视觉模块,在YOLOv5s的主干网络对烟火特征提取后,增强对烟火的局部特征信息,并与轻量化残差模块LRes进行特征融合,构建一种可学习中心残差模块ResLVC (Residual Learnable Visual Center)。改进原模型中的C3模块,将C3模块中bottleneck模块替换成多尺度Res2Net残差模块,增加少量的计算量,使得主干网络对烟火特征提取更加细致。
3.1. 轻量化ResLVC模块
在YOLOv5s检测模型中,主干网络使用下采样来缩减特征图像的特征信息,进而减少计算量,增加模型感受野。但是模型在下采样处理中,不可避免地造成烟火特征信息丢失,削弱提取细节特征信息的能力,导致模型检测精度降低。为了针对特征信息丢失这一问题,本文基于LVC模块提出一种轻量化ResLVC模块,结构图如图2所示。
Figure 2. ResLVC module
图2. ResLVC模块
其中,LVC是一种新型的可学习的视觉模块,由一个固定字典B = {b1, b2,…, bk}和一个可训练比例因子S = {s1, s2,…, sk}组成[15]。输入数据为颈部第一个上采样输出Xin,经过一个卷积层进行特征提取,特征向量再经过收敛激活层CBR (conv-Batch Normalization-Relu),CBR包括一个带有批量归一层BN (batch normalization)和一个Relu激活层,加快收敛和激活处理,得到特征张量X = {x1, x2,…, xi},并输入到密码本中,通过和比例因子S,使得bk和xi映射烟火特征到位置信息,通过计算公式1计算第k位编码值ek:
(1)
式中xi为第i个像素点,bk为第k个码字,sk为第k个的比例因子[15]。再通过正则激活层模块BRM (Batch Normalization-Relu-Mean)进行再收敛激活。然后对激活的ek进行全链接处理,后续与输入Xin进行通道乘法和通道加法,防止原始的烟火特征在深度卷积和编码中丢失,输出Xlvc。
在处理烟火特征信息时,随着主干网络中卷积层数的增加,网络变得更深。虽然深层网络理论上能够增强模型的学习能力,但同时也可能导致细节信息的丢失,以及梯度爆炸或消失的问题[17]。He等人在2015年首次提出了ResNet残差网络[16],通过将输入特征信息直接添加到输出中,从而减少原始特征信息的丢失。为了抑制深层卷积网络带来的原始特征信息丢失和梯度消失的问题,本文提出了LRes模块。如图2所示,与原始的ResNet相比,LRes模块减少了一层升维卷积层,并增加了BRM模块以加速模型的学习收敛,其输出为Xres。这种设计不仅减少了计算量,还提高了模型对特征的学习能力。通过这种改进,LRes模块能够在保持网络深度的同时,减少信息丢失和梯度消失的风险,从而提高了网络的性能本文将对烟火边缘细节提取较强的LVC模块和含有原始特征信息的轻量化残差模块进行信息融合,通过concat层通道串联操作,并将ResLVC模块加入到颈部结构中的特征金字塔的第一个上采样模块之后。ResLVC的输出为Xout:
(2)
式中concat (·)为特征信息通道串联函数。
3.2. 多尺度C3-Res模块
YOLOv5s中C3模块为特征提取器,用于从输入图像中提取特征,其中包含Bottleneck块和卷积层。近年来,CNN卷积模块在深度学习模型中的优势越来越明显,Gao等[18]提出了一种新的CNN模块,命名为Res2Net,模块在单个Bottleneck块内构建分层的类残差连接,将原单个3 × 3的卷积扩充至3 × 3的卷积核,Bottleneck块和Res2Net模型如图3所示。Res2Net模块将输入特征映射分成X1、X2、X3、X4四个向量组别,第一组特征向量直接映射为Y1,用来保存原始特征信息。后续3组特征输入特征通过一个3 × 3的卷积核与下一个特征向量融合,直到处理完所有的输入组,将输出向量组Y1、Y2、Y3、Y4的特征信息串联,经过的1 × 1过滤器,将信息融合在一起。组别之间进行特征融合,在更细粒度的层面上有多个可用的接受域,可以将输入的特征分组细化。
Figure 3. (a) Bottleneck block; (b) Res2Net residual block
图3. (a) Bottleneck块;(b) Res2Net残差块
由于烟火特征的模糊性,传统的特征提取方法往往难以准确地捕捉到这些细节。为了提升模型对烟火数据特征的提取能力,我们需要一种能够更全面地捕捉特征的方法。Res2Net模块以其强大的全局特征提取能力而著称,因此,本文提出了将原有的C3模块中的Bottleneck模块替换为多尺度的Res2Net模块,命名为C3-Res。C3-Res模块的引入,旨在替换主干网络中的C3模块,以增强其特征提取的能力。在下采样的过程中,C3-Res模块能够促进特征信息的交叉和细化,这有助于在缩减特征图的同时,减少信息的丢失,从而获得更优质的全局特征。通过这种改进,模型不仅能够捕捉到烟火的全局特征,还能够保留更多的细节信息,从而在烟火识别任务中实现更高的准确性和鲁棒性。
4. 实验与结果分析
4.1. 实验环境
本文实验使用Pytorch深度学习架构,操作系统为Windows 10,GPU型号为NVIDIA GeForce RTX 4060,CPU型号为12th Gen Intel(R) Core(TM) i5-12400,显存为8 GB,CUDA版本为12.4。编程语言为Python,编译器为Pycharm。本实验的模型参数设置:初始学习率为0.01,周期学习率为0.1,权重衰减为0.0005,学习轮数为100轮,批量处理大小为4。
4.2. 评价指标
本实验使用全目标平均精度mAP (Mean Average Precision)值作为目标识别模型的评价指标。对于检测结果与真实类别的组合可划分为真正例TP (True Positive)、假正例FP (False Positive)、真反例TN (True Negative)、假反例FN (False Negative)四种类型,查准率P为在所有预测为正样本的数据中,真正的正样本所占的比例:
(3)
查全率R为预测找回的正样本数量占真实正样本总数的比例:
(4)
平均精度AP是根据Precision-Recall曲线计算的面积值,为单个目标的平均准确率:
(5)
全目标平均精度mAP:
(6)
4.3. 实验结果
对自建的烟火数据集进行学习实验,P-R曲线图如图4所示。结果显示,模型对烟火的mAP值为86.7%,并且对烟和火的检测精度分别达到88.3%和85.2%。
为了验证本文改进后YOLOv5s模型的有效性,本文设计了消融实验,对烟火数据进行实验。消融实验使用YOLOv5s作为基准模型,分别将主干网络添加C3-Res2模块和ResLVC模块,并对每一次改进的模型进行训练,结果如表2所示。
表中为AP. S检测烟雾的平均精度,AP. F为检测火的平均精度。表2分析可见,主干网络中加入C3-Res模块之后,模型对烟雾目标的检测精度提高1.5%。在添加ResLVC模块后,全目标平均精度相较于原YOLOv5s提高了1.6%,本文改进相较于原YOLOv5s对烟火的目标检测能力更强,全目标平均精度提高2.2%,证明改进后的模型对烟火检测效果更好。
为了进一步验证改进YOLOv5s模型的有效性,与较为主流的检测模型SSD (Single Shot Multibox Detector)、Faster R-CNN进行对比实验,如表3所示。对比分析,可以看到与主流目标检测算法相比,本文方法较SSD和Faster R-CNN模型检测精度分别高8.45%和6.2%。由此可见,本文改进烟火检测模型较其他模型相比,具有较高的置信度。
Figure 4. P-R curve
图4. P-R曲线
Table 2. Model improvement ablation experiment
表2. 模型改进消融实验
检测算法 |
AP. S/% |
AP. F/% |
mAP/% |
YOLOv5s |
85.3 |
83.7 |
84.5 |
YOLOv5s + C3-Res |
86.8 |
82.7 |
84.75 |
YOLOv5s + ResLVC |
88.6 |
83.6 |
86.1 |
本文改进 |
88.3 |
85.2 |
86.7 |
Table 3. Detection model comparison experiment
表3. 检测模型对比实验
检测模型 |
AP. S/% |
AP. F/% |
mAP/% |
SSD |
79.7 |
76.8 |
78.25 |
Faster R-CNN |
82.8 |
78.2 |
80.5 |
YOLOv5s |
85.3 |
83.7 |
84.5 |
本文改进 |
88.3 |
85.2 |
86.7 |
本文对大量数据进行验证检测,烟火检测结果显示如图5所示。由图可见,对于烟火混合和大片烟雾图片中,本文改进后的网络模型对烟火目标有着较高的检测置信度。对比原YOLOv5s模型,改进网络在烟雾的检测广度更高,并且置信度更高。
Figure 5. Smoke and fire pictures and detection confidence results of different models
图5. 烟火图片及不同模型检测置信度结果
5. 结论
本文在kaggle网站和github网站的烟火图片自建烟火数据集,并针对烟火形状模糊不易特征提取和学习这一难点,提出一种基于改进YOLOv5s的火灾烟火检测模型。在原YOLOv5s模型上,设计了可学习轻量化ResLVC模块和多尺度Res2Net模块,增强模型对烟火细节特征,提高模型对烟火目标的检测能力。实验结果表明,改进后的YOLOv5s模型对烟火特征具有更好的特征提取能力,在烟雾和火的识别上,全目标平均精度提升2.2%,训练模型全目标平均精度达到86.7%。并且对烟火图片的检测,能够较好的检测到烟火目标,有较高的置信度。