城镇森林交界域视频烟雾检测算法

2018-01-18 09:20唐洋潘伟
计算机工程 2018年1期
关键词:烟雾深度特征

,唐洋,潘伟

(中国电子科技集团公司第三十八研究所 安徽省公共安全应急信息技术重点实验室,合肥 230028)

0 概述

烟雾是火灾早期的重要特征,利用视频监控以及视频智能分析实现视频烟雾的实时监测和火灾预警是近年来计算机视觉和公共安全领域的一个重要研究内容。城镇森林交界区域的视频烟雾监控与森林、城区或者室内等环境相比更加复杂,需要更精准的算法识别烟雾并且降低误报率。

当前视频烟雾检测算法主要设计思想为:首先利用运动目标提取算法[1-2]从背景中提取出运动变化区域,然后通过人工设计特征方法或者结合机器学习方法进行目标识别。例如:文献[3]利用烟雾的YUV颜色空间特征对图像区域进行检验,排除非烟雾目标,但诸多实验表明颜色信息只能作为一种“较弱”的特征进行使用,对于阈值的设定较为敏感;文献[4]利用小波变换方法分析图像频谱,通过构建烟雾目标的衰减特征与其他目标进行区分。但该方法在浅色背景情况下的应用效果不理想;文献[5]利用分形思想构建烟雾动态扩散特征,从而建立早期火灾烟雾识别模型。受风力影响,烟雾运动区域不一定满足该特征,因此,该模型在室外大空间场景下不适用;文献[6]对烟雾图像进行双树复小波变换,并采用隐性马尔可夫模型对烟雾纹理建模,通过支持向量机实现烟雾的检测,一定程度上提高了烟雾识别的实时性和准确性。文献[7]采用减法聚类确定模糊规则数,建立初始模糊系统,并通过神经网络的自学习机制调整前提参数和结论参数,确定模糊推理规则并判定是否为烟雾。在固定场景下以上方法均取得了较高的识别精度,但是面对城镇森林交界域复杂的背景、光照、天气条件,误报率较高,因此,需要一种抗干扰性强的识别方法来提高森林烟雾的识别精度,降低误报率。

得益于计算机异构计算能力的快速提升,深度学习成为机器学习近年来一个飞速发展的领域,其在图像分类、语音识别和文本分类领域均获得了极大的成功。在图像分类上,深度学习利用深度卷积神经网络,通过反向传播训练和修正各层网络模型参数实现了目标特征的自动提取[8]。为此,本文提出一种基于深度学习的视频图像烟雾检测算法。首先采用ViBe(Visual Background extractor)背景建模方法提取视频图像中的变化区域,然后利用烟雾静态特征(如模糊特性、颜色特征)初步定位疑似区域,再通过烟雾动态特征进一步排除部分干扰,最后采用深度学习对疑似区域进行识别,得到最终结果。考虑到图像处理的实时性问题,算法采用级联分类器的架构,并在具体实现上大量使用并行计算技术,以满足城镇森林交界区域多路视频烟雾实时检测的应用要求。

1 城镇森林交界域场景分析与烟雾识别

1.1 城镇森林交界域场景分析

火灾烟雾是可燃物在燃烧完全和不完全情况下高分子化合物分解而产生的固体和气体混合物。烟气的主要成分是碳,还包含有一氧化碳、硫化氢和氰化氢等有毒气体。烟气在视觉上表现为和周围环境之间存在一定浓度差,具有一定的形体效应,烟雾对周围的遮挡程度在边缘最为明显,边缘的背景部分时隐时现,这是火灾烟雾视频图像的重要特征。

交界域火灾烟雾相机多架设在山顶上,多采用高空瞭望和云台旋转形式对大面积区域进行视频监控,在需要关注局部细节时,可采用调焦形式拉近目标距离。整体上,烟雾视频探测容易受到以下因素影响,在设计烟雾探测算法需要进行综合考虑:

1)光照:强光条件下,表面光滑目标(如湖面)会产生反射,产生类似于烟雾的颜色空间特征,形成干扰。

2)相机运动:云台在移动或者相机受风力影响发生抖动情况下,相机视场会发生变化,非运动脱焦模糊区域有可能被误判为运动物体进而识别为烟雾。

