【烟雾检测】基于matlab背景模糊模型视频烟雾检测【含Matlab源码 153 期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、案例简介

1 引言
目前烟雾检测绝大多数还是采用感烟、感温、感光以及复合型检测器,这些检测器是依靠检测燃烧过程中的副产物(烟雾粒子、温度变化等)来检测烟雾的,因此只能在离火焰和烟雾源较近的地方才能快速有效的发挥探测作用,对于大的空间或者户外场所,其检测的可靠性较低。
为了提高检测烟雾的实时性和可靠性,2009年左右国内外的一些学者致力于应用图像处理技术进行烟雾检测的研究。B Ugur Toreyin等人提出了基于小波的视频烟雾检测技术,该方法假设摄像机静止不动,烟雾出现使背景景物边缘模糊,在小波域上表现为高频能量降低。
而根据烟雾自身的特征——背景模糊性、扩散性、主方向角性等,基于摄像头不动的检测模型又有很多种方法,但是本人在比较了各种方法的实现的难易程度、检测的准确度等几个方面后,认为背景模糊性即简便、易于理解,且又不失准确度,因此我采用了背景模糊性这单一特征进行深入研究。
但是,该算法的缺点是烟雾检测的前提条件是背景图像中必须有较强的边缘和纹理成分,从而限制了该算法的应用范围。

2 背景模糊模型
2.1 基于均值背景模型提取背景
2.1.1 均值背景模型

平均背景模型是将运动目标看作为噪声,用累加平均的方法消除之。利用运动目标运行一段时间的序列图像进行平均而得到背景图像。
公式为:
在这里插入图片描述
2.1.2 实现过程
均值背景模型实现比较简单,需要一帧一帧读取每一帧图像,然后对每一帧图像相应位置的像素点进行求和取平均。本实验中用了一个三维的矩阵mat(x,y,k)来存储每一帧图像的灰度值,其中k是固定值,可以是整个视频,也可以是固定一段时间内的序列图像。

对比两幅图我们可以看出,由于烟雾底部的运动特点很低,因此并没有被作为噪声平均掉,但是基本提取了除去烟雾以外的背景,这对于背景模糊烟雾检测模型来说,这个背景已经足够了,后续我们可以用其它方法进行改进,目前这个方法较为简便。

2.1.3 均值背景模型特点
均值背景模型是一种简单、计算速度快但对环境光照变化和背景的多模态性比较敏感的背景建模算法。
在实际应用中,往往是图像中的某些区域有亮度高的目标,而某些区域有亮度低的运动目标经过,通过平均法得到的背景图像就会出现亮暗分布不均匀的区块。另外,该算法得到的背景图像受运动目标数量的影响比较大。
因此,背景提取是该实验后续可以改进的地方之一。

2.2 背景模糊检测
2.2.1 判别依据

研究表明,烟雾在一般情况下时部分地遮挡其它物体,在空间域表现为背景变模糊,在频率域表现为高频信号衰减;而非烟雾图像则通常是完全遮挡背景。依据烟雾这一特点,我们可以利用二维离散小波变换提取烟雾图像背景纹理,对纹理变模糊的特性进行判别,从而检测出烟雾的存在。

2.2.2 小波变换
小波变换的主要特点是通过变换能够充分突出问题某些方面的特征,能对时间(空间)频率进行局部化分析,通过伸缩平移运算对信号进行多尺度细化,最终达到高频处时间细分,低频处频率细分的结果。
而一幅图像经过二维离散小波变换,可分解为四个部分:一幅低频(cA)分量子图像和三幅高频分量子图像。其中,三幅高频分量子图像包含了水平方向(HL)、竖直方向(LH)和对角方向(HH)的纹理信息。当图像中有烟雾出现时,通常情况会使这三幅高频分量子图像的能量值减小。
设wn(x,y)表示由三幅高频分量子图像的能量值之和构成的一幅复合图像:
在这里插入图片描述
(1)
将复合图像分解成为大小为(K1,K2)的子块,第i个图像子块的能量ei(l1,l2)为:
在这里插入图片描述
式中:Ri为复合图像wn(x,y)中大小为(K1,K2)的第i个子块;(l1,l2)表示能量子块在复合图像中的相应位置。本文采用块的大小为4x4。
对当前图像经小波变换后的局部高频能量值与相应位置的背景图像经小波变换后的局部高频能量值进行比较,如果在(l1,l2)处的子块能量值ei(l1,l2)被降低,那么就意味着当前图像的纹理或边缘不再像背景图像中那么尖锐,对应图像块有可能出现烟雾。
为了提高识别率,设定两个阈值0 < T1 < T2 < 1,本实验取T1 = 0.6 、T2 = 0,如果图像中出现烟雾导致小波高频能量减少,则ei(l1,l2)应满足:
T2 * ei(l1,l2) < ei(l1,l2) < T1 * ei(l1,l2) (3)

式中的ei(l1,l2)表示由背景图像构成的复合图像在(l1,l2)处的子块能量值。将满足式(3)的能量子块内的像素值设置为0,即HL(l1,l2) = 0 、LH(l1,l2) = 0、HH(l1,l2) = 0、cA(l1,l2) = 0。然后在通过小波反变换还原出原图像,此时原图像缺失了被识别为烟雾区域的像素值,接着通过构造图像的二值图,取反,补全‘空洞’(‘holes’),找到最大的连通区域即为真正的烟雾区域。

⛄二、部分源代码

