有一段时间没有看tracking了,前面一个月老师没有找,我也没有看文章,主要去看c++和cs231n去了。上周一老师找了我一次,于是赶紧把tracking又拾起来,把老师给的视频在前面的代码上跑了下,这周又看了篇新论文。
最开始的应该是MOOSE,作者没有给源码,所以论文理解得并不是很透彻,CSK以及KCF/DCF都是仔细研究了源码的,自认为还算比较了解了,接下来的CN,其实了解了KCF/DCF就很简单了,无非是另一种多特征的融合,融合方式都差不多。
昨天开始看DSST,只看了前面的部分,后边的实验没有怎么看,又去看了下matlab的源码,代码结构很清晰,因为框架还是CSK得大框架,结合作者的注释很快就看完了,做个整理。
MOOSE paper
是跟踪领域相关滤波的第一篇文章,开创性意义。
CSK paper
利用循环矩阵解决了训练量的问题,不用在进行随机仿射来得到样本。这个是单通道的, 作者只使用了灰度信息。
KCF/DCF paper
和CSK是同一个作者,和CSK的改进很小,主要贡献和CSK相比在于提供了一种把多通道特征融合进相关滤波框架的方法。
CN paper
和KCF/DCF是同一时期的,不同的是用了颜色通道,论文里作者比较了各种颜色空间的表现。
DSST paper
DSST解决了另外一个关键问题,那就是尺度更新。
这5篇文章是相关滤波的基础,今天这里主要写一下DSST的论文思路。
MOOSE基础
DSST是在MOOSE的基础上来的,所以很有必要再回顾一下MOOSE,正好昨天看论文的时候把MOOSE里的公式的推到再看了看了一遍。
信号处理里面有相关的概念,用来描述两个信号之间的联系,有自相关和互相关之分。
假设有两个信号f和g,则两个信号的相关(correlation)定义为:
这里分别给出的是连续信号和离散信号的公式,看起来和卷积很像。星号表示复共轭。
correlation的直观解释就是表示的是两个信号在某个时刻的相似程度,相关滤波应用到跟踪领域最简单的解释就是:两个信号越相似,其相关值就越高,跟踪的时候就是要找到响应最大的位置。
作者提出的滤波器叫做Minimum Output Sum of Squared Error(MOSSE)。
按照上面说的思路,我们需要找到一个滤波器,使其在目标上的响应最大:
其中g是输出,f是输入,h是滤波器,输出我们给成一个高斯分布,在目标点的值最大。
这是一个卷积计算,真的要这么直接算的话计算量还是很大的,所以很容易想到,变换到频域进行点乘:
注意这里和卷积稍有不同,简单的来说,卷积操作的时候卷积核要反转ÿ