秦 瑞,张 为
(天津大学 微电子学院,天津 300072)
火灾是现代社会中影响力和破坏力较大的主要灾害之一。火灾的发生会对人民的生命财产安全和社会的和谐稳定造成巨大威胁。因此在火灾发生的早期及时发现并控制火情具有重要的意义。早期的火灾检测技术大多基于传感器的方式,该方法容易受环境和空间因素的影响,且响应时间长,具有较大的局限性。随着计算机视觉技术的快速发展,基于视频图像的火灾检测技术应运而生。图像型火灾探测器检测精度高,反应速度快,能够感知火灾发生的具体位置和燃烧程度,成为了当前火灾检测的主要发展趋势。
传统的图像型火灾检测技术通常利用图像处理的方法,主要关注火焰的静态和动态特征,利用火焰的单一特征或者多种特征融合,结合机器学习的方式进行火灾预测。FOGGIA等[1]基于火焰的颜色、形状和运动状态等特征,构建了一个实时火灾检测系统。HASHEMZADEH等[2]采用帝国竞争算法颜色模型和支持向量机分类器实现了真正火焰的鉴别分类,并结合像素点的运动强度信息减轻了背景环境的干扰。何爱龙等[3]首先提取图像中的疑似火焰区域,然后选用抗干扰能力强的火焰特征对候选区域进行检测。但上述方式都是基于人工提取特征,过于依赖人为经验,算法的适应性不强。
近年来,深度学习技术得到了广泛的研究和发展。基于深度学习的目标检测技术可以实现特征的自动提取,能够获得更加丰富的特征信息,从而提高检测精度,被逐渐应用于火灾检测领域。MUHAMMAD等[4]使用SqueezeNet 经典网络来提取火焰特征,避免了繁琐耗时的预处理过程,根据实际问题提出了一种轻便高效的火灾检测模型。张为等[5]优化了YOLOv3算法的网络结构,在原有主干网络中嵌入空洞卷积模块,以提升多尺度火焰的特征提取效果。宁阳等[6]在DeeplabV3+网络的解码器中将高低层特征进行融合,保留了更多的细节信息,实现了更加准确的火情分析。JEON等[7]利用深度堆积的卷积层搭建了一个多尺度预测框架,对不同尺度的特征映射进行直接预测。CHAO等[8]设计了颜色导向的锚框选定策略,并使用图像的全局信息改进了Faster RCNN网络,进一步提升了火灾的检测效果。
经过笔者的研究发现,当前基于深度学习的火灾检测算法还存在一定问题:① 网络中存在大量锚框。锚框的使用一方面引入过多人为设定的超参数,如尺度,比例等;
另一方面固定形状的锚框不适用于形态多变的火焰,回归定位不够准确。② 对于多尺度尤其是小尺度的火焰目标的检测精度低,在火灾发生的过程中容易出现漏检情况。③ 背景环境适应性较差。针对特定的环境检测效果较好,不能适用于多种复杂背景,且算法容易受光线等环境因素的干扰,容易发生误报。
针对当前研究中存在的问题,受FCOS[9]网络启发,笔者提出了一种无锚框结构的新型火灾检测算法。该算法取消了锚框的先验形式,根据火焰的形状进行适应性预测,在特征融合的过程中设置了融合因子,并对金字塔输出的多层特征进行整合增强,利用动态生成的正样本权重调整模型的训练过程。该算法可以满足多种尺度和多种复杂背景下的火灾检测需要,能够实现高效精准的火灾检测。
1.1 算法整体概况
构建的火灾检测算法整体流程如图1所示。首先从视频序列中获取单帧图像,采用中值滤波技术对图像进行预处理,以减轻视频中噪声的干扰,便于后续的图像识别。
然后将处理后的图像送入已经训练好的火灾检测模型中进行检测,并选择合适的阈值对检测结果进行判定,进而输出最终的检测结果。
图1 火灾检测算法流程图
文中算法的重点在于无锚框火灾检测模型的网络设计,其网络结构组成如图2所示。该网络为全卷积神经网络,采用了无锚框结构网络的基本形式,摒弃了原有的锚框策略,直接对输出特征图上的每一个点进行分类和回归的预测。该网络模型主要由3个部分组成:
(1) 负责提取特征的主干网络。ResNet网络[10]通过引入残差结构有效地解决了深度网络的退化问题,提升了目标检测的性能。由于其在检测任务上的出色表现,同时考虑网络计算量和性能之间的权衡,选用ResNet 50网络作为文中算法的主干网络。
(2) 负责特征融合的颈部网络。在主干网络的基础上引入了特征金字塔结构FPN[11],通过自顶向下和横向连接的方式实现了特征层之间的信息融合。颈部网络接收来自主干网络生成的C3、C4、C5特征图,利用1×1卷积核和层间相加操作生成P3、P4、P5特征图,并在P5特征图的基础上采用步长为2的3×3卷积核直接生成P6和P7特征图。为进一步增强各层特征的表达能力,在基础的特征融合后引入了BFP模块对特征信息进行处理,形成了颈部网络的最终输出。
(3) 负责分类和边界预测的检测网络。各个特征层的检测网络共享参数,网络的多个分支同时进行预测。如图2中右侧的虚框所示,检测网络分为分类网络和回归网络。分类网络利用5个3×3的卷积核对特征图进行处理,得到H×W×1的特征图,该特征图上每一个点的值代表火焰的分类概率。在分类网络的训练过程中,由于背景点数量较多会导致正负样本不均衡,因此选用Focal Loss[12]作为分类损失函数。回归网络的结构与分类网络一致,但最终得到的特征图尺寸为H×W×4。每一个点为一个包含位置信息的4维向量{l,t,r,b},表示边界框的预测结果。向量中的4个参数代表着任何一点到预测边界框4条边的距离。针对回归网络的训练过程,选用GIOU Loss[13]来更好地反映相交情况。
图2 基于无锚框结构的火灾检测模型网络结构图
1.2 多尺度特征增强
在实际火灾场景中,火焰在摄像画面内的位置不同会导致其形态尺度有明显的变化,这对算法模型的多尺度检测能力提出了更高的要求。当前的多尺度火灾检测算法大多采用多个分支进行特征提取,再将得到的特征信息进行融合,其核心思想与FPN结构相似。然而在融合过程中不同层间信息的不平衡问题导致火焰特征不能够充分表达,在一定程度上影响了多尺度目标的检测效果。为更好地解决火焰的多尺度问题,笔者在原有的FPN特征融合的基础上添加了BFP模块[14],通过对全局信息的整合利用,进一步提升对多尺度火焰目标的检测效果。
BFP模块的网络结构如图3所示,其中P3、P4、P5、P6、P7表示FPN输出的特征层,Pa3、Pa4、Pa5、Pa6、Pa7表示经过整合增强后的输出特征层。该模块首先选择中间层特征图的尺寸作为标准尺寸进行尺寸调整,然后采用相加取均值的方式获得平衡后的语义信息,并使用Non-local模块对信息进一步处理,最后通过反向操作来增强原始的每层特征,从而获得更具辨别力的多尺度特征。
该模块结构轻便高效,引入的计算成本极少,且不改变特征层的数量及通道数,仅改变各个特征层包含的特征信息。经过BFP模块后,金字塔中的每一层特征都可以获得来自其他所有层的同等信息,有效地减轻了融合过程中的层间信息不平衡,强化了原有的多层次特征,使融合网络的输出特征更加丰富,更有利于后续的多尺度目标检测。
图3 BFP模块网络结构示意图
1.3 特征融合因子
虽然特征融合的方式提升了多尺度目标的检测效果,但对于小目标的检测则并不理想。与其他目标相比,小目标物体提供的正样本数量少,预测小目标的底层特征层容易受其他特征层的影响而不能专注小目标的学习,损伤了检测器对于小目标的检测效果。针对火灾发生早期火焰形态较小的实际情况,为进一步提升小目标的检测效果,文中算法在特征融合过程中设置了融合因子α,以控制相邻特征层之间的信息传递,提升浅层特征层对于小目标的学习能力。
实验表明,当融合因子α为0.6时模型的小目标检测效果最好,具体实验结果见节2.2。此时,浅层特征层既获得了来自深层的语义信息,又减轻了来自其他特征层的梯度影响,能够集中学习小目标的相关特征,增强了小目标的学习能力。与原始结构相比,改进后的融合网络在没有增加额外计算量的同时显著地提升了小目标的检测效果。
图4 改进后的特征融合网络
1.4 动态样本采样
正负样本采样是算法模型在训练过程中的重要部分,其直接影响网络的学习效果,进而影响检测器最终的检测性能。传统的正负样本采样方式如RetinaNet、FCOS等大多依赖于人工先验知识,选取固定区域作为正样本参与训练,不能根据物体的形态进行适应性调整。为适应火焰形态多变的特点,笔者设计了动态的样本采样方式。通过结合中心先验和前景概率原则,在标准的正负样本采样基础上动态地生成正样本的权重分数,调节网络的训练过程,提升网络的学习效果,从而进一步提升模型的检测性能。
(1) 中心先验
中心先验思想是指物体在标记框内的分布大致围绕框的中心,越靠近标记框的边缘,其为背景点的概率就越大。通过中心先验原则,可以有效地减少边界低质量样本的引入,提升网络的训练质量。
受文献[15]的启发,笔者选用高斯函数来计算框内各个点的样本权重。权重计算过程如下所示:
(1)
其中,P(x,y)表示标记框内坐标为(x,y)的位置点对应的样本权重,d表示该点到标记框中心点的距离;
σ为标准差参数,用于控制标记框内的权重分布。经研究发现,实际场景中的火焰一般呈三角形或者圆柱形,在训练的过程中选用合适的σ值可以获得更多的有效正样本。
(2) 前景概率
在中心先验原则的基础上,笔者增加了前景概率来进一步提升模型的采样效果。前景概率是指某个位置点存在前景物体的概率。针对标记框内的所有样本,前景概率高的样本由于包含物体信息,对于模型的训练过程更有利。在火灾检测任务中目标类别只有火焰一类,此时物体的分类得分即可以认为是前景概率。因此将物体的分类得分引入最终的样本权重计算。
笔者采用的动态样本采样计算过程如图5所示。通过高斯函数生成基于中心分布的样本权重,与分类网络输出的前景概率相乘,得到标记框内正样本的权重分数。该权重分数包含了样本的位置信息和物体信息,能够直观地反映样本的重要程度,从而指导网络的训练过程。经典算法模型的采样效果如图6(a)、(b)所示。其中,标准采样表示基础的采样方式,即标记框内的所有位置点都是正样本,其余为负样本;
中心采样表示标记框中心区域内的位置点为正样本,其余点为负样本;
图6(c)展示了文中设计的动态采样效果。可以看出,经典的采样方式结果较为固定,且引入了大量的背景点作为正样本加入训练,会对模型的学习造成困扰。笔者设计的动态采样方式能够聚焦于火焰的中心区域,颜色越深代表样本的权重越大,通过权重分数有效降低了来自非重点区域的低质量样本的影响。改进后的网络更加专注于高质量的正样本训练,对于火焰特征的学习更为充分,提升了复杂背景下的火焰检测能力,增强了算法的环境适应性。
图5 样本权重计算过程
(a) 标准采样
2.1 实验数据集及实验环境
由于目前缺乏公开的高质量火灾数据集,因此笔者根据MS COCO数据集格式自建了一个包含丰富图像信息的火灾检测数据集。数据集图片来源于实验火灾视频、实际火灾视频以及网络上公开的火灾视频等共189段视频,覆盖了不同环境下的多种情况,且包含了多种尺度形态的火灾图像,能够充分验证火灾检测算法的有效性。数据集共包含图片13 655 张,其中训练集10 070张,测试集3 585张。为验证算法模型的泛化能力,测试集与训练集的来源视频并不相同。
表1 实验环境
笔者训练和测试的实验环境如表1所示。采用随机梯度下降优化器进行迭代训练,批训练规模为4,训练轮数为12轮,动量和权重衰减因子分别为0.9和0.000 1,初始学习率为0.002 5。学习率在第8轮和第11轮分别衰减为当前学习率的10%。笔者采用ImageNet数据集上的预训练权重来初始化ResNet 50网络。训练过程中采用随机翻转、随机缩放及亮度变换等数据增强方式,以提升模型的训练效果。
2.2 消融实验
为验证文中算法各个模块的有效性以及对于整体网络的贡献,进行了对比实验和消融实验。采用COCO评价标准中的AP和AP50作为模型综合性能的评价指标。其中,AP50表示IOU阈值设置为0.5时对应的平均精度值,AP表示各个阈值下平均精度的平均值。采用COCO评价标准中的APs、APm和APl表征模型对应各个尺度目标的检测能力。
为对比不同采样检测效果,将FCOS去掉中心分支后的算法模型记为文中实验无锚框检测算法的标准模型。为保证实验的公平性,对比实验在标准模型的基础上仅改变模型的采样方式,其他细节保持一致,实验结果如表2所示。结果表明,相比于其他采样方式,采用的动态采样方式能够获得更高的精度值,在火灾检测任务上明显优于其他采样方式。
表2 采样实验对比结果
为探索得到最有效的融合因子α,在[0,1]区间有效范围内间隔采样进行对比试验。实验结果如图7所示。随着融合因子的值逐渐增大,APs迅速增加后趋于平稳再逐渐下降,于α=0.6时到达最高值。实验结果表明,调整融合因子能够影响模型的小目标检测效果,且α为0.6时模型对于小目标的检测效果最好。因此笔者在最终算法中固定α的值为0.6。
图7 融合因子对比实验结果
针对BFP模块,融合因子以及动态采样进行了消融实验,实验结果如表3所示。结果显示,在网络中引入BFP模块后,APm和APl有明显的提升,APs也有所增加,表明BFP模块有效地提升了模型的多尺度检测效果。设置融合因子对网络进一步优化后,在原有精度的基础上APs显著提升,算法的整体精度也进一步提高,表明融合因子有助于小目标火焰的检测,同时进一步提升了算法的多尺度检测效果。在原有改进的网络基础上,采用动态采样方式对模型进行改进,AP提高到0.583,AP50提高到0.969,各个尺度目标的检测精度均有提升,证明了动态采样方式对于火灾检测任务的有效性,特征学习更加充分,全面提升了算法模型的检测性能。
表3 消融实验结果
2.3 算法对比与分析
为验证文中算法的有效性,在自建数据集上实验参数和环境相同条件下,与经典的目标检测算法进行对比实验。对比实验的对象主要分为两类:使用锚框的经典检测模型Faster RCNN[16]、YOlOv3[17]、RetinaNet和无需锚框的经典算法模型FSAF[18],FCOS及FoveaBox[19]。相关对比实验结果如表4所示。选用FCOS作为代表性的无锚框检测算法与文中算法在检测效果上进行了对比。图8为复杂背景下的多尺度火焰检测效果对比图。图9为干扰场景下的检测效果对比图。
表4 与经典目标检测算法的对比实验结果
(a) 文中算法检测效果 (b) FCOS检测效果
(a) 文中算法效果 (b)FCOS效果
为验证文中算法对火灾检测任务的鲁棒性,在公开数据集Mivia上对文中算法进行了测试,并将测试结果与其他经典的火灾检测算法进行了对比。Mivia数据集包含31段视频,其中火灾视频14段,非火视频17段,包含移动的物体、灯光、红色类火物体等多种干扰因素,针对火灾检测任务更具代表性和挑战性。文献[1]的实验设置,将数据集图片中的20%用于实验训练,其他80%用于算法测试并统计测试数据。采用误报率、漏报率、准确率来衡量算法的检测性能。其他检测算法的实验数据均来源于原文献,其测试结果如表5所示。
表5 与经典的火灾检测算法对比实验结果 %
与经典的目标检测算法和火灾检测算法对比,笔者提出的算法检测精度更高,抗干扰能力更强,算法的综合性能更好。算法在增加微小的计算成本和保持较为理想的推理速度的同时,具有较高的检测精度,AP和AP50明显高于其他目标检测算法,能够实现火焰的精准定位和分类,检测结果的置信度更高,对于多尺度尤其是小尺度的火焰具有较好的检测效果。针对复杂背景,文中算法的误报率较低,不易受环境干扰因素的影响,对于明亮光线、夜间灯光及其他类火物体具有较好的抑制效果。与其他算法相比,笔者所提算法更具优势,更能满足火灾检测任务的需要。
为进一步验证文中算法在实际应用中的检测效果,对楼道内的监控点位进行了测试实验,其测试效果如图10所示。可以看出,文中算法对于火焰的连续燃烧过程均具有较好的检测效果,且能够在起火初期检测到火焰目标并报警。在监测过程中,算法能够持续稳定地运行,具有较高的可靠性及实际系统的应用性。
(a) 开始燃烧
笔者提出了一种无锚框结构的新型火灾检测算法,有效解决了当前火灾检测算法面临的主要问题。采用了无锚框网络结构直接对特征图上每个位置进行回归和分类;
通过引入BFP模块提高了算法的多尺度检测能力;
通过设置融合因子显著提升了小目标的检测效果;
通过采用动态采样方式促使网络特征学习更加充分,提升了模型的检测性能。实验表明,与其他火灾检测算法相比,笔者提出的火灾检测算法检测精度高,抗干扰能力强,适用于复杂背景不同形态的火灾检测场景,具有较高的应用价值。未来将重点研究如何将火焰的时序信息引入算法模型中,利用火焰的运动特征进一步提升算法的检测效果。