目录
- 动机
- 主要贡献
- 整体框架
- 详细介绍
- 重构DCF
- 剩余学习
- Spatial层
- Temporal层
- 跟踪过程
- 实验结果
动机
本文基于DCF进行改进,摘要中提到,基于DCF的跟踪器无法受益于端到端的训练。
主要贡献
理解出错之处望不吝指正。
主要包括一下三方面:
1. 将CF重构为一个卷积层,这样使其受益于端到端的训练;
2. 在时空上(spatiotemporal)使用剩余学习(residual learning)学习目标的外观变换;
3. 本文提出的模型CREST在多个数据集上验证均可达到很好的效果。
整体框架
模型的整体架构如上图所示,在跟踪第T帧时,将第T帧和第1帧送入特征提取层,得到特征图后,将第T帧特征图送入Base层(重构的DCF)和Spatial层,第1帧特征图送入Temporal层,将三个层的输出融合后得到响应图。
详细介绍
重构DCF
DCF实际是优化以下函数:
传统的损失函数形式如下:
作者将DCF重构为一个卷积层,损失函数设置如下:
这样就可以用梯度下降去计算权重,而不是通过计算封闭解。
剩余学习
作者提到,只使用一个卷积层来重构DCF得不到效果很好的响应图,但是又不想堆叠很多的卷积层(会带来梯度消失)。作者通过添加两个剩余层(我的理解:学习差异性)来解决这个问题,即:Spatial和Temporal。这样,响应图的计算就可为以下三部分:
这样,计算响应图的流程则如下:
Spatial层
首先介绍Spatial层。
在我的理解下,这一部分实际上就是用于学习Base层的输出和真实输出的偏差(相当于微调),也就是用Spatial层的输出去改进Base层的输出。
Temporal层
Temporal层的作用是,防止当前的跟踪结果和初始帧的跟踪目标偏差较大。本层旨在学习Base层的输出和第一帧跟踪目标的差异性(防止跟丢?)。
跟踪过程
跟踪过程实际上和传统的DCF没啥区别。
- 特征提取部分使用VGG网络;
- Base、Spatial和Temporal层使用高斯函数初始化;
- 尺度处理和以往的模型都一样,获取不同尺度的search patch,再resize到相同尺寸;
- 每一帧的跟踪结果作为训练数据放到样本库中,每隔T帧对模型进行更新。
实验结果
- 模型效果展示
- OTB2013实验结果
- OTB2015实验结果
- VOT2016实验结果