基于L2-RLS算法的目标跟踪算法matlab仿真,可处理小范围遮挡问题
目录
1.算法仿真效果
matlab2022a仿真结果如下:
2.MATLAB核心程序
............................................................................
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
3.算法涉及理论知识概要
目标表观模型是跟踪器的重要组成部分,用来描述目标表观的特征.基于判别式模型的表观模型用来区分目标和背景;基于生成式模型的表观模型用来描述目标本身,提取出目标的特征.本文合理地融合了判别式模型和生成式模型来对目标进行描述,并利用L2范数最小化对目标表观系数进行求解,取得了比较好的结果.
训练集U=[U1,U2,…,Um+n]∈Rd×(m+n),包括m个正模板U+∈Rd×,和n个负模板U-∈Rd×n.在初始位置周围手动采集m个图像,归一化后按行堆成向量作为正模板;在离初始位置较远处采集n个图像,利用同样的方法得到负模板.其中初始位置是通过在第一帧中手动标注得到的.采集到的候选样本y∈Rd可以通过训练集线性表示,即
其中,b=[b1,b2,…,bm+n]T∈R(m+n)×1,为线性表示的系数.b是弱稀疏的,利用这一特征通过L2范数最小化进行求解,其中λ为约束参数.
L2范数约束项的作用有2个:①它使解b具有一定的稀疏度,但是L2范数的稀疏度远低于L1范数的稀疏度.②它使得最小化的解更加稳定.L2范数最小化很容易求解,令||UTb-y||22+λ||b||22的导数为0,即
,可得出:
其中I∈Rd×d,是一个单位矩阵,用来确保UTU+λI的可逆性.
假设一个候选样本在前景模板上有比较小的重构误差就代表该候选样本有可能是目标,在背景模板上有比较小的重构误差就代表这个候选样本有可能是背景,在此基础上根据候选样本在前景模板和背景模板上的重构误差的差异来构造候选样本的置信值:
其中ρ是一个很小的固定的常数,用来权衡判别分类器的重要性.
4.完整MATLAB
V
相关文章
- 混合灰狼和布谷鸟搜索优化算法(Matlab完整代码实现)
- 粒子群算法(带约束处理)——Python&Matlab实现
- 计及风光不确定性的基于IGDT的综合能源系统优化调度研究(Matlab代码实现)
- 基于粒子群优化算法的电动汽车充放电V2G研究(Matlab代码实现)
- Matlab|模拟电动汽车的充放电【充电顺序,波动发电,电池缓冲】
- 采用粒子群优化算法实现投资组合优化【Matlab实现】
- 【状态估计】基于二进制粒子群优化 (BPSO) 求解最佳 PMU优化配置研究【IEEE30、39、57、118节点】(Matlab代码实现)
- 基于免疫优化算法的物流配送中心选址规划研究(Matlab实现)
- 新冠病毒传播模拟(Matlab实现)
- 基于蜜蜂算法求解电力系统经济调度(Matlab代码实现)
- DQN算法控制模拟旋转摆研究(Matlab代码实现)
- 四阶Runge-Kutta算法(Matlab实现)
- m基于MATLAB的FM调制收音机仿真实现
- 基于SA模拟退火算法的多车辆TSP问题matlab仿真,实现多车辆各自搜索最优路径
- m基于GA遗传优化的BP神经网络时间序列预测算法matlab仿真
- m基于NSGAII优化算法的微网系统的多目标优化规划matlab仿真
- 基于matlab的CHPSO异质粒子群优化算法仿真
- 基于形态学处理的车牌提取,字符分割和车牌识别算法matlab仿真
- 基于形态学处理算法的迷宫路线搜索matlab仿真
- MATLAB | 绘图复刻(四) | 和弦图+颜色修改+标签旋转
- 基于模型预测(MPC)的四轮转向车辆轨迹规划(Matlab代码实现)
- 【鲁棒性、不确定性】基于交替方向乘法器(ADMM)算法的动态积分二次约束的鲁棒输出-反馈综合问题研究(Matlab代码实现)
- 【灵敏度分析】应用莫里斯方法降低因素低估的风险(Matlab代码实现)
- 基于犹豫模糊逻辑的无线传感器网络温度自适应多属性睡眠调度算法(Matlab代码实现)
- 【故障诊断】基于冯洛伊曼拓扑的鲸鱼算法用于滚动轴承的故障诊断研究(Matlab代码实现)
- 【语音处理】拨号声音识别算法(Matlab代码实现)
- 基于激励的需求响应计划下弹性微电网的短期可靠性和经济性评估(Matlab代码实现)