1. 引言
火灾的发生一直是人们日常生活中最难预防的灾害之一 [1] 。今天,随着世界经济的发展,城市面积逐渐扩大,出现了许多大型的空间建筑,如大公司、商场、住宅楼等,建筑内部结构复杂多样。通常这些建筑物人流较多,无论是建筑材料还是建筑放置的物品,越易燃,就越容易引起火灾的发生。近10年来,共发生火灾3.1万起,造成474人死亡,直接财产损失15.6亿元。中国高层建筑火灾数据分析显示,在过去10年里,中国发生了3.1万起火灾。数据显示,8层以上24米以上高层建筑34.7万幢,100米以上超高层建筑6000多栋,居世界首位。随着社会的逐步发展,人们一直在总结消防救援经验,试图将火灾的经济损失降到最低。杜绝火灾的发生是不现实的,但如果我们可以找到正确的方式,可以检测火灾的发生,通过自动报警,让人们快速找到火源,用最短的时间将它熄灭,可以极大地减少火灾损失,因此,火焰和烟雾的识别是人们继续研究的重要内容。随着计算机技术和电子技术的发展,“智慧城市”已成为城市建设的主题,智能监控系统已应用于各种场景环境。与传统的火灾探测器相比,模式识别技术能够以更大的监测距离和更广的应用范围探测火灾情况,为人们及时准确地探测火灾提供了一种新的方法。
2. 火灾与烟雾识别过程
2.1. 运动目标检测
现在常用的运动目标检测方法主要可以分为三种:光流法、帧间差分法、背景减除法。摄像机采集的视频序列具有连续性的特点 [2] 。因为如果场景内没有运动目标,则连续帧的变化很微弱,存在运动目标,则连续的帧和帧之间会有明显地变化,所以我们采用的是帧间差分法。帧间差分法(Temporal Difference)就是借鉴了上述思想。由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧或三帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。运动目标监测流程图如下图1所示。

Figure 1. Flow chart of moving target monitoring
图1. 运动目标监测流程图
帧差法的特点是实现简单,运算速度快,对于动态环境自适应性是很强的,对光线的变化不是十分的敏感。但是在运动体内易产生空洞.特别是目标运动速度较快时,影响目标区域准确提取。
2.2. 神经网络选取
在图像识别问题中,输入层的每一个神经元可能代表一个像素的灰度值。但这种神经网络用于图像识别有几个问题,一是没有考虑图像的空间结构,识别性能会受到限制;二是每相邻两层的神经元都是全相连,参数太多,训练速度受到限制 [3] 。
而卷积神经网络就可以解决这些问题。卷积神经网络使用了针对图像识别的特殊结构,可以快速训练。因为速度快,使得采用多层神经网络变得容易,而多层结构在识别准确率上又很大优势。卷积神经网络如下图2所示。

