首页 > 其他分享 >论文速读:SiamRPN++,利用深度网络实现Siamese视觉跟踪的进化

论文速读:SiamRPN++,利用深度网络实现Siamese视觉跟踪的进化

时间:2025-01-11 10:57:42浏览次数:3  
标签:速读 ++ 网络 跟踪器 Siamese 跟踪 深度 架构

 原文标题:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

中文标题:SiamRPN++:利用深度网络实现Siamese视觉跟踪的进化

今天要介绍的是来自商汤团队发表在CVPR上一篇目标检测跟踪的文章。文章非常经典,直到现在也有很多地方正在使用该架构。详细精读可以参考:SiamRPN++:利用深度网络实现Siamese视觉跟踪的进化-CSDN博客

Abstract

基于Siamese网络的跟踪器将跟踪任务表述为目标模板和搜索区域之间的卷积特征相互关联。然而,与最先进的算法相比,Siamese跟踪器仍然存在精度差距,而且它们无法利用深度网络(如ResNet-50或更深)的特征。在本文中,我们证明了其核心原因是缺乏严格的平移不变性。通过全面的理论分析和实验验证,我们通过简单而有效的空间感知采样策略打破了这一限制,并成功训练了resnet驱动的Siamese跟踪器,并获得了显著的性能提升。此外,我们提出了一种新的模型架构来进行分层和深度聚合,不仅进一步提高了精度,而且减小了模型尺寸。我们进行了广泛的消融研究,以证明所提出跟踪器的有效性,该跟踪器在五个大型跟踪基准上获得了目前最好的结果,包括OTB2015, VOT2018, UAV123, LaSOT和TrackingNet。

本文最大的贡献不是提出了SiameseRPN++,而是打破了Siamese网络在目标跟踪时无法使用深度复杂网络(VGGResNetMobileNet)的限制。

1、Introduction

近几十年来,视觉目标跟踪受到越来越多的关注,一直是一个非常活跃的研究方向。它在视觉监控、人机交互、增强现实等领域有着广泛的应用。尽管近年来取得了很大的进展,但由于光照变化、遮挡和背景杂乱等诸多因素,它仍然被普遍认为是一项非常具有挑战性的任务。近年来,基于Siamese网络的跟踪器在社区上引起了广泛关注。这些Siamese跟踪器将视觉目标跟踪问题表述为通过学习目标模板和搜索区域的特征表示之间的相互关联来学习通用的相似性映射。为了保证跟踪效率,离线学习的Siamese相似函数通常在运行时被固定。CFNet跟踪器和DSiam跟踪器分别通过运行平均模板和快速转换模块更新跟踪模型。SiamRNN跟踪器在Siamese网络之后引入区域提议网络,并将分类和回归引入跟踪任务中。DaSiamRPN跟踪器进一步引入干扰感知模块,提高了模型的识别能力。

虽然以上的Siamese跟踪器都取得了出色的跟踪性能,特别是在精度和速度的平衡方面,但是即使是性能最好的SiamPRN,在OTB2015等跟踪基准上,其精度与最先进的卷积跟踪器仍然有明显的差距。我们观察到,所有这些跟踪器都在类似于AlexNet的架构上构建网络,并尝试了几次训练具有更复杂架构(如ResNet)的Siamese跟踪器,但没有性能提升。受此启发,我们对现有的Siamese跟踪器进行了分析,发现其核心原因来自于对严格平移不变性的破坏。由于目标可能出现在搜索区域的任何位置,因此学习到的目标模板的特征表示应该保持空间不变性,并且我们进一步从理论上发现,在现代深度架构中,只有AlexNet的zero-padding满足这种空间不变性限制。

为了克服这一限制并使Siamese跟踪器具有更强大的深层架构,通过大量的实验验证,我们引入了一种简单而有效的采样策略(说白了就是增加了随机平移shft)来打破Siamese跟踪器的空间不变性限制。我们使用ResNet作为骨干网,成功地训练了一个基于SiamRPN的跟踪器,并获得了显著的性能改进。得益于ResNet架构,我们提出了一种分层特征强化结构用于相互关联操作,该结构有助于跟踪器从多层学习的特征中预测相似的映射。通过分析Siamese网络结构的相互关系,我们发现其两个网络分支在参数数量上高度不平衡;因此,我们进一步提出了一种深度可分关联结构,该结构不仅大大减少了目标模板分支中的参数数量,而且稳定了整个模型的训练过程。此外,我们还观察到一个有趣的现象,即同一类别的物体在同一通道上的响应很高,而其他通道的响应被抑制。正交特性也可以提高跟踪性能。

