Staple: Complementary Learners For Real-time Tracking Tracking
转载注明出处:
http://www.cnblogs.com/sysuzyq/p/6169414.html
By 少侠阿朱
讨论班上的PPT
1.同学大家好。今天给大家讲一篇单目标跟踪的论文,方法比较传统,但是我觉得比较实用。不过,公式非常多,有一定难度。不过,大家别害怕,因为我看了作者代码,可以说说怎么做的,大家别太关注公式。
但是我们先大体浏览一遍公式,再讲一下代码实现。有兴趣可以课后看看。
2.作者发现啊,有时候颜色分布不足以将目标和背景区分开来。相反有时候像HOG这样的模板在应对剧烈形变的时候往往效果很差。
3.那么作者针对这个问题做了些相关工作,第一个就是说像卷积滤波器就对剧烈形变不鲁棒,这是他们的先天缺陷。第二个就是在线学习带来的模型漂移,这是什么意思呢?现在很多算法都是假设当前预测的是对的,
然后把预测当做正样本来训练,更新模型。也就是说,一旦预测不对,后面也跟着错。学习多个弱的跟踪器或者是学习一个能变动的模板,比如DPM等等。但是这些方法效果都不是很好。
而作者发现,直方图特征是不考虑像素的位置,这在一定程度上可以减少形变带来的影响,而在目标颜色和背景颜色区分力度不够的时候,CF的鲁棒性比较强。所以作者就提出能不能结合他们来做跟踪。
4.大家看一下这两个方程,第一个的意思是,对于t帧,我选择一个pt使得得分函数f的值最大。
第二个是说我要取得一组cita使得整个损失函数最小。这个L是和前面帧的目标位置有关的一个函数。R是正则项。
5.那我们先来看一下f是什么,f由两项组成,一项是模板的得分,第二项是直方图得分。这个公式真么意思呢?假设一张图像x用Z~2表示,则T是x中的某一个patch,u代表patch中一个像素位置,h[]学习到的模板,
大家可以理解为这个式子就是HOG模板h和这个patch的HOG特征(通过fine函数算出来)对应位置的值相乘,然后求和,作为当前点u的响应值。这是卷积操作。整个式子相当于是CF滤波器。
6.
那么直方图得分怎么求的呢。我感觉作者这里写的有点含糊,但是看代码的时候,我才懂,这个beta是对每个点来说的,就是每个点都有一个beta,如果这是三通道的图片,那么beta就是一个尺度为3的向量。
代表着这个属于object的概率。那么后半部分就是对一个框内的所有的概率作为积分和,作为这点是目标中心的概率。
7.再看损失函数。Lossfunction是每张图像的loss的和,这是一个非凸函数,虽然可以求解出便捷,比如Struck算法。但是计算非常复杂和消耗资源。
8.所以作者提出用两个岭回归来求解这个问题,就是把对h的求解和beta的求解分开来。H可以通过cf的公式求解,对于β,作者提出了另外的快速求解方法。至于很细的求解过程我们过一遍就好了,我们主要关注怎么实现。
9.这里求解的时候,作者来个小插曲,就是讲了一下最小二乘的求解,这里大家留意一点,就是这些求得参数,他是一种递归的形式,就是说,当前的参数与过去t-1帧的参数和当前帧t的参数有关。
11.通过这种类似的方式,作者求得卷积滤波器的模板参数h,和他的更新方式。所以这个模板是一个频域上的模板,其中模板的参数dt’和rt’从HOG特征图的傅里叶变换中计算得到,同时由dt和rt可以计算得到新的模板。
还有直方图的参数和直方图更新方式。
13.ψ 相当于取第j维,比如图像有3维。βT ψ[u] 计算的是第j通道的图像,u点属于前景的概率。其中N j(O)
表示第j通道上,点u落在O区域的直方图对应的bin,这个bin的数值,也就是O的中属于这个bin的点数。
18.(TRE):把视频划分成 20 段,从每帧开始运行直到完,计算总体结果。
(SRE):在第一帧使用8个空间偏移(其中4个中心偏移和4个角偏移,都为目标尺寸的10%)和4个尺度偏移(0.8,0.9,1.1 和 1.2)。共运行12次。
付论文注释: