基于ViBe与机器学习的早期火灾检测算法 下载: 1041次
1 引言
火灾是日常生活中的主要灾害之一,及时准确地发现火灾对保障人民生命财产安全具有重要意义。传统火灾报警系统多由烟雾传感器、红外传感器[1]、离子传感器等组成,由于烟雾、热量等扩散到传感器需要数分钟时间,故基于传感器的火灾检测系统无法及时准确地检测到火灾的发生。传统火灾检测系统除了反应速度慢,还存在检测范围小、不适用于户外环境、系统成本较高等缺点。近年来计算机视觉的迅速发展,利用图像处理的方法进行火灾检测的优点有:反应时间快,无须等到烟雾扩散到摄像头后触发报警;检测范围大,整个摄像头的监控区域均可以实现对火灾的检测;检测成本较低,视频监控设备已普遍安装在室内外各种场所,无需额外安装专用摄像头。
基于视频图像检测火灾的研究已有数年,近年来不断提出新的检测算法。Celik等[2]提出一种对火焰像素在YCbCr颜色空间进行分类的算法,可以对火和非火焰像素进行训练,构建火焰像素分类器,但最大的缺点是误报率高,无法运用到实际环境中。Qiu等[3]提出一种基于边缘检测的算法用于分割火焰前景,但仅适用于背景简单的情况,在复杂背景下不能正确分割火焰前景。Wang等[4]提出使用游程检验随机测试来区分火灾与非火灾事故,这种自适应算法利用火焰随机波动的特征检测火灾,但精度相对较低。邵婧等[5]提出基于动态纹理特征分析的火灾检测算法,算法对大空间火灾检测率较高,但难以区分实际火灾区域与颜色似火的运动区域。段锁林等[6]利用改进的粒子群算法优化支持向量机(SVM)参数实现对疑似火焰的判决,但提取的火焰特征不全面且不具有代表性,导致算法的泛化能力不足。Zhang等[7]先利用视觉注意机制提取图像中感兴趣的区域,而后使用色彩模型对像素点进行筛选,但前景提取效果较差,导致后续分类结果可靠性不高。Khatami等[8]提出一种增强黄色火焰的颜色空间,并用聚类的方法提取火焰前景区域,该算法对森林火灾检测效果良好,但对白色火焰无法正确提取前景区域。
上述火灾检测算法主要存在的问题有:1) 过多采用经验阈值,导致算法泛化能力差;2) 局限性较强,只适用于简单环境;3) 难以同时达到低误报率和低漏报率要求,以至于无法运用到实际火灾检测中。
针对当前火灾检测算法的不足,提出了一种适用于多种复杂环境的低误报和低漏报的火灾检测算法。
2 算法概述
本文算法主要分为前景提取和分类决策两大模块,可同时检测黄色和白色两种常见火焰。前景提取模块对输入图像进行下采样处理以降低算法时间复杂度,使用改进的ViBe算法检测图像中的运动区域,并将其映射到原图像上;利用颜色直方图训练出的分类器将检测出的运动区域分成非火焰区、疑似黄色火焰区、疑似白色火焰区;再利用[
在复杂背景环境下,前景中含有各种干扰,其中较常见的有运动的车灯及其倒影干扰,同时可能存在像火焰一样闪烁的路边指示灯干扰。为了区分干扰,本文算法的分类决策模块可以判断是否存在真实的火焰区域。分类决策模块在提取前景区域特征后,将提取出的特征向量输入到训练好的SVM分类器以确定是否存在真实火焰区域,再根据是否存在连续多帧判决结果皆为火焰类,决定是否发出火灾报警信号。算法程序如
3 算法的具体设计
所提算法的主要工作集中在三个方面:1) 对ViBe算法的改进实现了图像背景信息的选择性更新;2) 为降低算法耗时采用两级分类器提取精确的前景区域,选用了随机森林算法对运动区域进行分类,再使用SVM提取出精确的前景区域。两级分类器的训练数据集是自建的,其数据集中的数据有三个来源,分别为实际火灾视频、实验火灾视频以及网上公开的火灾视频;3) 提出了两个新的早期火焰特征,并与Hu矩特征相结合形成9维特征向量用于训练SVM火灾决策分类器。
3.1 运动目标检测
无规律运动是火焰最显著的动态特征,但和普通运动物体不同的是短时间内变化的是火焰的形状而不是火焰的位置,故难以使用已有的运动检测算法提取全部火焰区域。由于监控视频内通常无运动区域或运动区域较小,且后续处理均仅建立在运动区域内,故先进行运动检测有利于提高算法实时性。考虑到原始视频帧率较高,相邻帧间运动信息冗余,因此选择每两帧处理一帧的方法。
近年来,学术界提出了大量优秀的运动目标检测算法,主要分为帧间差分法、光流法和背景减除法。帧间差分法的缺点是容易出现ghost区域和空洞区域,特别是在检测白火时极易出现空洞区域;光流法的缺点主要在于时间复杂度过大,且对光线敏感;背景减除法的特点是需要先对背景进行建模,其中最著名的算法是混合高斯背景建模(GMM)和ViBe建模。GMM算法的内核是高斯函数,而ViBe算法使用邻域像素来创建背景模型,后者建立背景模型的时间复杂度更低,且能更快消除ghost区域,故选择ViBe算法用于运动检测。
图 2. ViBe运动检测结果图。(a)背景模型;(b)背景更新后的检测结果;(c)改进后ViBe算法的检测结果
Fig. 2. ViBe motion test results. (a) Background model; (b) test results after background update; (c) test results of improved ViBe algorithm
1) 背景建模选择(1)式的单帧初始化背景模型快速建立。虽然ViBe算法相比于GMM算法时间复杂度更低,但对于高分辨率图像,下一步的前景提取耗时依然较长。由于仅需获取粗略的运动区域,故在背景建模之前根据图像分辨率不同,按不同采样因子(
式中:
2) 前景提取。计算当前像素点
式中:
3) 背景模型更新。传统ViBe算法的更新策略是对前景中的每个像素点进行统计,当某一像素点连续
现有火灾检测算法为满足算法的实时性要求,需要对高分辨率图像下采样处理后再做检测,从而导致火焰区域信息丢失严重,漏报增加。而将下采样后的运动区域映射到原图上,获得原图上的运动区域,以防止漏报的增加。
3.2 颜色检测
颜色是火焰最显著的静态特征,已广泛应用在视频火灾检测算法中[7-9]。利用颜色特征可以筛除树木、行人、汽车等常见非火焰颜色的运动物体,有效防止其进入后续处理,但增加了算法时间复杂度。利用颜色信息可以训练一个两级分类器以获取精确的前景区域。
3.2.1 颜色分类
受光照条件影响,同一物质在不同光照条件下燃烧的火焰颜色不同[10],黄色火焰多出现在室外环境中,而白色火焰多出现在室内环境中[11],鉴于此,将检测的最为常见的火焰颜色设为黄色和白色。考虑到白色火焰时常在地上映射出一个黄色的光圈,且火焰周围也时常泛黄,故需要对黄色和白色火焰使用不同的第二级分类器完成前景提取,即需要将黄色和白色火焰分成不同的类。实验表明,Lab和HSV颜色空间对于白色泛黄火焰的分类较RGB颜色空间错误率更高,故选择使用RGB颜色空间可将运动区域按照颜色信息分为黄色、白色、其他色。
随机森林是一种组合分类器,将多棵决策树组合起来构成一个强分类器,最后的分类结果由所有决策树投票决定,其自身支持多类别分类,故采用监督学习算法中的随机森林作为第一级分类器对3种颜色进行分类。
利用RGB通道直方图作为训练分类器的输入特征向量,直方图的区间数量会对结果产生较大影响。区间数量过小可能将很多颜色统计到同一个区间内,易导致黄色火焰和白色火焰分类出错;区间数量越大对颜色区分效果越好,但也增加了计算量,且本文仅需区分3种颜色,无需较大的区间数量,故采用4个连续像素值作为一个直方图区间。每个通道有64个直方图区间,然后将直方图归一化到[0, 255]之间,3个通道共有192个直方图区间,即用192维特征向量训练随机森林分类器。算法的训练样本共有692张图片,其中有192张黄色火焰图片、260张白色火焰图片和240张非火图片。非火图片中包括树木、行人、汽车等常见运动物体,但训练场景远不能涵盖生活中的各种复杂环境。为了使算法能够适应更多复杂环境,且初始训练耗时不发生剧变,提出了随机截取监控视频第一帧图像的不同区域以获得不同大小的50张图片作为训练数据的负样本,即共有290张非火图片。实验表明:该处理方法训练耗时基本不变,且在多种复杂环境下检测效果良好。
3.2.2 获取前景
图像边缘检测效果决定目标识别的准确程度,经过运动检测和颜色分类后,仅获得了白色和黄色运动区的粗略位置和形状。为了获得精确的边缘信息,本算法训练了第二级分类器,输入特征向量由像素点的[
图 3. 前景检测结果图。(a)原始图像;(b)文献[ 12]检测出的前景区域掩码;(c)本文算法检测出的前景区域掩码
Fig. 3. Foreground detection results. (a) Original image; (b) foreground area mask detected by algorithm in Ref. [12]; (c) foreground area mask detected by proposed algorithm
3.3 前景区域特征提取
在获取前景区域后,需要判断其是否为火焰区域。现有火灾检测算法多采用提取特征向量的方式对前景区域进行判断。已有早期火灾特征包括圆形度、矩形度、边缘线性度、面积变化剧烈程度、均值方差等。但因火灾火焰形状变化多样,这些特征无法精确地描述火焰的本质特征,导致误报率极高,难以在实际环境中运用。
算法的前景区域是通过运动和颜色信息获得的,帧间信息并未充分利用。而依据帧间信息提出了两个区别于干扰的新特征:帧间前景区域的重叠率
式中
火焰闪动属于非刚体运动,其与刚体运动的区别在于边缘的粗糙程度(形状)处于不断的变化之中。选用Hu不变矩描述边缘粗糙度,而用Δ
4 实验结果与分析
本文算法实现和测试所使用的计算机配置为Intel Core i5-3470@3.20 GHz,8 GB内存,未使用图形处理器加速。算法以标准C++结合OpenCV计算机视觉库实现。
4.1 实验所用数据集
为测试本文算法的性能,自建了一个测试视频数据集。数据集由107段视频组成,其中包括室内、室外、白天、夜晚、颜色干扰、人员干扰、车辆干扰等多种情况。由于现阶段不存在可作为评判标准的公共数据集,故采用的视频数据集部分来自于前人公开的视频片段,另一部分来自于实际火灾视频和模拟实验。受篇幅限制,只选取
4.2 实验数据分析
将
从
表 1. 算法火灾检测率和响应时间测试
Table 1. Fire detection rate and response time tests of algorithm
|
从上述分析可知,误报率和检测率并不能准确、全面地反映算法的性能。因此,描述检测效果更准确的参数应为从火灾发生到首次发出报警的时间间隔Δ
表 2. 算法误报率测试
Table 2. False positive rate test of algorithm
|
警的条件。
在复杂背景下,通常不存在4次以上的连续误报,故
本文算法已经在实验室服务器上进行了1000 h的连续检测,未出现误报情况,稳定性好,确保了算法的实用性。
5 结论
所提出的火灾检测算法可以同时对多处火焰区域进行检测,突破了现有算法对火焰所处环境及其待检测火焰区域颜色的限制,对于检测特殊颜色的火焰,只需将该颜色数据加入训练样本即可准确提取前景,后续特征判断无需改变,故而可以成功地应用于实际环境之中。实验表明,本文算法可在多种复杂环境下实现对火焰的低误报和低漏报检测,对真实早期火灾具有很好的综合检测效果和稳定性,且满足实时性要求,在减少火灾损失方面有着重要的实用价值。今后的研究将重点考虑在低误报率的情况下,实现更高的检测率。
[1] 赵建华, 方俊, 疏学明. 基于神经网络的火灾烟雾识别方法[J]. 光学学报, 2003, 23(9): 1086-1089.
赵建华, 方俊, 疏学明. 基于神经网络的火灾烟雾识别方法[J]. 光学学报, 2003, 23(9): 1086-1089.
[5] 邵婧, 王冠香, 郭蔚. 基于视频动态纹理的火灾检测[J]. 中国图象图形学报, 2013, 18(6): 647-653.
邵婧, 王冠香, 郭蔚. 基于视频动态纹理的火灾检测[J]. 中国图象图形学报, 2013, 18(6): 647-653.
Shao J, Wang G X, Guo W. Fire detection based on video dynamic texture[J]. Journal of Image and Graphics, 2013, 18(6): 647-653.
[6] 段锁林, 任珏朋, 毛丹, 等. 基于改进的PSO优化SVM火灾火焰识别算法研究[J]. 计算机测量与控制, 2016, 24(4): 202-205, 209.
段锁林, 任珏朋, 毛丹, 等. 基于改进的PSO优化SVM火灾火焰识别算法研究[J]. 计算机测量与控制, 2016, 24(4): 202-205, 209.
Duan S L, Ren J P, Mao D, et al. Fire flame recognition algorithm based on particle swarm optimization-based SVM[J]. Computer Measurement & Control, 2016, 24(4): 202-205, 209.
[8] Khatami A, Mirghasemi S, Khosravi A, et al. A new PSO-based approach to fire flame detection using K-medoids clustering[J]. Expert Systems with Applications, 2017, 68: 69-80.
Khatami A, Mirghasemi S, Khosravi A, et al. A new PSO-based approach to fire flame detection using K-medoids clustering[J]. Expert Systems with Applications, 2017, 68: 69-80.
[9] Toulouse T, Rossi L, Celik T, et al. Automatic fire pixel detection using image processing: a comparative analysis of rule-based and machine learning-based methods[J]. Signal, Image and Video Processing, 2016, 10(4): 647-654.
Toulouse T, Rossi L, Celik T, et al. Automatic fire pixel detection using image processing: a comparative analysis of rule-based and machine learning-based methods[J]. Signal, Image and Video Processing, 2016, 10(4): 647-654.
[10] 段志刚, 李勇, 王恩德, 等. 基于光照不变图像的阴影图像道路及导航线提取算法[J]. 光学学报, 2016, 36(12): 1215004.
段志刚, 李勇, 王恩德, 等. 基于光照不变图像的阴影图像道路及导航线提取算法[J]. 光学学报, 2016, 36(12): 1215004.
[11] 张进华, 李婷, 王孙安, 等. 可变视场下的火灾探测算法[J]. 西安交通大学学报, 2012, 46(10): 29-35.
张进华, 李婷, 王孙安, 等. 可变视场下的火灾探测算法[J]. 西安交通大学学报, 2012, 46(10): 29-35.
Zhang J H, Li T, Wang S A, et al. Early small flame detection algorithm based on vision system with variant field of view[J]. Journal of Xi'an Jiaotong University, 2012, 46(10): 29-35.
[14] 吴茜茵, 严云洋, 杜静, 等. 多特征融合的火焰检测算法[J]. 智能系统学报, 2015, 10(2): 240-247.
吴茜茵, 严云洋, 杜静, 等. 多特征融合的火焰检测算法[J]. 智能系统学报, 2015, 10(2): 240-247.
Wu X Y, Yan Y Y, Du J, et al. Fire detection based on fusion of multiple features[J]. CAAI Transactions on Intelligent Systems, 2015, 10(2): 240-247.
梅建军, 张为. 基于ViBe与机器学习的早期火灾检测算法[J]. 光学学报, 2018, 38(7): 0710001. Jianjun Mei, Wei Zhang. Early Fire Detection Algorithm Based on ViBe and Machine Learning[J]. Acta Optica Sinica, 2018, 38(7): 0710001.