原文:http://blog.csdn.net/lijinjyan/article/details/41439887
文章:Fast comprissive tracking
作者:Kaihua Zhang, Lei Zhang, and Ming-Hsuan Yang
来源:PAMI
这篇文章已经读过好多遍了,每次读都有不同的收获,近期老师要求讲文章,又将这篇文章读了一遍,稍微做一下总结。
该文章早前就有一片会议文章,这篇文章较会议文章的区别有两点:
(1) 由粗到精的搜索策略,大大提高了算法的运行速度。
(2) 引入了尺度变换
FCT最主要的特点就是简单,它是一种基于分类的跟踪算法。和大多数分类模型一样,选择特征训练分类器,然后再上一帧目标周围采样,得到候选图像片,然后用分类器对所有候选图像片进行分类,得到分类器响应最大的图像片即当前帧跟踪目标的位置。
FCT算法的整体流程图如下:
该算法最大的贡献是提出了CT特征(压缩感知特征)。这也是和其他基于分类的算法的最根本区别。下面描述下CT特征的构造。
对于一个高维的m维特征x,我们可以通过一个n*m的矩阵R将其变换成一个低维的n维特征v;用到的变化公式如下:
v=R*x
那么这里m,n,以及矩阵R是什么时候时,才能限度的保留原始特征向量X中的所有信息。压缩感知理论解决了这些问题。
压缩感知理论说明:如果一个信号是K稀疏的,我们可以通过少数的几个测量近乎完美的恢复出稀疏信号。这是压缩跟踪的基本理念。
我们希望通过映射矩阵R,当将信号X映射到V后,保留X中的所有显著信息,也就是保留任意两对共享K个基的K稀疏信号的距离,表达式如下:
这就是压缩感知理论中的限制性等距约束,当矩阵R为一个元素是从标准正态分布,对称二项分布和傅里叶矩阵中采样的随机矩阵时,满足上述性质。
CT特征中R的选择
一个满足限制性等距约束的典型测量矩阵是随机高斯矩阵,然后该矩阵式稠密的,需要存储大量的矩阵元素,并且计算比较耗时。在本文中采用一个非常稀疏的随机测量矩阵,矩阵元素如下:
对于一个图像片,我们将其与一个多尺度滤波器组进行卷积,得到一个图像片的多尺度特征表示,然后采用随机测量矩阵R对该特征表示进行映射,得到一个低维的特征表示。这里采用的矩形滤波器组为:
在整个计算过程中,随机测量矩阵R是离线计算的并且保持不变。并且我们只需要存储R中的非零元素,和相应的矩形滤波器的位置和尺度。
同时,作者证明了得到的CT特征是尺度不变的,证明如下:
通过上述描述,应该对特征的构造有了一个简单的了解,特征选择好以后就要进行分类器的选择。
分类器的选择
这里选择最简单的朴素贝叶斯分类器,由于映射后的特征各元素间是相互独立,并且服从高斯分布,因此不用估计协方差矩阵,只需要计算方差向量和均值向量就可以了。这可以通过最大似然估计得到,计算公式如下:
同时,为了应对目标外观的变化,我们需要对分类器进行更新,更新公式如下:
这样,当完成当前帧图像的跟踪后,我们在目标周围采集一些正样本,在远离目标中心的地方采集一些负样本,然后计算其压缩域的特征向量,对分类器进行更新。
提升CT性能的两个策略
(1) 由粗到精的搜索策略
为了提高FCT的速度和性能,这里采用了一种由粗到精的搜索策略,而不是穷尽搜索。首先,在一个较大的搜索半径内选择一个较大的搜索步长,得到一个粗糙的位置,然后以该位置为中心,在一个小的搜索范围内,以一个小的搜索步长进行搜索,最后得到跟踪目标的位置。
(2) 多尺度
前边已经证明CT特征具有尺度不变特性,在这里,为了提升算法应对尺度变化的性能,在采集图像片的时候增加的尺度因子。就是在采集候选图像片的时候,在同一位置,采集三个尺度下的候选图像片,分别为:(1-deta)s,s,(1+deta)s。这样可以得到当前帧的尺度。对于尺度的更新,这里每5帧更新一次。
最后,算法的整体流程如下:
项目地址:https://github.com/alphonso64/FCTDemo
这个是windows版本的,
http://www.pudn.com/downloads648/sourcecode/graph/texture_mapping/detail2633976.html
这个有图片资料,matlab的代码。