APP下载

结合感受野模块与并联RPN网络的火焰检测

2023-02-21鲍文霞孙强梁栋胡根生杨先军

中国图象图形学报 2023年2期
关键词:火焰卷积特征

鲍文霞,孙强,梁栋,胡根生,杨先军

1. 安徽大学电子信息工程学院,合肥 230601; 2. 中国科学院合肥物质科学研究院,合肥 230031

0 引 言

近年来,世界各地多座百年建筑和多处森林接连遭遇火灾,星星之火为生态环境带来了潜在的致命危险。为最大程度减少人员伤亡、环境和财产损害,实施快速准确的早期火焰检测已势在必行。虽然烟雾报警器和火焰报警器已广泛用于室内火焰报警,但这些传统的物理传感器具有许多局限性。例如,需要靠近火源、不适于户外场景等。随着图像处理和机器学习技术的发展,利用现有监控图像进行实时火焰检测的方法已广泛应用。

颜色是火焰图像的重要特征,也是基于图像的火焰检测方法的基础。Chen等人(2004)提出一种两阶段火焰检测方法。首先根据RGB颜色空间中的色度和饱和度检测火焰像素。然后使用火焰的无序特征和火焰区域的增长特性来验证来自上一步的火焰像素。Çelik和Demirel(2009)以及Celik(2010)利用统计分析和阈值法提取前景信息,实现了火焰的实时检测。这类方法先将图像转换为Lab(CIE LAB)或YCbCr(ITU-R YCbCr)颜色空间,例如使用YCbCr颜色空间将亮度Y分量与色度Cb分量和Cr分量分离,在3个分量上通过阈值法分类火焰像素。Ouyang等人(2018)先在RGB颜色空间上分离火焰图像,再在B通道上通过边缘提取操作提取图像的边缘梯度来识别火焰。这些基于颜色的火焰检测方法受光照变化影响较大,并且不能正确区分场景中伪火类物体。

随着计算机视觉技术的发展,研究人员利用机器学习的方法检测火焰。Truong和Kim(2012)首先使用自适应高斯混合技术确定移动像素区域,然后使用模糊C均值聚类(fuzzy c-means,FCM)方法从这些区域中选择候选火焰区域,利用离散小波变换算法提取火焰区域的近似系数,最后使用支持向量机(support vector machine,SVM)对火焰像素和非火焰像素进行分类。Chakraborty和Paul(2010)使用K-means聚类技术检测火焰像素,在RGB和HSI(hue saturation intensity)两种颜色空间中对颜色阈值使用K-means聚类,聚类后输出背景集群和前景集群,背景集群被零像素取代,前景集群中保留了图像的火焰像素,从而实现火焰检测。在Khatami等人(2017)提出的基于粒子群优化(particle swarm optimization,PSO)的K-medoids聚类火焰检测方法的基础上,Hashemzadeh和Zademehdi(2019)提出基于帝国竞争算法(imperialist competitive algorithm,ICA)的K-medoids聚类火焰检测方法,通过基于ICA的K-medoids初步提取候选火焰像素区域,再使用运动强度感知技术获得候选区域像素的移动速率,最后由SVM对火焰区域和非火焰区域进行分类。使用支持向量机、聚类等传统的机器学习方法检测火焰,通常需要人工设计火焰特征,此种方式主观性强,且对复杂背景图像的适应能力差。

基于深度学习模型的火焰检测是当前研究的热点。Zhang等人(2016)提出一种基于卷积神经网络(convolutional neural network,CNN)的森林火焰检测方法,采用级联方式检测火焰。首先由前级分类器对完整图像进行测试,若检测到火焰,则先对完整图像进行分割,得到连续的图像块,再通过后级分类器检测图像块是否含有火焰,从而得到火焰的精确位置。Frizzi等人(2016)提出一种基于CNN的视频火焰和烟雾检测方法,判定视频帧中是否包含火焰或烟雾。结果表明,基于CNN的方法比一些传统的火焰检测方法具有更好的性能。Shen等人(2018)使用改进的YOLOv1(you only look once)深度学习模型进行火焰检测,使用数据增广技术扩增数据集进行模型训练,结果表明,该算法的检测速率为45帧/s,但容易将伪火类物体错误分类为火焰,且对火焰的定位不够准确。Kim和Lee(2019)使用Faster R-CNN(region CNN)在空间维度上关注火焰特征,再使用长短期记忆网络(long short term memory,LSTM)在时间维度上累积连续帧中的火焰时序特征,实现了火焰检测,但耗时较长。

