前言:siamRPN是Siamfc之后的又一突破。SiamFC的缺点:
Siamese的方法只能得到目标的中心位置,但是得不到目标的尺寸,所以只能采取简单的多尺度加回归,这即增加了计算量,同时也不够精确。
大佬翻译:https://blog.csdn.net/aaon22357/article/details/91966297
本文的改进:
SiamFC+ RPN Network,输出两个分支,分别用于分类和回归(SiamFC没有回归,而是用多尺度测试,增加了计算量且不够精确),帧率160fps(不需要在线微调),端到端,单目标跟踪

摘要

近些年来,Vot一直是计算机领域的一个基本课题。许多基于深度学习的跟踪器都在多个测试排行上实现了最先进的性能。然而,大多数的跟踪器都很难到达顶部性能与实时速度。在本文中,我们提出Siamense-RPN----它是一个利用大规模的图象队进行离线的端到端训练的方法。具体来说,它由Siamense network组成特征提取和区域建议子网络同时包括了分类分支和回归分支。在推理阶段,提出了如下框架本地一次检测任务。我们可以预先计算Siamese子网络的模板分支,并将相关层表示为普通的卷积层来进行在线跟踪。通过改进,传统的多尺度测试和在线微调可以被放弃。SiamRPN的速度为160帧/秒在VOT2015, VOT2016和VOT2017中表现领先实时的挑战。

1.引言

VOT是计算机视觉的各种任务中的一个基本结构块计,如自动驾驶[19]和视频监控[32]。这是一个巨大的挑战由光照、变形、遮挡和运动[37,39]。此外,速度也是在实际应用中具有重要意义[13,4,38]。
现代追踪器大致可分为两个分支。第一个分支是基于相关滤波器(kcf),它利用循环相关的性质并在傅里叶域中进行运算来训练回归器。它可以在线跟踪,同时有效地更新滤波器的权值。原始的方法是在傅里叶域中进行,然后广泛地应用于跟踪社区[5,14]。近年来基于相关滤波的方法利用深度特征来提高精度,但在模型更新过程中大大降低了速度[10,7]。
另一个分支的方法旨在使用非常强大的深层特性(deep learning ),而不更新模型[13,4,35]。但是,由于没有使用领域特定的信息,这些方法的性能总是不如基于相关筛选器的方法。
在本文中,我们证明了离线训练的基于深度学习的跟踪器在适当的设计下可以获得与目前最先进的基于相关滤波器的跟踪器相比具有竞争力的结果。关键是提出的(Siamese-RPN)。它由一个模板分支和一个检测分支组成,检测分支采用端到端的方式离线训练大规模的图像pair。受目前最先进的提案提取方法RPN[27]的启发,我们对相关特征图进行提案提取。与标准RPN不同的是,我们使用两个分支的相关特征图来提取提案。在跟踪任务中,我们没有预先定义。因此,我们需要模板分支将目标的外观信息编码到RPN特征映射中,以区分前景和背景。
对于perference,我们将它表示为一个局部的一次性检测框架,其中第一帧中的边界框是唯一的范例。我们将模板分支重新解释为参数,以预测像[2]这样的元meta学习器的检测内核。元学习者和检测分支都是在RPN的监督下进行端到端的训练。在线跟踪时,为了加快初始帧后的速度,对模板分支进行修剪。据我们所知,这是第一个制定在线跟踪任务作为一次性检测的工作。
我们在VOT2015、VOT2016和VOT2017实时挑战中对提出的方法进行了评估[17,16,15]。它可以在所有这三个挑战中取得领先的成绩。
主要有两个原因,我们可以得到最先进的结果没有在线微调。
首先,利用图像对进行离线训练可以利用Youtube-BB[25]等大型培训数据。消融研究表明,更多的数据可以帮助获得更好的性能。其次,我们发现区域提案子网通常能够准确预测提案的规模和比例,从而得到如图1所示的紧凑边界框。这些贡献可以概括为三方面。
1)提出了一种基于大规模图像对的端到端离线训练的Siamese区域建议网Siamese- rpn。
2)在线跟踪时,将提出的框架表示为局部一次检测任务,可以细化建议,抛弃复杂的多尺度测试。
3)在VOT2015、VOT2016、VOT2017实时挑战中,以160 FPS的速度取得领先的表现,证明了其在准确性和效率上的优势。

