许文倩
(福建省特种设备检验研究院,福州 350008)
应急管理部消防救援局在2021年2月1日发布了2020年全国火灾情况:2020年全年全国消防救援队共接报火灾25.2万起,死亡1183人,受伤775人,直接财产损失40.09亿元. 为了减少火灾对生命与财产造成的损失,在火灾初期发现火源、定位火源具有重大意义.
现阶段普遍采取烟雾报警器、红外探测器以及人工监控等方法对火灾进行预警以及识别. 然而,此类检验方法存在滞后性,传统监控方法对浓烟等模糊环境易形成误判,在有可燃气体、可燃物的环境中对点火、抽烟此类微小火源或动作等所导致的火灾常常出现漏判等等问题. 近年来,随着计算机视觉(computer version)以及深度卷积神经网络(deep convolutional neural networks)等算法的蓬勃发展,此类微小或复杂的火源图像特征可通过深层神经网络进行训练或学习,从而提高模型对现实的表达能力[1-4]. 因此,本研究通过初步分析火焰结构、采用特征融合等方法[5-6]搭建多层卷积神经网络,将火源作为火灾引发的重要因素,在传统监控、中控系统加入机器视觉的方法对目标进行跟踪检测,如图1所示. 当监控系统检测到火源时将信号反馈回中控并报警,使工作人员迅速获取火源信息. 该系统有助于在火源初期进行定位与预警,正确合理辅助灭火救援,从源头控制火灾发生与火势蔓延,避免人员以及财产损失.
图1 火源预警监控系统Fig.1 Fire source warning and monitoring system
该系统的检测核心为搭建针对火源的目标检测算法,目前常用的目标检测方法有R-CNN(Regions with Convolutional Neural Network)、Fast R-CNN(Fast Regions with Convolutional Neural Network)、SSD(Single Shot Detector)、YOLO(You Only Look Once)等. 其中YOLO 系列网络可将整张图片作为网络的输入,结果返回输出层所回归的边界框位置及其所属类别,该方法是目前业界最先进的物体检测的方法之一. 它具有处理速度快、检测精度高,并且能完成不同尺度大小的目标检测的能力[7]. 该方法已用于安全帽佩戴检测[8-10]、遥感影像目标检测[11]、道路信息检测[12-13]、行人检测[14-15]、工件零件识别[16]等. YOLO 系列第三版检测算法YOLO v3,在小目标检测精度上有显著提高[17]. 因此,本研究采用基于YOLO v3 网络结构,以火源作为目标搭建检测系统,从而提高火源检测的准确度.
此外,在数据集收集方面,采样火源样本以及火灾现场存在危险性,使得采样难度大、数据集稀少,对算法优化造成了困难. 因此,研究采用虚拟现实仿真技术,模拟真实环境静态和动态特性[18],选用Unity 3D仿真软件对火源场景进行模拟,增加数据样本,提高收集数据的效率,并为样本的多样性提供了有力支持.
由于传统监控系统配置图形处理器(GPU)存在升级费用高、改造难度大等问题. 因此,研究采用python 作为控制语言,搭建一种基于YOLO v3、可嵌入中央处理器(CPU)运行监控、中控的火源预警监控系统,系统设计具体过程如图2所示. 通过现实与虚拟仿真采样数据集,根据火源图像特征进行图像增强,构建目标检测网络,基于QT搭建监控软件接口,对危险火源进行预警,并记录预警时间信息. 实验结果表明,该软件具有较高准确率,可在CPU环境下运行检测,并满足火源检测预警的需求.
图2 监控系统结构Fig.2 Structure of warning and monitoring system
样本收集采用虚拟现实混合方法进行,其中现实样本数据主要来源于百度开放数据集(https://aistudio.baidu.com/)、fire image data set for dunnings 2018 study(https://collections.durham.ac.uk/)等互联网数据. 对部分火源火灾视频样本采用OpenCV分割视频帧,将其改变为图片格式的数据样本[19].
由于火源情况多变,且室内事故现场样本稀少. 为此,采用Unity 3D 对事故进行仿真(图3)从而增加样本数据量,扩大火源种类覆盖率.
图3 火灾现场室内仿真案例Fig.3 Indoor simulation of fire scenes
由于现实监控中,监控图像分析对火源探测存在小样本以及模糊样本的问题. 为了使火源在火苗阶段即可检测预警,在研究中对该类现象进行模拟仿真,将部分数据集滤波并进行图像模糊. 图像滤波变换如公式(1):
其中:f(x,y)为原始图像;g(x,y)为滤波图像;k为模糊核(传递函数);n为其他视觉噪声[20].
将图像中每一个像素f(xi,yi)的取值重置为周边相关像素的均值、中位值等.γ为该像素取值与周边像素的模糊半径,则像素f(xi,yi)相关取值的像素点为f(xi±γ,yi±γ),当γ=1 时,与像素f(xi,yi)相关取值的像素点为f(xi±1,yi±1). 因此,γ越大,图像失真越严重,对应的视觉效果越模糊,从而实现图像增广的目的[21].模糊案例如图4所示,将原始样本进行了均值滤波,左图原始图片,右图为模糊效果图.
图4 测试样本模糊处理Fig.4 Blur processing of test sample
在数据集标注方面,采用图像标注工具labelme 对火源图片进行打标. 现实火源以及火灾现场中,火焰与传播媒介、烟雾等会同时存在,木柴等引火物体作为火源标定误判的影响因素,标定期间尽量避免框入检测范围. 此外,增加类火颜色物体,如发光物,木色、黄色物品等图片的采样与仿真,并针对性地对火焰区域进行标注,从而避免此类情况引起的误报.
研究采用了YOLO v3作为检测主干网络,采用多尺度融合结构,保障大小物体识别率,在检测前期对监控图像进行增强预处理,提高识别效果.
在监控状态下,室内、夜晚等环境状态图片存在光线不明、像素较低等问题. 因此,增强图片对比度与亮度有助于提高识别效果. 火源作为火灾引发的导火索,在火焰中心普遍比周围亮度高. 因此,采用线型变化增强方法将输入网络图片进行预处理,如式(2)所示:
式中:I(r,c)为原始图片像素点;O(r,c)为增强图片像素点;H、W分别为图像高度与宽度. 研究设置a=1.2增强对比度,b=10 提高亮度从而提高火源提取效果.
主干网络采用YOLO v3,Darknet53 作为特征提取网络主体[17],包含53 个卷积层. 为了避免梯度消失和梯度爆炸的问题,借鉴了残差网络(residual network)结构,在层间设置快捷链路(shortcut connections). Darknet53网络残差单元由ResX以1、2、8、8、4的数量组成5个残差模块堆叠而成. 残差模块ResX由DBL 单元和若干个Resunit 组合而成,其中,DBL 为深度卷积,Resunit 将输入的特征图进行两次卷积堆叠.
输入的样本图片经过大小重塑,统一尺寸为416×416,经过5 个步长为2 的残差模块下采样,分别得到5 个尺度的特征图. 为了加强算法对小目标检测的精确度,采用类似特征金字塔FPN(feature pyramid networks)的upsample和融合方法,输出为13×13×1024的特征图. 融合多层特征,预测层的特征图深度按式3×(5+C)计算,5表示预测框的宽度、高度、中心点横纵坐标以及网格置信度,C表示总类别数[17]. 研究中火源作为被测目标,即C=1,因此,检测网络将在y1(18,13,13)、y2(18,26,26)、y3(18,52,52)共3个不同尺度的特征图上完成检测. 其网络结构如图5所示.
图5 YOLO v3 检测结构[9]Fig.5 The structure of YOLO v3
网络采用目标边界预测方法,如图6所示,以特征图左上角为原点,预测框位置偏移量为cx、cy,每个小格的长度为1. 在416×416尺度下对目标框中心点横、纵坐标偏移值,宽度与高度尺度缩放网络预测输出的大小为(tx,ty,tw,th),pw与ph为目标框的映射宽与高. 采用sigmoid函数(σ)对tx、ty进行归一化处理,通过tw、th与pw、ph相互作用后,转换预测框为相对于图片的坐标(bx,by,bw,bh). 预测结果按下式计算:
图6 边框位置预测示意图Fig.6 Schematic diagram of bounding box position prediction
此外,YOLO v3 预测采用锚框计算方法,利用K均值聚类(kmeans clustering)粒子群,为每类下采样设定3种先验框尺寸[17],总共聚类出9种尺寸的锚框,研究依据火源识别数据集进行维度重聚类,采用的9个锚框分别为(10,14)(19,16)(23,31)(37,64)(38,14)(43,46)(51,32)(76,60)(109,98).
研究采用Anaconda 环境,Python3.7 语言,PyCharm 编辑器进行,基于Keras并可以在CPU模式运行. 算法采用仿真图片与现实采样相结合进行训练与验证,共使用4540 张训练样本,600 张优化集以及125 张测试样本,识别效果如图7所示. 经验证,该算法的火源识别MAP可达87.2%,该网络具有良好的泛化能力和健壮性,在满足检测要求的前提下,具有较高的检测精度,满足应用要求.
图7 火源检测效果图Fig.7 Fire detection results of test samples
此外,研究基于QT设计软件接口,连接传统监控系统并测试检测性能如图8所示. 使用训练好的模型来检测火源以及火灾险情,当检测出火焰出现于监控检测的视野中,系统将发出预警,警告时间、内容将被用户记录保存. 测试证明,该方法检测精度较好,对火灾险情有预警作用.
图8 报警和检测系统的检测软件界面(左:待检状态,右:检测状态)Fig.8 The detection interfaces of the warning and monitoring system(left:initial state,right:inspecting state)
研究设计基于YOLO v3的火源预警监控系统,有效升级传统监控系统,数据集采用仿真结合实际混合采样增广方法,可实现针对多场景小目标火源进行检测,并采用图像增强预处理方法,有效增强识别火源能力,有助于防范火灾于未然.
由于目前火源数据图片较少,下一步将继续根据研究提出的仿真以及添加不同滤波方法进行图像增广,从而提升网络系统识别能力. 此外,预警监控系统将结合烟雾报警器、探测系统等传感器,进行多传感器融合分析,进一步提高目标检测精度和检测速度.