3)类烟雾目标:白色墙体建筑在墙体受强光照射条件下,都会产生类似于烟雾的效果。在森林和街道区域,白色车辆慢速移动条件下在镜头模糊情况下也会产生类似于烟雾的图像特征。

1.2 ViBe背景建模方法

ViBe算法是一种基于样本随机聚类的背景建模算法,其特点是计算量小、占用内存少,是目前普遍采用的一种运动目标提取算法[1]。ViBe算法在初始化时为每个像素点建立一个样本集,样本集中的样本值包含该像素点过去的像素和邻近像素点的像素值,通过比较当前像素值和样本集中的值来判断是否属于前景像素点,并通过随机的方式对样本集合进行更新。同时,ViBe的并行特性使得计算过程能够移植到GPU上,加速计算过程。

使用ViBe方法后,对运动图像进行腐蚀和开操作,排除由于相机抖动导致的边缘噪点,可以得到如图1所示的运动区域。

图1 运动区域提取结果

1.3 纹理特征判据

烟雾的出现会导致所在图像区域出现一定的模糊,导致细节丢失,使得该部分无法准确提取角点[9],而其他干扰目标则可能带有显著纹理特征,所以,可利用该现象作为一个判据,排除部分运动刚体目标干扰。从图2实例中可以看到烟雾区域只能在边缘部分提取到部分角点,内部则无法提取到角点,而图像其他纹理较为明显区域,则会提取到很多角点。

图2 角点提取实例

假设通过ViBe提取到运动区域S,利用Harris角点检测方法检测到该区域内角点数量为Nc,则角点数量运动区域面积比率为:

可以设置rc的阈值Tc,当rc

1.4 烟雾颜色模型

烟雾区域与背景一般具有明显的色彩差异,但内部具备相似性,因此,可以通过相应的颜色模型对烟雾和其他目标加以区分。本文采用以下模型从疑似目标中提取出疑似烟雾区域,必须要说明:多数情况下烟雾是灰白色的,但颜色特征只能作为“弱特征”加以使用,而不能设定严格的阈值。本文采用的烟雾颜色特征主要有2类:

1)YCbCr颜色空间特征

文献[10]通过统计发现,烟雾都是灰白色的,并在Cb和Cr通道内变化波动较少。

2)RGB颜色空间特征

文献[11]利用烟雾在在RGB各个通道内颜色分布相对集中的特性,提出一种RGB空间烟雾颜色特征,对每个像素点匹配计算方法如下:

其中,T1=T2=T3=20,T4=100,T5=235。

本文综合利用以上2种特征,采取“与”的形式进行组合,具体的提取结果如图3所示。从中可以看出,颜色特征只能作为一种较弱的特征进行使用,排除的主要是一些带有明显差异的目标物体。

图3 颜色特征提取结果

1.5 运动累积图像

早期火灾烟雾基本上是出现在可燃物周围,不会和部分刚体一样出现整体的移动,所以,可以利用运动累积图像计算出持续运动区域[12]。

烟雾的运动特性不同于一般的刚体目标,特别是远距离情况下,烟雾区域运动变化较慢,通过运动累积方法无法提取烟雾运动区域,但是对于其他运动目标,则可以明显提取出来。

运动累积图像计算方法如下:

t时刻当前灰度图像与前一张图像的帧差为:

d(x,y,t)=|p(x,y,t)-p(x,y,t-1)|

(x,y)∈D

其中,(x,y)为图像的像素坐标,D为图像像素区域。

利用N张连续视频图像计算的运动累积图像为:

可利用上述方法可以将大部分运动刚体剔除出去。如图4所示,在设定N=5的情况下,可以发现汽车移动会形成明显的前景,而烟雾则不明显。所以,可通过前景的方式排除运动刚体部分。

图4 运动累积图像

1.6 深度学习烟雾图像分类器