2.相关工作

由于本文的主要贡献是把Siamense-RPN表示为单次局部检测任务,我们给出了一个简要回顾与我们工作相关的三个方面:跟踪器基于Siamese网络结构,检测中的RPN使用和单次学习。

2.1.Trackers based on Siamese network structure

Siamese网络由两个分支组成,这两个分支隐式地将原始的patch编码到另一个空间,然后用一个特定的张量将它们融合起来,产生一个单独的输出。它通常用于比较隐式嵌入空间中两个分支的特征,特别是用于对比任务。近年来,Siamnetwork网络以其均衡的精度和速度受到视觉跟踪界的广泛关注[13、12、4、35、36]。GOTURN[13]采用Siamese网络作为特征提取器,采用全连通层作为融合张量。将最后一帧的预测边界框作为唯一的建议,可以看作是一种回归方法。re3[12]使用了一个递归网络来获得模板分支产生的更好的特性。在相关方法的启发下,Siamese-FC[4]首先引入相关层作为融合张量,大大提高了精度。其成功的原因是与GOTURN的一项建议回归相比,密集监督的heatmap,这使得siam- fc对快速移动的物体更加健壮。CFNet[35]向模板分支添加了一个相关过滤器,使Siamnetwork更浅,但更高效。
然而,Siamese-FC和CFNet都缺乏边界box回归,需要进行多尺度测试,使得其不那么优雅。这些实时跟踪器的主要缺点是其精度和鲁棒性不能令人满意相比于最先进的相关滤波方法。

2.2. RPN in decetion

区域建议网络(RPN)首先在快速R-CNN[27]中提出。在RPN之前,传统的提取特征方法比较耗时。例如,选择性搜索[34]需要2秒来处理一个图像。此外,这些提案还不足以进行检测。多锚(multiple anchors)[27]的枚举和共享的卷积特征使得该方案提取方法在获得高质量的同时具有较高的时间效率。RPN在前-背景分类和边界盒回归的监督下,能够提取出更精确的建议。有几个变种的更快的R-CNN采用RPN。R-FCN[6]考虑了组件的位置信息,FPN[21]采用特征金字塔网络来提高微小目标检测的性能。与两级探测器相比,改进的RPN探测器如SSD[22]和YOLO9000[26]是有效的探测器。RPN由于其速度快、性能好等优点,在检测方面有很多成功的应用,但在跟踪方面还没有得到充分的开发。

图2:Siamese- rpn的主要框架:左侧为Siamese子网络用于特征提取。区域建议子网络位于中间,它有两个分支,一个用于分类,另一个用于回归。采用两两相关得到两个分支的输出。这两个输出功能映射的详细信息在右侧。在分类分支中,输出特征图有2k个通道,对应k个锚点的前景和背景。在回归分支中,输出feature map有4k个通道,对应四个坐标,用于k个锚点的proposal细分。在图中, 表示相关操作符。

2.3. One-shot learning 单样本学习

近年来,在深度学习中,一次性学习的话题越来越受到重视。基于贝叶斯统计方法和元学习方法是解决这一问题的两种主要方法。在[20]中,对象类别由概率模型表示,推理阶段采用贝叶斯估计。另一方面,元学习方法的目标是获得学习的能力,也就是说,意识到并控制自己的学习。具体来说,[1]利用神经网络预测目标网络在反向传播过程中的梯度。[30]学习将一个小的标记支持集和一个未标记的示例映射到其标记的网络。虽然这些基于元学习的方法取得了很好的效果,但是这些方法通常是基于分类任务进行评估的,很少扩展到跟踪任务。Learnet[2]是第一个利用元学习方法来解决跟踪任务的工作,它从单个样本预测瞳孔网络的参数。然而,与基于DCF的方法相比,Learnet的性能并不是很有竞争力。

