目录
一、理论基础
二、核心程序
三、仿真测试结果
目标检测:混合高斯模型与帧差法结合的算法,与单独的混合高斯模型算法作对比,体现前者的优越性
3、要求和结果:对比改进前后的算法,可以非常明显地看出改进前后更新背景速度的变化,效果要类似文献1中所给出的结果。
目标跟踪:在上面基础上,通过改进传统Mean Shift算法的内核与参数,对比算法改进前后在遮挡问题上的效果
(二)光照问题:
目标检测:
1、研究对象:主要研究光照突变,不研究渐变
2、文献参考:文献2中介绍了两种目标检测原理:
(1)像素级(P23):混合高斯模型
(2)区域级(P25):
①基于分类分块算法(BSBC):适用于光照渐变,不适用于光照突变
clc;
clear;
close all;
warning off;
addpath 'func\'
%%
%参数初始化
RR = 96;%处理视频大小
CC = 128;
K = 3; %组件
Alpha = 0.01; %适应权重速度
Rho = 0.01; %适应权重速度协方差
Deviation_sq = 49; %阈值用于查找匹配
Variance = 3; %初始方差为新放置组件
Props = 0.00001; %最初为新放置
Back_Thresh = 0.8; %体重的比例必须占背景模型
Comp_Thresh = 10; %滤掉连接组件的较小的尺寸
SHADOWS =[0.7,0.25,0.85,0.95]; %设置阴影去除门限值
%%
%我们这里设计了一个算法,就是能够读取压缩后的AVI视频,从而使仿真速度更快
disp('正在读取视频...');
FileName_AVI = '背景更新.avi';
[Obj,frameNum_Original] = get_AVI(FileName_AVI);
[pixel_original,pixel_gray] = vedio_op(Obj,frameNum_Original);
clear Obj;
for i = 1:frameNum_Original
pixel_gray2(:,:,i) = imresize(pixel_gray(:,:,i),[RR,CC]);
pixel_original2(:,:,:,i) = imresize(pixel_original(:,:,:,i),[RR,CC]);
end
clear pixel_gray pixel_original;
disp('读取视频完毕...');
disp('正在进行高斯混合模型的仿真...');
[image_sequence,background_Update,Images0,Images2] = func_Mix_Gauss_Model(pixel_original2,frameNum_Original,RR,CC,K,Alpha,Rho,Deviation_sq,Variance,Props,Back_Thresh,Comp_Thresh,SHADOWS);
disp('高斯混合模型的仿真完毕...');
disp('正在显示效果...');
figure;
for tt = 1:frameNum_Original
tt
subplot(221)
imshow(image_sequence(:,:,:,tt));
title('原始图像');
subplot(222)
imshow(uint8(background_Update(:,:,:,tt)));
title('背景图像更新');
subplot(223)
imshow(Images0(:,:,tt));
title('运动目标检测');
subplot(224)
imshow(Images2(:,:,tt));
title('运动目标检测去阴影');
pause(0.001);
end
disp('显示效果完毕...');
save Result.mat image_sequence background_Update Images0 Images2
一、单独的混合高斯模型算法进行目标的检测main1(对比视频:背景更新.AVI)
二、混合高斯模型与帧差法结合的算法main2(对比视频:背景更新.AVI)
三、在二的基础上,传统Mean Shift算法,遮挡问题main3(对比视频:遮挡问题.AVI)
当出现遮挡的时候,则会跟踪失败,如下所示:
由此可见,传统的MS算法,在遮挡之后重新出现,会无法重新进行跟踪。
四、在二的基础上,改进传统Mean Shift算法,遮挡问题main4(对比视频:遮挡问题.AVI)
A10-13