当前位置:首页 期刊杂志

基于GMM的多颜色空间融合的火灾检测算法

时间:2024-05-04

金仙力,宋少杰,刘林峰

(南京邮电大学 计算机学院,江苏 南京 210023)

0 引 言

随着全球气候变暖,现如今火灾发生的越来越频繁。如果不能及时发现,一旦火势蔓延开来,不仅会毁灭生活在其中的动植物,破坏生态系统,造成林木资源的损失而且其产生的大量烟尘会严重污染空气,破坏环境[1-2],进而威胁到人类的生存环境,同时对于火灾的扑救需要大量的人力、物力、财力,甚至会有消防人员因此而丧生,给人民的生命财产安全造成巨大威胁。为了尽可能降低森林火灾所造成的危害,及时地发现和扑救森林火灾,需要对森林火灾进行智能化、自动化检测。然而传统的森林火灾检测,是基于视频监控的,由于视频监控是不可移动的,当它发现火灾时,火已经很大了,此时扑救已经很晚了,而且基于这种固定平台的火灾检测,检测范围很小,很难及时、有效地检测出森林火灾。如果使用人工巡查的方式,那将会受到天气、人手、交通、工作时间、工作时长等等条件的限制,检测效率同样很低,所以对于森林火灾的智能化、自动化检测,是一个迫切需要解决的问题。对此笔者进行了初步的研究,希望借助无人机这种小型快速移动平台对森林进行巡查以期望能够及时发现森林火灾,将火灾造成的影响降到最低,然而传统算法已不能满足无人机这种快速移动平台的要求,现有的算法大都比较适合于处理背景相对固定的场景,对于这种场景时时刻刻在发生变化的情况,效果并不好。在这种情况下大多数的算法都会产生大量的噪声,会将静止的物体当作是运动的,比如背景建模中很经典的算法─GMM[3],它在这种场景下会产生大量的噪声,检测效果十分不理想,因此需要一种能够快速适应变化,并且具有很好的实时性的算法。

1 相关工作

运动前景目标检测[4]一直是国内外视觉监控领域研究的热点和难点之一,其目的是将视频或序列图像中的变化区域从背景中提取出来,运动前景目标的有效检测对于目标跟踪、目标识别、行为理解等后期处理至关重要。

对于视频监控场景下的火灾检测,Adnan Khalil等人提出了一种使用多颜色空间和背景建模的火灾检测算法[5],该算法是一种基于RGB和Lab颜色模型的新型火灾检测算法,通过将颜色模型分割算法与运动检测算法(GMM算法)结合起来实现对火灾的检测,此算法对于静止的视频场景有较好的检测效果,但无法处理更为复杂的场景。Teng Wang等人提出一种基于火焰色散和连续帧相似度的火灾探测算法[6],该算法将火焰温度和颜色分为火芯层,内火层和外火层,提出一种基于火焰颜色分量离散度的火焰识别模型,再将检测区域连续视频帧的相似性纳入到该算法,从而实现对火灾的检测,此算法能够克服常规干扰源的不利影响。Faming Gong等人提出一种多特征融合的实时视频火灾检测算法[7],此算法将火焰的形状变化特征值、火焰像素数变化的特征值、火焰空间重心变化特征值和其他特征值(RGB颜色值、饱和度值、灰度值)标准化后输入SVM(支持向量机)进行训练,从而实现火灾检测,此算法对于简单的场景有较好的检测效果,但是容易受到颜色相近的物体的影响,从而造成误检。Chao Hu等人提出一种基于深度卷积递归网络和光流法的实时火灾检测算法[8],此算法利用火焰的静态和动态特性,将火焰的RGB图像实时转换为光流图像,并使用卷积神经网络进行空间学习(一类用于序列学习的循环卷积体系)最终实现对火灾的检测,但是此算法严重依赖视频的质量,当距离较远时或者火焰、烟雾的特征不明显时检测效果较差。