3. Siamese-RPN framework(!!!)

在本节中,我们将详细描述所提出的Siamese-RPN框架。如图2所示,所提出的框架包括一个用于特征提取的Siamense子网和一个用于生成建议的区域建议子RPN网。具体来说,RPN子网络中有两个分支,一个负责前-背景分类,另一个用于提案细化。将包括目标对象在内的图像小块输入到该框架中,对整个系统进行端到端的训练。

3.1. Siamese feature extraction subnetwork

在Siamese网络中,我们采用不填充的全卷积网络。用Lτ表示平移操作符(Lτx) (u) = x [u−τ),那么所有填充被满足的定义与步幅k完全卷积:

这里我们使用修改过的AlexNet[18],其中移除了conv2,conv4中的群组 [4]。
Siamese特征提取子网络由两个分支组成。一个叫接收目标patch的模板分支的历史框架作为输入(denotedas z)。另一种是叫做检测部门接收目标patch在当前帧作为输入(x)表示。CNN中的两个分支共享参数,这样两个patch是由相同的隐式编码转换适用于后续任务。为了方便起见,我们表示φ(z)和φ(x)作为输出特性Siamense子网的map。

3.2. Region proposal subnetwork

区域建议子网络由分类和回归两部分组成。如果有k个anchor,网络需要输出2k个信道进行分类,输出4k个信道进行回归。首先两两相关的部分首先增加φ的渠道(z)两个分支(φ(z)] cls和[φ(z)] reg 2 k和4 k次通道分别由两个卷积层。φ(x)也分成两个分支(φ(x)] cls和[φ(x))注册两个卷积层但保持渠道不变。[φ(z))担任相关的内核(φ(x)]“集团”的方式,也就是说,频道号码的一群(φ(z)]是一样的整体频道号码(φ(x)]。在分类分支和回归分支上计算相关性:
!!
模板特征图(φ(z)] cls和[φ(z)] reg作为内核,⋆表示卷积操作。如图2所示,cls中的每个点
w h××2 k表示为(w̃h̃:)包含一个2 k通道矢量,代表每个锚的正样本和负样本的激活在original map相应的位置。采用softmax 损失法对分类分支进行监督。同样,每一个点在一个注册w×h×4 k表示为(ŵ、ĥ:)包含一个4 k通道矢量,代表对dx, dy, dw, dh测量锚和相应的groundtruth之间的距离。

当使用多个锚点训练网络时,我们使用了更快的R-CNN[27]中使用的损耗函数分类损失是一种交叉熵损失,我们采用平滑的L1损失和归一化坐标进行回归。设A x, A y, A w, A h表示锚箱的中心点和形状,设T x, T y, T w, T h表示groundturth的归一化距离为:
然后他们通过顺利的L 1损失,可以如下:

最后我们优化了损失函数:

在λhyper-parameter平衡两个部分。Lreg ls
为交叉熵损失,L为:
这里的损失就是两个分支(即分类和回归)的损失带权重相加.

3.3. Training phase: End-to-end train Siamese-RPN(端到端的训练Siamse-RPN)

在训练阶段,随机间隔从ILSVRC[29]和连续从Youtube-BB[25]中选取样本对。从同一视频的两帧中提取Z和X的patch。我们使用Imagenet对Siamse子网进行预训练后,使用随机梯度下降(SGD)对Siam - rpn进行端到端的训练。由于训练回归分支的需要,在-中采用了一些数据扩充仿射变换在跟踪任务中,我们选择的锚点比检测任务少, 因为我们注意到相邻两帧中的同一物体变化不大。所以我们只采用了一种不同锚固比的标度,我们采用的锚固比为 [0.33,0.5,1,2,3]。
选择积极和消极的训练样本的策略在我们提出的框架中也很重要。本文采用IoU和两个阈值thhi和thlo作为目标检测任务的判据。正样本定义为具有IoU > thhi的锚点及其对应的groundtruth。负的被定义为满足IoU < thlo的锚。我们将thlo设置为0.3,thhi设置为0.6。我们也限制最多16个正采样样本和总共64个样本来自一个训练对。

