快速压缩跟踪(CT)算法剖析

Fast Compressive Tracking

(快速压缩跟踪)

虽然目前有很多种的跟踪算法,但是由于姿态的变化、光照的变化、障碍物等原因的存在,导致很多算法的鲁棒性不好。

目前比较主流的跟踪算法有两种,generative  tracking algorithms(生成跟踪算法)和discriminative algorithms(判别跟踪算法)。

生成跟踪算法,顾名思义边生成边跟踪。即对这一帧的样本进行学习,将学习的结果作为下一帧的分类器,达到边学习跟踪,边跟踪边学习的效果。这种跟踪算法的缺点是在视频的前几帧,样本量较少,因此大部分的算法要求视频中目标在视频的前面变化不大。如果目标变化较大,会产生漂移现象。

判别算法认为跟踪就是一个二分类器的问题,其目的是要找到一个将目标从背景中区分出的边界。但是这种算法只用了一个正样本和少量的负样本来跟新分类器。当特征模板含有噪声或者位置偏离时,便会出现漂移现象。

作者的算法:

作者论文中主要步骤如下:

1、获取目标区域特征

为了获取图像的多尺度特征表达,常常将输入图片与不同空间的高斯滤波器进行卷积。而在实际的运用过程中,高斯滤波器的运算量较大,所以一般采用矩形框代替高斯滤波器。经证明,这种代替不会影响特征检测的性能,而且其还能够极大的加快检测的速度。

对于一个W*H的样本,矩形框的选取方法如下:

这里的w和h分别代表矩形框的的width和height。

将这些矩形框分别和输入图像进行卷积的效果如下:

每一个输入图片(W*H)和不同大小的矩形框进行卷积的结果的到的仍旧是一个(W*H)的矩阵,但是为了方便将这些特征进行融合整理,将这个(W*H)的矩阵转换为一个含有(W*H)元素的列向量。而一个输入的样本图片共有(w*h)个卷积结果,将这(w*h)个列向量连接,就变成了一个含有(w*h)2个元素的列向量。这个列向量的长度一般可以达到106~1010。对于如此高维的特征,显然会带来相当大的计算量,故作者找到了一种很好的降维方法。

2、获取稀疏测量矩阵

压缩感知的理论指出,对于一个可压缩的信号,例如原始图片或者视频,一小部分随机生成的线性数据可以最大程度的保留原信号中的显著信息,并且能够从这一小部分随机信号将原信号很好的复现。压缩感知理论中还有一个比较专业的名次来形容前面所说的“可压缩信号”——K-sparse 信号。

有了这个理论作为依托,那么我们就可以先获取目标的复杂高维特征,再用压缩感知的理论将特征进行降维。作者采用的方法就是用稀疏随机测量矩阵(R)将原信号进行降维。显然,对于任意的K-sparse信号,我们都希望这个稀疏矩阵R能够将其中的显著信息提取出来,并且将这个K-sparse信号从高维映射到低维空间。

那么,如何寻找这个稀疏矩阵R,使其能够满足我们的要求。

实际上,要寻找这个稀疏矩阵,必须满足一个性质,即“约束等距性”。

一个典型的满足约束等距性的随机稀疏矩阵就是高斯随机矩阵。

经证明,当ρ=1、3时,这个矩阵是满足约束等距性的。另外,注意到当ρ=3时,有三分之二的数据是0,因此不需要计算。

将这个m*n的稀疏矩阵与原高维向量(m维)相乘,可得到一个低维向量(n维)。这就是就行降维的结果。

3、用稀疏测量矩阵对特征进行降维处理

从图中可以看出随机稀疏矩阵对高维向量进行降维的过程。图中稀疏矩阵中黑色的为正数,灰色为负数,白色为0。大致可以看出这个稀疏矩阵是非常稀疏的,非零项较少,明显可以减少数据处理量。而降维后的向量v,其中的每个元素是向量x中对应R非零项的和,其包含的是多个局部信息的和。

4、用贝叶斯分类器进行分类

这里的V就是特征向量,p(y=1)和p(y=0)分别代表正负样本的先验概率。实际上p(y=1)=p(y=0)。经证明,高维随机向量的随机映射总是满足负荷高斯分布的。所以这里的p(vi|y=1)和p(vi|y=0)是符合高斯分布的,其参数为(λ>0,是学习参数):

这是三个不同的低维空间特征所获得积分图分布。

这是衡量正负样本好坏的积分图分布图。

程序中的步骤:

一、第一帧图像过来:

1、手工的标记需要跟踪的区域,这个区域是一个矩形框。

2、根据标记区域的信息,随机产生矩形框,用来当做Haar特征的提取模板

3、以当前帧目标区域为中心,以4个像素点为半径,取出共计45个正样本,在以8为内半径,30为外半径的圆环中随机选取50个负样本。

4、计算原图像的积分图。

5、根据积分图和前面所得的Haar特征提取模板,提取正负样本的特征。

6、更新贝叶斯分类器,获取新的分类器。

二、非第一帧图像过来:

1、以前一帧目标区域为中心,以25个像素点为半径,逐个遍历,可以获得大约1100个待分类区域。

2、得到这些待分类区域的积分图,用前面产生的Haar-like特征模板提取这些待分区域的Haar特征。得到特征向量。

3、用贝叶斯分类器对这些待分类区域对进行分类,选出最有可能是目标的矩形框,作为当前跟踪结果。

