一种改进YOLOX_S的火焰烟雾检测算法

2024-04-01 05:11谢康康朱文忠肖顺兴谢林森
科学技术与工程 2024年8期
关键词:烟雾特征提取火焰

谢康康, 朱文忠, 肖顺兴, 谢林森

(四川轻化工大学计算机科学与工程学院, 宜宾 644000)

随着全球变暖,导致世界各地的火灾频发,每年由火灾造成的人员伤亡和经济损失都是巨大的。2021年6月25日,河南省柘城县远襄镇北街村震兴武馆发生重大火灾事故,造成18人死亡、11人受伤,直接经济损失2 153.7万元,起火原因系余素芝使用蚊香不慎引燃纸箱、衣物等可燃物所致。2015年8月12日22:00,位于天津市滨海新区天津港的瑞海公司危险品仓库发生火灾爆炸事故,共计造成165人遇难,8人失踪,798人受伤,304幢建筑物、12 428辆商品汽车、7 533个集装箱受损[1]。2018年8月25日凌晨,哈尔滨市松北区北龙温泉酒店发生火灾。火灾共已造成20人死亡,20多人受伤被送往医院进行救治[2]。2019—2020年澳大利亚爆发全国性丛林大火[3],截至2020年1月20日,伤亡人数达到33人,约超12亿的动物被烧死。所幸此次山林火灾并没有造成人员伤亡,但也造成了巨大的经济损失。

通过对以上及相关火灾事故进行分析得知,当火灾发生时,火焰和烟雾是其重要的特征。如果对其的检测可以实现提高准确率及降低火焰和烟雾的误报率,并且增强对小目标火焰烟雾的检测,就可以在火灾预警方面起到很好的效果以保障民众的生命财产安全。早期预防火灾主要通过物理检测器来检测。比如烟雾传感器和红外火焰监测器等。但是这种检测方法检测效率低,并且无法确定火灾的大小和位置。之后提出了传统图像处理算法,是用人工进行特征提取来检测火焰,但是得到的火焰烟雾特征只有颜色,边缘和简单的纹理[4]。近年来,随着计算机算力的提升,深度学习得到了快速发展。朱傥等[5]提出了一种轻量化网络用于火焰烟雾的检测,使用YOLOv4作为基线网络,并使用MobileNetV3替换原YOLOv4的特征提取网络,减小了网络的参数量。周兴华等[6]采用K-means++算法优化了anchor box聚类,降低了分类结果的误差。并且采用剪枝方法对YOLOv5 Neck和Head的网络头进行了剪枝,降低了网络模型大小,实现了视频火灾的动态实时的准确检测。李启明等[7]对YOLOv5进行改进,采用Ghost模块对原模型进行剪枝处理,并引入注意力机制,在提高网络模型精度的同时,降低了网络模型的参数量。宋华伟等[8]为提取浅层特征,将YOLOv5颈部中原有的路径聚合网络模块替换为双向交叉尺度融合模块,使深层网络可以直接提取到浅层特征,提高了网络的特征提取能力。何亚平等[9]提出了一种GSN-YOLOv5s的火焰烟雾检测方法,Ghost Bottleneck结构来替换原网络中的BottleneckCsp结构,降低了网络的参数量,并且保证了检测的精度。Yang等[10]提出了一种基于 YOLOv5的火焰烟雾检测算法。利用目标回归损失函数(CIoU)改善目标检测中的漏检和误检,并采用数据增强技术,增强了网络模型对小目标的特征提取能力。卞苏阳等[11]利用XSepConv、Mish[12]激活函数和大卷积核构建CXANet-block作为YOLOv5的骨干网络,加强了网络模型的火焰特征提取能力,并解决特征图尺寸不平衡的问题。目前现有的大部分神经网络算法只对火焰和烟雾进行单独检测,在复杂环境下出现检测精度不高、漏检和误检等问题。对此提出改进YOLOX_S算法用于火焰和烟雾的检测。提出的目标检测网络算法,对YOLOX_S改进主要有:在YOLOX_S网络模型的骨干部分采用Swin Transformer代替原CSPDarkNet,能够更好的捕捉不同尺度下的特征,从而提升网络模型的检测精度;引入双向加权金字塔网络(BiFPN),加强网络模型对高层次语义信息的特征提取,提高对火焰烟雾检测的精度;引入一种坐标注意力机制Coord Attention(CA),增加该网络模型的特征提取能力,进一步提高模型检测的精度。改进后的网络模型对火焰烟雾检测的准确度更高,对减少火灾带来的损失和保障民众的生命财产安全具有重要意义。

1 相关算法和改进

1.1 YOLOX_S算法

YOLOX算法[13]是旷视科技研究院在2021年提出的一种基于YOLO系列的目标检测框架,作为旷视新出的网络模型,其检测的性能又达到了一波新高度。

