当前位置: 代码迷 >> 综合 >> Learning the Model Update for Siamese Trackers论文解读
  详细解决方案

Learning the Model Update for Siamese Trackers论文解读

热度:30   发布时间:2023-10-20 18:22:09.0

今天为大家介绍一篇ICCV2019的paper,用于目标跟踪。也是更新模板,和之前介绍的GradNet更新模板的策略不同,是通过一个小网络学习新的模板。

论文以及官方代码 点击这里

研究背景

在目标跟踪领域,目标在一个序列中会有非常大的变化,这个变化来自于自身形状,遮挡,其他类似目标出现吗,运动模糊,光照等因素。
先有的孪生网络,一部分把第一帧的目标crop出来,用作模板,用模板和后续帧进行相似度的学习。这样的方法没有考虑目标在后续帧可能出现很大的变动,甚至和第一帧的形象相差极大,导致仍然用第一帧的目标作为模板已经不足以得到很好的相似图。
另一方面,一些工作开始探索模板更新,但很多方法都是用线性更新策略,用一个常数按照比例融合模板得到新的模板。这种方式会导致来自第一帧的模板信息在最终得到的模板中呈现指数级下降。一旦发生了误差偏移,就无法在恢复过来。并且线性更新方式限制了获得可能还有的增益。线性更新还有一个问题,就是不能仅更新某一个位置,因为线性更新的范围是整个空间上和通道上都加值。

因此,该论文提出UpdateNet,使用三个模板输入一个小网络中,希望网络能学到最优的模板用于下一帧的预测。作者在SiamFC和DSiamRPN上加入了UpdateNet,得到了更好的性能。

方法

作者先介绍了线性更新策略,以及四点缺点。然后引出Learning to update

UpdateNet就是两个卷积层,在implement detail有将,整个方法很简单。

Learning the Model Update for Siamese Trackers论文解读
Ti~\widetilde{T_i}Ti? ?就是适合第i+1帧预测的模板,为了预测这个模板,输入有来自第0帧(给定帧的模板)的模板,由GT指定了。来自第i-1的最佳模板T~i?1\widetilde{T}_{i-1}T i?1?,以及用第i帧的预测结果得到的模板TiT_iTi?
Learning the Model Update for Siamese Trackers论文解读
左边是模板更新的示意图,我们可以看出输入有三个模板,同时还用了残差链接。来自第0帧的模板加上新的模板得到最优的模板用于下一帧的预测。同时下一帧的预测,用到了上一帧的预测结果,把预测结果crop出来,送入提出特征的网络?\phi?,得到的TiT_iTi?

方法虽然简单,在如何训练上要煞费苦心好好设计一下 。

网络如何训练

首先loss选择l2 loss ,和SiamFC一样的。直接在两个相似图上进行回归即可。
Learning the Model Update for Siamese Trackers论文解读
为了训练,我们需要四个东西,前三个分别是UpdateNet的输入,另一个是Ti+1GTT^{GT}_{i+1}Ti+1GT?。其中T0GT,T_0^{GT},T0GT?,Ti+1GTT^{GT}_{i+1}Ti+1GT?很好获得,都是标签给出的。如何能获得符合测试时数据分布一致的另外两个模板就值得好好想想了。
对于TiT_iTi?,当然可以直接用标签获取,但是标签是准确的模板位置,在测试时,我们未必能获得准确的目标位置。如果训练过程中,TiT_iTi?采用通过标签获取,一定导致在测试的时候,性能下降,毕竟训练和测试存在数据分布上的差异。
我们虽然不能通过标签获得TiT_iTi?,但是可以通过T~i?1\widetilde{T}_{i-1}T i?1?得到第i帧目标的粗略位置,这个粗略位置和GT存在位置误差,恰恰就是满足测试过程数据分布的。所以关键点就来到了如何获得合理的T~i?1\widetilde{T}_{i-1}T i?1?

作者提出多阶段训练。
设有k个阶段,
第一阶段,k=0, 使用线性更新策略,获得每个帧的T~i\widetilde{T}_{i}T i?,同时得到每一帧的预测结果。保存在硬盘上。
之后的每个阶段,都用UpdateNet训练,因为该有的材料都有了。论文测试了K最大为3的情况,是k=3是最优的。

  相关解决方案