综上所述,这项工作的主要贡献如下:

1.我们对Siamese跟踪器进行了深入的分析,并证明了当使用深度网络时,准确性的降低来自于严格的平移不变性的破坏。

2.我们提出了一种简单而有效的采样策略来打破空间不变性的限制,成功地训练了由ResNet架构驱动的Siamese跟踪器。

3.我们提出了一种分层特征聚合结构,用于相互关联操作,这有助于跟踪器从多层学习的特征中预测相似的映射。

4.我们提出了一种深度可分离相关结构,以增强相互关联,从而产生与不同语义相关的多个相似映射。

基于上述理论分析和技术贡献,我们开发了一种高效的视觉跟踪模型,在跟踪精度方面建立了新的技术水平,同时以35帧/秒的速度高效运行。所提出的跟踪器被称为siamrpn++,在五个最大的跟踪基准上始终获得最佳跟踪结果,包括OTB2015、VOT2018、UAV123、LaSOT和TrackingNet。此外,我们提出了一种使用MobileNet骨干网的跟踪器的快速变体,在以70 FPS运行的同时保持竞争性能。

2、Related Work

在本节中,我们简要介绍最近的跟踪器,特别关注Siamese跟踪器。此外,我们还描述了深度架构的最新发展。由于构建了新的基准数据集和改进的方法,视觉跟踪在过去十年中得到了快速发展。标准化基准为不同算法的比较提供了公平的测试平台。每年举办的跟踪挑战不断推动跟踪性能的提高。随着这些进步,许多有前途的跟踪算法被提出。Bolme等人的开创性工作将卷积定理从信号处理领域引入到视觉跟踪中,并将目标模板匹配问题转化为频域的互相关操作。通过这种转换,基于互相关滤波器的跟踪器不仅可以获得高效的运行速度,而且如果使用适当的特征,还可以提高精度。随着深度学习模型在视觉跟踪中的广泛应用,基于具有深度特征表示的互相关滤波器的跟踪算法已经在流行的跟踪基准和挑战中获得了最先进的精度。

近年来,基于Siamese网络的跟踪器因其良好的跟踪精度和效率而备受关注。这些跟踪器将视觉跟踪作为一个相互关联的问题,并有望更好地利用端到端学习的深度网络的优点。为了从两个分支的相互关系中产生相似的映射,他们训练了一个y形神经网络,将两个网络分支连接起来,一个用于目标模板,另一个用于搜索区域。此外,这两个分支可以在跟踪阶段保持固定或在线更新以适应目标的外观变化。目前最先进的Siamese跟踪器在Siamese网络之后通过区域建议网络增强了跟踪性能,并产生了不错的结果。然而,在OTB基准上,它们的跟踪精度与ECO、MDNet等最先进的深度跟踪器相比仍有较大差距。

随着2012年Krizhevsky et al.提出现代深度架构AlexNet,网络架构的研究迅速发展,并提出了许多复杂的深层架构,如VGGNet、GoogleNet、ResNet和MobileNet。这些深度架构不仅提供了对神经网络设计的更深入理解,而且还推动了许多计算机视觉任务的发展,如目标检测、图像分割和人类姿势估计。在深度视觉跟踪器中,网络架构通常包含不超过五个由AlexNet或VGGNet定制的层构成。这种现象可以解释为浅层特征大多有助于物体的精确定位。在这项工作中,我们认为如果使用整个Siamese网络对模型进行适当的训练,那么使用更深的模型可以显著提高Siamese跟踪器的性能。

3. Conclusions

在本文中,我们提出了一个统一的框架,称为 SiamRPN++,用于端到端训练用于视觉跟踪的深度 Siamese 网络。 我们展示了如何在Siamese跟踪器上训练深度网络的理论和经验证据 我们的网络由多层聚合模块和深度相关层组成,多层聚合模块组装连接层次结构以聚合不同级别的表示,深度相关层使我们的网络能够减少计算成本和冗余参数,同时还能实现更好的收敛。使用 SiamRPN++,我们在 VOT2018 上实时获得了最先进的结果,展示了 SiamRPN++ 的有效性。 SiamRPN++ 还在 LaSOT 和 TrackingNet 等大型数据集上取得了最先进的结果,显示了其通用性。

