real-time compressive tracking 所感

来源:互联网 发布:淘宝高级搜索在哪里 编辑:程序博客网 时间:2024/06/08 14:33

最近在学习张开华教授的real-time compressive tracking这篇文章,记录下自己体会。

算法的工程网址:http://www4.comp.polyu.edu.hk/~cslzhang/CT/CT.htm

非常感谢zouxy09的专栏博主的论文分析:http://blog.csdn.net/zouxy09/article/details/8118360

以及C++代码分析:http://blog.csdn.net/zouxy09/article/details/8210176

 

下面是自己的一些感悟,欢迎大家指正:

我通过测试作者的程序发现该程序的运行效率较高,基本能实现在线跟踪效果,且不需要离线处理。但在某些测试样本中易出现跟丢的现象,初步怀疑作者提取的特征较为简单。

特征提取:本文中采用类似Haar特征模型,通过提取某块区域的像素和来作为特征,并采用了压缩的方法(原理不甚明朗)保留极少特征且保证不失真,极大减少了内存和提高了处理速度。关于Haar特征模型,请参考:http://blog.csdn.net/zouxy09/article/details/7929570 。

跟踪分类器:本文采用朴素贝叶斯分类器,通过正负样本log比值来确定概率,见论文公式(4)。在跟踪的同时在线更新分类器参数,保证跟踪的质量。

跟踪过程:1、第一帧人工标定目标,提取目标特征样本(整个程序只提取一次),并初始化分类器。

2、其余帧首先在上帧目标周围采取样本,并通过分类器得到分类最高的样本作为新的目标位置,并在新目标周围采集正负样本来训练分类器。

 

C++代码部分分析:

HaarFeature():用于第一帧提取目标的相对框架,对应于Fig1中的multiscale filter;以及矩阵R。

sampleRect ():有两个函数,一个采集正负样本用于训练分类器,一个采集样本用于检测。

getFeatureValue():获取压缩后的特征。

classifierUpdate():更新分类器。

radioClassifier():计算样本的概率,选择最高概率的样本作为新的跟踪区域。

附:C++程序在release下运行效果更好。

 

MATLAB代码部分分析:

HaarFtr():作用等同于C++的HaarFeature()。

sampleImg():作用等同于C++的sampleRect ()。

getFtrVal():作用等同于C++的getFeatureValue()。

classiferUpdate():作用等同于C++的classifierUpdate()。

ratioClassifier():作用等同于C++的radioClassifier()。

 关于MATLAB和C++混合编程基础部分可参照:http://blog.csdn.net/zouxy09/article/details/20553007

0 0
原创粉丝点击