基于水平集的火焰分割
2013-09-04江文婷龚小谨刘济林
江文婷,龚小谨,刘济林
(浙江大学信息与电子工程系,浙江杭州310027)
0 引言
由于低成本摄影机的普遍存在,近来对基于视觉的自主火灾检测需求有了很大的增加。火灾检测不仅是在火灾预警系统,还在火灾度量中有重要地位。其中,火灾度量是通过分析例如火焰地理位置和火灾传播方向的燃烧特性来提供最佳消防手段。因此,精确的火灾检测是很必要的。目前基于视觉的火灾检测技术主要使用颜色自适应阈值[1]、支持向量机[2]、神经网络[3]或者马尔科夫模型等学习方法等方法。本文提出了使用水平集框架来分割火焰区域。这个框架在图形背景分割领域比较流行,但是很少用在火灾检测技术中。基于水平集的方法有两个主要的优势:首先,与上述孤立地对象素点进行分类的方法不同,水平集方法隐含地考虑了空间的依赖性以及如边缘等的其它图像线索。其次,它很适合描述诸如火焰那样形状多变的区域。随着有效的水平集方法的发展,基于此方法的实时化也会成为趋势[4]。
1 算法
火灾检测的目的在于在一幅图像中辨认出火焰的区域,同时将剩下区域的作为背景。因此,本质上是一个图像背景分割问题,自然就能够用水平集方法来处理。
在水平集框架下,可以用关于时间t的隐函数φ(x,t):Ω×[0,∞)→R来划分出两类图像区域,这里Ω⊂R2代表图像区域。φ(x,t)>0代表火灾区域,φ(x,t)<0代表背景区域。代表水平集方程的零水平线。在此框架下,通过沿着φ定义的能量函数最小化的方向展开轮廓可以得到一种优化的火焰分割结果。本文用如下的形式定义能量函数:
能量项Eregion依赖于图像I、火的观测模型Pf和背景的观测模型Pb;Eedge迫使零水平集定位于边缘强度大的位置;Edist是维持φ为一个带符号的距离函数的正则项;v和u都是正的权重因子。这3个能量项分别定义如下。
1.1 基于区域的能量项Eregion
基于区域的项是为了估计象素点被划分成火或者背景的代价。本文用概率框架来表示它,以便加入关于火的细节特征的先验知识。此能量项旨在考虑先验信息基础上最大化后验概率(MAP)。将类l={f,b}当作一个二值的随机变量,f代表火,b代表背景。假设变量l是独立、恒等和一致分布的。由于火在纹理和颜色上有独特的视觉特征,本文以图像象素的颜色为特征,从一系列带标注的训练集中学习得到火的概率观察模型Pf和背景的概率观察模型Pb。然后,根据贝叶斯推理得到由MAP驱动下的能量函数如下:
式中,H()是Heaviside阶梯函数;λ1和λ2是正的参数。
1.2 基于边缘的能量项Eedge
基于边缘的能量项Eedge是为了平滑轮廓和迫使轮廓定位在强边缘上,因此定为:
式中,∇I是灰度或者颜色的梯度,δ()是Dirac delta函数。这一项计算了沿着零级轮廓的积分,且在轮廓位于高梯度边缘时达到最小化。
1.3 正则项Edist
水平集函数φ通常被设定为带符号的距离函数,因此传统方法需要在迭代过程中频繁进行修正。为了避免重新初始化,文献5提出了以下的正则项:
此项在本质上保持了水平集函数的正则性。
1.4 能量最小化
实现最优的火焰分割的同时也最小化了能量函数式1。最小化是通过水平集函数φ交替的梯度下降中得到的。如很多水平集方法那样[5],本文在实现上将δ和H替换为平滑的近似值δ∈和H∈,这两者定义为:
继而得到梯度下降:
2 实验
本文将从谷歌图像搜索中收集到图像集作为测试集对算法进行测试。图像集共115张图片,包含各种火灾场景:森林火灾、车祸火灾,还有一些易误判的场景,如消防员的外套和路边灯光,这些场景代表了由监控摄像机可能拍到的环境。所有图像都是象素为320×240的彩色图像。本文对这些图像进行了人工标注以便于评价。实现过程如图1所示。
图1 迭代过程
本文通过准确率和召回率来定量地评估算法的性能。准确率是指在所有被检测为火焰的象素点中被准确识别的火焰象素点的百分比。召回率是指在图像中所有的火焰象素点中被准确识别出来的火焰象素点的百分比。此外,本文也将该算法与本文工作相似的基于分类器的算法[2]进行了比较。所有的评估都在由95个综合性的图像组成的测试集上进行测试。这两种方法的比较结果如表1所示。
表1 定量的比较结果(%)
结果显示本文算法比基于分类器的算法的效果更好。这样的优越性得益于水平集框架。检测效果如图2所示,可见大多数的火焰都能被检测出来。
图2 部分检测结果
3 结束语
本文目的是在综合的场景中准确检测出火灾区域,以便应用到各种监控环境中。为此,本文引入了基于水平集进行火灾检测的方法。该方法将火灾细节特征的先验知识和图像的梯度线索结合起来得到更光滑的火焰轮廓,这样能准确地划清火焰区域。方法在性能上与基于分类器的方法相比有了显著的提高。到目前为止,本文算法是在Matlab中实现的,其运行时间较长而不便于应用到实时的情况。通过窄带的水平集应用和在C/C++上应用可以改善该算法的有效性。此外,由于最近水平集方法的不断发展,GPU技术的普及,该算法的实时性有待于实现。因此,基于水平集的方法将会非常适合应用到火灾检测和监控视频跟踪中,这是本文将来追求的目标。
[1]Celik T,Demirel H.Fire detection in video sequences using a generic color model[J].Fire Safety Journal,2009,44(2):147-158.
[2]Collumeau J-F.Fire scene segmentations for forest fire characterization:a comparative study[C].Brussels:International Conference on Information Processing,2011:2 974 -2 975.
[3]Liu C,Ahuja N.Vision based fire detection[C].Cambridge:International Conference on Pattern Recognition,2004:135-136.
[4]Shi Y,Karl C W.Real-time tracking using level sets[C].San Diego:Conference on Computer Vision and Pattern Recognition,2005:35 -37.
[5]Li C,Xu C,Gui C.Distance regularized level set evolution and its application to image segmentation[J].IEEE Transactions on Image Processing,2010,19(12):3 246 -3 252.