《武汉工程大学学报》  2019年06期 580-585   出版日期:2021-01-24   ISSN:1674-2869   CN:42-1779/TQ
一种基于MobileNet的火灾烟雾检测方法


火灾是现代社会具有毁灭性的重大灾害之一。随着我国社会的快速发展,火灾的发生往往伴随着生命财产的重大损失。2018年,全国火灾情况造成超过2 000人受伤或死亡,直接损失超过30亿元。因此,在火势形成之前进行及时准确的检测具有重要意义。 在早期的火灾监控的技术中,基于传感器实现的火灾烟雾检测装置一般分为感光、感烟和感温三种类型。目前已经有采用多传感器融合识别火灾的方法取得了较好的效果[1]。近年来,图像模式识别技术的发展为解决实际问题提供了理论依据[2]。利用深度学习技术,可以直接接受原始图像输入,通过模拟人类神经细胞建立的卷积神经网络自动提取图像特征。目前深度学习技术在人脸识别[3]、字符识别[4]、图像分类[5]等领域都取得了较好效果,甚至超过了人类识别水平。本文的思路是结合深度学习技术,利用图像识别进行火灾识别,同时利用社会中广泛存在的视频监控设备进行数据采集,可以在火灾形成初期进行识别,从而实现快速、大范围的火灾检测,此外,该方法安装和使用成本适中,有利于进行推广。 随着深度学习的发展,基于计算机视觉并配合智能算法对场景内容进行识别和分析受到了国内外研究者的广泛关注。但相较于其他物体的识别,火灾烟雾检测的难点在于二者在形态上均具有不确定性,其中烟雾还具有透明度,易与图像的背景部分混合。有学者提出依靠对图像中火焰和烟雾的明度、颜色和运动情况等特征进行分析和提取来进行识别的方法[6]。利用稀疏光流算法跟踪运动区域,通过计算平均偏移量以及相位分布对烟雾进行判断,进而检测是否有火灾发生。刘颖等[7]提出基于潜在语义分析(latent semantic analysis, LSA)和支持向量机(support vector machine, SVM)的算法利用帧内特征检测烟雾。近年来,深度学习开始逐渐运用于各个领域。区别于传统框架,深度学习方法基于大量数据提取目标特征,可以进行更准确的判断。如Mao等[8]提出利用多通道卷积神经网络对火焰进行识别。陈俊周等[9]提出利用原始图像作为静态纹理,原始图像的光流序列作为动态纹理,融合两种纹理信息构建级联的卷积神经网络。Yin等[10]提出更深层级的14层卷积神经网络,通过将传统卷积神经网络中的卷积层替换为批规范化卷积层,加速训练过程并避免过拟合等问题。Muhammad等[11]提出类似于GoogleNet的网络结构,利用迁移学习的方法,在提高检测准确率的同时降低了卷积复杂度。 由于实际使用中的嵌入式设备通常无法满足大型卷积神经网络的计算和存储的需求,本文在深度卷积神经网络的基础上,引入更适合嵌入式设备的MobileNetV1网络,并配合运动检测方法,提出一种针对视频的火灾与烟雾检测方法。。 1 检测方法 1.1 检测区域的提取 利用了监控摄像机在空间位置、拍摄角度上的稳定性,以降低额外的计算开销,充分利用设备性能。首先读取视频中单帧图像作为原始图像,如图1(a)所示,将整幅画面以一定大小划分为若干个矩形区域,然后对整幅画面使用K-近邻(K-nearest neighbor,K-NN)背景减除器进行背景减除,提取出前景部分[12]的范围作为动态区域图像,如图1(b)所示。K-NN背景减除器是一种基于K-NN算法进行背景减除的算法[13],其接收若干帧连续的视频图像后,利用K-NN算法预测当前视频帧中的某一像素在当前视频帧中是否属于前景部分。其中判断当前视频帧中某像素是否为背景的计算方法见文献[14]。 在获得经过背景减除的动态区域图像后,需要对其进行阈值处理,将亮度值小于255的像素均归为0,处理后的图像如图1(c)所示。为了消除噪点,减少不必要的计算,本文对动态区域图像进行了腐蚀与膨胀等形态学操作。腐蚀可以描述为:将图像[A]与核[B]做卷积,核[B]有一个锚点,将锚点所指的像素值替换为该核内所指元素的最小值。腐蚀处理后图像如图1(d)所示。在图像[A]中点[x,y]的像素上,腐蚀后的像素值可以表达为: [Rx,y=minx’,y’: element x’,y’≠0Ax+x’,y+y’] (1) 利用相似的原理,膨胀可以描述为:将图像[A]与核[C]做卷积,核[C]有一个锚点,将锚点所值的像素值替换为该核内所指元素的最大值。膨胀处理后图像如图1(e)所示。在图像[R]中点[x,y]的像素上,膨胀后的像素值可以表达为: [Dx,y=maxx’,y’: element x’,y’≠0Rx+x’,y+y’] (2) 经过上述形态学操作后移除了一定噪点,平滑了前景的轮廓,得到了经过处理后的动态区域图像[D]。为了得到具体的检测区域,本文使用了积分图实现对区域内前景像素的快速统计[15]。积分图[E]中任意一点[x,y]的值是动态区域图像[D]中位于[x,y]左上方的所有像素的灰度值之和,即[Ex,y=x 图 5 实验效果图 Fig. 5 Experimental result image 为了更加客观准确地衡量模型效果,实验阶段设置ResNet-50卷积神经网络模型作为对照组。ResNet-50是由何凯明提出的一种卷积神经网络模型,其核心思想是引入identity shortcut connection直接跳过一个或多个层来解决当卷积神经网络层数增加时产生的梯度消失问题,在图像识别领域取得较好效果[18]。本文使用ResNet-50模型与MobileNet V1模型在相同的训练数据集下进行实验。实验结果如表3所示,由实验结果可知处理1 128个视频帧,MobileNet V1模型总处理时间为535.935 5 s,平均每帧图像耗时0.415 1 s,ResNet-50卷积神经网络模型总处理时间为966.132 5 s,平均每帧图像耗时0.856 5 s,本文模型处理图像的速度相比ResNet-50卷积神经网络快51.5%。而MobileNet V1的模型文件大小为12.3 MB,ResNet-50的模型文件大小为90.0 MB,本文模型的模型文件大小相比ResNet-50卷积神经网络小86.3%。通过比较,本文模型在略微损失准确率的情况下,大幅提升运行速度,同时缩减模型体积。 表 3 不同模型的实验结果对比 Fig. 3 Comparison of experimental results of different models [神经网络\&总输 入数 / 帧\&总时间 / s\&平均 时间 / s\&准确 率 / %\&模型 大小 / MB\&ResNet-50\&1128\&966.132 5\&0.856 5\&98.4\&90.0\&MobileNet V1\&1128\&535.935 5\&0.415 1\&98.2\&12.3\&] 4 结 语 在使用深度学习技术对火灾烟雾检测分类的基础上,解决了传统卷积神经网络计算量大,占用存储空间大,计算时间长的问题。由于火焰与烟雾在画面中通常处于运动状态,利用监控设备的稳定性,首先对视频中单帧图像采用K-NN背景减除器进行背景减除,再使用腐蚀与膨胀等操作进行降噪,可以较准确地选择出可能出现火焰或烟雾的范围。同时因为缩小了检测目标的查找范围,加快了检测速度。其次,引入了一种适合嵌入式设备等CPU计算能力有限的计算设备的卷积神经网络MobileNet V1对目标区域进行检测,该网络使用depthwise separate convolution将传统的卷积操作拆分为depthwise convolution和pointwise convolution,大大降低了卷积运算的参数量,提高了计算速度,降低了内存占用。实验结果表明,相比于传统的火灾烟雾检测方法,本文在保持较高识别准确率的基础上,实现了可在嵌入式设备上运行的火灾烟雾检测算法。