4. Tracking as one-shot detection

在本节中,我们首先将跟踪任务表示为局部一次检测任务。然后对该解释下的推理阶段进行了详细的分析和简化,以提高推理速度。最后,提出了具体的跟踪策略,使该框架适合于跟踪任务。

4.1. Formulation

我们认为在[2]中,一次性检测是一个有区别的任务。它的目的是找到减少的参数W的平均损失L预测函数ψ(x;W)。它的数据集计算nℓ我习样品和相应的标签

一次性学习的目的是要从兴趣类的单个模板z中学习W。区别式一次学习的挑战在于找到一种将范畴信息融入学习者的机制,即学习学习。为应对挑战,我们提出一个方法来学习预测的参数W z从单个模板使用元学习过程,即一个地图的前馈功能ω(z;W ')到W.令zi为一批模板样品,则问题可表示为

如上相同,让z表示模板的patch,x为检测patch,函数ϕ为Siam特征提取子网和ζ函数对该RPN
然后一次性检测任务可以制定为:
我们现在可以将Siamese子网络中的模板分支重新解释为训练参数,从而预测局部检测任务的内核,这通常是学习学习的过程。在本解释中,使用模板分支将类别信息嵌入到内核中,检测分支使用嵌入的信息进行检测。在训练阶段,元学习者不需要任何其他的监督,除了成对边界盒监督。在预测阶段,Siamese框架只剩下检测分支而不包括初始帧,从而导致高速。从第一帧的目标patch被发送到模板分支,检测内核被预先计算,这样我们就可以在其他帧中执行一次检测。由于局部检测任务仅基于模板在初始帧上给出的类别信息,因此可以看作是一次性检测。

图3:跟踪为单次检测:模板分支使用第一帧预测检测分支上区域建议子网内核的权重(灰色)。然后修剪模板分支,只保留检测分支。因此,该框架被修改为一个局部检测网络。

4.2. Inference phase: Perform one-shot detection

根据4.1节中的公式,我们将模板分支的输出作为局部检测的内核。这两个内核都是在初始帧上预先计算好的,并在整个跟踪周期内固定。将当前的feature map与预先计算好的kernel进行卷积,检测分支进行一次在线推理,如图3所示。执行检测分支的前向传递,以获得分类和回归输出,从而获得顶部的M建议。具体来说,在Eq. 2中定义的符号之后,我们将分类和回归特征图表示为点集:
由于分类特征图上的奇数通道表示正激活,所以我们收集所有Acls w×h×2k中l为奇数的前K个点,并将这些点集表示为CLS = {(x CLS i, ycls j, ccls l)i∈i,j∈j,l∈l},其中i,j,l为一些索引集。变量i和j分别对相应的锚点的位置进行编码,l对相应的锚点的比值进行编码,因此我们可以得到相应的锚点集ANC = {(x an i, yan j, wan l, han l)i∈i,j∈j,l∈l}。此外,我们发现ANC on Acls w×h×4k的激活,得到相应的求精坐标REG = {(x REG i, y REG j, dxreg l, dyreg l, dwreg l, dhreg l)i∈i,j∈j,l∈l}。然后,经过精化的top K提案集P RO = {(x pro i, y pro j, w pro l, hpro l)}可以被如下公式得到:
the top K 提案生成后,我们使用一些提案选择策略使其适合于跟踪任务,我们将在下一节中讨论

4.3. Proposal selection

总结&分析

SiamRPN与SiamFC对比
SiamRPN相比于SiamFC精度更高,而且速度更快了。精度高的原因是,SiamFC只是比对,不对框的形状进行预测,而RPN加了预测以及offset,所以每帧的iou高了,精度也就上去了;速度更快的原因是,SiamRPN不用再进行多尺度的测试,RPN的加入虽然层数变多,RPN部分跟backbone比耗时少了很多,而且SiamFC还有最后的resize到272*272,也很耗时。

SiamRPN的不足
SiamFC,SiamRPN,甚至DaSiamRPN,都没有进行模板更新,因为不仅耗时,而且用处不大(模板更新应该很重要,但是目前尚未找到好方法)

走进VOT--《High Performance Visual Tracking with Siamese Region Proposal Network》阅读翻译相关推荐

  1. High Performance Visual Tracking with Siamese Region Proposal Network全文翻译

    摘要   近年来,视觉对象跟踪一直是一个基本主题,许多基于深度学习的跟踪器在多个基准测试中取得了最先进的性能.然而,这些跟踪器中的大多数很难以实时速度获得最佳性能.在本文中,我们提出了 Siamese ...

  2. High Performance Visual Tracking with Siamese Region Proposal Network 论文学习

    文章目录 论文阅读总结 Translation Abstract 1 Introduction 2 Related Works 2.1 Trackers based on Siamese networ ...

  3. CVPR 2018 Siam-RPN:《High Performance Visual Tracking with Siamese Region Proposal Network》论文笔记

    理解出错之处望不吝指正. 本文模型叫做Siam-RPN.本文将Siamese Network和RPN结合,提出了一种端到端的离线训练方法,并把tracking过程视为one-shot detectio ...

  4. [译]SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks--翻译

    来自商汤科技的一篇论文--翻译稿 code--GitHub 项目主页 摘要 基于孪生网络的跟踪器将跟踪表述为目标模板和搜索区域之间的卷积特征互相关.然而,与最先进的算法相比, 孪生网络的算法仍然有一个 ...

  5. Learning Spatio-Temporal Transformer for Visual Tracking——精读笔记

    本篇精读笔记,对原文重要部分做了严格翻译,如摘要和总结.对正文部分做了提炼,对重点部分突出标注.对参考文献做了分类.本文内容较长,如果时间有限可以直接跳到感兴趣的小节阅读. 论文地址:https:// ...

  6. [VOT1](2019CVPR)SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

    SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 文章下载:https://arxiv.org/abs/1 ...

  7. Siamese目标跟踪:STMTrack: Template-free Visual Tracking with Space-time Memory Networks(CVPR2021)

    论文 STMTrack: Template-free Visual Tracking with Space-time Memory Networks 代码 Github/STMTrack 参考文章 S ...

  8. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  9. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

最新文章

  1. 连接远程服务器CredSSP加密Oracle修正报错解决办法
  2. Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
  3. SpringBoot应用的集成测试
  4. 读书笔记---编译程序中的三板斧
  5. Name与x:Name的关系--转载
  6. C#、.Net经典面试题目及答案
  7. PHP中var_dump
  8. 其实,这仅仅是个开始
  9. 深度学习backbone是什么意思_一场突如其来的讨论:到底什么是深度学习?SVM其实也是深度学习吗?...
  10. Python核心编程--学习笔记--3--Python基础
  11. 配置中文XeLaTex环境
  12. 数据走进宫崎骏的动画世界
  13. 英雄联盟——心得体会
  14. LINUX centos7.6修改静态IP与配置参数NM_CONTROLLED
  15. 解决IE下Ajax请求无效
  16. 抑郁焦虑测试软件可信度,做题自测抑郁症可靠吗
  17. 支付宝支付学习:蚂蚁沙箱环境是什么?怎样使用蚂蚁沙箱环境?
  18. 关键词挖掘的方法和技巧
  19. Symbian OS 精要
  20. pta 天梯赛的善良(C语言实现)

热门文章

  1. python文件开头含义
  2. 贵州省发票认证系统服务器地址,贵州省增值税发票综合服务平台登录入口:https://fpdk.guizhou.chinatax.gov.cn...
  3. 阿里云国际版如何使用NGINX作为HTTPS转发代理服务器
  4. 数据递归查询的两种实现方法
  5. 我写了一个套路,助你随心所欲运用二分搜索
  6. 克里奥服务器装系统,克里奥神模拟器
  7. panda是删除行_pandas删除包含指定内容的行
  8. 通俗易懂的讲讲什么是中间件?
  9. 面试——讲讲什么是happens-before?
  10. Texture Haven Spider