标签:速读,++,网络,跟踪器,Siamese,跟踪,深度,架构
From: https://blog.csdn.net/m0_63294504/article/details/145073446

相关文章

  • c++ imu
      #include<iostream>#include<cmath>#include<chrono>#include<thread>#include<random>//Simplehelper:wrapsangleto[-pi,pi]doublewrapToPi(doubleangle){while(angle>M_PI){angle-=2.0*......
  • 【华为OD技术面试手撕真题】- C++手撕技术面试八股文(1)
    文章目录一、delete和delete[]的区别二、const解释一下其作用1.定义常量2.修饰指针3.修饰函数参数4.修饰类成员函数三、struct和class的区别1.默认访问控制2.继承的默认访问控制四、#include<file.h>#include"file.h"的区别五、C++文件......
  • C++语言的学习路线
    C++语言的学习路线C++是一种强大的高级编程语言,广泛应用于系统软件、游戏开发、嵌入式系统和高性能应用等多个领域。由于其丰富的功能和灵活性,C++是一门值得深入学习的语言。本文旨在为初学者制定一条系统的学习路线,帮助他们循序渐进地掌握C++语言。第一阶段:基础知识1.......
  • 1.10日学习笔记之C++的类
    ·类其实就是一种数据类型,和结构相似。类的成员包括两类,属性(成员变量)和行为(成员函数)。·成员函数定义的两种方法(可能有多种,觉得这两种比较常用)1、将类的成员函数定义在类体内,如classCPerson{public:shortage;shortgetage(){returnage;}};2、将......
  • 【C++】穿越编程岁月,细品C++进化轨迹,深化入门基石(续章)——揭秘函数缺省参数的魅力、函
    文章目录一、函数缺省参数二、函数重载三、引用1.引用的概念和定义2.引用的特性3.引用的使用4.const引用5.指针和引用的关系四、inline内联函数和nullptr1.inline2.nullptr一、函数缺省参数   缺省参数其实就是默认参数,它是声明或定义函数时为函数的参数指定......
  • 【C++】揭开C++类与对象的神秘面纱(首卷)(类的基础操作详解、实例化艺术及this指针的深
    文章目录一、类的定义1.类定义格式2.类访问限定符3.类域二、类的实例化1.实例化概念2.对象的大小三、隐藏的this指针与相关练习1.this指针的引入与介绍练习1练习2练习3一、类的定义1.类定义格式   在讲解类的作用之前,我们来看看类是如何定义的,在C++中,class......
  • Qt C++学习笔记1.7
    1.7Qt入门:实现一个图片查看软件需要用到的控件:QLabelQLineEditQPushButton需要实现的功能:打开目录选择图片显示图片的名字显示图片QLabel基本用法设置文本voidsetText(constQString&);获取文本QStringtext()const;设置图片voidsetPixmap(constQPixm......
  • C++并发编程之基于锁的数据结构的适用场合与需要考虑和注意的问题
    在C++多线程编程中,锁是一种常用的同步机制,用于保护共享数据,防止多个线程同时访问和修改,从而避免数据不一致或其他并发问题。基于锁的数据结构适用于多种并发编程场合,但同时也需要注意一些关键问题。1. 适用的并发编程场合锁在以下几种场合特别有用:1.1 保护共享数据当多个......
  • 详解 C++ 防御性编程声明一个类型 int *(*(*foo)(int))[5];
    C++中有一些语法由于灵活性和强大功能显得非常复杂。例如,复杂声明是许多人在学习C++时遇到的难题之一。下面以一条常被称为“C++最难的声明”为例,逐步拆解它的含义。声明:int*(*(*foo)(int))[5];这是一个看似复杂的C++声明。让我们逐步分析它的含义。1.阅读......
  • c++ 赋值运算符的定义
    1.赋值运算符的定义赋值运算符是用于修改已有对象的内容,而不是用于创建新对象。其典型的定义如下:Person&Person::operator=(constPerson&other);Person&Person::operator=(Person&&other);左侧对象(*this):表示已经存在的目标对象。右侧对象(other):表示要从中复制或转......