一种基于CodeBook的火灾图像识别方法及装置与流程

文档序号:6544475阅读:275来源:国知局

本发明创造涉及计算机图像处理及识别领域,尤其为一种火灾图像识别方法及装置.



背景技术:

图像型火灾识别技术是基于计算机视觉、图像处理与模式识别等方面的火灾探测新技术。该技术一般采用ccd/cmos对场景进行取像,将图像通过数据采集卡压缩编码传给主机或服务器,然后采用计算机图像处理与模式识别技术进行算法分析,当发现火灾时发出报警信号。目前该技术所采用的方法主要有如下几种:1颜色分析,主要分析火焰图像中的r、g、b值及其三维空间分布,或者将rgb颜色空间转换到yuv、lab等空间进行分析;2频谱分析,主要是将火焰图像从空间域转换到频域,然后再进行特征分析;3轮廓分析,火焰燃烧时候轮廓的波动是火焰一个重要特征,因此有人提出采用火焰轮廓极坐标时空数据的二维傅里叶变换来描述火焰动态特征,然后进行人工神经网络的识别等方法。这些与传统的感烟、感温式火灾监测技术相比,图像型火灾识别技术具有响应速度快,监测范围广,监视距离远等等显著的优势,适用于高大空旷的室内、外场所。但上述识别技术对于白炽灯等高温辐射物体下容易报警。



技术实现要素:

本发明创造要解决的问题是提供一种能够在背景中有白炽灯等高温辐射物体下能够准确识别是否为火灾情况且不会产生误报警的情况。为解决上述技术问题,本发明创造采用的技术方案是:一种基于codebook的火灾像识别方法,包括以下步骤:基于codebook算法对识别应用场景实时建模并建立初始码本(codebook),并根据后续图像对初始码本尽心实时更新,生成实时码本;

基于实时码本对采集到的当前帧图像进行前景提取;

计算该区域的前后图像序列的互信息熵;

将计算到的互信息熵与设定的阈值进行比较,将大于阈值的前景图像判定为非火灾图像或者将未超出阀值的前景图像判定为火灾图像。

进一步的,基于codebook算法对识别应用场景实时建模并建立初始码本(codebook)是通过以下步骤获得:

获取无火源的不少于10帧图像;

为图像中每一点建立码本;以及

通过上述步骤得出图像中每一点码本中各个码元的最大值和最小值。

进一步的,所述的基于codebook的火灾图像识别方法,所述的步骤还包括:在为上一步骤提取的前景图像建立码本并与初始码本进行比较之前,对提取的前景区域按照r>g>b的规则进行提取。

进一步的,所述的步骤还包括:在为上一步骤提取的前景图像建立码本并与初始码本进行比较之前,对提取的前景区域进行边缘检测;

进一步的,所述的对前景区域进行边缘检测包括以下步骤:

检测前景区域中相应的边缘轮廓;

对检测到的边缘轮廓与前面获取图像同一区域的边缘轮廓进行对比;

将比对的结果与设置的阈值进行比较,若比对结果大于预设的阈值判定为着火区域,否则

判定为非着火区域。

进一步的,所述的互信息熵计算包括以下步骤:

将每幅图像灰度化,按照gray=0.3r+0.6g+0.1b将图像

rgb值转换为灰度值;

将图像分别归一化,将灰度值映射到[0,255]之间;

按照h(x)=-∑p(x)logp(x)计算每一幅图像的信息熵值;

按照h(x,y)=-∑p(x,y)logp(x,y)计算两幅图像的联合熵值;

按照i(x,y)=h(x)+h(y)-h(x,y)计算图像x,图像y两者的互信息熵。进一步的,所述的识别方法还包括如下步骤:

建立系统计数器;

如果判定为火灾图像,则系统计数器自动加1,若被判定为非火灾图像,则系统计数器减一;

系统计数器超过一固定值,将自动触发报警。

根据本发明的另一方面还提供了一种基于codebook的火灾图像识别装置,包括:

基于codebook算法对识别应用场景实时建模建立并实时更新所生成的实时码本;

互信息熵计算装置,用于计算该区域的前后图像序列的互信息熵;

互信息熵比较装置,用于将计算到的互信息熵与设定的阈值进行比较;

火灾图像判定装置,用于将大于阈值的前景图像判定为非火灾图像或者将未超出阈值的前景图像判定为火灾图像。

进一步的,所述的火灾图像识别装置还包括:

码本建立装置,用于为图像中的每一点建立相应的码本;

码元最值获取装置,用于得出图像中每一点码本中各个码元的最大值和最小值。

进一步的,所述的火灾图像识别装置还包括:

颜色分析装置,用于为上一步骤提取的前景图像建立码本并与初始码本进行比较之前,对提取的前景区域按照r>g>b的规则进行提取。

进一步的,所述的火灾图像识别装置还包括:

边缘检测装置,为上一步骤提取的前景图像建立码本并与初始码本进行比较之前,对提取的前景区域进行边缘检测。

进一步的,所述的边缘检测装置包括:

单一图像边缘检测装置,用于检测提取前景区域中相应的边缘轮廓;

边缘轮廓对比装置,用于将检测到的边缘轮廓与前面获取图像同一区域的边缘轮廓进行对比;

着火区域判定装置,用于将比对的结果与设置的阈值进行比较,判定是否为着火区域。

进一步的,所述的火灾图像识别装置还包括:

灰度化转换装置,用于将每幅图像灰度化;

图像归一化装置,用于将图像分别归一化;

信息熵值计算装置,用于计算每一幅图像的信息熵值;

联合信息熵值计算装置,用于计算多幅图像的联合熵值;

多幅图像互信息熵计算装置,用于计算多幅图像互信息熵。

进一步的,所述的火灾图像识别装置还包括:

火灾图像系统计数器,用于对于判定的为火灾图像的个数进行累加;

火灾报警装置,用于在满足条件下触发火灾报警。

本发明创造具有的优点和积极效果是:能够在火灾发生时及时的进行报警,并在很大程度上避免了白炽灯等等热辐射物体的误报警,大大提高的报警的准确度。

附图说明

1是本发明一个实例中流程示意

2是本发明的一个实例中实时捕捉到的着火图像

3是本发明的一个实例中经处理后的背景图像

4是本发明的一个实例中经处理后的前景图像

具体实施方式

为了对本发明创造更加深入的了解,下面列举一具体实施例,并结合附,对本发明创造做进一步的详细说明。

在本实例中,在进行实景图像判断之前,首先应针对实景建立相应的场景码本,对场景进行实时建模。该场景建模的计算独立与对火灾图像进行识别相独立,场景建模的计算结果为火灾图像识别所使用。对应用场景建模采用基于codebook的背景建模算法,codebook是一种经典的场景建模算法,其基本思想是得到每个像素中相关码元的时间序列模型。codebook采用量化技术从时间序列中获得背景模型,能够检测像素剧烈变化、或者有移动物体或者更为复杂的背景模型。codebook为每个像素建立一个codebook,每个codebook含有一个或者多个codeword,codeword记录背景学习的阈值、对应像素的更新时间以及访问频率等,通过这些信息,可以得知每个像素的变化情况,从而获得视频中的背景模型。

在本实例中采用如下具体执行步骤:

通过图像采集对前几张场景图像,3为本实例中所采集到的一帧场景图像,一般来说采集的场景图像越多,对于前景图像的提取效果越好,但采集的图像过多,也会对后续的处理增加较多的负担,一般来说,需要采集至少10帧的场景图像才能保证前景图像的提取效果。在这里我们采用50张像,既可以保证前景图像提取的效果,同时也不会对系统增加较大的负担。可以采用经典的codebook方式进行背景学习,初始化图像中每一点的码本,需要注意的是场景中不要出现火源,如果初始码本的场景中出现相应的火源,建立的码本相应的就会与实际想要得出的前景图像的码本出现比较大的误差,后续的火灾图像识别准确率也会下降很多。

当初始场景码本建立以后,由于场景处于变化当中,有必要对初始码本进行相应的更新,以使得场景码本和当前的场景保持一致,在本实例中大于50帧之后,对于每一张新采集到图像,每一点的codebook码本需要进行实时的更新;每隔固定的帧数,对陈旧的码本进行清理删除。

1.opencv实现简单codebook

codebook算法为当前图像的每一个像素建立一个codebook(cb)结构,每个codebook结构又由多个codeword(cw)组成。cb和cw的形式如下:

cb={cw1,cw2,…cwn,t}

cw={lhigh,llow,max,min,t_last,stale}

其中n为一个cb中所包含的cw的数目,当n太小时,退化为简单背景,当n较大时可以对复杂背景进行建模;t为cb更新的次数。cw是一个6元组,其中ihigh和ilow作为更新时的学习上下界,max和min记录当前像素的最大值和最小值。上次更新的时间t_last和陈旧时间stale(记录该cw多久未被访问)用来删除很少使用的codeword。

假设当前训练图像i中某一像素为i(x,y),该像素的cb的更新算法如下,另外记背景阈值的增长判定阈值为bounds:

(1)cb的访问次数加1;

(2)遍历cb中的每个cw,如果存在一个cw中的ihigh,ilow满足ilow≤i(x,y)≤ihigh,则转(4);

(3)创建一个新的码字cwnew加入到cb中,cwnew的max与min都赋值为i(x,y),ihigh<-i(x,y)+bounds,ilow<-i(x,y)–bounds,并且转(6);

(4)更新该码字的t_last,若当前像素值i(x,y)大于该码字的max,则max<-i(x,y),若i(x,y)小于该码字的min,则min<-i(x,y);