Figure 2. Convolutional neural network diagram
图2. 卷积神经网络图
做烟雾和火焰我们分别采用两种神经网络,做烟雾识别我们采用的是mobilenet网络,做火焰识别我们采用的是使用tensorflow自己搭建的神经网络结构,这样可以使火焰和烟雾得到更好的识别效果 [4] 。
Mobilenet是一种基于深度可分离卷积的模型,深度可分离卷积是一种将标准卷积分解成深度卷积以及一个1 × 1的卷积即逐点卷积。对于MobileNet而言,深度卷积针对每个单个输入通道应用单个滤波器进行滤波,然后逐点卷积应用1 × 1的卷积操作来结合所有深度卷积得到的输出。而标准卷积一步即对所有的输入进行结合得到新的一系列输出。深度可分离卷积将其分成了两步,针对每个单独层进行滤波然后下一步即结合。这种分解能够有效的大量减少计算量以及模型的大小。
我们为了提高识别的精度,我们使用的是mobilenet-ssd。SSD是为了实现实时目标检测而设计的。Faster RCNN使用一个区域建议网络region proposal network (RPN)产生可能包含物体的建议区域(一般训练时2000,测试时600),并且利用这些建议区域进行微调对物体进行分类和定位。Faster RCNN整个处理过程大约是每秒7帧,这远远不能满足实时性。SSD通过取消RPN来加速处理过程。为了弥补精度上的损失。
SSD采取了一些改进方法如:
1) 提取了不同尺度的特征图来做检测,大尺度特征图(较靠前的特征图)可以用来检测小物体,而小尺度特征图(较靠后的特征图)用来检测大物体。这些改进方法允许SSD使用较低分辨率的图像就可以达到Faster RCNN的精度,而且处理速度更快。从下图可以看出,SSD达到了实时处理的速度并且精度还强于Faster RCNN。(精度的评价指标是m AP预测平均精度)。
2) 采用了不同尺度和长宽比的先验框(Prior boxes, Default boxes,在Faster RCNN中叫做锚(Anchors)。
3) 采用CNN来直接进行检测,而不是像Faster RCNN Yolo那样在全连接层之后做检测,实现了全卷积。
4) 将空洞卷积应用于目标检测。
识别火焰我们使用自己搭建的神经网络,网络的结构是→卷积–池化–卷积–池化–卷积–池化–全连接层–全连接层–全连接层,神经网络的深度对于神经网络的识别率是很关键的,神经网络深度过深的网络识别的效果不一定会很好,但是深度太浅的神经网络识别的结果一定是不好的。在搭建的神经网络的过程中使用的tflearn,这是一个和tensorflow息息相关的一个第三方包,用来弥补tensorflow搭建网络过于复杂的问题
2.3. 火焰特征提取
从火焰和烟雾的纹理特征和几何特征入手,实现对火焰和烟雾的准确识别 [5] 。
火焰模型和运动检测一般采用几何特征分析。采用火焰颜色模型或运动检测提取的图像区域作为输入。几何特征包括轮廓粗糙度、面积增长率和圆形度
1) 轮廓粗糙度
轮廓粗糙度是指物体轮廓的周长与其凸壳的周长之比。由于火焰的不规则性,在大多数情况下,图像中火焰的轮廓是凹的,其轮廓周长大于凸壳的轮廓周长。因此,可以设置阈值,当轮廓粗糙度大于一定阈值时,认为该区域可能是火焰区域。火焰轮廓区域特征图如下图3所示。

Figure 3. Characteristic diagram of flame area
图3. 火焰区域特征图
2) 圆形度
圆是同一周长下面积最大的几何图形。如果物体的形状离圆越近,Ck越大;否则,形状越复杂,Ck越小。Ck的值在0和1之间。同样,由于火焰形状不规则,可以设置阈值C (如1/2.56)
(1)
其中Ak表示区域的面积,Pk表示区域的周长,Ck表示区域的圆形度。
3) 面积增长率
在火灾的初始阶段,火焰在图像中的面积不断增大。在燃烧过程中,火焰形状的变化也会带来一定程度的面积变化,而一般物体的面积不会经常变化。因此,还可以设置阈值来确定某个区域是否可能是火焰区域。
(2)
area(Rt)t即为区域Ri在时间点t的面积值,则Gi为从t0到t时间段内Ri区域的面积变化率。
在火灾的初始阶段,火焰在图像中的面积不断增大。在燃烧过程中,火焰形状的变化也会带来一定程度的面积变化,而一般物体的面积不会经常变化。因此,还可以设置阈值来确定某个区域是否可能是火焰区域。
几何特征要求火焰在图像中有一个清晰的轮廓。图像中火焰轮廓越清晰,上述计算的特征值就越有价值。图像中的噪声轮廓也会影响上述特征。此时,使用硬边界形式进行判断并不理想,可以考虑基于机器学习的决策方法。
纹理特征通常在颜色和运动分析之后进行分析。感兴趣的感兴趣区域的纹理特征本质上是其像素值的空间变化的统计特征
一阶统计:一阶统计特征表示每个像素值本身的属性,不考虑像素与相邻像素之间的关系。利用区域灰度直方图计算一阶统计特征。常见的一阶统计特征包括均值、方差、倾斜度等。
二阶统计:二阶统计特征表示像素与相邻像素之间的空间关系,采用灰度共生矩阵计算。灰度直方图是图像上单个像素的某一灰度的统计结果,而灰度共生矩阵是图像上保持一定距离的两个像素的某一灰度的统计结果。常见的二阶统计特征包括熵和对比度。火焰特征提取图如下图4所示。