tic;
clear all;
close all;
clc;

rmdir(‘result_img’,‘s’);
mkdir(‘result_img’);

LEN = Bg_make; %要处理的图片

times = 0;
hwait=waitbar(0,‘’);
display(‘图像正在处理中,请稍后…’);
for x = 1 : LEN
times = times + 1; str=[‘正在处理’,num2str(LEN),‘张图像中…’,num2str(round(x*100/LEN)),‘%’];
hbar = waitbar(times/LEN,hwait,str);
set(findobj(hbar,‘type’,‘patch’), …
‘edgecolor’,‘w’,‘facecolor’,‘g’);
if x == LEN
waitbar(times/LEN,hwait,‘即将完成’);
end

X = rgb2gray(imread('bg_img\bg.jpg')); %读取背景图片
pic = imread(strcat('image\smoke', int2str(x), '.jpg'));  %读取目标图片

Y = rgb2gray(pic);  %目标图片转换为灰度图

[cA,cH,cV,cD]=dwt2(X,'db1');    %对背景图像进行小波变换
                                %cA低频分量,cH水平方向分量,cV垂直方向分量,cD斜对角方向分量
[cA1,cH1,cV1,cD1]=dwt2(Y,'db1');%对目标图像进行小波变换  

ss = size(cH);  %小波变换后图像大小

w = zeros( ss(1),ss(2) );   %背景图像小波变换后的能量矩阵
w1 = zeros( ss(1),ss(2) );  %目标图像小波变换后的能量矩阵
t1 = 0;   t2 = 0.6; %两个阈值t1,t2-------------------------+++++++++++++++++
%构建复合图像,并比较它们的值
for i=1:ss(1)
    for j=1:ss(2)
        w(i,j) = cH(i,j)^2 + abs(cV(i,j))^2 + cD(i,j)^2;    %背景复合图像
        w1(i,j) = cH1(i,j)^2 + abs(cV1(i,j))^2 + cD1(i,j)^2;%目标复合图像
    end
end
wd = Divide_mat(w,4);   wd1 = Divide_mat(w1,4);
s = size(wd);   %分块后矩阵大小
ss = size(wd{1,1}); %小块大小
for n=1:s(1)
    for m=1:s(2)

        w_tmp = 0;
        w_tmp1 = 0;
        for i=1:ss(1)
            for j=1:ss(2)
                w_tmp = w_tmp + wd{n,m}(i,j);   %背景图像子块能量
                w_tmp1 = w_tmp1 + wd1{n,m}(i,j);%目标图像子块能量 
            end   
        end
        for i=1:ss(1)
            for j=1:ss(2)
                if( t1*w_tmp<w_tmp1 && w_tmp1<t2*w_tmp ) %根据阈值比较它们的值
                    cH1( i+ss(1)*(n-1),j+ss(2)*(m-1) ) = 0;
                    cV1( i+ss(1)*(n-1),j+ss(2)*(m-1) ) = 0;
                    cD1( i+ss(1)*(n-1),j+ss(2)*(m-1) ) = 0;
                    cA1( i+ss(1)*(n-1),j+ss(2)*(m-1) ) = 0;
                end
            end
        end

    end
end
Y_i = idwt2(cA1,cH1,cV1,cD1,'db1');

% figure(1); imshow(Y_i,[]); %------------

sY = size(Y_i);  %转化为二值图像
for i=1:sY(1)
    for j=1:sY(2)
        if(Y_i(i,j)~=0)
            Y_i(i,j) = 1;
        end
    end
end
bw_pic = Y_i;
cov_bw_pic = 1 - bw_pic;    %反转1次,为了去除连通区域内的黑色像素值(即0矩阵)
fill_pic = imfill(cov_bw_pic, 'holes');

%以下都是对 其 二值图像进行处理,即对烟雾的连通区域赋红值,且下面默认的是最大连通区域为烟雾区域
B_pic = bwboundaries(fill_pic); %得到的是一个P×1的单元
ss = size(B_pic);        %ss的值就是连通分量的数量
ss1 = size(B_pic{1, 1}); %ss1是一个大小为m×2的矩阵
max = ss1(1);
for i = 2 : ss(1)        %找到最大的连通区域的边界总个数
    ss2 = size(B_pic{i, 1});
    if ss2(1)> max
        max = ss2(1);
    end
end

sss = size(B_pic);%sss的值就是连通分量的数量
for k = 1 : sss(1)%该循环作用是找到最大区域的边界,然后在原图像的对应位置上赋红
    Mid = B_pic{k};%Mid是一个m×2的矩阵,m就是边界点的数量
    %ss4(1)表示边界点的数量,Mid(i, 1)和Mid(i, 2)表示边界点的坐标
    ss4 = size(Mid);
    if ss4(1) == max
        for i = 1 : ss4(1)
            pic(Mid(i, 1), Mid(i, 2), 1) = 255; %相应位置只保留红色分量+++++++
            pic(Mid(i, 1), Mid(i, 2), 2:3) = 0;
        end
    end
end 

% figure(2); imshow(pic); %用于观察生成的检测烟雾图----------------
imwrite(pic,strcat(‘result_img\smoking_detection’, int2str(x), ‘.jpg’), ‘jpg’); %把图片重新合成jpg
end
close(hwait);

Make_avi(LEN); %avi视频制作

toc;
display(‘完成!’);

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李党.基于视频图像处理的烟雾检测方法研究[D].燕山大学

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值