基于帧间高频能量和相关性的烟雾检测算法研究
moboyou 2025-04-22 00:49 47 浏览
摘 要: 针对视频烟雾检测中当干扰物和烟雾极为相似时容易出现误判的问题,对基于帧间高频能量和相关性的烟雾检测进行了研究。首先通过混合高斯背景模型与三帧差法提取运动目标,再利用烟雾的颜色、扩散性、形状提取疑似目标区,对目标区域用离散小波变换获取高频能量,利用帧间高频能量和相关性对疑似区域进行烟雾判断,从而确定目标是否是烟雾并给出报警。通过MATLAB和VS2010进行仿真,结果表明,该算法可以有效提高烟雾识别检测的可靠性,减少误报。
0 引言
火灾探测主要分为火焰和烟雾的探测。而烟雾作为火灾发生的早期现象,其检测结果的准确性直接影响火灾探测系统的可靠性,因此对视频烟雾检测算法的研究具有重要意义。而视频烟雾检测的准确性仍然是一个开放的挑战,人们也在不断地对算法进行改进以提高检测效果。Simone Calderara等人提出一种使用图像能量和颜色信息的烟雾检测算法[1],Chen-Yu Lee等人提出了利用时空特性的烟雾检测算法[2]。Wen-hui Li等人提出了一个基于小波能量和光流法视频烟雾检测算法[3]。各种算法的研究使烟雾检测越来越准确,但也还存在一些缺陷。
(1)几种算法中都提到了烟雾能量检测,但都是以某时刻为判断单位,忽略了某时刻可能出现的暂时性干扰也有可能遮挡背景导致能量的衰减,如飘动的白色污染物。
(2)这些算法对于和烟雾特征很接近的干扰物,如雾霾、云朵等,不能做出判断,易产生误判。
针对烟雾和干扰物进行研究,本文结合烟雾的视频图像在时域和频域的特征,将烟雾的多种特征进行融合检测,提出了基于帧间高频能量和相关性的烟雾检测算法,能够有效提高烟雾检测的准确率。
1 本文算法架构
本文算法流程主要步骤:
(1)用混合高斯背景模型和帧差法对运动目标进行提取;
(2)运用烟雾的颜色、扩散性和不规则性进行目标的初步锁定,若满足条件则转到步骤(3)进行进一步的检测,否则为干扰区域进行排除,转回(1);
(3)对视频帧进行离散小波变化,提取视频间的高频能量变化信息和帧间的相关性变化,如果满足阈值条件则进行烟雾报警,否则将目标区域排除,转回(1)。
2 运动目标提取
(1)混合高斯背景模型
在t时刻,图像中的每个像素点的像素值可用混合高斯模型表示为下式[3-4]:
其中,K为高斯模型数(本文取K=3),wi,t为t时刻第i个高斯分布函数的权值(满足
,t=1),
i,t和?
i,t为t时刻对应高斯分布的均值和协方差矩阵,n为像素点ft(x,y)的维数,I为单位矩阵,δ为标准差。
(ft(x,y),
i,t,
i,t)为t时刻第i个高斯分布的概率密度函数。 如果满足:|fi,t+1-ui,t+1|≤ε*
i,t+1,则匹配成功,匹配的高斯分布的均值和方差进行更新,其他的高斯分布不变。该高斯模型的参数更新如下:
其中,a为高斯背景模型的学习率,
为参数学习率反应高斯分布均值和协方差的收敛速度。 其余的高斯分布权重会以wi,t+1=(1-a)wi,t进行更新。当参数更新完后,根据wi,t/
i,t降序排序后,若满足
则为背景模型,否则为前景模型,其中Th为设定的阈值,描述背景的高斯分布所占的比例。
(2)三帧差分法
三帧差分法[5]的主要思想:从视频中连续读取3帧图像fk,fk+1,fk+2进行隔帧两两差分,并通过阈值T1将两个差分图像二值化,即:
再将两个二值图像dk1和dk2相与,得到的交集就是运动目标的基本轮廓,从而提取出前景区域。
(3)提取运动目标
将三帧差分法提取的运动区域与混合高斯模型中提取到的前景区域进行逻辑“与”,获得比较准确的运动区域,并对该区域进行“开闭”运算,除去噪声,最终提取出运动目标。
3 烟雾特征提取
(1)颜色特征
烟雾颜色大多呈灰白色,通过对大量烟雾视频的烟雾RGB颜色特征进行实验,得到烟雾颜色特征如下[6]:
其中,R1=0.314 0,R2=0.336 9,G1=0.319 0,G2= 0.337 4为实验统计值。
(2)扩散性
烟雾的扩散性[1]使烟雾面积不断变化,表现为运动目标面积的不断增大,满足:Si<Si+t(t=1,2,3…)。因此可以利用面积的平均增长率提取疑似烟雾目标,其公式如下:
其中,Pi表示视频序列中第i张图像中的疑似区域内目标的像素总数。选取扩散度阈值为D1和D2。
(3)不规则性
烟雾随着气流不断变化,表现为形状上的不规则性,其不规则性可以表示为:
STD=SEP/STP(7)
SEP表示被提取出来的烟雾区域的周长,通过计算边缘像素总数来表示,STP表示被提取出来的烟雾疑似区域的面积,用包含的连通区域的像素总数描述。STD为不规则性判据,用以区别烟雾和其他形状规则的物体。
4 帧间能量和相关性
(1)能量分析
烟雾最显著的特征是由下到上并向四周逐渐扩散,这一现象会平滑背景图像使尖锐程度降低,在空域上表现为背景图像的边缘和纹理信息逐渐减少,在频域上反应为高频信息的削减[1,6]。将有烟雾的视频图像进行离散小波分解,由图1可知,烟雾的背景纹理遮挡性会削减背景的三个高频分量子图像,模糊背景的边缘和纹理等细节信息,在小波上表现为小波系数的减少。所以,利用小波系数的减少,计算三个高频分量子图像能量值,通过高频能量的变化可以判断是否有烟雾存在。
对于t时刻的烟雾视频图像It,其运动部分(Bk)高频部分的平均能量值[7]:
此外,为了感知较小的烟雾带来的能量变化,将每一项都做平方处理。
高频能量衰减率算法如下式:
其中,QB为无烟雾的背景高频能量值,QT为出现烟雾后的背景高频能量值,(QB-QT)即为被烟雾遮挡衰减的高频能量。为了提高检测的可靠性,计算平均衰减率如下:
其中N为迭代测量的
数量,Th为设定的比列阈值。如果平均衰减率
小于阈值Th,则目标区域为烟雾,否则为其他干扰物。
(2)相关性分析
烟雾在较短的时间内其形状和内部纹理结构变化快,而云朵相对来说变化缓慢。利用连续两帧的目标区域的相关性可以衡量相似性和估计运动趋势。
对于连续两帧图像的相关性可以用下式表示:
其中,xij表示第一帧图像像素(i,j)的像素值,yij表示第二帧图像像素(i,j)的像素值,
表示第一帧图像的像素平均值,
表示第二帧图像的像素平均值。
由上面对烟雾用二维小波变换的分析可知,烟雾会导致反应边缘信息的高频分量减少,所以分析连续两帧的高频分量的相关性,也可以作为烟雾判据之一。其中,设置水平、垂直、对角线的高频分量分别为ρ1、ρ2、ρ3,ρ为高频分量的总相关系数。用相关性判断烟雾的表达式如下:
其中,Th为设定的相关系数阈值。
5 实验结果
本实验在MATLAB软件平台上对烟雾图像、飘动的白色塑料袋图像、移动的云朵图像的小波能量和相关系数进行实验仿真,得到判断阈值。再在VS2010 C++实验平台上利用OPENCV库对烟雾、白色塑料袋、云朵视频图像进行烟雾识别实验。
对烟雾和飘动塑料袋的视频图像进行MATLAB实验仿真,其相应的高低频小波能量值的计算结果如表1所示。
从表1中可知,烟雾和白色塑料袋相比,有烟雾背景图像的高频部分能量减少更加显著,有烟雾时背景的高频能量急剧减少,减少比例绝对值大于6%,所以本实验中的比例阈值Th设置为6%。
分别计算视频图像中连续两帧的烟雾图像和云朵图像其高频分量的相关系数,结果如表2所示。
从表2可知,在连续两帧中烟雾和飘动的云在高频分量的相关系数上具有很大的差别。烟雾高频分量的相关系数一般小于0.5,云朵高频分量相关系数大于0.5,因此相关系数阈值th设置为0.5。
利用本文算法,在VS2010 C++实验平台上利用OPENCV库,对7个烟雾视频和3个非烟雾视频进行烟雾检测,检测结果如表3所示。
实验结果表明,该算法能够在有干扰物的情况下比较精确地识别火焰,提高了烟雾检测的可靠性,减少误报。
6 结论
对于基于高频的小波能量和相关性的烟雾检测算法的研究,应用了时间和空间的检测方法,与传统的烟雾检测算法(如颜色、形状、纹理)相比,提高了烟雾检测识别的可靠性。而且该算法可以很好地排除与烟雾具有相似特性的移动的云朵和飘动的白色物体。实验结果表明,基于高频部分的小波能量和相关性的烟雾检测可以较准确地从视频图像中识别出烟雾图像,并对障碍物进行有效的排除,减少误报,提高烟雾检测的可靠性。
参考文献
[1] CALDERARA S, PICCININI P, CUCCHIARA R. Vision based smoke detection system using image energy and color information[J]. Machine Vision and Applications, 2011,22(4):705-719.
[2] Lee Chenyu, Lin Chinteng, Hong Chaoting,et al. Smoke detection using spatial and temporal analyses[J]. Computing, Information and Control, 2012,8(6):4726-4749.
[3] Li Wenhui, Fu Bo, Xiao Linchang, et al. A video smoke detection algorithm based on wavelet energy and optical flow eigen-values[J]. Journal of Software, 2013,8(1):63-70.
[4] Sun Hong, Guo Kai. Moving target detection based on the improved Gaussian mixture background model[J]. Jiangnan University Journal, 2014,13(3):269-274.
[5] Wei Wei,Wu Qi. Moving target detection based on three frame difference combined with improved gaussian modeling[J]. Computer Engineering and Design,2014,35(3):949-952.
[6] Cheng Yuanhang, Wang Jing. A motion image detection method based on the inter-frame difference method[J]. Applied Mechanics and Materials,2014,490(7):1283-1286.
[7] Wang Tao, Liu Yuan, Xie Zhenpin. A new video smoke detection method based on wave analysis[J]. Electronics and Information Journal,2011,33(5):1024-1029.
相关推荐
- Excel批量生成随机人名_excel批量生成随机数
-
之前的文章讲过怎么用在Excel生成随机银行名字。今天继续给大家分享下怎么在Excel生成随机人名。随机数据工具包书接上回,本文对之前的随机数据生成工具包进行封装调用,生成的结果直接写入到Excel表...
- 一学就会:Excel MOD函数,让数字周期循环变得easy
-
今日推荐:MOD函数。目的:根据当前日期在年内的周数对5个小组取余,再根据余数的值获取对应的值班小组。MOD函数也可以作为获取随机数的一种,只不过这种随机数是有一定规律的。【函数介绍】MOD——返回两...
- 1条公式,自动随机分配座位,你会么?
-
随机座位困局、老办法效率低、新公式能否破局?.上周学校开会说要给教室换排座位,教务处老师愁得头发都快白了。以前都是靠老师自己写名单再划拉划分组,现在新教室三列座位,学生又多,折腾了三天都没摆顺当。听说...
- excel快速制作姓名随机分配表_姓名随机分组
-
快速制作随机分配表。当需要把这一列的姓名进行随机分组应该怎么操作?是不是还在一行一行的去复制粘贴,这样效率是非常慢的。怎么快速的制作一个随机的分组?·首先在第一组输入等于第一个姓名的A2单元格,双击填...
- Excel里实现随机分组案例:导入名单随机分组
-
大家好呀,今天来给大家分享如何快速在Excel里实现随机分组。如下图所示,有15个人,现在要随机分成3组,每组5个人。只要简单两步,就能完成分组。第一步:为每个人设置一个随机数并编序号C列输入公式=R...
- 办公必备的15个Excel技巧,绝对的硬核干货,收藏备用
-
Excel的灵魂在于数据的分析与统计,而分析与统计就离不开函数或公式,今天要给大家分享的15个函数公式,是工作中常用的,可以直接套用。一、从身份证号码中提取出生年月。函数1:Tex...
- Excel如何将某单元格区域数据随机排序
-
如下图是某公司人员名单,现在想要对这些员工进行随机分组。即对单元格区域内数据进行随机排序。选中B2:E10单元格区域点击下图选项(Excel工具箱,百度它即可了解详细的下载安装方法,本文这里就不做具体...
- 一键生成随机口算题,Excel工具妙用
-
小学生每天都要做口算,今天我给大家分享一下如何用excel来自制小学生的口算题。看我这里已经做好了,它的公式是这样,然后往下去拉,想要多少要多少,而且每一道题都是随机的。而且这一个表做好了之后,只要让...
- Excel秒变抽签神器!1分钟搞定随机点名/抽奖
-
还在为年会抽奖、课堂点名、分组任务抓狂?别求人写代码啦!Excel自带隐藏大招1分钟设置,永久使用,按个键就能开抽超简单3步设置(有手就会版)1随机号生成在姓名表旁新建「随机号」列输入=RAND...
- 基础函数20例,案例解读,再不掌握就真的Out了
-
Excel中的函数是Excel的一个重要工具,如果你不及时掌握,对于Excel的应用、工作效率等会受到很大的影响,今天,小编给大家分享20个Excel的基础函数,对大家肯定很有帮助。练习文件在文末领取...
- 怎么利用Excel实现随机取样_excel随机取数据
-
今天跟大家分享一下Excel如何随机抽样1.打开Excel软件2.选中要抽取数据的单元格区域3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说。)4.点击【统计与...
- 1分钟学会Excel总表更新,分表实时同步,再也不用熬夜了!
-
你是不是还在用筛选→复制→粘贴的老方法拆分Excel数据?每次按类别整理报表都要折腾半小时?别傻了!今天教你用FILTER函数一键搞定,数据更新还能自动同步!第一步:准备工作表新建3个工作表,分...
- excel计算几个数范围,excel怎么计算一个范围的个数
-
excel怎么计算某些范围的数的个数,需要计算0-5,5-10,10-15,……1000的...比如这些数字在A列,从B1至B10求10个范围的数量。在B1输入:=countif(a:a,=10)在B...
- 让Excel随机排序_excel如何设置随机排序
-
随机排序如下图,希望对A列的应聘人员随机安排面试顺序。先将标题复制到右侧的空白单元格内,然后在第一个标题下方输入公式:=SORTBY(A2:B11,RANDARRAY(10),1)RANDARRAY的...
- 对人员进行随机分组,分步骤详细解释,看了就学会了
-
大家好,我是套路EXCEL!如上图,需要将12个人随机分成3组,每组4人。函数公式如下:=ROUNDUP(CHOOSECOLS(SORT(HSTACK(ROW(1:12),RANDARRAY(12...
- 一周热门
- 最近发表
- 标签列表
-
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- css class选择器用法 (25)
- css样式引入 (30)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- php小说爬取源码 (23)
- 云电脑app源码 (22)
- html画折线图 (24)
- docker好玩的应用 (28)
- linux有没有pe工具 (34)
- mysql数据库源码 (21)
- php开源万能表单系统源码 (21)
- 可以上传视频的网站源码 (25)
- 随机函数如何生成小数点数字 (31)
- 随机函数excel公式总和不变30个数据随机 (33)