上述方法在火焰检测任务中取得了成功,对火灾发生后期的中大型火焰具有很好的检测准确率,但对火灾发生初期的小火焰容易漏检,且场景中存在伪火类物体时误警率较高。

为降低对伪火焰物体的误警率并提高小火焰的检测准确率,本文设计了一种结合感受野(receptive field,RF)模块和并联RPN(parallel region proposal network,PRPN)的卷积神经网络。RF模块是一种用于多尺度特征融合的模块,PRPN是一种并联结构的RPN子网络。该网络主要由特征提取模块、并联区域建议网络和分类器3部分组成。特征提取模块采用轻量级MobileNet(Howard等,2017)的卷积层,使本文算法在不损失火焰检测性能的同时,加快了算法的运行速度。在特征提取模块中,本文将RF模块嵌入其中,从而扩大感受野,捕获更丰富的上下文信息,用来提取更具鉴别性的火焰特征,降低了伪火类物体导致的高误警率;在并联区域建议网络部分,结合火灾发生时期火焰大小不一的特点,在特征提取模块后端建立多尺度采样层,使PRPN与特征提取模块后端的多尺度采样层建立连接,并使用3 × 3和5 × 5的全卷积进一步拓宽多尺度锚点的感受野宽度,提升了网络对不同尺度火焰的检测能力,解决了火灾发生初期的小火焰漏检问题;分类器由softmax和smooth L1分别实现分类与回归,用来输出最终火焰类别和在图像中的位置信息。在本文数据集上的实验结果表明,所提出的网络对火焰的检测准确度比一些卷积神经网络和传统方法更高,并且能够更好地区分场景中的伪火类物体。

1 材料和方法

1.1 数据集样本标注

