下面写的是针对<Fast Tracking via Spatio-Temporal Context Learning>这篇文章的个人理解。关于文章算法里详细的讲解,可以看文章后面的附录。
a. 论文的亮点:
这篇文章最吸引眼球的莫过于算法的超高运行效率:matlab代码居然在i7处理器上能够达到惊人的350FPS。算法的执行效果由于ECCV上发表的文章,估计也不会差到哪里去,恕我识浅。
另外一个大的亮点就是他这篇论文的核心公式:
m(x) = p(x|o);
(m(x)表示的是预测目标位置的置信图,p(x|o)表示的是当前帧目标位置的相似性概率估计函数,x表示当前帧中的目标坐标,o表示的是目标一定要在视场中的这个大前提)。
这个公式对我而言有点莫名其妙,只是往文章后面看,才会渐渐理解它的作用。本质的意义也许非常明显,因为相似性概率大的坐标位置即是置信图上置信度最大的坐标位置,也即是跟踪的实际目标位置,真是有点让人脑洞大开。整篇文章都是依据这个公式来延展开来。
b. 论文的缺陷:
这类论文的一个明显的缺陷就是在一两个公式里面的经验常数(
ρ 和 σ),作者没有将这些经验常数调制的效果和效果背后因果关系一一说明清楚。这将导致算法的以后的使用范围不会特别广泛。
譬如说: 我随便选择了一个视频来测试这个算法,效果是跟踪末期出现了缩放异常和跟踪中心点漂离了实际目标中心位置。但是我到现在都不是非常清楚应该怎样调制以得到我想要的效果。
c. 论文的中心思想、主体框架、核心公式,测试出来的效果和对应的需要解释的问题:
中心思想:
文章的中心思想我理解的就是目标中心坐标既是置信图中值最大的点坐标值,也是让预判目标位置的相似性概率函数值最大的点坐标值。
使用到了 spatial temporal model 和 spatio context model。
Spatial temporal model 中由于使用到了当前帧和历史帧的信息,所以命名中多了一个temporal。但是这个model中的学习参数
大小设置的机理还没有弄懂,也不清楚文章里面说的为什么 ρ 设置多小,当前帧的贡献比例都不会太大。但是关于这个模型公式的迭代性正好符合了前后帧之间的关联性。
Spatio context model 是变换为频域的当前置信图除以加权后的目标附近区域图像的频域图像得到的。也就是核心公式的逆运用。
主体框架:
a. 由当前的confidence map(CM)生成当下的目标中心坐标pos;
b. 由pos得到目标附近区域(focus of attention,FOA),并由confidence map除以这个FOA得到了 spatio context model(SPM);
c. 由 spatio context model 和 confidence map得到了
Current
spatial temporal model( CSTM)
,
d. 由 CSTM和历史的 STM,按照设定的学习系数,得到当下最终的STM. 通过历史帧和当前帧的结合,可以排除当前帧目标变化的影响。
final STM = CSTM * ρ +(1-ρ ) * Formal STM;
e. 由 final STM 和 spatio context model 生成下一帧(t+1)的confidence map. 并返回到 a步骤中,重复循环进行。
测试出来的效果:
后期跟踪框异常放大,且出现了跟踪中心点偏离到目标中心左上角的情况。
跟踪中心偏离到目标中心的左上角:
1. 目前自己直观的感觉是由于实际跟踪的目标是一个光板,导致目标的
频率信息不够丰富,容易导致跟踪中心点发散;
但是真正的具体原因需要慢慢分析;(这个点实际上可以接着往下做,说明清楚什么参数适合什么样的目标)
2. 跟踪后期出现了跟踪框异常放大的情况,初步认为的原因是:
σ 放大的有些快了, st 计算值在特定几帧突然变大->置信图计算值过大->prior context model 中计算由于进行了归一化处理
导致的??
d. 后续的工作计划:
我没有想清楚算法实现过程中为什么一定要使用到FFT变换,可不可以不用。依稀记得文章里面提及到的原因是要使用卷积来快速操作。该问题的核心后来自己想了一下,就是下面这个公式没有看懂。
况且这个公式也是快速的关键。
e.附录:
1. Spatio-Temporal Context Learning论文相关参考网页:
2. 视觉与学习青年学者研讨会
3. 2015 CVPR论坛参会记录
http://blog.163.com/pz124578pz124578
pz124578@126/blog/static/235226942015622112415139/