1.问题描述:
一种用于云台变焦相机自动跟踪运动目标的有效算法。跟踪算法适用于但不限于静止背景,并且能够容忍合理的噪声和光照变化。其主要思想是在存在噪声和不确定性的情况下,利用统计方法积累背景信息。该方法还允许根据图像的平移-倾斜-变焦特征量来决定背景随时间的变化,并区分最可能的背景变换。恢复背景时,可以使用标准的背景减法。仿真结果表明,所提出的跟踪算法对监控系统是有效的。
2.部分程序:
%function AnnEng_ir(fname, ratio, skip, ifdisp)
%AnnEng_ir('test.avi', '0.5','1','1');
fname='03.avi';
ratio= '0.5';
skip='1';
ifdisp='1';
% addpath (genpath('Baggage'));
if ~exist('ratio','var')
ratio=0.5;
else
ratio=str2num(ratio);
end;
if ~exist('skip','var')
skip=1;
else
skip=str2num(skip);
end;
if ~exist('ifdisp','var')
ifdisp=1;
else
ifdisp=str2num(ifdisp);
end;
BlobTh=12; %str2num(blobth);
BlobSz=64*ratio*ratio; %str2num(blobsz);
MorphSz=double(uint16(sqrt(BlobSz)));
Options.ssearch = 1;
Options.isearch = 1/10;
Options.Start=1;
%% Detector options
Options.BlobTh=16; %16 %% Minimum threshold for likelihood changes
Options.BlobSz=18; % 16 %% Minimum blob size
Options.MorphSz=MorphSz; %% Morphologic filtering range
Options.ratio=ratio;%0.25;%0.25;
Options.TmpCorrl=[]; %2*skip;
Options.Interval=skip;
Options.ifdisp=ifdisp;%10;
Options.colorcorrection=0;
Options.ifnumplate=0;
%%global parameters
Options.background_memory = 50; % intial frames for background calculation has to be 2 times this value
%% Movie options
Options.enazoom = true;
Options.enarotate = true;
Options.enapan = true;
Options.ena_ptz= false;
%% Recursion parameters for temporal recursive filter.
Options.krec_factor = 5; %% Alpha channel recursion factor.
Options.rec_min = 1/Options.background_memory * Options.Interval; %% Background recursion min rate.
Options.rec_max = 1 - Options.rec_min; %% Background recursion max rate.
Options.mot_reset_thresh = 0.25; %% Threshold for background reset.
Options.back_up_rate = 1/Options.background_memory * Options.Interval; %% Background update rate.
Options.ssearchx = 1; %% Spartial global search range.
Options.ssearchy = 1; %% Spartial global search range.
Options.ssearch = 3; %% Spartial local search range.
Options.isearch = 3; %% Intensity search range.
Options.irange = 1/20; %% Intensity search interval.
Options.zoom = 1; %% Global zoom variable.
vstream = mmreader(fname);
% imH = get(vstream,'Height')*ratio;
% imW = get(vstream,'Width')*ratio;
% nFrm = get(vstream,'NumberOfFrames');
% frmRate=get(vstream,'FrameRate');
% length=get(vstream,'Duration');
AnnotationEngT_ir(fname,vstream, Options);
return;
3.仿真结论:
C-09