Learning the Model Update for Siamese Trackers学习笔记

1.模板平均的缺点

a.它对每个视频应用恒定的更新速率,尽管多种因素(如相机运动)可能导致不同的更新需求。即使在同一视频中,对象模板上所需的更新也可能在不同时间动态变化。
b.沿着模板的所有空间维度,包括通道维度,更新也是恒定的。这防止了仅更新模板的一部分,例如,这在部分遮挡的情况下是理想的。
c.跟踪器无法从漂移中恢复。部分地,这是因为它失去了对外观模板T0T_0T0​的访问,而外观模板T0T_0T0​是唯一毫无疑问在对象上的模板。
d.更新功能被限制为先前外观模板的非常简单的线性组合。这严重限制了更新机制的灵活性,当目标经历复杂的外观变化时,这一点很重要。考虑更复杂的组合函数有望改善结果。

2.研究背景

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

3.方法

作者先介绍了线性更新策略,以及四点缺点。然后引出Learning to update
UpdateNet就是两个卷积层,在implement detail有讲,整个方法很简单。

Ti~\widetilde{T_i}Ti​​就是适合第i+1帧预测的模板,为了预测这个模板,输入有来自第0帧(给定帧的模板)的模板,由GT指定了。来自第i-1的最佳模板T~i−1\widetilde{T}_{i-1}Ti−1​,以及用第i帧的预测结果得到的模板TiT_iTi​。

左边是模板更新的示意图,我们可以看出输入有三个模板,同时还用了残差链接。来自第0帧的模板加上新的模板得到最优的模板用于下一帧的预测。

3.1 整体步骤

a.提取第一帧目标位置的包围盒的深度特征T0GTT_0^{GT}T0GT​。
b.在通过模板更新公式求取上一帧对应的累计模板T~i−1\widetilde{T}_{i-1}Ti−1​,第一帧的时候累计模板被设为和第一帧一致,通过上一帧的模板,我们可以求取当前帧的预测包围盒并提取特征为TiT_iTi​。
c.通过结合第一帧的特征、上一帧的累计特征和当前帧的目标特征送入到UpdateNet,我们可以得到当前帧的累计模板用于下一帧的目标预测。
d.将更新后的模板特征与下一帧的待搜索区域进行相似计算,从而确定最后的跟踪目标。

3.2 训练UpdateNet

从上图的右边一部分我们可以看出,通过UpdateNet得到的第i帧的累计模板可用于下一帧来预测目标,而第i+1帧的的最优模板应该是其ground-truth本身,因此文中在训练阶段通过L2L_2L2​损失函数对其进行优化,公式如下:

下面我将介绍生成训练数据的过程以及一种针对UpdateNet的多阶段训练过程。

3.2.1 训练样本

为了训练,从上面我们可以看出,需要四种东西,分别是KaTeX parse error: Double subscript at position 4: T_0_̲{GT},\widetilde…,由于第一个和最后一个参数是通过标签可以得到的,如何能获得符合测试时数据分布一致的另外两个模板就值得好好想想了。
对于TiT_iTi​,当然可以直接用标签获取,但是标签是准确的模板位置,在测试时,我们未必能获得准确的目标位置。如果训练过程中,TiT_iTi​采用通过标签获取一定导致在测试的时候,性能下降,毕竟训练和测试存在数据分布上的差异。
我们虽然不能通过标签获得TiT_iTi​,但是可以通过T~i−1\widetilde{T}_{i-1}Ti−1​得到第i帧目标的粗略位置,这个粗略位置和GT存在位置误差,恰恰就是满足测试过程数据分布的。所以关键点就来到了如何获得合理的T~i−1\widetilde{T}_{i-1}Ti−1​。
因此作者提出了多阶段训练,下面我们将进行介绍。

3.2.2 多阶段训练

通常一般的优化需要进行多次相同的迭代,作者认为这种方式使程序变得繁琐和低效,因此提出了多阶段训练,在第一阶段采用线性更新策略,之后各阶段采用UpdateNet进行更新。
第一阶段更新公式如下所示:

之后阶段的更新公式如下所示:

4.实验结果

VOT2018的消融研究

孪生的累积模板可视化

连续帧之间的变化率

LaSOT测试集的评估

在Trackingnet数据集上与最新技术的比较

Learning the Model Update for Siamese Trackers学习笔记相关推荐

  1. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  2. Scan2CAD: Learning CAD Model Alignment in RGB-D Scans学习总结

    Scan2CAD: Learning CAD Model Alignment in RGB-D Scans的学习总结 概述:团队研究人员研究的内容是通过训练后的新颖3D卷积神经网络去接受一个半虚拟半真 ...

  3. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  4. oracle update单引号,Oracle学习笔记:update的字段中包括单引号

    平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...

  5. 论文《Dialogue State Tracking with a Language Model using Schema-Driven Prompting》学习笔记

    Dialogue State Tracking with a Language Model using Schema-Driven Prompting --prompt在对话系统上的应用 1. Ide ...

  6. 2020百度-Learning Generalized Spoof Cues for Face Anti-spoofing 学习笔记

    现有人脸反欺骗方法:针对一些预定义的欺骗类型对决策边界进行建模. 存在问题:包含未知样本的欺骗攻击的多样性阻碍了有效的决策边界建模,导致泛化能力较弱. 本文创新思路:从异常检测的角度对人脸欺骗检测进行 ...

  7. Learning Perl(Perl语言入门)学习笔记(3)

    第四章 子例程   1.  子例程(subroutine)即用户自定义函数,子例程调用时通常在子例程名前加上"&"符号:子例程名属于独立的命名空间: 2.  子例程可以在程 ...

  8. 论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning

    论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning NDSS 2021录用文章 目录 论文学习笔记 POSEID ...

  9. Sharepoint学习笔记—架构系列

     为便于查阅,这里整理并列出了我的Sharepoint学习笔记中涉及架构方面的有关文章,有些内容可能会在以后更新. Sharepoin学习笔记-架构系列--  Sharepoint的网页(Page), ...

  10. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

最新文章

  1. vijos 1476 旅游规划题解
  2. CentOS7下配置bacula-web
  3. Win64 驱动内核编程-18.SSDT
  4. 江苏省教育厅与阿里云合作变革“智慧教育”
  5. java 登录下线_java web中Listener的实现(实现用户在线统计数量和强制用户下线)...
  6. nginx log_format 中的变量
  7. 双电阻差分电流采样_小小的采样电阻,还真有点门道!
  8. 实战:小程序购物商城
  9. 【Citrix】XenCenter更新VM内存属性
  10. Backup EXEC虚拟化备份失败
  11. Flex Builder 中视图状态
  12. php获取笔顺矢量,PHP获取汉字笔画数功能【测试可用】
  13. 多媒体个人计算机的特点,多媒体特征
  14. 乐虎 尖叫_如果您想更快地尖叫! 为什么政府技术需要(很多)更好的治理
  15. 很有道理的程序员的小故事
  16. 社会新现象:“蜗婚”离婚不分家
  17. cesium面积计算_Cesium面积测量之思路解析加源码
  18. 量子计算机:决胜21世纪的利器
  19. 物联网基础知识介绍及常见的几种无线通讯方式和应用
  20. 【英语语法疑难点】An estimated后接个名词复数是个什么用法?

热门文章

  1. python 爬取贝壳网小区名称_利用python爬取贝壳网租房信息,python爬虫接单网, 最近准备换房子,...
  2. arcgis测量工具测量类型无法选择平面
  3. word、excle、ppt文档图标显示异常的解决方案!
  4. 整理软件测试分析资料
  5. 2022软件测试面试题 最新字节跳动50道真题面试题 刷完已拿下15k 附讲解+答疑
  6. Error:java.lang.RuntimeException: Some file crunching failed, see logs for detail
  7. 广告行业中那些趣事系列25:腾讯2020广告大赛冠军解决方案带来的思考
  8. Matlab选题之十大热门课题推荐
  9. 计算机四级数据库分值分布,计算机四级数据库工程师考试成绩查询注意事项
  10. 【软件测试基础】软件测试模式