陈 磊,黄继风
(上海师范大学 信息与机电工程学院,上海200234)
现有的火灾检测主要采用烟雾传感器,但其作用范围有限。近些年摄像头监控的使用尤其广泛,充分利用摄像监控来检测火灾可以弥补传统检测方法的不足,且其监控成本低,实用性好。为充分检测出火焰区域,需研究火焰的特征,其特征主要为运动状态、颜色和频谱信息等。运动检测方面,文献 [1]利用当前图像帧减去参考图像帧的差分法检测并提取目标区域;文献 [2]做了差分运动检测、累积差分和背景更新法的对比;文献 [3]使用自适应背景变化的高斯混合模型对模型参数不断更新并匹配模型以检测运动区域;文献 [4]利用背景像素点沿时间轴的一维正态分布对其进行多次迭代的时域差分法。但仅两或三帧间的差分法会出现散点,使用高斯混合模型和时域差分法均耗时较长。颜色检测方面,文献 [5]采用HSI静态特征模型对彩色图像进行分割,提取疑似火焰区域;文献 [6]结合图像前景信息并在RGB 空间对火焰像素进行统计分析,建立火焰颜色的静态模型;文献[7]在HSI空间计算二进制背景图像并用RGB 空间进行颜色检测。但其仅使用颜色等静态特征模型的方法,没有充分考虑运动特征且不能很好区分出疑似火焰区域。RGB空间的三通道信息相关性比较大,易受到外界光照的影响。
本文对时序连续的3帧图像进行分块差分,检测出运动区域,在HSV 空间进行颜色分析,使用小波变换[8]研究视频图像的时空域特性,利用8 邻域滤除零散非火焰点。这种方法充分考虑火焰在燃烧过程中的多个视觉特性,且不受特定情景的影响,稳定可行。
燃烧物在空气中燃烧时会产生烟雾,烟雾的颜色、运动方向可以作为初期的识别特征。当燃烧产生火焰时,火焰的颜色、火焰区域的大小变化、火焰区域的边缘轮廓、火焰的几何特征、火焰的倾斜程度均为火焰的基本信息,因气流变化而造成无规律的火焰闪烁,其频谱信息和火焰空间区域的能量信息可作为火焰的特性。另外,火焰燃烧形成的成块连通域也是其基本特性。
通过对火焰特征信息的分析,本文中选取了火焰燃烧时的运动特性、颜色特性、时域频谱特性、空域能量特性和连通区域特性进行检测。其中火焰检测算法的重要步骤如图1所示。
图1 火焰检测重要步骤
在视频图像中,运动无疑是最重要的特征,在视频序列的不同时间点上,火焰会呈现不同的形状,即不同的运动区域。有效地检测出运动区域,有利于进一步确定后续检测的范围,从而大大提高检测效率。
视频图像的运动目标检测常用两帧或者三帧的帧间差分法对于输入的两帧图像进行减操作,这样图像中剩余的部分标示图像的变化部分。三帧图像差分法是连续从视频中连续输入三帧图像,用In,In+1,In+2表示,用ID(n,n+1)和ID(n+1,n+2)分别表示In,In+1和In+1,In+2间的变化,同时,适当选取一个图像二值化阈值T 将其二值化,T 可以通过大津法选取,也可以通过其他方法选取,只要适当即可。那么
然后取2个差分结果ID(n,n+1)和ID(n+1,n+2)的交集,得到目标运动区域
这种方法简单,然而,该方法也会受到一定的光照影响,如灯光突然闪烁,没有运动的物体却因光照增强或者减弱被当成是运动,产生错误检测,同时鲁棒性不好。基于此类因素影响提出了一种根据视频时域信息来分块消除干扰的确定运动目标区域的方法。该方法原理如下:对于连续输入的一组视频图像,每两帧之间的时间间隔是固定的,取为t。将读入图像的转化为灰度图像,在要检测的帧组中取得连续3帧,如其中一组的三帧Ik,Ik+1,Ik+2,可得
式 (4)、式 (5)求得的结果中前者表示相邻帧间各点像素差值的大小,后者表示组内帧间各点像素差值变化率的大小。
为了消除帧组内差分图像间噪声的干扰,对Itt进行分块[9],如分成大小为N×N 的方块。将小方块作为一个整体,此时块中每个像素不是独立存在,而是和周边像素有关联性的,这种关联性是消除噪声点的依据所在,因此通过计算每个小方块内所有变化像素的像素值的总和,当总和超过某个阈值时则将该块作为运动块区域,否则将该块作为非运动块区域。这样差分过程中不仅检测出运动块区域,同时很好的消除了噪声点的干扰。
通过上面的运动区域模型处理,检测的结果如图2所示,右边白色部分表示检测到的运动部分。当火焰较小的时候,检测到的运动部分如图2 (b)所示;当燃烧充分时火焰区域明显增大,检测到的运动部分也随之增大,如图2 (d)所示,运动区域检测比较准确。
火焰颜色不同于白炽灯和阳光的颜色,因为火焰的颜色分布不同。根据这点可以将明显不是火的运动目标分辨出来。在视频中读取的彩色图像,R、G 和B分别表示某张图像在RGB空间的3个颜色通道,其火焰的颜色在满足如下所示规律
图2 运动检测效果
其中,Rt、Gt和Bt分别表示R 、G 和B 通道的阈值范围内,通常情况下,Rt、Gt和Bt分别取200,200和100左右。通过上面的模型只能简单的滤除和火的颜色明显不同的颜色。对于一些与火稍微相近的颜色或者类似于白云或偏白色的墙壁这样的颜色区域都不能分辨清楚。为了较好提取出满足火焰颜色区域,提升检测准确率,本文采用以下模型。
将RGB图像转换至HSV 空间[10]中,其中色调、色饱和度和亮度均在 [0,1]范围内。设定参数Ht、St和Vt,其中为了很好的检测出火焰像素部分,可以选取色饱和度St与亮度值Vt达到最大,即为1,Ht为0.083,此时颜色是纯色,饱和度值达到最大。在运动区域中选取的任意一个像素点,它的H、S和V 可通过以下函数
而函数f(x)为
式中:a、b——参数,x——色调,当b取的值较大时,函数模型将包含绿色和紫色等颜色,当取的b较小时,函数模型将排除红色和黄色等近似火焰的颜色,为了检测出火焰颜色,因此参数b取0.11。a的选取对函数模型影响不大,因此当b的选取能检测出火焰颜色时,a可选为100,。如下图示所呈现的,横轴x表示色调,纵轴表示通过函数f(x)函数模型后得到的值。
图3中可以看出,不同的色调通过函数f(x)可以得出相应的值。色调小于0.2和接近1的两边部分均为不同程度的红色色调,其比较接近火焰的颜色。因此,可将此火焰颜色模型应用到检测出运动块的区域,根据不同色调的选择,滤除一些可以明显判别不是火的区域和难以判别的亮度较大的区域。
图3 色调与f(x)之间的关系
但是,一些疑似火焰颜色的区域也可能因为满足上述条件而被误认为是火焰区域,这将在继续通过后面模型检测。
除了颜色信息,火焰的动态特征——火焰闪烁的频谱特征也是一个重要的信息。燃烧物在燃烧时受到燃烧材料和空气中气流等很多因素的影响,火焰形状会不断发生变化,同时会出现火焰闪烁的现象。而火焰闪烁的主要频率在7Hz~15Hz之间,10 Hz左右,摄像头需要保证能够在每秒钟拍摄至少20帧。当每秒达到20 帧的情况下,取视频中运动区域类火焰颜色的某个点Pn[x,y]的连续20帧进行小波变换。
图4 二阶小波变换
通过运动区域和颜色模型检测,得到满足条件的像素点,将这些点在时序图像上R 通道的值通过该小波滤波器进行变换,判别出明显不是火焰区域的部分,故将此部分去除。剩下部分则是时域小波变换满足火焰燃烧频谱特性的区域。将此部分选定为疑似火焰区域继续进行空域小波分析。
为了更好的说明检测效果,本文从2个视频中分别提取的连续60帧的Pn[217,248]位置的火焰像素点的波动情况和Pn[135,201]位置的非火焰像素点。
从图5、图6中可看出,视频的时序图像帧中火焰像素点的像素值变化比较大,而非火焰像素点的像素值变化比较平稳,小波变换后的波动比较更加明显,选取波动范围满足条件的点,则该像素点位置为火焰点,否则即为非火焰点。
在图像的真正的火焰像素区域内,其空间像素值变化比较大;而在类火焰像素区域内,其空间像素值变化很小,因此可用空间小波进行能量分析,以进一步确定是否有火焰。
图5 火焰像素点时域变化情况
图6 非火焰像素点时域变化情况
式中:V——图像二维小波变换区域的空间小波能量,Plh[x,y]——原始变换区域变换后得到的水平细节部分,Phl[x,y]——垂直细节部分,Phh[x,y]——对角细节部分,M×N ——原始图像区域内像素点的个数。因为火焰像素与给火焰像素区域能量的差别,所以可以设定一个值V0,当V >V0时,即可判定该区域是火焰像素区域。
摄像头检测到的火焰像素点均以不定形状块的形式存在,所以一些受光照或噪声点等影响的零散像素点不能当成火焰点[11],必须将其滤除。此时,可以将图像分成3×3的小块,在每一块中,中间的像素点必须检测为火焰点,同时其周边的8个相邻域像素点也必须超过一定的数量才能算是火焰像素点。
如图7,对于这样一个3×3 块,分别编号为1-4、X、5-8。当检测到X 位置时,必须同时满足2个条件:当X 为火焰像素点;且当标记了1-8中8个邻域中必须有至少2个是火焰像素点,这时才能确定X 是火焰像素点。
图7 火焰相邻域
火焰在燃烧过程中会逐渐变大,而不仅仅是一个零散点。只有类似于LED 指示灯等在图像很远时拍摄的视频图像才会是一个小小的点。图8中火焰点存在均是连通成块的,因此通过对前面检测到的疑似火焰部分检测后,再对每个像素点进行筛选即可滤除那些零散非火焰像素点,这样就保留了不定形状和面积的成块的火焰部分。
图8 零散非火焰像素点示例
本文实验所用视频部分来自http://signal.ee.bilkent.edu.tr/VisiFire/,部分来自互联网。经过上述方法,对多组视频进行了检测,选取其中4组结果如图9所示。
此视频中燃料燃烧产生火焰时,有一个人在火堆旁边走动,视为运动干扰物。此干扰物虽为运动物体,运动检测到,但颜色模型检测条件并不满足,经过本文算法检测,不会当成是火焰区域提出警报。因此上述一组图中均未在人身上标示出疑似火焰区域。墙壁颜色与火焰颜色相似,但是墙壁静止不动,在分块检测运动时不会通过,因此也不会当成是火焰区域产生警报。而中间有明显的火焰区域,检测产生警报并标示。增长火焰检测如图10所示。
此视频中火焰燃烧分2块主要区域,一块火焰区域有小块逐渐增大,另一块是基本不变的小块,同时图像背景中草堆受到阳光照射,有部分疑似火焰区域。经过本文算法检测,能很好的检测出火焰,并对大的火焰区域和小的火焰区域分别标示出并报警。背景干扰火焰如图11所示。
图9 运动干扰燃烧火焰
图10 增长火焰检测
图11 背景干扰火焰
此视频有黄土地和光线严重影响下的火燃烧视频,同时有人向火焰区域加燃烧物。本文的检测算法同样很好的消除了此类干扰,而且精确地检测出火焰区域并标示。微弱火焰检测如图12所示。
图12 微弱火焰检测
此视频中燃烧物开始燃烧时,仅有烟雾,没有火焰,逐渐燃烧后产生较小的火焰区域。同时,光照条件下的树叶运动区域作为运动检测干扰物,疑似火焰颜色的墙壁作为颜色检测干扰物。然而此算法在只有烟雾没有火焰时并没有出现警报,而在第2张图片开始,当火焰区域出现时立即检测到有很小区域的火焰存在并报警。
因为上述方法先是进行运动检测,后进行了颜色等变换,所以运动的车和人等干扰物不会当成是火焰像素,很好的检测出火焰部分。同时对于穿着红色衣物走动的人也能很好的分别出不是火焰。另外,由于液化石油气作为碳氢化合物,点燃时火焰随气流影响呈喷出状,而且火焰较稳定,在充分燃烧时火焰呈蓝色,所以不适合用本文中的检测方法。天然气中混合有一氧化碳,在燃烧时火焰偏蓝色,火焰整体部分无法完全检测。蜡烛作为可控火,在气流相对稳定的室内燃烧时火焰几乎稳定不动,所以无法作为本文算法的检测对象。
本文针对传统的视频中运动目标图像用帧间差分方法检测的不足,使用了视频图像连续帧分块差分的方法,根据分块内的像素变化的情况,检测到的运动目标更具确定性。然后使用色调、色饱和度和亮度来对运动区域进行火焰颜色的分析,消除亮度对火焰的干扰。同时分析了视频火焰图像的一些其他特性,如疑似火焰区域的时域特性和空域特性,滤除疑似火焰区域的红色衣物的干扰。相比较于红外摄像监控而言,普通摄像头检测火焰相对比较难,而使用本文方法,成本较红外摄像头低,且能保证足够的准确率。因此本方法在视频监控运动和火焰识别中具有一定的实用价值。另外,火焰识别中其他的特性也值得考虑和研究,如火焰燃烧会产生烟雾等,因为燃烧物燃烧时通常先产生烟雾然后才会产生火焰,这有助于火灾警报,为消除火灾争取时间。未来加入更多的燃烧特性将会对火焰识别的准确率有进一步的提高,这将是我们下一步的工作目标。
[1]WANG Wenhao,LIU Shangqin,YE Qingsheng.Design and implementation of fire detection with video[J].Computer Engineering and Design,2008,29 (3):775-778 (in Chinese).[王文豪,刘尚勤,叶庆生.视频火灾检测的设计与实现 [J].计算机工程与设计,2008,29 (3):775-778.]
[2]SU Zhaoxi,LIU Juping.Research on a method of detecting flame motion region based on video [J].Mechanical and Electrical Engineering Technology,2012,41 (12):56-58 (in Chinese).[苏兆熙,刘举平.基于视频的火焰运动区域检测方法研究 [J].机电工程技术,2012,41 (12):56-58.]
[3]TANG Yanyan,YAN Yunyang,LIU Yi’an.Fast flame detection with GMM [J].Computer Science,2012,39 (11):283-285 (in Chinese). [唐岩岩,严云洋,刘以安.应用GMM 的快速火焰检测 [J].计算 机 科 学,2012,39 (11):283-285.]
[4]XIE Di,TONG Ruofeng,TANG Min,et al.Distinguishable method for video fire detection [J].Journal of Zhejiang University (Engineering Edition),2012,46 (4):698-704 (in Chinese).[谢迪,童若锋,唐敏.具有高区分度的视频火焰检测方法 [J].浙江大学学报 (工 学 版),2012,46 (4):698-704.]
[5]ZHANG Zhengrong,LI Guogang.Fire detection technology based on support vector machine [J].Microcomputer and Its Applications,2010,29 (24):70-72 (in Chinese).[张正荣,李国刚.基于支持向量机的火灾探测技术 [J].微型机与应用,2010,29 (24):70-72.]
[6]Celik T,Demirel H,Ozkaramanli H,et al.Fire detection using statistical color model in video sequences[J].Journal of Visual Communication and Image Representation,2007,18(2):176-185.
[7]Cho Bo-Ho,Bae Jong-Wook,Jung Sung-Hwan.Image processing-based fire detection system using statistic color model[C]//International Conference on Advanced Language Processing and Web Information Technology.New York:IEEE,2008:245-250.
[9]LI Wenhui,XIAO Linchang,WANG Ying,et al.A block-based video smoke detection algorithm [J].Journal of Jilin University(Science Edition),2012,50 (5):979-986 (in Chinese). [李文辉,肖林厂,王莹,等.一种基于块的视频烟雾检测算法 [J].吉林大学学报(理学版),2012,50 (5):979-986.]
[10]Martin Mueller,Peter Karasev,Ivan Kolesov,et al.Optical flow estimation for flame detection in videos [J].IEEE Transaction on Image Processing,2013,22 (7):2786-97.
[11]Yusuf Hakan Habibo glu,Osman Günay,Enisetin A.Covariance matrix-based fire and flame detection method in video[J]. Machine Vision and Applications,2012,23 (6):1103-1113.