基于混合高斯模型与帧差法结合的目标跟踪算法matlab仿真
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于混合高斯模型与帧差法结合的目标跟踪算法matlab仿真相关的知识,希望对你有一定的参考价值。
目录
一、理论基础
目标检测:混合高斯模型与帧差法结合的算法,与单独的混合高斯模型算法作对比,体现前者的优越性
3、要求和结果:对比改进前后的算法,可以非常明显地看出改进前后更新背景速度的变化,效果要类似文献1中所给出的结果。
目标跟踪:在上面基础上,通过改进传统Mean Shift算法的内核与参数,对比算法改进前后在遮挡问题上的效果
- 针对的对象:解决前景运动目标在“被遮挡后”至“显露出来”这段时间无法跟踪到的问题
- 文献参考:文献1中P53中,目标车辆被遮挡后(第48帧)到显露出来(第65帧)之间,传统meanshift算法无法跟踪。改进后的算法可以跟踪。
- 要求与结果:对比改进前后的算法,可以非常明显地看出改进前后对遮挡问题的效果,效果要类似文献1中所给出的结果。
(二)光照问题:
目标检测:
1、研究对象:主要研究光照突变,不研究渐变
2、文献参考:文献2中介绍了两种目标检测原理:
(1)像素级(P23):混合高斯模型
(2)区域级(P25):
①基于分类分块算法(BSBC):适用于光照渐变,不适用于光照突变
- 在分类分块(BSBC)上加一个计时器,把这种算法叫FRDA算法:可适用于光照突变
- 要求与结果:分别用混合高斯模型、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
以上是关于基于混合高斯模型与帧差法结合的目标跟踪算法matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章
FPGA目标跟踪基于FPGA的帧差法和SAD匹配算法的目标跟踪实现
图像检测基于帧差法实现人脸实时检测与跟踪matlab源码含 GUI
图像检测基于帧差法实现人脸实时检测与跟踪matlab源码含 GUI