4、重复步骤一中的3、4、5、6

时间: 2024-10-07 06:38:55

快速压缩跟踪(CT)算法剖析的相关文章

压缩跟踪(CT)代码详细学习_模块1(样本的采集和扩充)

本章主要详解的是compressive tracking框架中的第一部分:样本的采集和扩充部分. 在开始代码学习的前面,你需要知道的理论知识参见论文:Real-time Compressive Tracking.理论理解可以参见我的博客:http://blog.csdn.net/ikerpeng/article/details/19826409 . 这个模块中你需要知道一个基本的概念:代码里面几个变量指的是什么.上一张图: 也许你现在还不知道他们是什么,直接贴代码了.相信有我的注释你一定会懂的.

压缩跟踪(CT)代码详细学习_模块2(特征的提取和计算)

0.下载安装Opencv,当前版本为249. 1.下载Python,当前OPencv版本为249,不过其支持的最新版本的Python为2.7,所以可以下载276版本. 2.下载numpy,开始我使用了1.6,没有通过,错误如图.下载了最新的1.8.1版本. 3.将Opencv安装目录下opencv\build\python\2.7\x86中的cv2.pyd复制到python安装目录Lib\site-packages下. 4.找到opencv源文件内的draw.py运行. 压缩跟踪(CT)代码详细

压缩跟踪(CT)代码逐行学习

接下来我想比对CT那篇文章(http://blog.csdn.net/ikerpeng/article/details/19826409)的代码,逐行的解释,逐行的敲代码并最终实现.希望通过这个过程提高我的C编程的能力,以及对于目标跟踪的框架更进一步熟悉.希望对于后面的研究打下好的基础. 当然我会从各个模块的角度来书写,这样思路更加的清晰一点.大致的思路如下: 1中主要包括两个函数,扩充正负样本的函数,原理参见http://blog.csdn.net/ikerpeng/article/detai

压缩跟踪(CT)代码详细学习0

接下来我想比对CT那篇文章(http://blog.csdn.net/ikerpeng/article/details/19826409)的代码,逐行的解释,逐行的敲代码并最终实现.希望通过这个过程提高我的C编程的能力,以及对于目标跟踪的框架更进一步熟悉.希望对于后面的研究打下好的基础. 当然我会从各个模块的角度来书写,这样思路更加的清晰一点.大致的思路如下: 1中主要包括两个函数,扩充正负样本的函数,原理参见http://blog.csdn.net/ikerpeng/article/detai

多尺度压缩跟踪_基于粒子滤波的应用

Tracking-by-detection的思想用discriminative外观模型来在线训练和更新分类器,对于采样的样本在分类器上获得的最大值标定为新目标.压缩跟踪(CT)是压缩域中的一种特征提取方法,然而其缺点是:1 使用固定的跟踪框来检测样本 2 采样半径固定,当运动机动性较大,采样不准确 3 学习因子固定 多尺度压缩跟踪讲CT与粒子滤波(PF:自举粒子滤波--bootstrap filter)结合.粒子滤波在非高斯.非线性贝叶斯模型的应用上较为突出,基于PF的跟踪通常使用轮廓(cont

压缩跟踪Compressive Tracking

好了,学习了解了稀疏感知的理论知识后,终于可以来学习<Real-Time Compressive Tracking>这个paper介绍的感知跟踪算法了.自己英文水平有限,理解难免出错,还望各位不吝指正. 下面是这个算法的工程网站:里面包含了上面这篇论文.Matlab和C++版本的代码,还有测试数据.demo等.后面我再学习学习里面的C++版本的代码,具体见博客更新. http://www4.comp.polyu.edu.hk/~cslzhang/CT/CT.htm 之前自己稍微学习了下稀疏感知

压缩感知重构算法之子空间追踪(SP)

SP的提出时间比CoSaMP提出时间稍晚一些,但和压缩采样匹配追踪(CoSaMP)的方法几乎是一样的.SP与CoSaMP主要区别在于“In each iteration, in the SP algorithm, only K new candidates are added, while theCoSAMP algorithm adds 2K vectors.”,即SP每次选择K个原子,而CoSaMP则选择2K个原子:这样带来的好处是“This makes the SP algorithm c

【HEVC帧间预测论文】P1.1 基于运动特征的HEVC快速帧间预测算法

基于运动特征的 HEVC 快速帧间预测算法/Fast Inter-Frame Prediction Algorithm for HEVC Based on Motion Features <HEVC标准介绍.HEVC帧间预测论文笔记>系列博客,目录见:http://www.cnblogs.com/DwyaneTalk/p/5711333.html 上海大学学报(自然科学版)第19卷第3期. 利用当前深度CU与时域对应位置已编码CU的亮度像素值的差值平方和均值来判断当前CU的运动特征.属于A类算

快速幂取余算法

下面是一个快速幂的介绍: 先贴一个秦九韶算法(Horner算法)的原理: 设有项的次函数 将前项提取公因子,得 再将括号内的前项提取公因子,得 如此反复提取公因子,最后将函数化为 令 ...... 则即为所求 下面是讲解快速幂的:(By  夜せ︱深   感谢作者) 快速幂取模算法 在网站上一直没有找到有关于快速幂算法的一个详细的描述和解释,这里,我给出快速幂算法的完整解释,用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~ 所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求