Motivation
本文主要解决孪生跟踪器缺乏在线更新能力的问题。传统的线性模板更新难以处理目标的不规则变化和采样噪声,造成跟踪漂移;而一些像 updatenet 采用网络进行自适应更新的方法,其更新网络和跟踪器在结构上是分离的,不能从联合训练中受益,也不能以最佳方式合作。
为了实现高质量的自适应更新,作者从 one-shot learning 的角度提出一个 two-stage one-shot learner,利用不同阶段的目标样本预测分类器的参数。具体来说,除了使用模板分支来学习初始目标特征,作者额外增加了一个输入分支用于捕获后续帧中的目标特征,并设计了一个残差模块来使用这些特征更新初始模板。通过残差学习融合多帧目标特征,跟踪器可以用更合适的模板跟踪当前目标。此外,还设计了一种多方面 (multi-aspect) 的训练损失来避免过拟合。
Method
One-shot learning formulation
SiamRPN 指出孪生跟踪框架是一个 one-shot learner,即通过初始帧的一次学习使得模型能够跟踪到后续帧中的目标,本节首先对其进行公式化定义。
目标跟踪的典型框架是判别分类器,目标是在训练数据集上找到能使总损失 L 最小化的参数 W:
表示训练样本数,
是样本
的标签。尽管分类器在目标跟踪上具有很强的竞争力,但需要大量计算量和样本在线训练学习。
另外一种跟踪框架是孪生网络,目标是学习模板和搜索区域之间的相似性度量:
和
分别表示模板和搜索区域,
和
分别表示特征提取网络和匹配网络。
进一步分析,我们发现公式 2 的孪生网络模型可以被重新解释为类似公式 1 的 one-shot 分类器模型。对于分类器,若仅通过一个感兴趣样本
就能学到分类器参数
,那么这就是一个 one-shot learner。因此,孪生网络的模板分支可以看成是一个元学习函数
,它将模板特征映射成分类器参数
;而搜索分支和互相关就是一个检测器,整个目标函数定义如下:
至此,我们就把孪生框架解释为了 one-shot learning,图 1 直观展示了这种表达方式
Two-stage One-shot learner
孪生网络框架只能在初始帧这个 stage 通过 one-shot learning 学到目标信息,因此无法在线更新。那自然会想能不能让这个 learner 在不同的 stage(跟踪阶段)去学习目标信息呢?因此作者提出了 two-stage one-shot learner (TOL),可以结合具有不同属性的样本来预测分类器的参数。目标函数定义如下:
相比公式 3,就是增加了一个来自后续帧中的样本来学习
。
Updatable Siamese Network
基于上述的 two-stage one-shot learner,本文提出一个可更新的孪生网络,如下图
相比原始的孪生框架,增加了一个 update 分支,然后把两个分支的目标特征进行融合。其实抛开上面讲的那些 one-shot learning 也不妨碍理解这个结构,无非就是把初始帧和跟踪过程中的历史帧通过网络融合生成一个更好的模板以适应跟踪中的变化。
融合模板的过程(或者说元学习函数)定义如下:
其中和
分别表示模板和更新样本的特征,M 表示特征融合网络(三层卷积)。
Multi-aspect loss training 训练网络时在模板和搜索图像之间的间隔图像中额外扣一个更新样本,并且计算损失分别考虑了模板样本 - 搜索样本,更新样本 - 搜索样本,融合模板样本 - 搜索样本三方面损失,如图 3 所示。这样做是因为网络包括一个基本的孪生跟踪器和一个在线调整的更新器两部分,如果直接用一个整体损失训练,网络可能难以平衡这两部分。
Online update 在线跟踪过程中,更新样本每 N=10 帧更新一次,且满足置信度大于阈值 0.9。
Experiments
Comparison with the state-of-the-arts
Ablation Study