1.1.1 Fcous结构

Focus结构是将输入的图片进行切片操作,即在一张图片中每隔一个像素获得一个值,即可得到4个特征层,然后再进行concat操作,从而图片的宽高信息缩小,通道数增加。在原始信息丢失较少得情况下,减少了参数量。其示意图如图1所示。

1.1.2 Silu激活函数

Silu激活函数是一种用于神经网络得非线性激活函数。其特点是在Sigmoid得基础上增加了一个线性部分,使其可以更好地拟合线性函数,让学习过程更快、更稳定。其激活函数表达式为

f(x)=xSigmoid(x)

(1)

当x大于0时,Silu激活函数将会放大x,当x小于0时,Silu激活函数将会降低x,这样可以防止过拟合。

1.1.3 Decoupled Head(解耦头)

在YOLOv3-YOLOv5中最后的回归框与置信度在1*1的卷积中一起实现。而在YOLOX中通过解耦头,分别将置信度与回归框分别实现,在预测时合为一体,如图2所示。

Feature为特征图;Conv为卷积;anchor为锚框;Coupled Head为耦合头;DeCoupled Head为解耦头;H为特征图的高度;W为特征图的宽度;IoU为计算预测框(即模型输出)与真实标注框之间的交集与并集的比值

图2中,Reg(H,W,4)用于判断每一个特征点的回归参数,回归参数调整后可以获得预测框;Obj(H,W,1)用于判断每一个特征点是否包含物体;Cls(H,W,num_classes)用于判断每一个特征点所包含的物体种类。通道数即为需要预测的个数,每个通道代表一个结果。将3个预测结果进行堆叠,每个特征层获得的结果为:Out(H,W,4+1+num_classses)前4个参数用于判断每一个特征点的回归参数,回归参数调整后可以获得预测框;第5个参数用于判断每一个特征点是否包含物体;最后num_classes个参数用于判断每一个特征点所包含的物体种类。

1.1.4 SimOTA(动态样本匹配)

SimOTA的主要作用是为每个正样本分配一个GT(ground truth)框,让正样本去拟合该GT框,从而替代之前的anchor方案去拟合anchor,从而实现anchor free。具体做法是:①计算每个目标cos最低的10个特征点;②把这10个特征点预测的预测框与真实框进行IoU操作,得到10个IoU的值;③将10个IoU进行sum操作后会得到一个值,该值为dynamic_k。SimOTA能够根据不同目标的尺寸动态调整Anchor框,能够更加准确地匹配不同尺寸的物体,并且相比传统的Anchor-based方法,SimOTA的Anchor框数量更少,因此能够更加准确地匹配不同尺寸的物体,提高检测精度和检测速度。YOLOX_S的网络结构图如图3所示。

Focus为切片;upsamping为上采样;BaseConv为YOLOX中的基本卷积;Decoupled Head为解耦头;CSP为跨阶段连接部分模块;SPP为空间金字塔池化模块;Maxpool为最大池化层;Concat为拼接操作

1.2 YOLOX_S的改进

1.2.1 swin transformer

Swin transform[14]使用类似卷积神经网络里的层次化构建方法,在特征图尺寸中对图像进行下采样4、8、16倍,这样有助于实现目标检测和实例分割等任务。swin transformer引入W-MSA(windows multi-head self-attention)的概念,在4倍和8倍下采样中,特征图被划分成多个不相交的区域(Window)。并且由于Multi-Head Self-Attention(MSA)只在每个Window进行,这样做可以减少模型计算量。如图4(a)所示,在MSA模块中通过将输入的特征图分成若干个非重叠的块,然后在每个块内进行自注意力计算。这意味着每个块只关注其自身的特征信息,而不考虑其他块的信息。如图4(b)所示,W-MSA模块是在MSA模块的基础上进行的改进,它引入窗口化的注意力机制。与MSA模块不同,W-MSA模块将输入的特征图分成多个重叠的块,每个块都包含了前后相邻的特征信息。这样,W-MSA模块可以同时考虑多个尺度的特征信息,从而更好地捕捉图像中不同尺度的结构和语义信息。其计算量的差值,可通过式(2)、式(3)计算。

图4 MSA和W-MSA对比

Ω(MSA)=4HWC2+2(HW)2C

(2)

Ω(W-MSA)=4HWC2+2M2HWC

(3)

式中:Ω为计算复杂度;H为特征图的高度;W为特征图的宽度;C为特征图的深度;M为每个窗口。