深度学习源于人工神经网络,是机器学习的一个分支。在设计神经网络结构后,只需要提供相应的样本和标签数据,经过训练即可完成特征的自提取。当前,所有人工设计特征都无法将烟雾与其他目标完全区分开来,而深度学习是一种良好的分类器。其中,卷积神经网络作为图像分类领域一种学习工具,近年来取得了显著的突破和进展[13]。卷积神经网络利用局部感知和参数共享,显著减少了网络参数数量,通过前向传播计算损失值和反向传播算法计算梯度,利用GPU并行计算实现了上亿规模参数模型的快速训练。

本文采用Caffe框架进行烟雾目标识别,Caffe是UC Berkeley的一个开源项目,本文选择Caffe主要基于以下考虑:Caffe由C++/CUDA实现,提供高效的C++接口,便于集成到强调实时处理性能的算法中去[14]。

本文采用GoogLeNet[15]网络结构进行学习和应用,为了准确识别烟雾,本文并不是简单地选择烟雾和非烟雾2类图片进行模型学习,而是从实际场景中针对常见的误报干扰项搜集照片进行分类,分为烟雾、湖泊、道路与建筑、车辆、植被,如图5所示。本文使用的烟雾样本数据,均采集于实际工程现场监控视频,积累了大量图像数据用于模型训练,每一类标签从不同视频源中了抓取了2 000张共10 000张样本进行学习,最后得到本文使用图像分类器。

准确率和目标函数损失值曲线如图6所示,通过对其分析以及实际样本测试,本文采用11 000次迭代得到的分类模型进行实际测试,结果整体正确率为94.64%。

图5 深度学习分类标签

图6 准确率与目标函数损失值

1.7 算法流程

算法具体实施流程如图7所示。

图7 算法流程

本文算法共使用了5个判据,分为人工设计特征分类和深度学习分类。当判断结果为否时,均判定为非烟雾。

由是针对大场景空间的烟雾识别,算法在以下方面进行了改进:

1)相机的运动:多数情况下,监控相机安装在云台上,可以进行旋转,部分相机还具备变焦功能。此外,受风力影响,相机也会出现抖动。以上情况均会让没有运动的物体成为运动目标,同时由于相机的抖动,目标会出现的一定模糊,此时很容易造成误报警,所以,算法中添加了自动检测相机运动状态的步骤,在相机运动时自动关闭识别的功能。

2)算法性能:每增加一个判据,均会增加计算时间,所以,本文采用级联分类器的架构设计了分类算法。算法流程中的步骤如2和步骤7可以采用并行计算方法实施,因此,可以通过GPU实现计算加速。此外,Caffe也提供了相应的GPU加速接口,可以提高算法处理速度。

2 实验与结果分析

2.1 算法计算时间

算法部分模块可以实现GPU加速,本文采用的硬件平台如下:CPU Intel 6700k主频3.2 GHz,内存16 GB,显卡NVIDIA Geforce Gtx970,显存6 GB。处理单帧图像实测平均时间如表1所示,其中,CPU实现单帧处理时间为370 ms,GPU异构实现时间为50 ms,处理图像分辨率为800×600像素

表1 算法各步骤计算时间 ms

本文面向实际应用,针对步骤2和步骤6均实现了GPU加速,显著降低了CPU负载,保证了算法的计算实时性,实现了计算的加速。

2.2 深度学习分类测试

本文采用Caffe训练得到的烟雾分类模型,对2 500张测试图片进行测试,得到的测试分类结果如表2所示,其中整体正确率为94.64%,由此可见深度学习分类器能够很好地区分不同种类的目标。

表2 深度学习分类正确率 %

2.3 识别实验

本文采用Visual Studio和CUDA平台实现了本文算法以及开发了相应监控平台,在算法参数调整过程中,进行了多次不同场景下的点烟实验,部分实际场景识别结果如图8所示,从中可见,在不同场景下,本文算法均实现了准确报警。

图8 实际检测结果

为对比人工设计特征提取方法和深度学习分类器的分类结果,本文采集200个有烟短视频场景,在ViBe提取运动区域后直接使用以上方法和综合方法进行了测试,结果如表3所示,可以发现,采用综合识别方法并没有过多地增加计算负载,但是对于正确率提升很有帮助。在此需要说明的是,由于是视频检测,4.5%的准确率提升会带来明显的识别效果提升。

表3 人工特征、深度学习与综合识别方法性能对比

