ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

【烟雾检测】基于matlab背景模糊模型视频烟雾检测【含Matlab源码 153 期】 欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab图像处理仿真内容点击①Matlab图像处理进阶版②付费专栏Matlab图像处理初级版⛳️关注CSDN海神之光更多资源等你来⛄一、案例简介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;hwaitwaitbar(0,‘’);display(‘图像正在处理中请稍后…’);for x 1 : LENtimes 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 LENwaitbar(times/LEN,hwait,‘即将完成’);endX 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 i1:ss(1) for j1: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 n1:s(1) for m1:s(2) w_tmp 0; w_tmp1 0; for i1:ss(1) for j1:ss(2) w_tmp w_tmp wd{n,m}(i,j); %背景图像子块能量 w_tmp1 w_tmp1 wd1{n,m}(i,j);%目标图像子块能量 end end for i1:ss(1) for j1:ss(2) if( t1*w_tmpw_tmp1 w_tmp1t2*w_tmp ) %根据阈值比较它们的值 cH1( iss(1)*(n-1),jss(2)*(m-1) ) 0; cV1( iss(1)*(n-1),jss(2)*(m-1) ) 0; cD1( iss(1)*(n-1),jss(2)*(m-1) ) 0; cA1( iss(1)*(n-1),jss(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 i1:sY(1) for j1: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’); %把图片重新合成jpgendclose(hwait);Make_avi(LEN); %avi视频制作toc;display(‘完成’);⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2014a2 参考文献[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 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合
返回列表