对于无人机场景下的火灾检测,Chi Yuan等人在2017年提出一种使用红外图像的无人机森林火灾检测算法[9],此算法使用基于直方图的分割方法来提取热物体,以此作为候选火灾区域,然后采用光流法计算候选区域的运动矢量,最后采用形态学运算和斑点计数器方法,该算法可以有效地提取和跟踪红外视频序列中的火焰像素。其在2019年又提出一种基于学习的无人机烟雾检测算法[10],此算法包含基于模糊逻辑的烟雾检测和分割方案以及扩展的基于卡尔曼滤波器的智能调节规则,通过选择RGB颜色模型中的红色、绿色和蓝色的两个分量的差异以及图像的HIS颜色模型中的色相、饱和度和强度作为模糊逻辑规则的输入,选择烟雾可能性作为其模糊逻辑规则的输出,然后进一步采用扩展卡尔曼滤波器(EKF)重塑模糊烟雾检测规则的输入和输出,此算法对于火灾的早期发现有较好的效果。

基于上述思想,借鉴经典的高斯混合模型,该文提出一种基于GMM的多颜色空间融合的火灾检测算法。该算法将自适应高斯混合模型作为基础背景模型进行建模。首先使用多种颜色模型和形态学方法对视频帧图像进行预处理,然后在此基础上采用改进的三帧差分法[11]配合改进的自适应GMM算法[12-13]进行烟雾和火焰的检测,最后使用开运算、闭运算等形态学处理方法对最后结果进行进一步的降噪处理。

2 基于GMM的多颜色空间融合的火灾检测算法

2.1 烟雾的预处理

建立烟雾的HSV颜色模型的目的是为了预先去除视频帧图像中非烟雾部分的噪声干扰,为后续的检测做准备。HSV颜色模型[14]是根据颜色的直观特性而建立的,它与人类对于颜色的视觉感知以及生理特性非常符合,能准确地反映出图像的颜色信息,广泛应用于图像处理中,其中H表示色调,S表示饱和度,V表示明度。根据实验的统计,建立烟雾的HSV颜色模型:

(8520

(1)

将式(1)中模型预处理后得到的二值图进行形态学处理,具体做法是将二值图做膨胀运算,这一步的目的是为了尽可能将烟雾区域包含进去,以便于后续进一步的处理。

2.2 火焰的预处理

建立火焰的RGB和XYZ混合模型的目的是为了预先去除视频帧图像中非火焰部分的噪声干扰,为后续的检测做准备。RGB颜色模型[15]是以R(Red:红)、G(Green:绿)、B(Blue:蓝)三种基本色为基础进行不同程度的叠加,进而产生丰富的颜色,是最为基础的颜色模型。XYZ颜色模型[16]是为了确定人眼感知颜色的平均状况而建立的,1931年国际照明委员会(CIE)在RGB颜色模型的基础上,使用三个假想的原色X、Y、Z建立了一个新的色度系统。根据实验发现,火焰在XYZ颜色空间的区分度最高,因此该文采用RGB和XYZ融合的颜色模型,这样可以在一定程度上弥补单一颜色模型的缺陷。根据实验统计,建立RGB融合XYZ的颜色模型:

(R>Rmean)&(G>Gmean)&(R≥G≥B)|(Z

(2)

将式(2)中模型预处理后得到的二值图进行形态学处理,具体做法是将二值图做膨胀运算,这一步的目的是为了尽可能将火焰区域包含进去,以便于后续进一步的处理。

2.3 改进的三帧差分法

帧间差分法的原理是当视频中存在移动物体的时候,相邻帧(或相邻三帧)之间在灰度上会有所差别,求取两帧图像灰度差的绝对值,判断它是否大于阈值来分析视频或图像序列中有无物体运动,当绝对值超过一定阈值时,即可判断为运动目标,从而实现运动目标检测的功能。两帧差分法由于其固有的缺陷,导致其无法有效提取运动目标的完整轮廓,三帧差分法是两帧差分法的一种改进方法,它选取连续三帧视频图像进行差分运算,从而能够精确地提取运动目标的轮廓信息。但是这同样会导致一个问题,在背景时常发生变化的情况下,三帧差分法在视频或图像序列中有明显边界的地方会出现误检,留下一条细细的边界线。

该文采用的是改进的三帧差分法,采用此算法的主要目的是为了消除边界线的噪声干扰和弥补火焰颜色模型的缺陷,由于火焰颜色模型并不能总是准确、完整地识别出火焰,而三帧差分法对于移动较为明显的火焰有很好的检测效果,所以可以在一定程度上弥补火焰颜色模型的缺陷。具体做法是:①首先使用式(2)的火焰颜色模型对视频帧图像进行处理,得到二值图;②对①的结果进行形态学处理,具体指的是对①的结果做膨胀运算,目的是为了尽可能包含火焰区域;③使用三帧差分法对视频帧图像进行处理,此时的结果带有边界噪声;④将③的结果和②的结果做与运算得到火焰区域;⑤将③的结果和④的结果做差分运算得到误检的边界(这一步的结果将用来改进2.4中的自适应高斯混合模型算法,去除其误检的边界)。

2.4 改进的自适应高斯混合模型算法

自适应高斯混合模型是对高斯混合模型的改进,由于高斯混合模型的高斯分布的个数是固定的,导致有冗余计算,不能随机应变,因而自适应高斯混合模型对此进行了改进,可以动态调整高斯分布的个数,从而大大减小了计算量,使算法更加快速。自适应GMM算法大致分为三步:①建立高斯混合模型,初始化参数;②前景检测并更新参数;③对单高斯模型进行排序,选取最适合的背景模型。

首先为每一个像素点建立K个高斯模型,假设输入的视频帧序列为{1,2,…,t},视频帧中P(x,y)像素点的值的序列为{x1,x2,…,xt},则在t时刻像素点P(x,y)取值为xt的概率为:

(3)

其中,η(x,μ,Σ)表示单高斯概率密度函数,ωi,t表示t时刻第i个高斯模型的权值大小,μi,t表示t时刻第i个高斯模型的均值向量,Σi,t表示t时刻第i个高斯模型的协方差向量,K表示高斯分布模型的个数,K的值一般取3~5之间。方差初始设置尽量大些,这是为了尽可能多地将像素包含到一个模型里面,权值设置尽量小些。

η(x,μ,Σ)=

当有新的观测数据xt+1来临时,将该点的像素值与K个高斯模型的均值μi,t进行比较:

‖xt+1-μi,t‖≤2.5×σi,t

(5)

其中,σi,t表示t时刻第i个高斯模型的标准差,如果当前像素与当前单高斯模型匹配(符合式(5)的即为匹配,否则为不匹配),则当前像素点为背景,如果不存在与当前像素匹配的单高斯模型,则当前像素点为前景。

比较完成需要更新各个模型的参数,对于各个模型的权值按如下公式进行更新,其中α为用户定义的学习率,是决定背景更新速度的重要参数,α越小,则更新的速度越慢,反之越快。对于匹配的模型Gk,t=1,否则Gk,t=0即权值衰减。

ωi,t+1=(1-α)×ωi,t+α×Gk,t

(6)

对于各个模型的均值、方差而言,未匹配的模型,其均值和方差不变,对于匹配的模型则需根据当前像素xt+1对其均值和方差按式(7)~式(9)进行更新处理,然后对权重进行归一化处理。

ρ=α/ωi,t+1

(7)

μi,t+1=(1-ρ)×μi,t+ρ×xt+1

(8)

Σi,t+1=(1-ρ)×Σi,t+ρ×(xt+1-μi,t+1)×

(xt+1-μi,t+1)T

(9)

其中,ρ为参数学习率。如果式(5)的比较中没有任何模型得到匹配,则权重最小的高斯分布模型将被替换,新模型的均值为当前像素值,权值为一个初始较小值,方差为一个初始较大值。

为了提高算法效率,需要依据单高斯模型的重要性进行排序。假设背景模型具有两个特点:一是权重大,则背景出现的频率大;二是方差小,像素值变化不大。据此使用ωi,t/σ作为判断的度量值,将K个高斯分布按大小进行排序,把满足式(10)的前B个模型作为背景模型:

(10)

几乎所有的背景建模算法在面对这种背景时时发生变化的场景时,都会在有明显边界的地方出现一条细细的线状噪声区域。为了尽可能抑制这种噪声,使用2.3中的第⑤步差分得到的误检的边界来改进自适应高斯混合模型,具体做法是将自适应高斯混合模型得到的二值图与2.3中第⑤步得到的误检的边界做差分运算,通过这种方法可以在一定程度上抑制边界上出现的误检。

2.5 图像形态学处理

图像形态学是用来处理图像形状特征的技术,常用于图像的预处理和后处理,是图像处理应用最为广泛的技术之一。腐蚀和膨胀是其中最基本也是最重要的两种形态学运算,它们是后续很多高级形态学处理的基础,很多其他的形态学算法都是由这两种基本运算复合而成。该文采用先开运算(先腐蚀后膨胀)再闭运算(先膨胀后腐蚀)的方法。

2.6 算法流程

大多数的背景建模算法在处理无人机平台下的火灾检测的时候,由于背景时时刻刻在发生变化,导致算法会出现大量的噪声和误检,所以对于特定场景下的优化处理就显得格外重要。同样由于无人机的快速移动,对算法的实时性也提出了很高的要求。该算法以自适应高斯混合模型作为基础模型,之所以采用自适应高斯混合模型,是因为首先高斯混合模型本身就是一种非常优秀的背景建模算法,很多其他的算法都是在此基础上进行的改进。其次自适应高斯混合模型是对高斯混合模型的一种改进,去掉了其中存在的冗余计算,提高了算法的性能,使算法具有更高的实时性。该算法大致分为预处理、检测、后处理三个步骤。

首先提取无人机拍摄的视频帧,视频是由一系列静止的画面组成的,这些静止的画面被称为帧,使用任何一种编程语言(使用python)对无人机拍摄的视频进行视频帧提取,就会得到一系列视频帧图像。预处理阶段:使用公式(1)的HSV颜色模型和形态学方法(具体指膨胀运算)对视频帧图像进行烟雾预处理,就会得到初步去除噪声的二值图,使用烟雾预处理的目的是为了预先去除一些噪声,为进一步的检测做准备。再使用公式(2)的RGB、XYZ融合的颜色模型和形态学方法(具体指膨胀运算)对视频帧图像进行火焰预处理,同样会得到去除噪声的二值图。然后将经过烟雾预处理、火焰预处理后得到的二值图做或运算就会得到经过初步预处理的二值图(此处的二值图是初步去除非烟雾和非火焰后得到的结果)。检测阶段:颜色模型并不是万能的,并不能总是非常精确地将目标的轮廓检测出来,同时,由于几乎所有的背景建模算法在面对背景时刻发生变化的情况时,都会在有明显边界的地方出现误检,形成一条细细的线状的噪声区域。为了解决这些问题,采用改进的三帧差分法,首先三帧差分法对于移动较为明显的火焰有较好的提取效果,可以在一定程度上弥补颜色模型的缺陷,其次由于帧间差分法固有的缺陷,导致其在边界也会形成细细的线状的误检区域,但是其对于其他类型的噪声有很强的抗干扰能力,所以其检测出来的图像很少带有噪声(除了边界处的线状噪声),因此很容易提取这细细的线状误检区域,在很大程度上抑制了这种噪声的产生。接着使用改进的三帧差分法所检测出来的线状误检区域来改进自适应高斯混合模型算法,然后使用改进的自适应高斯混合模型算法进行运动前景目标检测,检测后得到二值图,将此二值图和前面的经过烟雾、火焰预处理过的二值图做与运算(去除掉自适应高斯混合模型算法检测带有的噪声)。后处理阶段:使用形态学方法(具体是先开运算再闭运算)对检测阶段得到的二值图进行进一步的降噪处理。伪代码如图1所示。

图1 算法伪代码

3 实验结果与分析

在win7系统下使用OpenCV进行仿真实验,数据集来源于网络视频库中无人机拍摄的森林火灾视频,视频帧大小为732×484,处理一帧大约需要35 ms,基本满足实时性。该文抽取其中的300帧作为算法性能分析的数据,数据中包括了场景发生较大变化的部分。

3.1 定性分析

高斯混合模型是一种十分优秀的背景建模算法,很多其他的算法都是在此基础上进行的改进。由于无人机平台的特殊性,导致视频帧的背景时时刻刻在发生变化,所以高斯混合模型会产生大量的噪声,通过对视频帧图像的预处理和后处理,可以在很大程度上抑制噪声的产生,准确地检测出烟雾和火焰。

(1)传统的三帧差分法与改进的三帧差分法实验对比如图2所示。

图2 传统的三帧差分法与改进的三帧差分法的实验对比

(2)GMM算法与文中算法的实验对比如图3所示。

图3 GMM算法与文中算法的实验对比

(3)形态学方法处理前后的实验对比如图4所示。

图4 形态学方法处理前后的实验对比

3.2 定量分析

为验证算法的有效性,分别利用GMM算法和文中算法计算了目标轮廓面积为50像素(见图5、图6)、100像素(见图7、图8)下的正确检测率、错误检测率。

图5 50像素下的GMM算法和文中算法的正确检测率对比

图6 50像素下的GMM算法和文中算法的错误检测率对比

图7 100像素下的GMM算法和文中算法的正确检测率对比

图8 100像素下的GMM算法和文中算法的错误检测率对比

在上述实验对比图中70帧左右的地方场景变化比较大,GMM算法对于这种突然较大的场景变化适应性很差,需要很长的时间才能逐渐恢复到效果比较好的状态,而文中算法在70帧左右的地方性能也有一些下降,但很快就恢复到效果比较好的状态,并且一直保持着较高的准确率和稳定性。文中算法对于场景会发生比较大变化的环境有很好的适应性。

4 结束语

在考虑算法的基础模型上尝试过很多的算法,比如CodeBook算法、自组织背景建模算法等等,在实验中的效果均不太理想。由于高斯混合模型是背景建模算法中非常优秀的算法,很多其他算法都是在它的基础上建立起来的,因此采用高斯混合模型作为基础模型,但在实际运用过程中的效果并不好,会产生大量的干扰和噪声,所以需要对算法进行优化处理(包括预处理、后处理等)。

该文还没有解决的问题主要有以下几个方面:一是颜色模型并不是万能的,在一些特殊的情况仍然会有噪声产生,虽然改进的三帧差分法在一定程度上弥补了火焰颜色模型的缺陷,但仍有很大的改进空间;二是改进的自适应高斯混合模型算法虽然在很大程度上抑制了边界的误检,但是不能完全消除,仍然会有一些边界误检存在,这种误检几乎是所有的背景建模算法在面对背景时时发生变化的场景下的通病,其仍有很大的改进空间。

下一步的研究工作主要在于枯树的检测识别,无人机下的森林火灾检测虽然可以在火灾初期及时发现火灾,但是此时火灾已经发生,为了更进一步地预防森林火灾,需要研究枯树的检测识别,如果能够在这上面获得突破,那么就可以极大地减少森林火灾发生的可能。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!