在采用W-MSA模块时,由于自注意力机制只在每个窗口内进行,这样窗口和窗口间就无法进行信息传递。因此引入Shifted Windows Multi-Head Self-Attention(SW-MSA)模块,如图5所示,W-MSA[图5(a)]和SW-MSA[图5(b)]是成对使用的,假设第n层使用的是W-MSA,那么第n+1层就使用SW-MSA,对比左右两幅图片就可以发现窗口发生了偏移,如第n+1层第1行第2列的窗口能够使第n层的第1行中两个窗口进行信息交流。其他的同理,这样就解决了不同窗口间信息交流的问题。swin transformer根据配置的不同分为:T(Tiny)、S(Small)、B(Base)、L(Large)版本。使用的是其swin-T版本。

图5 SW-MSA概念图

经多次实验,将YOLOX的backbone替换为swin transformer后能够更好的捕捉不同尺度下的特征,并且使用滑动窗口的方式进行特征提取从而减少计算量,并且提高模型的检测精度。

1.2.2 BiFPN

Tan[15]提出的EfficientDet算法中提到一种双向特征金字塔网络BiFPN,用于处理不同尺度的特征图,它由两个FPN(feature pyramid network)的级联组成,每个FPN都有两个分支:一个自顶向下(top-down)分支,一个自底向上(bottom-up)分支。BiFPN在处理特征图时,不仅可以从低分辨率的特征图中提取高层次的语义信息,还可以从高分辨率的特征图中获取更为精细的细节信息。其网络结构示意图如图6所示。

P3~P7为特征输出层

BiFPN的主要创新点在于引入两个新的机制:一是在每个级别上,自顶向下分支与自底向上分支之间使用了可学习的连接权重,用于控制特征图的信息流动和跨层级的信息交互;二是在连接权重学习的过程中,使用了基于注意力机制的特征调节(feature refinement),以进一步提高特征图的质量和精度。BiFPN网络采用的归一化方法在保证精度的前提下,与softmax-base fusion相比速度块30%,如式(4)所示。

(4)

式(4)中:Ii和out分别为输入和输出特征;σ为最小学习率,用于约束震荡;ωi和ωj为权重。

将BiFPN简化为3个输入特征层对应加入swin transformer后的YOLOX_S的3个特征输出层P3、P4、P5,更改后的BiFPN网络结构如图7所示。

图7 简化后BiFPN网络结构示意图

在YOLOX_S的neck部分应用BiFPN特有的双向交叉尺度链接结构后,融合了更多的火焰和烟雾特征。提高了网络模型检测的精度。

1.2.3 CA注意力机制

坐标注意力机制[13](coordinate attention,CA),传统的通道注意力机制是使用全局的池化操作将特征张量转变为单个特征向量,即通过坐标注意力机制将通道注意力机制分成两个一维的特征编码。一个沿着其空间方向捕获依赖关系,另一个沿着其空间方向去获取位置信息。之后就将特征图编码成一组对方向信息感知和位置信息敏感的注意力图。

如图8所示,坐标注意力机制分成坐标信息嵌入和坐标注意力信息生成。为了促使注意力模块能够捕捉具有精确位置信息的远程空间交互,按照以式(5)~式(7)分解全局池化,转化为一对一维特征编码操作。

(5)

Residual为残差连接;X-Avg Pool、Y-Avg Pool分别为在宽度和高度维度上进行平均池化操作;BatchNorm为批量归一化;Non-linar为非线性激活函数;r为注意力机制中的缩放因子;Re-weight为重新加权

(6)

(7)

这两种变化可以使网络模型对于敏感的目标进行更加精准的定位。

YOLOX_S在引入swin transformer后,网络模型具有更强的特征提取能力,并且会减少部分计算量,BiFPN可以进一步降低计算量,提高检测的效率和网络模型的适应性,在复杂背景下同样可以保持较高的检测精度,在引入CA注意力机制后通过学习通道之间的相互关系来自适应地加权不同通道的特征图,使得模型能够更好地理解图像的语义信息,加强网络模型对火焰烟雾的特征提取能力,是其具有更高的检测精度。改进后的YOLOX_S的网络结构如图9所示。

Conv2D为2维卷积;Patch Partition为图像块分割;Linear Embedding模块为线性嵌入;Patch Merging为图像块合并

2 实验分析

2.1 实验环境

本次实验的环境配置如表1所示。

表1 实验环境配置Table 1 Experimental environment

2.2 实验数据集和数据增强

使用的数据集是由Bilkent University公开数据集加上部分自建数据集共计9 621张。训练集测试集的比例为8∶2,其中训练集7 697张,测试集1 924张。使用Labelimg标注软件对数据集进行标注,生成PASCAL VOC格式。数据集图片分布比较广泛,包含烛火,篝火等特征明显的火焰和烟雾,也包含森林火灾,城市火灾,交通火灾等背景复杂、形状多样的火焰和烟雾。基本满足日常生活中绝大部分火灾中的火焰和烟雾场景。数据集中的火焰和烟雾大体可分为三大类,如表2所示。

表2 数据集分类Table 2 Classification of data sets