由于实际检测环境多是无烟场景,要求算法鲁棒性较高,不能出现大量的误报,因此本文对包含图8所示场景在内的不同环境进行了时常为一周的连续性测试,气候环境则包含了晴天、浓雾、阴雨3类天气。测试结果表明,本文算法除了在极端天气如大雨引起的水雾会引起误报外,其他情形均不会引起误报。

3 结束语

本文通过结合静/动态人工特征和深度学习方法实现了视频烟雾检测。在使用人工设计特征时采用较弱的阈值设置,并利用级联的方式对多种判据和深度学习分类器进行综合,实现了城镇森林交界域烟雾的准确识别。此外,本文大量运用了并行计算技术,将数据密集型计算转移到了GPU中,有效地降低了CPU负载,使得算法能够对多路视频同时进行分析,保证了其实时性。后续工作将使用adaboost算法对多种单帧图片识别判据进行更优组合,并根据检测场景实现阈值自动计算,进一步提高算法准确率。

[1] BARNICH O,van DROOGENBROECK M.ViBe:A Universal Background Subtraction Algorithm for Video Sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724.

[2] 冯华文,龚声蓉,刘纯平.基于改进高斯混合模型的前景检测[J].计算机工程,2011,37(19):179-182.

[3] MILLAN G L,SANCHEZ P G,NAKANO M,et al.An Early Fire Detection Algorithm Using IP Cameras[J].Sensors,2012,12(5):5670-5680.

[4] 吴爱国,杜春燕,李 明.基于混合高斯模型与小波变换的火灾烟雾探测[J].仪器仪表学报,2008,29(8):1622-1626.

[5] MARUTA H,NAKAMURA A,YAMAMICHI T,et al.Image Based Smoke Detection with Local Hurst Exponent[C]//Proceedings of International Conference on Image Processing.Washington D.C.,USA:IEEE Computer Society Press,2010:4653-4656.

[6] FERRI R J,ZHANG H,KUBE C R.Real-time Detection of Steam in Video Images[J].Pattern Recognition,2007,40(3):1148-1159.

[7] 王 涛,刘 渊,谢振平.基于自适应神经模糊推理系统的视频烟雾检测[J].计算机工程,2011,37(23):186-188,207.

[8] LeCUN Y,BENGIO Y,HINTON G.Deep Learning[J].Nature,2015,521(7553):436-444.

[9] ROSTEN E,DRUMMOND T.Machine Learning for High-speed Corner Detection[C]//Proceedings of European Conference on Computer Vision.Berlin,Germany:Springer,2006:430-443.

[10] CHEN T H,YIN Y H,HUANG S F,et al.The Smoke Detection for Early Fire-alarming System Based on Video Processing[C]//Proceedings of International Conference on Intelligent Information Hiding and Multimedia Signal Processing.Washington D.C.,USA:IEEE Computer Society,2006:427-430.

[11] MORERIO P,MARCENARO L,REGAZZONI C S,et al.Early Fire and Smoke Detection Based on Colour Features and Motion Analysis[C]//Proceedings of the 19th IEEE International Conference on Image Processing.Washington D.C.,USA:IEEE Press,2012:1041-1044.

[12] 袁非牛,张永明,刘士兴,等.基于累积量和主运动方向的视频烟雾检测方法[J].中国图象图形学报,2008,13(4):808-813.

[13] SZEGEDY C,LIU W,JIA Y,et al.Going Deeper with Convolutions[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C.,USA:IEEE Press,2015:1-9.

[14] JIA Y,SHELHAMER E,DONAHUE J,et al.Caffe:Convolutional Architecture for Fast Feature Embedding[C]//Proceedings of the 22nd ACM International Conference on Multimedia.New York,USA:ACM Press,2014:675-678.

[15] MALIK O.Googlenet Going Global[EB/OL].[2007-09-21].http://gigaom.com/2007/09/21/googlenet-going-global.

猜你喜欢
烟雾深度特征
根据方程特征选解法
离散型随机变量的分布列与数字特征
薄如蝉翼轻若烟雾
深度理解一元一次方程
影视剧“烟雾缭绕”就该取消评优
不忠诚的四个特征
深度观察
深度观察
深度观察
咸阳锁紧烟雾与尘土