Figure 4. Flame feature extraction figure
图4. 火焰特征提取图
2.4.神经网络特征训练过程
对于烟雾识别的训练过程就是先对图片的加载,分为训练数据集和测试数据集,测试数据集和训练数据集都有标签,用于和识别的结果进行对比,然后进行反馈传递,改变神经网络的参数,一遍遍的修改神经元的参数,最后达到一个很低的loss以及很高的accuracy [6] 。这里使用的keras搭建的网络,输出的数据先是经过mobilenet,然后是model_mobilenet.predict(x).reshape((7 * 7 * 1024)),得到一些预测的数据,然后再经过自己搭建的神经网络,最后得到自己搭建神经网络的预测结果,反向传递修改的只是自己搭建神经网络的参数 [7] 。monilenet卷积神经网络工作过程如图5所示,一个标准的卷积1(a)被分解成深度卷积1(b)以及1 × 1的逐点卷积1(c)。

Figure 5. The working process of convolutional neural network
图5. 卷积神经网络工作过程
Mobilenet神经网络架构,如下表1所示。

Table 1. Mobileenet neural network architecture
表1. Mobileenet神经网络架构
除全连接层外,所有层后面都接着BN、Relu,如下图6所示,全连接层接Softmax用于分类。MobileNet共有28层 [8] 。
实际运算速度不仅与乘–加(Mult-Adds)操作的次数有关,还与矩阵的稀疏度有关,非结构化稀疏矩阵的运算速度通常低于稠密矩阵的运算速度 [9] 。矩阵运算时需要使用im2col将矩阵转化为列向量进行计算,im2col的示意图如下图7所示。

Figure 7. Schematic diagram of im2col
图7. Im2col的示意图
但是MobileNet中使用的1 × 1,1 × 1的卷积不需要im2col操作,可以节省大量时间,MobileNet花费95%的时间在1 × 1,1 × 1的卷积上,1 × 1,1 × 1的卷积上包含了75%的参数,剩下的参数大都在全连接层上,具体参数见下表2。
MobileNet使用的优化方法为asynchronous gradient descent,与Inception-V3相同,因为是小网络,不用担心过拟合,所以只使用少量/不用正则与数据增强 [10] 。
3. 实验结果与分析
本文使用的实验数据集来自于火焰烟气开放数据集和网络采集。实验数据集分为训练集和测试集,图像数据均来自不同的场景,有利于模型的训练和推广 [11] 。可以看出,本文使用的数据集属于小数据集,因此本文采用Image Net大数据集作为迁移学习的数据集。图像网分类数据集包含1000个类别的图像数据。大量丰富的数据为基于深度迁移学习的模型构建提供了有力的支持。
基于mobilenet的图像处理的特点是无论从图片细节显示或其他高级图像的抽象特点如边缘、纹理等特征,这些都是可以详细地反映在卷积过滤之后,这主要是因为mobilenet训练拥有的大量数据,使训练mobilenet网络学习样本的抽象特性得到了更详细和准确的方法。一般情况下,将图像网络数据集中训练好的mobilenet模型使用到火焰烟雾识别问题中,能够较好地提取了图像的抽象特征,从而提高了模型的泛化能力。
本文中使用的方法有火焰和烟雾识别约93%的速度,但它缺乏学习能力的微烟数据集。这主要是因为前者有很大的依赖性对于数据,需要极其大量数据学习。火焰与烟雾识别结果如下图8所示。

Figure 8. Flame and smoke identification results
图8. 火焰与烟雾识别结果
4. 结论
本文针对室内火灾安全需求和现火焰烟雾识别的不足,将神经网络引入火焰烟雾识别的设计。本文采用神经网络中mobiletnet网络的结构,提出了可高效识别室内火焰烟雾的方法,省去了用户对家庭火灾安全的烦恼,识别成功率达到了93%。未来我们会将视线注视到火焰烟雾识别其他场景相结合,并进一步研究运动学检测方法,神经网络的其他模型与算法,深度学习分类方法等技术,让更多的用户体验到人工智能所带来的便利,使用户的生活安全提高一个层次。因此,本系统设计具有很高的研究意义和实用价值。
基金项目
“中央高校基本科研业务费专项资金资助” (Supported by the Fundamental Research Funds for the Central Universities) 2572019BF03。