对数据集图像采取Mosaic数据增强方式,增加数据的多样性。Mosaic数据增强是对4张不同的图像进行颜色简单的矩阵变换,如旋转、缩放和色域变化等,之后将其拼接成一张图片。如图10所示,这样既丰富了检测目标的背景,又提高了检测的效率。

图10 Mosaic数据增强

2.3 评价标准

本次实验采用平均精度(mean average precision,mAP)、召回率(recall,R)、正确率(precision,P)和GFlops来评估模型。平均精度(mAP)和召回率R的计算公式为

(8)

(9)

(10)

(11)

式中:TP(true positive)为预测样本的真实类别是正类,模型算法的预测同样为正类;FN(false negative)为预测样本的真实类别是正类,然而模型算法预测的类别为负类;FP(false positive)为预测样本的真实类别为负类,而模型算法的预测则为正类。

设定IoU的检测阈值为0.5,即评价指标mAP@0.5。召回率(recall,R)又称为查全率,召回率表示的是在实际的正样本中,检测器预测出来的比例。正确率(precision,P)又称为查准率,表示的是模型检测出来的所有正类样本中,真正正类样本所占的比例。

2.4 实验结果分析

2.4.1 模型训练

每个模型从0开始训练,epoch设置为300轮,其超参数配置如表3所示。

表3 超参数设置Table 3 Super parameters setting

2.4.2 消融实验

为了增强模型的鲁棒性,使用数据增强的YOLOX-S作为基线模型,不同改进策略对基准模型的影响如表4所示。

表4 消融实验Table 4 Ablation experiment

由表3可知,YOLOX_S网络模型在加入swin transformer之后,检测的精度得到了明显的提升,mAP@0.5提升了约3.1%,正确率和召回率也都得到不同程度的提升。在加入BiFPN之后,mAP@0.5提升了约1.9%,再加入CA注意力机制模块后,mAP@0.5提升了约0.3%。最终改进后的网络模型,mAP@0.5提升了约5.3%,模型的正确率和召回率也得到了比较理想的提升。

2.4.3 对比试验

如表5所示,为了进一步验证本文改进算法的优势,引用了市面上流行的一些网络,针对网络模型的mAP和mprecision进行对比实验。

表5 不同模型测试对比结果Table 5 Comparison results of tests on different models

从表5可以看出,YOLOX_S原网络模型检测的效果稍优于Faster R-CNN、RetinaNet和YOLOv5[16],检测的mAP@0.5和mprecision要优于SSD、YOLOv3和YOLOv4[17]。改进后的YOLOX_S网络模型相较于原网络mAP提升了约5.3,远高于其他网络,可以说明改进后的YOLOX_S网络模型在火焰烟雾检测方面更具有效性。

2.4.4 实验结果图分析

为了更加直观方便对比改进后的YOLOX_S网络模型和原模型YOLOX_S的检测效果,选取几张测试集的图片进行检测,并将置信度都设置为0.25。如图11所示,共选取4组图片进行对比,其每组的左边图片为原始模型YOLOX_S检测的结果,右边是改进后的模型YOLOX_S检测的结果。从图11(a)可以看出,改进后的YOLOX网络的检测框的精度更高,并且没有错检出白云。从图11(b)可以看出,改进后的网络模型,没有错检出图中的火焰倒影,并且检测的精度也更高,图11(c)中,改进后的网络模型,更是检测出来了原网络模型漏检的烟雾。从图11(d)可以看出,改进后的网络模型,检测的精度更高,出现漏检测的情况也更少。这证明swin-YOLOX_S有更强的特征提取能力和分析能力,检测的置信度更高,检测框也更贴近实际。

图11 检测结果对比

3 结论

对YOLOX_S进行改进,引入swin transformer作为骨干,网络模型具有更强的特征提取能力进而提升检测精度,然后引入BiFPN,提高检测的效率和网络模型的适应性,在复杂背景下同样可以保持较高的检测精度,并加入CA注意力机制模块进一步提升模型的特征提取能力,最后使用Mosaic数据增强的方法来训练困难样本,提高鲁棒性。上述的消融实验表明,用以上方法对模型改进,均在不同程度上提升了模型的性能,改进后的网络型在火焰烟雾的检测方面具备有效性。其中引入swin trainformer骨干后提升最为明显,但是增大了模型参数量,后续研究会注重减少模型参数量并提高模型检测的精度和速度。

猜你喜欢
烟雾特征提取火焰
《火焰》
最亮的火焰
薄如蝉翼轻若烟雾
影视剧“烟雾缭绕”就该取消评优
漂在水上的火焰
基于Daubechies(dbN)的飞行器音频特征提取
咸阳锁紧烟雾与尘土
Bagging RCSP脑电特征提取算法
吹不灭的火焰
基于MED和循环域解调的多故障特征提取