基于高效全局上下文网络的轻量级烟火检测算法
2023-02-22魏伦胜徐望明张景元
魏伦胜,徐望明,2*,张景元,陈 彬
(1.武汉科技大学 信息科学与工程学院,湖北 武汉 430081;2.武汉科技大学 教育部冶金自动化与检测技术工程研究中心,湖北 武汉 430081)
1 引言
全球范围内平均每天发生上千起火灾,造成数百人伤亡和大面积的森林植被破坏,且严重威胁人类生命财产安全和自然生态环境。火灾通常爆发突然,影响范围广,难以及时处理。因此,火灾的实时监测尤为重要,早期发现火灾并进行处理是减少损失的关键。传统的火焰和烟雾探测系统通常是基于实时采样温度、湿度或一氧化碳浓度传感器[1-2]。这些传感器因成本低和使用方便而被广泛使用,但存在难以克服的固有局限性,如烟雾传感器经常会出现错误触发的情况,而且,这些传感器通常需要足够的火灾触发水平进行探测,会导致长时间探测延迟。除此之外,它们仅限应用于狭小的室内空间,无法应用于户外场景。
为了克服传统火灾探测系统的局限性,近年来基于监控视频的火灾探测系统成为主流。在这类系统中,火焰和烟雾被抽象为由亮度、纹理、颜色以及运动信息生成的图像特征。Chen 等人[3]在RGB 和HIS 颜色空间中利用火焰的动态特性和不规则性来实现对火焰像素的分类。Celik 等人[4]提出一种基于YCbCr空间中色度和亮度可分离性的火灾探测器,并融合多种信息提高检测性能。Rafiee 等人[5]通过使用二维小波变换将静态和动态特征结合起来检测火焰及烟雾目标。以上这些算法依赖于人工设计的图像特征,在实际应用场景下的鲁棒性较差。
随着深度学习技术的发展,计算机视觉受到了学术界和工业界的极大关注。深度学习具有自动提取图像特征的优势,显示出从图像或视频中检测火焰及烟雾的泛化能力。Wu 等人[6]使用AlexNet 从动态和静态信息中提取复合特征并提出一种自适应加权方向算法检测视频中的火焰和烟雾。Wu 等人[7]使用Faster R-CNN[8]、YOLO[9-12]、SSD[13]等经典目标检测网络实时检测森林火灾。侯易呈等人[14]通过引入SENet模块提出一种基于改进Faster R-CNN 的火焰检测方法,提升检测精度。这些方法在检测准确率方面相对于传统方法取得了明显提升,但并未在嵌入式硬件平台上提供低成本的实现,使得这些算法的落地应用变得相当困难。而且,这些算法未充分考虑火焰或烟雾目标周围的背景信息,从而导致误报率升高。
近年来,在自然语言处理领域广泛运用的上下文信息(Context)也被用于计算机视觉领域,并展现出优越的性能。Wang 等人[15]提出了NLNet(Non-local Network),该算法融合了全局上下文信息,在目标检测、图像分类、实例分割等领域证明了其有效性,但会极大地增加计算量,不适合在轻量级模型上使用。Cao 等人[16]在Wang 等人的基础上提出了GC-Ne(tGlobal-Context Network),在不降低精度的情况下提升了算法的运行速度。刘波等人[17]提出了一种自适应上下文感知相关滤波算法用于目标跟踪,提高了算法鲁棒性。张瑞琰等人[18]提出了面向光学遥感目标的全局上下文检测模型,提高了复杂背景下的光学遥感图像目标检测精度,并降低了检测网络复杂度。通过使用全局上下文信息,可建模目标与背景的远程依赖(Long-range Dependency),加强网络学习过程对视觉场景的全局理解,从而学习到更具判别性的特征。因此,在烟火检测任务中,有效建模并利用烟火目标的全局上下文信息,可学习到与类烟火目标相区分的视觉特征,从而提高检测性能。
针对以上问题以及实际应用场景对实时性的要求,本文算法选择以轻量级目标检测网络YOLOX[19]为基础网络进行改进,提出了一种能高效建模图像上下文信息的EGC-Net(Efficient Global Context Network)网络,并将EGC-Net 嵌入到YOLOX 的主干特征提取网络与特征金字塔网络之间形成EGC-YOLOX 网络,实现了高精度且实时的烟火目标检测。
2 YOLOX 算法简介
YOLOX 是基于回归的单阶段目标检测算法,在YOLO 系列其他算法上所做的改进使其在保持高精度的同时也可满足在嵌入式设备上流畅运行,深受工业界认可。YOLOX 使用CSPDarknet 作为主干特征提取网络,CSPDarknet 是由跨阶段局部网络(CSPNet)[20]与Darknet网络共同构造而成的,通过使用DenseNet[21]和CSP 结构增强了卷积神经网络的学习能力,减少了网络模型的参数量,同时也保证了准确性。YOLOX的主干特征提取网络使用了SiLU[22]激活函数,具有无上界有下界、平滑、非单调特性,在深层模型上的效果优于ReLU[23]函数。为了提升网络的感受野,主干特征提取网络使用SPP(Spatial Pyramid Pooling)结构[24]。
不同于YOLO 系列其他算法,YOLOX 采用了无锚框(Anchor-free)检测策略,极大降低了算法复杂程度,提高了检测速度,对不同数据集、不同大小的目标都有很好的鲁棒性。在正负样本平衡策略上,YOLOX 使用了SimOTA 算法来为不同大小的目标动态匹配正样本,相比于OTA[25]算法在不损失精度的前提下速度更快,同时避免了设置大量额外超参数。
对于烟火检测任务,为了较好地平衡检测的精度和速度,本文选用了YOLOX 作为基础网络。然而,实验研究发现,直接使用YOLOX 而不进行改进时,存在烟火目标漏检和误检问题。如图1所示,YOLOX 未能检测到图1(a)中存在的火焰目标,错误地将图1(b)中的电灯、图1(c)中的夕阳、图1(d)中的水雾等具有强干扰性的类火或类烟目标检测为烟火目标。究其原因,这主要是由YOLOX 网络的本质属性所决定的,卷积操作擅长分析图像的空间局部信息,卷积核感受野大小与卷积核尺寸有关,一般轻量级网络都选择使用较小的卷积核参与运算以减少计算量,故卷积神经网络易于提取图像的局部特征,不易提取图像的全局特征。而实际上在烟火检测任务中,在图像中烟火目标较小或出现类烟火目标时,其周围的背景信息可以提供非常有用的全局上下文信息,作为网络判断目标类别和定位的重要辅助信息。
图1 YOLOX 烟火检测算法出现的漏检和误检结果。(a)漏检结果;(b)、(c)、(d)误检结果。Fig.1 Missing and false detection results using YOLOXbased smoke and fire detection algorithm.(a)Missing detection result;(b),(c),(d)False detection results.
针对烟火检测任务中检测精度不够及受类烟火目标干扰的问题,本文尝试在YOLOX 网络中加入提取图像全局上下文信息的网络进行改进,以期通过有效利用烟火目标的背景信息来提升检测性能。
3 本文算法
3.1 高效全局上下文网络(EGC-Net)
图像全局上下文网络的作用是建模目标和背景信息的远程依赖,加强网络学习过程对视觉场景的全局理解。在卷积神经网络中,卷积层主要作用于图像局部区域,远程依赖只能通过堆叠多个卷积层来建模,计算量大且难以优化。为解决此问题,NLNet[15]使用自注意力机制来建模远程依赖。为充分利用图像中火焰和烟雾目标周围的背景信息,建模烟火目标与背景信息的远程依赖关系,本文基于NLNet 构造了一种新的高效全局上下文网络(EGC-Net)。
NLNet 的核心思想是:某一位置的响应是输入特征图中所有位置特征的加权和,通过计算这一响应来获得全局上下文信息。NLNet 网络结构如图2(a)所示,图中X、Z分别是输入和输出特征图,其关系如式(1)和(2)所示:
其中,i是当前被计算的响应位置索引,j是所有位置的索引,Np是所有位置数量。f(xi,xj)用来计算两个位置的相关性,方法之一是采用公式(2)的形式,且θ(xi)=Wθxi。ϕ(xj)=Wϕxj,Softmax操作用于归一化。Wg xj计算输入特征在位置j时的表示,可通过1×1 的卷积来实现。因此,对于每一个位置,NLNet 均通过计算该位置与所有位置之间的关系来建立局部特征和全局特征的关系,从而获取全局上下文信息,其网络结构复杂,且参数量和计算量都比较大。
Cao等人[16]通过实验发现,NLNet试图计算每一个特定位置的全局上下文信息,但结果显示图像不同位置的注意力图几乎相同,这说明图像的全局上下文信息是不受位置依赖的。此外,NLNet算法本身的空间压缩会导致通道注意力的丢失。鉴于此,本文对NLNet进行改进,依据ECA-Net[26]中不降维的局部跨信道交互策略,提出了结构简单、参数量和计算量都很小的高效全局上下文网络EGCNet,其网络结构如图2(b)所示。
EGC-Net 网络结构如式(3)所示:
EGC-Net 整体结构包含3 个阶段,即上下文建模(Context)、特征转换(Transform)和特征融合(Fusion)。上下文建模阶段计算全局上下文信息,此处Wk为二维1×1 卷积核。既然全局上下文信息与位置无关,故无需再针对每一个位置单独计算,这就是公式(1)和公式(3)的主要区别。在上下文建模阶段只需计算特征图中一处位置的全局上下文信息,并对接下来输入的所有位置都共享这一信息。Norm 是归一化操作(Nor‐malization)。在特征转换阶段进行非线性转换,其本质为通道注意力机制,用于筛选有用特征图信息,此处Wq为一维卷积,卷积核大小k可根据通道数C自适应调整,使得维数较高的通道可进行远程交互而维数较低的通道可进行短程交互。由于通道数通常情况下都为2 的指数,故可定义为:
故可得:
其中,参数设定为γ=2,b=1,odd 表示选择距离结果最近的奇数。最后,特征融合阶段将原来的输入与特征转换阶段的输出进行融合得到最终的输出。
3.2 EGC-YOLOX 烟火检测算法
为改善YOLOX 网络检测烟火目标的效果,本文算法将EGC-Net网络插入到YOLOX 的主干特征提取网络与特征金字塔网络之间,从而构成EGC-YOLOX 网络,目的是从主干特征提取网络输出的特征图中建立烟火目标与背景信息的远程依赖关系,即全局上下文信息,并进行特征融合,从而学习到更具判别性的特征,使网络预测结果更为精准。
EGC-YOLOX 网络结构如图3 所示,主要包含3个部分:主干网络部分(Backbone)、特征增强部分(EGC-Net+FPN+PAN)和预测部分(Predict)。输入待检测图像,通过主干网络部分的Focus 操作得到多组特征图,之后将其拼接并通过卷积运算得到无信息丢失的双下采样特征图,接着使用CSP结构进行特征提取,最后SPP 结构采用1×1、5×5、9×9、13×13 最大池化进行多尺度特征融合。在特征增强部分,通过插入具有全局上下文信息和通道信息的EGC-Net 网络进行多级特征提取和强化,并使用FPN 和PAN 特征金字塔结构进行特征融合。FPN 将图像的语义特征从高层特征图传递到低层特征图,同时PAN 将图像的定位特征从低层特征图传递到高层特征图,这两种结构共同加强了颈部网络的特征融合能力,充分融合了EGC-Net中关于烟火目标的全局上下文信息和通道信息。最终,在预测阶段接收PAN输出的3 个尺度的特征图,并通过进一步信息融合输出预测结果,即图像中烟火目标的类别及位置信息。
图3 EGC-YOLOX 网络结构Fig.3 EGC-YOLOX network structure
3.3 EGC-Net 对烟火目标的特征学习能力
为了说明EGC-Net 对烟火目标特征学习的有效性,采用梯度加权类激活热力图[27](Gradientweighted Class Activation Map,Grad-CAM)算法可视化EGC-Net 学习到的特征。
由于图像分类任务中要提取的是图像的全局特征,本文以图像分类任务为例可视化EGCNet 提取图像特征时关注的空间位置,对比了ResNet18[28]网络和插入了EGC-Net 的EGCResNet18 网络。以本文所使用的烟火图像数据集的子集开展实验,分3 类即火焰类(7 831 张)、烟雾类(14 394 张)、非烟火类(2 846 张)进行实验。结果表明,EGC-ResNet18 网络相比于原始ResNet18 网络在模型大小基本不变的情况下,Top-1 分类准确率从94.72%提升到97.82%,提升了3.1%。在测试集中挑选3 幅图像使用Grad-CAM 进行类激活热力图可视化,结果如图4 所示,热力图局部越红表示特征激活程度越强。可见,基础网络加入EGC-Net 结构后,在烟雾和火焰图像中所关注的空间位置比原来更为精准。
图4 图像分类Grad-CAM 结果。(a)原图像;(b)ResNet18结果;(c)EGC-ResNet18 结果。Fig.4 Grad-CAM results for image classification.(a)Origi‐nal image;(b)Result of ResNet18;(c)Result of EGC-ResNet18.
目标检测任务会更多关注图像的局部特征,进一步地,对比了在烟火检测任务中原始YOLOX网络和本文提出的EGC-YOLOX 网络的Grad-CAM 结果,如图5 所示。可见,EGC-YOLOX 比YOLOX 对于局部烟火目标的特征关注得更为精准,且更易于排除干扰,在同为真实烟火的位置特征激活程度也更强。由于EGC-Net既包含了全局上下文信息,同时也融合了通道注意力信息,能在关注目标周围背景信息的同时也关注目标本身的特征,故使用了EGC-Net 的网络。相比于原网络,EGC-Net 对于图像上的烟火目标有着更好的特征学习能力。
图5 目标检测Grad-CAM 结果。(a)输入图像;(b)YOLOX结果;(c)EGC-YOLOX结果。Fig.5 Grad-CAM results for object detection.(a)Input image;(b)Result of YOLOX;(c)Result of EGCYOLOX.
4 实验结果及分析
4.1 实验环境
实验平台使用的框架为Pytorch 1.8.1,Python版本为3.7.9,模型训练平台处理器为Intel(R)Xeon(R)CPU E5-2620 v4@ 2.10 GHz,RAM 为64G,GPU 为NVIDIA Quadro GP100,显存为16G,软件环境为Windows 操作系统。
由于目前公开的烟火图像数据集尤其是同时标注了火焰和烟雾目标的图像数据集较少,本文自制了一个烟火图像数据集,图像总数为12 999幅,其中包括3 740 幅类火图像和类烟图像。实验中训练集、验证集以及测试集的划分比例为8∶1∶1。
模型训练阶段使用Adam 作为优化器,整个过程分为两个阶段:第一阶段采用迁移学习方式冻结部分层进行训练,学习率为0.001,迭代50 次,并设定学习率每次迭代之后进行衰减,衰减系数为0.005;第二阶段解冻网络所有层进行训练,学习率为0.000 1,迭代100 次,同样设定学习率每次迭代之后进行衰减,衰减系数为0.000 5。
4.2 评价指标
由于图像或视频中烟火目标的形状并不固定,通用的基于检测框的目标检测算法评价指标已不适用。从实用性的角度出发,由于烟火检测的目的是发现图像中的火焰或烟雾目标并进行及时报警处理,故对于一幅图像而言,只要从中检测到一处火焰或烟雾目标即可,而如果该图像中没有烟火目标,则不希望出现误报。因此,本文引入了两个烟火检测任务的评价指标:
(1)图像级召回率(Image-level Recall,ILR),即所有存在烟火目标的图像中被至少检测出一处火焰或烟雾目标的图像所占的比例。
(2)图像级误报率(Image-level False Alarm Rate,ILFAR),即所有不存在烟火目标的图像中被至少检测出一处火焰或烟雾目标的图像所占的比例。
设测试集中存在烟火目标的图像总数为M,其中被算法检测出存在火焰或烟火目标的图像数为m。测试集中不存在烟火目标的图像总数为N,其中被算法检测出存在火焰或烟火目标的图像数为n。则图像级召回率与误报率可按式(6)、(7)计算:
4.3 实验结果
本文算法(EGC-YOLOX)和其他轻量级目标检测网络的对比实验结果如表1 所示。
表1 轻量级目标检测算法性能对比Tab.1 Performance comparison for lightweight algorithms of object detection
所对比算法包括YOLOv3-Tiny、YOLOv4-Tiny、YOLOv5s、原始YOLOX、插入了NLNet 结构的NL-YOLOX 以及插入了GC-Net 结构的GCYOLOX。除了图像级召回率(ILR)、图像级误报率(ILFAR),表中还列出了网络模型大小(Size)和推理时间(Inference Time)。
由表1 可见,本文所提出的EGC-YOLOX 算法在图像级召回率和误报率指标上均达到了最优。其检测速度相比于YOLOv3-Tiny、YOLOv4-Tiny、YOLOv5s 这3 种算法有所下降,其原因在于YOLOX 算法的参数量更多,有效保障了算法的检测精度,虽然速度有所下降,但仍然满足实时检测的需求。EGC-YOLOX 算法相比改进前的原YOLOX 算法在保持同样速度的同时,图像级召回率提升了4.8%,误报率下降了4.39%,表明利用全局上下文信息可使网络有更好的局部和全局特征学习能力,从而有效降低烟火检测的漏检率和误检率。此外,本文算法(EGC-YOLOX)相比于NL-YOLOX 和GC-YOLOX,不仅模型更加精简,速度更快,而且图像级召回率分别提升了1.37%和1.47%,图像级误报率分别下降了3.23%和0.49%,说明本文提出的EGC-Net 比改进前的NLNet 和GC-Net 具有更好的全局上下文或远程依赖建模能力,从而有助于加强网络学习过程中对视觉场景的全局理解。
4.4 烟火检测实例展示
分别使用原YOLOX 和改进后的EGCYOLOX 算法在测试集上检测烟火目标,并从结果中挑选了几组典型图像进行可视化展示。结果如图6 所示,图6(a)、(b)两列对比了含有烟火目标的图像。原YOLOX 算法出现了误检或漏检的情况,且对于检测到的真实存在的烟火目标其置信度也低于EGC-YOLOX。图6(c)、(d)两列对比了含有类烟或类火等强干扰目标的图像,原YOLOX 算法把灯光、夕阳晚霞误检为火焰目标,把灰尘、水雾误检为烟雾目标,若将其用于消防安全监控,这种误检情况会极大消耗人力物力;而改进后的EGC-YOLOX 算法在这些图像中均表现出了更好的性能,具有更强的鲁棒性,因而更具实用价值。
图6 烟火检测效果对比。(a)、(c)YOLOX 检测结果;(b)、(d)对应的EGC-YOLOX 检测结果。Fig.6 Effect comparison for smoke and fire detection.(a),(c)Results of YOLOX;(b),(d)Corresponding results of EGC-YOLOX.
另外,如图7 所示,本文还选取了实际生活中的多个火灾场景,包括汽车、火车、轮船、飞机、加油站、矿场、森林、高楼等,使用本文所提出的EGC-YOLOX 算法均能准确地检测到各实际场景下的烟火目标。
图7 本文算法在实际场景图像中的烟火检测结果Fig.7 Results of the proposed algorithm to detect smoke and fire in real-world images
5 结论
针对现有轻量级目标检测算法在烟火检测任务中出现的漏检和误检问题,本文提出了一种基于高效全局上下文网络的轻量级烟火检测算法。该算法在轻量级目标检测网络YOLOX 中插入了在NLNet 基础上改进的EGC-Net 网络结构,实现了建模图像全局上下文信息并减少计算量的目的。对EGC-Net 的梯度加权类激活热力图(Grad-CAM)进行分析,结果表明EGC-Net 能增强网络的局部和全局特征学习能力,将EGC-Net 与目标检测网络YOLOX 相结合构成EGC-YOLOX 网络用于烟火检测,通过有效建模烟火目标和背景的全局上下文信息提升了烟火检测的精度和鲁棒性。实验结果表明,本文提出的EGC-YOLOX 烟火检测算法的图像级召回率为95.56%,图像级误报率为4.75%,均优于对比的其他典型轻量级目标检测算法,且在速度上达到了实时要求。本文所提算法在安防和消防领域具有较好的实用价值和应用推广价值,可用于实际场景下的火灾监控和预警管理。