您现在的位置:首页 >> 图像处理 >> 内容

基于L2-RLS算法的目标跟踪算法matlab仿真,可处理小范围遮挡问题

时间:2023/1/26 23:11:13 点击:

  核心提示:A300,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56Yl55q

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览





3.算法概述

        目标表观模型是跟踪器的重要组成部分,用来描述目标表观的特征.基于判别式模型的表观模型用来区分目标和背景;基于生成式模型的表观模型用来描述目标本身,提取出目标的特征.本文合理地融合了判别式模型和生成式模型来对目标进行描述,并利用L2范数最小化对目标表观系数进行求解,取得了比较好的结果.

4.部分源码

............................................................................

rand('state',0);  randn('state',0); 

temp = importdata([dataPath 'datainfo.txt']);

LoopNum = temp(3);%number of frames

frame = imread([dataPath '1.jpg']);

if  size(frame,3) == 3

    framegray = double(rgb2gray(frame))/255;

else

    framegray = double(frame)/255;

end

%%  p = [px, py, sx, sy, theta];  

param0 = [p(1), p(2), p(3) /opt.tmplsize(1), p(5), p(4)/p(3), 0];      

param0 = affparam2mat(param0);

..............................................................................

B=randblock(sz,opt.blockSizeSmall,opt.blockNumSmall);%% generate squre templates

for f = 1:LoopNum

    CurrentFrame=f

    frame = imread([dataPath int2str(f) '.jpg']);

    if  size(frame,3) == 3

        framegray = double(rgb2gray(frame))/255;

    else

        framegray = double(frame)/255;

    end

    %% do tracking

    opt.frameNum = f;

    [param,opt] = L2_Tracker(framegray, tmpl, param, opt,P,B);

    result = [ result; param.est' ];

    if param.wimg~=zeros(opt.tmplsize(1),opt.tmplsize(2));

       wimgs= [wimgs, param.wimg(:)];   

    end

    %%Update Model

    if  (size(wimgs,2) >= opt.batchsize)  

        %%(1)Incremental SVD

        [tmpl.basis, tmpl.eigval, tmpl.mean, tmpl.numsample] = ...

        sklm(wimgs, tmpl.basis, tmpl.eigval, tmpl.mean, tmpl.numsample, opt.ff);  

        %%(2)Clear Data Buffer

        wimgs = [];     

        %%(3)Keep "opt.maxbasis" Number Basis Vectors

        if  (size(tmpl.basis,2) > opt.maxbasis)          

            tmpl.basis  = tmpl.basis(:,1:opt.maxbasis);   

            tmpl.eigval = tmpl.eigval(1:opt.maxbasis);    

            W=tmpl.basis;

            Mu=tmpl.mean;

        end

        D=[tmpl.basis,B]; %dictionay 

        P=inv(D'*D+lambda*eye(size(D,2)))*D';% project matrix

    end

end

duration = duration + toc;

fps =f/duration;

%% 

TotalFrameNum=LoopNum;

L2RLSCenterAll  = cell(1,TotalFrameNum);      

L2RLSCornersAll = cell(1,TotalFrameNum);

for num = 1:TotalFrameNum

    if  num <= size(result,1)

        est = result(num,:);

        [ center corners ] = p_to_box([32 32], est);

    end

    L2RLSCenterAll{num}  = center;      

    L2RLSCornersAll{num} = corners;

end

..........................................................

A300

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168