基于混合高斯模型与帧差法结合的目标跟踪算法matlab仿真

目录

一、理论基础

二、核心程序

三、仿真测试结果


一、理论基础

目标检测:混合高斯模型与帧差法结合的算法,与单独的混合高斯模型算法作对比,体现前者的优越性

3、要求和结果:对比改进前后的算法,可以非常明显地看出改进前后更新背景速度的变化,效果要类似文献1中所给出的结果。

目标跟踪:在上面基础上,通过改进传统Mean Shift算法的内核与参数,对比算法改进前后在遮挡问题上的效果

  1. 针对的对象:解决前景运动目标在“被遮挡后”至“显露出来”这段时间无法跟踪到的问题
  2. 文献参考:文献1中P53中,目标车辆被遮挡后(第48帧)到显露出来(第65帧)之间,传统meanshift算法无法跟踪。改进后的算法可以跟踪。
  3. 要求与结果:对比改进前后的算法,可以非常明显地看出改进前后对遮挡问题的效果,效果要类似文献1中所给出的结果。

(二)光照问题:

目标检测:

1、研究对象:主要研究光照突变,不研究渐变

2、文献参考:文献2中介绍了两种目标检测原理:

(1)像素级(P23):混合高斯模型

(2)区域级(P25):

①基于分类分块算法(BSBC):适用于光照渐变,不适用于光照突变

  • 在分类分块(BSBC)上加一个计时器,把这种算法叫FRDA算法:可适用于光照突变
  1. 要求与结果:分别用混合高斯模型、BSBC算法、FRDA算法三种算法处理光照突变下的目标检测,可以非常明显地看出FRDA算法处理光照突变下目标检测的效果好于其他两种算法,效果要类似文献2中P30实验二所给出的结果。

二、​​​​​​​核心程序

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

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/127139441