system: [SYSTEM]

user: 2. 火灾与烟雾识别过程 2.1. 运动目标检测 现在常用的运动目标检测方法主要可以分为三种：光流法、帧间差分法、背景减除法。摄像机采集的视频序列具有连续性的特点 [ 2 ] 。因为如果场景内没有运动目标，则连续帧的变化很微弱，存在运动目标，则连续的帧和帧之间会有明显地变化，所以我们采用的是帧间差分法。帧间差分法(Temporal Difference)就是借鉴了上述思想。由于场景中的目标在运动，目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧或三帧图像进行差分运算，不同帧对应的像素点相减，判断灰度差的绝对值，当绝对值超过一定阈值时，即可判断为运动目标，从而实现目标的检测功能。运动目标监测流程图如下图1所示。 图1. 运动目标监测流程图 帧差法的特点是实现简单，运算速度快，对于动态环境自适应性是很强的，对光线的变化不是十分的敏感。但是在运动体内易产生空洞．特别是目标运动速度较快时，影响目标区域准确提取。 2.2. 神经网络选取 在图像识别问题中，输入层的每一个神经元可能代表一个像素的灰度值。但这种神经网络用于图像识别有几个问题，一是没有考虑图像的空间结构，识别性能会受到限制；二是每相邻两层的神经元都是全相连，参数太多，训练速度受到限制 [ 3 ] 。 而卷积神经网络就可以解决这些问题。卷积神经网络使用了针对图像识别的特殊结构，可以快速训练。因为速度快，使得采用多层神经网络变得容易，而多层结构在识别准确率上又很大优势。卷积神经网络如下图2所示。 图2. 卷积神经网络图 做烟雾和火焰我们分别采用两种神经网络，做烟雾识别我们采用的是mobilenet网络，做火焰识别我们采用的是使用tensorflow自己搭建的神经网络结构，这样可以使火焰和烟雾得到更好的识别效果 [ 4 ] 。 Mobilenet是一种基于深度可分离卷积的模型，深度可分离卷积是一种将标准卷积分解成深度卷积以及一个1 × 1的卷积即逐点卷积。对于MobileNet而言，深度卷积针对每个单个输入通道应用单个滤波器进行滤波，然后逐点卷积应用1 × 1的卷积操作来结合所有深度卷积得到的输出。而标准卷积一步即对所有的输入进行结合得到新的一系列输出。深度可分离卷积将其分成了两步，针对每个单独层进行滤波然后下一步即结合。这种分解能够有效的大量减少计算量以及模型的大小。 我们为了提高识别的精度，我们使用的是mobilenet-ssd。SSD是为了实现实时目标检测而设计的。Faster R­CNN使用一个区域建议网络region proposal network (RPN)产生可能包含物体的建议区域(一般训练时2000，测试时600)，并且利用这些建议区域进行微调对物体进行分类和定位。Faster RCNN整个处理过程大约是每秒7帧，这远远不能满足实时性。SSD通过取消RPN来加速处理过程。为了弥补精度上的损失。 SSD采取了一些改进方法如： 1) 提取了不同尺度的特征图来做检测，大尺度特征图(较靠前的特征图)可以用来检测小物体，而小尺度特征图(较靠后的特征图)用来检测大物体。这些改进方法允许SSD使用较低分辨率的图像就可以达到Faster R­CNN的精度，而且处理速度更快。从下图可以看出，SSD达到了实时处理的速度并且精度还强于Faster R­CNN。(精度的评价指标是m AP­预测平均精度)。 2) 采用了不同尺度和长宽比的先验框(Prior boxes， Default boxes，在Faster R­CNN中叫做锚(Anchors)。 3) 采用CNN来直接进行检测，而不是像Faster RCNN Yolo那样在全连接层之后做检测，实现了全卷积。 4) 将空洞卷积应用于目标检测。 识别火焰我们使用自己搭建的神经网络，网络的结构是→卷积–池化–卷积–池化–卷积–池化–全连接层–全连接层–全连接层，神经网络的深度对于神经网络的识别率是很关键的，神经网络深度过深的网络识别的效果不一定会很好，但是深度太浅的神经网络识别的结果一定是不好的。在搭建的神经网络的过程中使用的tflearn，这是一个和tensorflow息息相关的一个第三方包，用来弥补tensorflow搭建网络过于复杂的问题 2.3. 火焰特征提取 从火焰和烟雾的纹理特征和几何特征入手，实现对火焰和烟雾的准确识别 [ 5 ] 。 火焰模型和运动检测一般采用几何特征分析。采用火焰颜色模型或运动检测提取的图像区域作为输入。几何特征包括轮廓粗糙度、面积增长率和圆形度 1) 轮廓粗糙度 轮廓粗糙度是指物体轮廓的周长与其凸壳的周长之比。由于火焰的不规则性，在大多数情况下，图像中火焰的轮廓是凹的，其轮廓周长大于凸壳的轮廓周长。因此，可以设置阈值，当轮廓粗糙度大于一定阈值时，认为该区域可能是火焰区域。火焰轮廓区域特征图如下图3所示。 图3. 火焰区域特征图 2) 圆形度 圆是同一周长下面积最大的几何图形。如果物体的形状离圆越近，C k 越大；否则，形状越复杂，C k 越小。C k 的值在0和1之间。同样，由于火焰形状不规则，可以设置阈值C (如1/2.56) C k = 4 π A k P k 2 ，   k = 1 ， 2 ， ⋯ ， n (1) 其中A k 表示区域的面积，P k 表示区域的周长，C k 表示区域的圆形度。 3) 面积增长率 在火灾的初始阶段，火焰在图像中的面积不断增大。在燃烧过程中，火焰形状的变化也会带来一定程度的面积变化，而一般物体的面积不会经常变化。因此，还可以设置阈值来确定某个区域是否可能是火焰区域。 G i = a r e a ( R i ) t − a r e a ( R i ) t 0 t − t 0 (2) area(R t ) t 即为区域R i 在时间点t的面积值，则G i 为从t 0 到t时间段内R i 区域的面积变化率。 在火灾的初始阶段，火焰在图像中的面积不断增大。在燃烧过程中，火焰形状的变化也会带来一定程度的面积变化，而一般物体的面积不会经常变化。因此，还可以设置阈值来确定某个区域是否可能是火焰区域。 几何特征要求火焰在图像中有一个清晰的轮廓。图像中火焰轮廓越清晰，上述计算的特征值就越有价值。图像中的噪声轮廓也会影响上述特征。此时，使用硬边界形式进行判断并不理想，可以考虑基于机器学习的决策方法。 纹理特征通常在颜色和运动分析之后进行分析。感兴趣的感兴趣区域的纹理特征本质上是其像素值的空间变化的统计特征 一阶统计：一阶统计特征表示每个像素值本身的属性，不考虑像素与相邻像素之间的关系。利用区域灰度直方图计算一阶统计特征。常见的一阶统计特征包括均值、方差、倾斜度等。 二阶统计：二阶统计特征表示像素与相邻像素之间的空间关系，采用灰度共生矩阵计算。灰度直方图是图像上单个像素的某一灰度的统计结果，而灰度共生矩阵是图像上保持一定距离的两个像素的某一灰度的统计结果。常见的二阶统计特征包括熵和对比度。火焰特征提取图如下图4所示。 图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)。 图5. 卷积神经网络工作过程 Mobilenet神经网络架构，如下表1所示。 Table 1 Mobileenet neural network architectur Type/Stride Filter Shape Input Size Conv/s2 3*3*3*32 224*224*3 Conv dw/s1 3*3*32 dw 112*112*32 Conv/s1 1*1*32*64 112*112*32 Conv dw/s2 3*3*64 dw 112*112*64 Conv/s1 1*1*64*128 56*56*64 Conv dw/s1 3*3*128 dw 56*56*128 Conv/s1 1*1*128*128 56*56*128 Conv dw/s2 3*3*128 dw 56*56*128 Conv/s1 1*1*128*256 28*28*128 Conv dw/s1 3*3*256 dw 28*28*256 Conv/s1 1*1*256*256 28*28*256 Conv dw/s2 3*3*256 dw 28*28*256 Conv/s1 1*1*256*512 14*14*256 5×Conv dw/s1 5×Conv/s1 3*3*512 dw 1*1*512*512 14*14*512 14*14*512 Conv dw/s2 3*3*512 dw 14*14*512 Conv/s1 1*1*512*1024 7*7*512 Conv dw/s2 3*3*1024 dw 7*7*1024 Conv/s1 1*1*1024*1024 7*7*1024 Avg Pool/s1 Pool 7*7 7*7*1024 FC/s1 1024*1000 7*7*1024 Softmax/s1 Classifier 7*7*1024 表1. Mobileenet神经网络架构 除全连接层外，所有层后面都接着BN、Relu，如下图6所示，全连接层接Softmax用于分类。MobileNet共有28层 [ 8 ] 。 图6. 层间连接图 实际运算速度不仅与乘–加(Mult-Adds)操作的次数有关，还与矩阵的稀疏度有关，非结构化稀疏矩阵的运算速度通常低于稠密矩阵的运算速度 [ 9 ] 。矩阵运算时需要使用im2col将矩阵转化为列向量进行计算，im2col的示意图如下图7所示。 图7. Im2col的示意图 但是MobileNet中使用的1 × 1，1 × 1的卷积不需要im2col操作，可以节省大量时间，MobileNet花费95%的时间在1 × 1，1 × 1的卷积上，1 × 1，1 × 1的卷积上包含了75%的参数，剩下的参数大都在全连接层上，具体参数见下表2。 Table 2 Other parameter Type Mult-Adds Parameters Conv 1*1 94.86% 74.59% ConvDW 3*3 3.06% 1.06% Conv 3*3 1.19% 0.02% FullyConnected 0.18% 04.33% 表2. 其他参数 MobileNet使用的优化方法为asynchronous gradient descent，与Inception-V3相同，因为是小网络，不用担心过拟合，所以只使用少量/不用正则与数据增强 [ 10 ] 。