实验数据主要来源于意大利萨莱诺(Salerno)大学(https://mivia.unisa.it/datasets/video-analysis-datasets/fire-detection-dataset/)、土耳其毕尔肯(Bilkent)大学(http://signal.ee.bilkent.edu.tr/VisiFire/Demo/SampleClips.html)、Ultimate Chase(http://www.ultimatechase.com/Fire_Video.htm)以及Github网页(https://github. com/cair/fire-detection-image-dataset)。本文从这些数据中整理得到3 017幅火焰图像,包括室内、建筑物、森林和夜晚等场景。伪火类数据主要来源于Github网页和其他电影画面,共692幅图像,主要有灯光、晚霞、火烧云和阳光等伪火类物体。部分火焰及伪火类图像如图1所示。

图1 实验数据

本文使用labelImg对实验数据进行标注,分为两个类别,火焰标注框用fire作为类别名,伪火类标注框用like作为类别名。标注火焰数据时,仅标注火焰区域,尽量少标或不标火焰周围的燃烧物体,避免将燃烧物体误判为火焰而产生误警。同时,为避免与火类似的红色、黄色、橙色物体等引发误警,对伪火类数据如灯光、晚霞等进行了负样本标注。部分标注后的火焰及伪火类图像如图2所示。

图2 样本标注

1.2 R-PRPNet

1.2.1 网络总体架构

本文基于Faster R-CNN(Ren等,2017)网络思想,构造了一种基于感受野模块和并联RPN的卷积神经网络。该网络结构如图3所示,主要由特征提取模块、并联区域建议网络和分类器3部分构成。特征提取模块采用轻量级MobileNet的卷积结构,包括14个卷积层,分为5组,第1组卷积由1个基础卷积和1个深度可分离卷积组成,第2—5组分别由2、2、6、2个深度可分离卷积组成。在第4组I3卷积层后端嵌入RF模块,输出具有更大感受野和更丰富上下文信息的增强特征rI3,特征提取模块再通过拼接、下采样和逐元素相加将特征{I2,I3,rI3}进行组合,获得增强的16倍下采样和32倍下采样特征图{aI3,I4},从而提取到更具鉴别性的火焰特征。在并联区域建议网络中,为了解决小火焰的漏检问题,将PRPN与增强的16倍下采样和32倍下采样特征图{aI3,I4}建立多尺度采样层,并在PRPN中使用3×3和5×5的全卷积进一步拓宽多尺度锚点的感受野宽度,提升了网络对不同尺度火焰的检测能力,解决了火灾发生初期的小火焰的漏检问题。最后,由分类器得到最终真实火焰类别和在图像中的位置信息。

图3 R-PRPNet网络架构

1.2.2 感受野模块

rI3=RF(DOWN(I2)©I3)

(1)

式中,RF表示感受野模块,DOWN表示特征矩阵下采样,符号©表示特征矩阵拼接。

I3特征与rI3特征逐元素相加后,得到特征aI3,即

aI3=rI3⊕I3

(2)

式中,符号⊕表示特征矩阵逐元素相加。

特征aI3经过3 × 3卷积后生成特征I4。如图3所示,得到一组增强的特征{aI3,I4},用来构成多尺度采样层。

RF模块的设计源自Inception-V2(Szegedy等,2016)结构。如图4所示,RF使用1 × 3和3 × 1的卷积组合代替3 × 3的卷积形式,可在保持分辨率不变的同时降低计算量。RF模块有3个分支,前2个分支采用相似的结构设计。在第1个分支中,1 × 3和3 × 1的卷积均设置参数padding为1,3 × 3的空洞卷积设置参数padding和空洞率均为3。空洞卷积的设计用于扩增RF模块的感受野,捕获更丰富的上下文信息,以进一步提升对伪火类的分类效果。第3个分支为1个1 × 1卷积,在保持分辨率不变的前提下改善特征的非线性表达。3个分支串联后,通过1 × 1卷积操作,将通道数降为512。如令 RF模块的输入为Ci,则其输出为

图4 感受野模块

RF=conv1(dilation3(conv3(Ci))©
dilation5(conv5(Ci))©conv1(Ci))

(3)

式中,convi为i×i的卷积操作,dilationi为padding和空洞率为i的3 × 3卷积操作。

1.2.3 并联区域建议网络

本文利用两个相似结构的RPN设计了一种并联结构的PRPN,PRPN与特征提取模块后端的多尺度采样层{aI3,I4}建立连接,并使用3 × 3和5 × 5的全卷积进一步拓宽多尺度锚点的感受野宽度,用来解决小火焰的漏检问题。如图5所示,并联区域建议网络上半部分为标准RPN,RPN头利用3 × 3全卷积通过滑动窗口方式生成边界框回归建议;除了标准RPN,本文还扩展了另一支RPN子网络,采用与标准RPN相似的网络结构,因为较小卷积核在小目标特征区域会进行多次重叠卷积,从而造成小目标特征消失,所以扩展的RPN头采用了较大卷积核的5 × 5全卷积,通过连接上文RF模块获取增强特征aI3。

图5 并联区域建议网络

图6为特征图可视化。可以看出,图6(b)相较于图6(c)(d)能更好地保留小火焰的特征信息,解决了火灾发生前期的小火焰在深层特征传播的过程中的消失问题,从而在区域建议中对小火焰进行更精确的检测。最后,通过对扩展分支RPN进行下采样,与标准RPN逐元素相加后,将两个RPN分支的区域建议集组合为最终的建议集。

图6 特征图可视化

另外,对RPN的另一项改进是在训练阶段限制正负锚点的比率。在原始的RPN实现中,正负锚点的预期比率是1,但在实验中,发现该比率通常很大,这种不平衡会导致网络偏向负样本(背景类物体),从而损害提案的召回率。为解决这个问题,在实验中限制正负锚点比率为1,当负锚点多于正锚点时,将随机丢弃富余的负锚点,以平衡正负锚点的分布。

1.3 火焰检测算法流程

首先,将实验数据按8 ∶2的比例划分训练集和测试集。划分后,训练集有2 413幅火焰图像和553幅伪火类图像,测试集有604幅火焰图像和139幅伪火类图像。为了提高网络的泛化能力,采取镜像、旋转和平移对训练集中的样本进行增广,避免因训练样本过少产生过拟合,增广后的训练集有4 826幅火焰图像和1 106幅伪火类图像。其次,使用labelImg工具对测试集和增广后的训练集进行标注。然后,使用增广训练集的火焰数据对R-PRPNet进行训练,并将增广训练集的伪火类物体图像作为负样本,冻结网络除后两层的所有层进行负样本微调,微调的学习率设置为0.000 1。最后,将测试集输入训练好的R-PRPNet网络中,网络给出预测的真实火焰标签,并过滤掉伪火类标签,实现对火焰的检测。算法流程如图7所示。

图7 本文方法总体流程

2 实验及结果分析

2.1 实验环境及训练过程

实验的软件环境为Ubantu 16.04 LTS 64位操作系统,编程语言为Python3.6,网络采用深度学习框架Tensorflow1.14,使用英伟达GeForce RTX 2070 GPU加速训练过程,CUDA版本为10.0。实验采用批(batch)训练方式,将训练集和测试集分为多个批次,每个batch大小设置为1,即每批输入1幅图像进行训练。实验中,训练过程使用随机梯度下降优化算法(stochastic gradient descent,SGD)优化网络,学习率为0.001,每隔200个迭代次数保存一次训练权重,最大迭代次数设置为62 500。

R-PRPNet的训练损失曲线如图8所示,训练开始时,损失振荡较大,当训练到40 000次时,损失曲线开始趋于稳定。当迭代次数为50 000次时,损失值已基本稳定在0.4以下。说明训练阶段的各个超参数设置合理且学习效果理想。

图8 R-PRPNet损失曲线

2.2 评价指标

目标检测任务中,采用准确率、召回率、误警率、漏检率、预测框与真实框的交并比、网络每秒运算图像的数量作为火焰检测算法的评估指标。

准确率(accuracy,A)即正确识别火焰和非火焰占全部测试集的比例。召回率(recall,R)代表正确识别火焰数量占实际火焰数量的比例。误警率(probability of false alarm,Pfalse)即错误识别火焰数量占实际非火焰数量的比例。漏检率(probability of missed detection,Pmiss)表示未检测到火焰数量占实际火焰数量的比例。预测框与真实框的交并比(intersection over union,IoU)表示预测的火焰检测框准确性。网络每秒运算图像的数量(frames per sec-ond,Fps)表明网络的运算速度。各项指标的具体定义为

(4)

(5)

(6)

(7)

(8)

Fps=N

(9)

式中,TP(true positive)表示真阳性,指火焰被正确识别的数量;FP(false positive)表示假阳性,代表非火焰被错误识别为火焰的数量;TN(true negative)指非火焰被正确识别的数量;FN(false negative)代表火焰被错误识别为非火焰的数量。BBpred表示预测框面积;BBtruth表示真实框面积。N表示每秒运算图像的数量。

2.3 结果对比与分析

2.3.1 消融实验

为了验证本文网络在解决火焰检测任务中漏检和误警问题的有效性,将Faster R-CNN特征提取模块用MobileNet卷积结构替换后的网络作为基线网络,依次添加RF模块、PRPN和负样本微调的训练策略进行消融实验,实验结果如表1所示。可以看出,与基线网络相比,具有RF模块的网络能够学习到更具鉴别性的火焰特征,在漏检率和误警率上分别降低了1.1%和0.43%。对比表1的第3行和第2行可知,PRPN的并行RPN子网络有效提升了网络对多尺度火焰的识别率,在召回率上提升了1.7%,漏检率上降低了1.7%,在检测框准确度上提升了0.02%。与RF相比,负样本微调丰富了伪火类特征,更好地提升了网络对真实火焰与伪火类物体的分类性能,对比表1的最后一行与第3行可知,负样本微调在误警率上降低了21%,性能获得大幅提升。在加入RF模块和PRPN后,网络的运行速度减少了2帧/s,但仍可适用于火焰检测的实时性需求。

表1 消融实验结果

2.3.2 与传统火焰检测算法对比

首先对比传统机器学习方法(Celik,2010;Çelik和Demirel,2009;Ouyang等,2018;Khatami等,2017)与本文网络R-PRPNet的火焰检测结果。Celik(2010)提出了一种基于Lab颜色空间的火焰检测方法,在L、a、b 3个分量上使用阈值法分类火焰像素。Çelik和Demirel(2009)将图像转换为YCbCr颜色空间,使用YCbCr颜色空间有效地将亮度Y分量与色度Cb分量和Cr分量分离,在3个分量上通过阈值法分类火焰像素。Ouyang等人(2018)先在RGB颜色空间上分离火焰图像,再在B通道上通过边缘提取操作提取图像的边缘梯度识别火焰。Khatami等人(2017)提出基于粒子群优化(PSO)的K-medoids聚类火焰检测方法,先使用K-medoids聚类划分数据集,再通过PSO从划分后的数据集中得到具有分色(区分火焰像素与非火焰像素的颜色)特性的转换矩阵,将该矩阵应用于火焰图像来突出火焰区域,从而实现对火焰的检测。

实验结果如表2所示。可以看出,本文网络的火焰检测性能优于传统算法。其中,Ouyang等人(2018)和Khatami等人(2017)的方法在准确率和召回率上优于其他两个传统算法,说明Ouyang等人(2018)的边缘梯度信息和Khatami等人(2017)的聚类方法,可以有效避免伪火类物体对火焰检测的影响。从误警率可知,Ouyang等人(2018)和Khatami等人(2017)的方法好于Çelik和Demirel(2009)以及Celik(2010)的方法,在Fps指标上,它们的平均运行速度与本文算法相近。

表2 与传统火焰检测算法的比较结果

2.3.3 与基于卷积神经网络的火焰检测算法对比

将所提算法R-PRPNet和不采用负样本微调的R-PRPNet算法(用R-PRPNet*表示)与目前常用的基于卷积神经网络的火焰检测算法进行对比。其中,Kim等人(2018)利用Faster R-CNN进行火焰检测,Shen等人(2018)对YOLOv1改进后实现火焰检测。此外,将Faster R-CNN的特征提取模块换成ResNet101(He等,2016)和MobileNet后构成Faster_ResNet101和Faster_MobileNet网络进行火焰检测对比。同时,将SSD(single shot multibox detector)(Liu等,2016)、YOLOv3(Redmon和Farhadi,2018)、YOLOv4(Bochkovskiy等,2020)和YOLOX-L(Ge等,2021)等也用于火焰检测,对比结果如表3所示。可以看出,YOLO系列算法在准确率上较其他算法低,但检测速度相比其他方法更快,其中YOLOv4相较于YOLOv3多了数据增强(该数据增强为网络本身具备)并改进了主干网络,从YOLOv4的实验结果来看,在漏检率上相比YOLOv3具有一定的性能提升。YOLOX-L作为YOLO系列的巅峰框架,新引入了Decoupled Head、Anchor Free和SimOTA样本匹配等方法,使其在漏检率上相较于YOLOv4得到了较大提升,降低了4.95%的漏检率,而在其他指标上虽然优于其他YOLO系列方法,但依然不如Faster R-CNN系列方法。基于Faster R-CNN系列的算法除速度外的各项指标上均优于YOLO及SSD算法。单从Faster R-CNN系列方法上分析可知,Faster_MobileNet的卷积层结构相比原始Faster R-CNN的VGG16(Visual Geometry Group 16-layer net)以及ResNet101火焰检测效果更好,而本文R-PRPNet是在Faster_MobileNet基础上加入了RF模块和PRPN网络,因此相比Faster_MobileNet在准确率和召回率上分别提升了约8%和约5%,而R-PRPNet*在误警率上相比Faster_MobileNet也降低了约0.7%。同时也可以看出,负样本微调的训练策略能够很好地降低R-PRPNet网络的误警率。

表3 与基于卷积神经网络的火焰检测算法的比较结果

图9为上述方法的部分火焰检测结果图,从第1行图像可以看出,YOLOv3检测框的定位精度稍差于其他方法,YOLOv3检测框的右下角含有多余的背景区域。在第2行的森林场景下,前3种方法均出现了小火焰漏检,YOLOv3还出现了一个检测框内包含多个实例对象的问题,这些是导致基线算法召回率较低的主要原因。由最后两行图像容易看出,正确分类伪火类物体对目标检测类方法具有一定困难,改进后的R-PRPNet*仍可能在检测与火类似的红色、黄色、橙色物体时生成误警。为此,本文采用负样本微调的训练策略。由图9(e)第3、4行的图像可以看出,负样本微调可以很好地解决伪火类物体的误警问题。

图9 不同算法的部分火焰检测结果图

2.3.4 不同场景火焰检测结果对比

为验证本文网络在不同场景的泛化性,分别在室内、夜晚、建筑和森林等场景进行实验,结果如表4所示。本文提出的R-PRPNet在4种火焰场景取得平均97.82%的召回率。在夜晚场景,受自身燃烧光影影响,火焰失去了纹理、形状等特征,导致少量火焰对象没有检测到。在森林场景,存在一些小火焰无法检测到的问题,导致本文网络在森林场景相比其他场景,漏检率为4.6%。

图10显示了部分不同场景火焰检测实例图。可以看出,在室内和建筑场景,本文算法能够很好地定位检测框位置,检测框平均置信度约为0.96。通过图10(b)的实例图可以看出,夜晚环境下检测框会受到光亮影响,导致检测框内含有小部分背景区域。在图10(d)的实例图像中,存在容易漏检小火焰的问题,这也是表4森林场景下漏检率较高的原因。从图10整体来看,本文网络在火焰检测任务上,具有较好的适用性,能够在不同场景下完成火焰检测任务。

图10 不同场景的火焰检测实例图

表4 不同场景火焰的检测结果

3 结 论

现有火焰检测方法在火焰检测任务中虽然已经取得了相当大的成功,但当场景中存在伪火类物体时误警率较高,并且这些方法对火灾发生初期的小火焰容易漏检。为了进一步降低对伪火焰物体的误警率并同时提高小火焰的检测准确率,本文设计了一种结合感受野模块与并联RPN的卷积神经网络R-PRPNet用于火焰的检测。R-PRPNet在特征提取模块中嵌入RF模块,通过拼接、下采样和逐元素相加将火焰特征进行组合,扩大感受野,捕获更丰富的上下文信息,提取更具鉴别性的火焰特征。再结合火灾发生时期火焰大小不一的特点,在特征提取模块后端建立多尺度采样层,使PRPN与特征提取模块后端的多尺度采样层建立连接,使用3 × 3和5 × 5的全卷积进一步拓宽多尺度锚点的感受野宽度,提升了网络对不同尺度火焰的检测能力,解决了火灾发生初期的小火焰的漏检问题。将所提网络与一些卷积神经网络和传统方法相对比,实验结果表明,所提网络能够在不同场景下自动提取复杂图像火焰特征,并能够准确过滤伪火类物体,在火灾发生的更早期及时发现火情,促进应急管理,从而有助于预防火灾失控。但本文网络也存在不足,在夜晚场景下检测框依然不够精确,并存在少量误警问题。在后续研究中,将着眼于这些不足,从时序网络方面出发,提取火焰燃烧的动态特征,进一步优化网络结构,提升网络性能。

猜你喜欢

火焰卷积特征
《火焰》
最亮的火焰
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
漂在水上的火焰
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
吹不灭的火焰