Real-Time Compressive Tracking论文代码详细注释

本文档详细注释了Real-Time Compressive Tracking的MATLAB源码,包括Runtracker.m、HaarFtr.m等核心文件,提供了一个在作者主页下载代码的链接,并举例说明了HaarFtr.m文件中如何生成特征矩阵用于样本特征提取。
摘要由CSDN通过智能技术生成

Real-Time Compressive Tracking

matlab源码在作者主页上可以下载:http://www4.comp.polyu.edu.hk/~cslzhang/CT/CT.htm
下面是全部matlab主要文件的代码及注释
注:为了注释在博客中方便地显示,将代码中%都替换为了//

Runtracker.m

// Demo for paper "Real-Time Compressive Tracking,"Kaihua Zhang, Lei Zhang, and Ming-Hsuan Yang
// To appear in European Conference on Computer Vision (ECCV 2012), Florence, Italy, October, 2012 
// Implemented by Kaihua Zhang, Dept.of Computing, HK PolyU.
// Email: zhkhua@gmail.com
// Date: 11/12/2011
// Revised by Kaihua Zhang, 15/12/2011
// Revised by Kaihua Zhang, 11/7/2012

// clc是清除命令行里面的内容,clear是清除那一堆存在内存里的数据的,close是关闭打开了的文件
//clear 清空工作区,clear all 清空工作区与全局变量,close 关闭当前窗口,close all 关闭所有窗口
clc;clear all;close all; 
//----------------------------------
// 设置随机数生成器状态为0,每次就可以产生相同的随机数,但是产生随机数后状态将改变
rand('state',0); 
//----------------------------------
// 如果要添加文件夹内所有子文件夹到路径的话,需使用genpath,pwd指当前工作路径
addpath('./data'); 
//----------------------------------
// load对象时txt格式时,以ASCII码格式读取,要求每一行数据个数一致
// initstate=[x y w h],x是图像水平方向,y是图像竖直方向,起点是图像的左上点。当图像变成矩阵进行处理时,索引方式和图像相反。
load init.txt;
initstate = init;//initial tracker
//----------------------------Set path
// 提取文件夹中格式为jpg的文件名
img_dir = dir('./data/*.png');
//---------------------------
// 图像读取结果是0~255的无符号整型数据
img = imread(img_dir(1).name);
// 先转换成浮点数据类型再惊进行计算。如果是三通道,仅使用第一个通道
img = double(img(:,:,1));
//----------------------------------------------------------------
trparams.init_negnumtrain = 50;//number of trained negative samples
trparams.init_postrainrad = 4.0;//radical scope of positive samples
trparams.initstate = initstate;// object position [x y width height]
trparams.srchwinsz = 20;// size of search window
// Sometimes, it affects the results.
//-------------------------
// classifier parameters,width和height表示目标框的宽和高
clfparams.width = trparams.initstate(3);
clfparams.height= trparams.initstate(4);
//-------------------------
// feature parameters
// number of rectangle from 2 to 4.
ftrparams.minNumRect = 2;
ftrparams.maxNumRect = 4;
//-------------------------
M = 50;// number of all weaker classifiers, i.e,feature pool
//-------------------------
posx.mu = zeros(M,1);// mean of positive features
negx.mu = zeros(M,1);
posx.sig= ones(M,1);// variance of positive features
negx.sig= ones(M,1);
//-------------------------Learning rate parameter
lRate = 0.85;
//-------------------------
//compute feature template,xywh属于图像坐标系
[ftr.px,ftr.py,ftr.pw,ftr.ph,ftr.pwt] = HaarFtr(clfparams,ftrparams,M);
//-------------------------
//compute sample templates,xywh属于图像坐标系
posx.sampleImage = sampleImg(img,initstate,trparams.init_postrainrad,0,100000);
negx.sampleImage = sampleImg(img,initstate,1.5*trparams.srchwinsz,4+trparams.init_postrainrad,50);
//-----------------------------------
//--------Feature extraction
iH = integral(img);//Compute integral image
posx.feature = getFtrVal(iH,posx.sampleImage,ftr);
negx.feature = getFtrVal(iH,negx.sampleImage,ftr);
//--------------------------------------------------
// update distribution parameters
[posx.mu,posx.sig,negx.mu,negx.sig] = classiferUpdate(posx,negx,posx.mu,posx.sig,negx.mu,negx.sig,lRate);
//-------------------------------------------------
num = length(img_dir);// number of frames
//--------------------------------------------------------
x = initstate(1);// x axis at the Top left corner
y = initstate(2);
w = initstate(3);// width of the rectangle
h = initstate(4);// height of the rectangle
//--------------------------------------------------------
for i = 2:num
    img = imread(img_dir(i).name);
    imgSr = img;// imgSr is used for showing tracking results.
    img = double(img(:,:,1));
    detectx.sampleImage = sampleImg(img,initstate,trparams.srchwinsz,0,100000);   
    iH = integral(img);//Compute integral image
  
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值