(5)更新该码字的学习上下界,以增加背景模型对于复杂背景的适应能力,具体做法是:若ihigh<i(x,y)+bounds,则ihigh增长1,若ilow>i(x,y)–bounds,则ilow减少1;

(6)更新cb中每个cw的stale。

使用已建立好的cb进行运动目标检测的方法很简单,记判断前景的范围上下界为minmod和maxmod,对于当前待检测图像上的某一像素i(x,y),遍历它对应像素背景模型cb中的每一个码字cw,若存在一个cw,使得i(x,y)<max+maxmod并且i(x,y)>min–minmod,则i(x,y)被判断为背景,否则被判断为前景。

在实际使用codebook进行运动检测时,除了要隔一定的时间对cb进行更新的同时,需要对cb进行一个时间滤波,目的是去除很少被访问到的cw,其方法是访问每个cw的stale,若stale大于一个阈值(通常设置为总更新次数的一半),移除该cw。

当场景模版被建立及能够实时更新后火灾图像识别。在本实例中该流程中将对所采集到的一帧帧的图像进行识别分析,判断图像中是否有火灾区域,如果有则发出报警信号。其主要步骤如下:

1、对采集的图像基于codebook算法的前景提取;

2、对于所提取的前景区域,进行以下分析:颜色分析、亮度分析、边缘分析。首先进行颜色分析,在rgb颜色空间中,火焰区域的颜色分布在rgb空间的某一字空间内,满足r>g>b,因此不在此空间的前景图像将被排除;其次火焰发生时候图像的亮度明显高于周围非火焰区域,因此亮度较小的前景区域将被排除;最后进行边缘检测,对检测到的边缘轮廓与前10帧图像同一区域的边缘轮廓进行对比,计算其相似性。该方法认为,火焰的边界具有波动性,因此在火灾发生时候,火焰区域图像的轮廓是不断变化的,相邻像轮廓之间相似性值是较低的;边缘检测采取基于canny边缘检测的方法,同时利用基于轮廓的hu矩的相似性来比较,相似性阈值设置在0.9左右,当相似性小于阈值时,该区域为疑似火灾区域。以上步骤都是用以辅助判断,对于明显不符合疑似火灾的图像进行排除,可以减少整个系统的运算量,节约判断火灾图像时间。

3、对于上一步提取的疑似火灾区域,计算该区域的前后图像序列的互信息熵,该方法认为火焰区域的亮度分布是不断变化的,并不是一成不变的,因此互信息熵值较小;而同样的红外热辐射源的图像序列基本是静止不动的,对应区域的互信息熵值较大。因此设定一个固定的阈值,阈值的选取一般在0.7-1.0的范围内,在本实例中采用实际中设置的值是0.95,该值的选取是根据实际经验所得出。该阈值的设置既可以减少误报警的几率,也能够保证在火灾中能够快速的实现报警。当互信息熵值小于该阈值时,该区域为疑似火灾区域。此方法可以有效的排除高温红外热辐射源的干扰。对两幅图像像x、图像y两者的互信息熵计算i(x,y)方式如下:

i(x,y)=h(x)+h(y)-h(x,y),式(1)

其中h(x)、h(y)分别是两幅图像x,图像y的信息熵,h(x,y)是联合信息熵(jointentropy),其定义为:

h(x,y)=-∑p(x,y)logp(x,y)式(2)

具体计算过程如下:

step1:图像x、y的灰度化,rgb值转换为灰度值,计算公式如下:

gray=0.3r+0.6g+0.1b式(3)

其中,gray是转换后的灰度值,r、g、b分别是原始图像的各通道的色彩值;

step2:图像归一化,将灰度值映射到[0,255]之间;

step3:分别计算图像x、y各种的信息熵值,图像x的信息熵计算公式如下,同理可计算图像y。

h(x)=-∑p(x)logp(x)式(4)

step4:计算图像x、y的联合信息熵(jointentropy),计算公式参考式(2)。若在以上步骤中发现疑似火灾区域,系统计数加一,否则计数减一,当系统计数大于报警前延时阈值时候,发出报警信号。该延时阈值可以通过固定场景的经验判断来得出,不同的场景应设定不同的延时阈值,在本实例中延时阈值采用经验值所取得,一般阈值可选取在0.7-1.0之间。系统设置计数功能的目的在于可以减少由于对单一火灾图像判定错误误报警的几率,同时由于图像处理及判定的速度很快,在短时间内就有可能达到阈值的数目,对于误判为火灾图像,可以通过对计数器减的方式来减少误报警的几率。

根据本实施例所提供的算法,作为本领域的技术人员也可以相应的计算出多幅图像的互信息熵。

以上对本发明创造的实施例进行了详细说明,但所述内容仅为本发明创造的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明创造范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1