siamRPN++论文阅读
论文地址:https://arxiv.org/pdf/1812.11703.pdf
题目:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks SiamRPN ++:具有非常深的网络的暹罗视觉跟踪的演变
Abstract
基于暹罗网络的跟踪器,可将目标模板与搜索区域之间的卷积特征互相关进行跟踪。但是,与最新算法相比,暹罗跟踪器仍存在精度差距,并且它们无法利用深度网络(例如ResNet-50或更高版本)的功能。在这项工作中,我们证明了其主要原因是缺乏严格的翻译不变性。通过全面的理论分析和实验验证,我们通过一个简单而有效的空间感知采样策略突破了这一限制,并成功地训练了ResNet驱动的暹罗跟踪器,并获得了显着的性能提升。此外,我们提出了一种新的模型体系结构来执行分层和深度聚合,这不仅可以进一步提高准确性,而且可以减小模型大小。我们进行了广泛的消融研究,以证明拟议中的跟踪器的有效性,该跟踪器目前在OTB2015,VOT2018,UAV123,LaSOT和TrackingNet等五个大型跟踪基准上获得了最佳结果。我们将发布模型,以方便进一步的研究。
1. Introduction
视觉对象跟踪在过去几十年中受到越来越多的关注,并且一直是一个非常活跃的研究方向。 它在视觉监控 [47]、人机交互 [26] 和增强现实 [48] 等不同领域具有广泛的应用。 尽管最近取得了很大进展,但由于照明变化、遮挡和背景杂波等众多因素,它仍然被普遍认为是一项非常具有挑战性的任务,仅举几例 [46]。
最近,基于连体网络的跟踪器 [40, 1, 15, 42, 41, 24, 43, 52, 44] 在社区中引起了广泛关注。 这些连体跟踪器将视觉对象跟踪问题表述为通过为目标模板和搜索区域学习的特征表示之间的互相关来学习一般相似度图。 为了确保跟踪效率,离线学习的连体相似度函数通常在运行期间是固定的[40,1,15]。 CFNet 跟踪器 [41] 和 DSiam 跟踪器 [11] 分别通过运行平均模板和快速转换模块更新跟踪模型。 SiamRNN 跟踪器 [24] 在 Siamese 网络之后引入了区域提议网络 [24],并执行联合分类和回归进行跟踪。 DaSiamRPN 跟踪器 [52] 进一步引入了干扰器感知模块,提高了模型的辨别能力。
尽管上述 Siamese 跟踪器取得了出色的跟踪性能,尤其是在准确度和速度的平衡方面,即使是性能最好的 Siamese 跟踪器,例如 SiamPRN,其准确度仍与现有技术 [5] 存在显着差距。跟踪 OTB2015 [46] 等基准。我们观察到所有这些跟踪器都在类似于 AlexNet [23] 的架构上构建了他们的网络,并多次尝试训练具有更复杂架构(如 ResNet [14])但没有性能提升的 Siamese 跟踪器。受此观察启发,我们对现有的连体跟踪器进行了分析,发现其核心原因来自于严格平移不变性的破坏。由于目标可能出现在搜索区域的任何位置,目标模板的学习特征表示应该保持空间不变性,我们进一步从理论上发现,在现代深度架构中,只有 AlexNet 的零填充变体满足这种空间不变性限制。
为了克服这一限制并以更强大的深度架构驱动连体跟踪器,通过广泛的实验验证,我们引入了一种简单而有效的采样策略来打破连体跟踪器的空间不变性限制。我们使用 ResNet 作为骨干网络成功地训练了基于 SiamRPN [24] 的跟踪器,并获得了显着的性能改进。受益于 ResNet 架构,我们提出了一种用于互相关操作的逐层特征加重结构,这有助于跟踪器从多个级别学习的特征中预测相似度图。通过分析Siamese网络结构的互相关,我们发现它的两个网络分支在参数数量上是高度不平衡的;因此,我们进一步提出了一种深度可分离的相关结构,不仅大大减少了目标模板分支中的参数数量,而且稳定了整个模型的训练过程。此外,观察到一个有趣的现象是,相同类别的对象在相同通道上具有高响应,而其余通道的响应被抑制。正交特性也可以提高跟踪性能。
总而言之,这项工作的主要贡献分为以下四个方面:
我们对连体跟踪器进行了深入分析,并证明当使用深度网络时,准确性的下降来自于严格平移不变性的破坏。
我们提出了一种简单而有效的采样策略来打破空间不变性限制,该策略成功地训练了由 ResNet 架构驱动的连体跟踪器。
我们提出了一种用于互相关操作的逐层特征聚合结构,这有助于跟踪器从多个级别学习的特征中预测相似度图。
我们提出了一种深度可分离的相关结构来增强互相关以产生与不同语义相关联的多个相似图。
基于上述理论分析和技术贡献,我们开发了一种高效且高效的视觉跟踪模型,该模型在跟踪精度方面建立了新的最新技术,同时以 35 FPS 高效运行。 所提出的跟踪器称为 SiamRPN++,在五个最大的跟踪基准上始终获得最佳跟踪结果,包括 OTB2015 [46]、VOT2018 [21]、UAV123 [31]、LaSOT [10] 和 TrackingNet [30]。 此外,我们提出了一种使用 MobileNet[18] 主干网络的跟踪器的快速变体,它在以 70 FPS 运行的同时保持有竞争力的性能。 为了便于进一步研究视觉跟踪方向,我们将发布 SiamRPN++ 跟踪器的源代码和训练好的模型。
2. Related Work
在本节中,我们将简要介绍最近的跟踪器,特别关注基于连体网络的跟踪器 [40, 1]。此外,我们还描述了深度架构的最新发展。由于新的基准数据集 [45, 46, 19, 21, 10, 30] 和改进的方法 [16, 51, 6, 7, 17, 32, 9, 5、43、52、49]。标准化的基准 [45, 46, 10] 为与不同算法的比较提供了公平的测试平台。每年举行的跟踪挑战 [22, 19, 20, 21] 一直在推动跟踪性能。随着这些进步,已经提出了许多有前途的跟踪算法。 Bolme 等人的开创性工作。 [3] 将信号处理领域的卷积定理引入视觉跟踪,将目标模板匹配问题转化为频域的相关运算。由于这种转换,基于相关滤波器的跟踪器不仅可以获得高效的运行速度,而且如果使用适当的特征,还可以提高准确性 [16、50、51、8、6]。随着深度学习模型在视觉跟踪中的广泛采用,基于具有深度特征表示的相关滤波器的跟踪算法 [9, 5] 在流行的跟踪基准 [45, 46] 和挑战 [45, 46] 中获得了最先进的精度。 22、19、20]。
最近,基于连体网络的跟踪器因其平衡的跟踪精度和效率而受到广泛关注[40、1、15、42、41、12、24、43、52、44]。这些跟踪器将视觉跟踪定义为一个互相关问题,并有望更好地利用端到端学习的深度网络的优点。为了从两个分支的互相关中生成相似度图,他们训练了一个连接两个网络分支的 Y 形神经网络,一个用于对象模板,另一个用于搜索区域。此外,这两个分支可以在跟踪阶段保持固定 [40, 1, 15, 43, 24, 52] 或在线更新以适应目标的外观变化 [42, 41, 12]。目前最先进的 Siamese 跟踪器 [24, 52] 在 Siamese 网络之后通过区域提议网络提高了跟踪性能,并产生了非常有希望的结果。然而,在 OTB 基准 [46] 上,它们的跟踪精度与 ECO [5] 和 MDNet [32] 等最先进的深度跟踪器仍然存在较大差距。
随着 Alex 等人提出的现代深度架构 AlexNet。 [23] 2012 年,网络架构的研究迅速发展,提出了许多复杂的深度架构,例如 VGGNet [37]、GoogleNet [38]、ResNet [14] 和 MobileNet [18]。 这些深度架构不仅为神经网络的设计提供了更深入的理解,而且还推动了许多计算机视觉任务的最新技术,如对象检测 [33]、图像分割 [4] 和人体姿态估计 [ 39]。 在深度视觉跟踪器中,网络架构通常包含不超过五个从 AlexNet 或 VGGNet 定制的构成层。 这种现象被解释为浅特征主要有助于物体的准确定位[34]。 在这项工作中,我们认为,如果使用整个 Siamese 网络对模型进行适当训练,使用更深的模型可以显着提高 Siamese 跟踪器的性能。
3. Siamese Tracking with Very Deep Networks
这项工作最重要的发现是,如果配备更深的网络,基于连体网络的跟踪算法的性能可以显着提高。 然而,简单地通过直接使用像 ResNet 这样的更深层网络来训练 Siamese 跟踪器并不能获得预期的性能提升。 我们发现根本原因很大程度上涉及到 Siamese 跟踪器的内在限制,因此,在介绍所提出的 SiamRPN++ 模型之前,我们首先对用于跟踪的 Siamese 网络进行更深入的分析。
3.1. Analysis on Siamese Networks for Tracking
基于连体网络的跟踪算法 [40, 1] 将视觉跟踪定义为互相关问题,并从具有连体网络结构的深度模型中学习跟踪相似度图,一个分支用于学习目标的特征表示,另一个分支用于学习目标的特征表示。 为搜索区域。 目标补丁通常在序列的第一帧中给出,可以看作是一个示例 z。 目标是在语义嵌入空间 ( ) 中从帧 x 中找到最相似的补丁(实例):
$$ f(z,x)=\phi(z)*\phi(x)+b $$
其中 b 用于模拟相似度值的偏移量。
这种简单的匹配功能自然意味着设计连体跟踪器的两个内在限制。
Siamese 跟踪器中使用的收缩部分和特征提取器对严格的平移不变性具有内在限制,
$$ f(z,x(\delta \tau))=f(z, x)\delta \tau $$
$\tau$ 是平移移位子窗口算子,保证了高效的训练和推理。
me:这个意思是说孪生网络输入的搜索图像平移,那么相似度计算的结果也应该平移。但是这个与restnet无法简单的应用有关系吗
收缩部分对结构对称性有内在限制,
$$ f(z,x')=f(X',z) $$
这是适用于相似性学习。
me:这个是说你用模板当卷积核去卷搜索图像得到的结果,应该和用搜索图像当卷积核去卷模板的结果应该是一致的。这个可以做个数据增强??但是仍然和restnet关系不大啊
经过详细分析,我们发现阻止Siamese tracker使用深度网络的核心原因与这两个方面有关。 具体来说,一个原因是深度网络中的填充会破坏严格的平移不变性。 另一个是RPN需要不对称特征进行分类和回归。 我们将介绍空间感知采样策略来克服第一个问题,并在第 3 节讨论第二个问题。 3.4.
me:他说restnet里面用到了填充破环了平移不变性,并且rpn网络其实不需要第二个公式的要求,但是我认为平移不变性收到破环的最主要原因是gt设置的适合总是在中间的可能性较大,而且在siamrpn中anchor的方式17 * 17是密集的集中放在搜索图像的中间位置的,这导致loss计算大量计算了中间的特征而忽略了边缘特征,导致特征本身的对待程度就不均匀,那怎么能够期望,网络具有平移不变性呢,但是如果将gt的anchor评价放置在搜素图像上,当时测试时获得的实现效果并不好,我猜测有可能时anchor平均放置时密度太小,导致不准确,难以训练,但是密集放置anchor会不会太过影响速度,值得测试。
图 1. 使用不同随机翻译时阳性样本的先验概率的可视化。 在 32 像素内随机平移后,分布变得更加均匀。
严格的平移不变性仅存在于无填充网络中,例如修改后的 AlexNet [1]。 以前的基于连体的网络 [1, 42, 41, 24, 52] 被设计为浅层以满足这一限制。 但是,如果使用的网络被现代网络如 ResNet 或 MobileNet 所取代,填充不可避免地会使网络变得更深,这破坏了严格的平移不变性限制。 我们的假设是,违反此限制将导致空间偏差。
我们通过在带有填充的网络上进行模拟实验来检验我们的假设。移位被定义为数据增强中均匀分布产生的最大平移范围。我们的模拟实验如下进行。首先,在三个单独的训练实验中,目标被放置在具有不同移位范围(0、16 和 32)的中心。收敛后,我们聚合在测试数据集上生成的热图,然后在图 1 中可视化结果。在第一次零偏移模拟中,边界区域的概率降为零。它表明,尽管出现了测试目标,但仍会学习到强烈的中心偏差。其他两个模拟表明,增加移位范围将逐渐防止模型崩溃到这个微不足道的解决方案中。定量结果表明,32班的聚合热图更接近测试对象的位置分布。证明了空间感知采样策略有效地缓解了带有填充的网络引起的严格平移不变性的破坏。
为了避免对对象施加强烈的中心偏差,我们通过空间感知采样策略使用 ResNet-50 主干训练 SiamRPN。 如图 2 所示,在 VOT2018 上零偏移的性能降低到 0.14,合适的偏移(64 像素)对于训练深度连体跟踪器至关重要。
3.2. ResNetdriven Siamese Tracking
基于以上分析,可以消除中心偏差的影响。 一旦我们消除了对中心位置的学习偏差,任何现成的网络(例如,MobileNet、ResNet)都可以在域适应后用于执行视觉跟踪。 此外,我们可以自适应地构建网络拓扑并揭示深度网络在视觉跟踪方面的性能。
在本小节中,我们将讨论如何将深度网络转移到我们的跟踪算法中。 特别是,我们进行的实验主要集中在 ResNet-50 [14]。 原始的 ResNet 有 32 个像素的大步幅,不适合密集的 Siamese 网络预测。 如图 3 所示,我们通过将 conv4 和 conv5 块修改为具有单位空间步幅,将最后两个块的有效步幅从 16 像素和 32 像素减少到 8 像素,并通过扩张卷积增加其感受野[27 ]。 每个块输出附加一个额外的 1 1 卷积层,以将通道减少到 256。
由于保留了所有层的填充,模板特征的空间大小增加到 15,这给相关模块带来了沉重的计算负担。 因此,我们将中心 7 7 区域 [41] 裁剪为模板特征,其中每个特征单元仍然可以捕获整个目标区域。
在 [24] 之后,我们使用互相关层和全卷积层的组合来组装一个头模块,用于计算分类分数(用 S 表示)和边界框回归器(用 B 表示)。 Siamese RPN 块用 P 表示。
此外,我们发现仔细微调 ResNet 将提高性能。 通过将 ResNet 提取器的学习率设置为比 RPN 部分小 10 倍,特征表示可以更适合跟踪任务。 与传统的 Siamese 方法不同,深度网络的参数以端到端的方式联合训练。 据我们所知,我们是第一个在深度连体网络(> 20 层)上实现端到端学习的视觉跟踪。
3.3. Layerwise Aggregation
在利用像 ResNet-50 这样的深度网络之后,聚合不同的深层成为可能。 直观地说,视觉跟踪需要丰富的表示,从低到高,尺度从小到大,分辨率从精细到粗糙。 即使具有卷积网络中的特征深度,单独的层也不够:复合和聚合这些表示可以改善识别和定位的推理。
在以前只使用像 AlexNet 这样的浅层网络的作品中,多级特征不能提供非常不同的表示。 然而,考虑到感受野变化很大,ResNet 中的不同层更有意义。 早期层的特征将主要集中在颜色、形状等低级信息上,这些信息对于定位至关重要,而缺乏语义信息; 后几层的特征具有丰富的语义信息,在运动模糊、巨大变形等挑战场景中可能是有益的。 假设使用这种丰富的分层信息有助于跟踪。
在我们的网络中,提取多分支特征以协同推断目标定位。 至于 ResNet-50,我们探索从最后三个残差块中提取的多级特征,用于我们的逐层聚合。 我们将这些输出分别称为 F3(z)、F4(z) 和 F5(z)。 如图 3 所示,conv3、conv4、conv5 的输出分别馈入三个 Siamese RPN 模块。
由于三个 RPN 模块的输出大小具有相同的空间分辨率,因此在 RPN 输出上直接采用加权和。 加权融合层结合了所有输出。
$$ S_{all}=\sum_{l=3}^5 \alpha_i * S_l $$
$$ B_{all}=\sum_{l=3}^5 \bata_i * B_l $$
S is classification, B is bbox
图 4. 不同互相关层的图示。 (a) 互相关 (XCorr) 层预测 SiamFC [1] 中目标模板和搜索补丁之间的单通道相似度图。 (b) 上行通道互相关 (UP-XCorr) 层通过在 SiamRPN [24] 中将一个重卷积层与几个独立的 XCorr 层级联来输出多通道相关特征。 (c) 深度互相关 (DW-XCorr) 层预测模板和搜索补丁之间的多通道相关特征。
组合权重被分开用于分类和回归,因为它们的域不同。 权重与网络一起离线进行端到端优化。
与以前的工作相比,我们的方法没有明确地结合卷积特征,而是分别学习分类器和回归。 请注意,随着主干网络的深度显着增加,我们可以从视觉语义层次结构的充分多样性中获得可观的收益。
3.4. Depthwise Cross Correlation
互相关模块是嵌入两个分支信息的核心操作。 SiamFC [1] 利用互相关层来获得用于目标定位的单通道响应图。 在 SiamRPN [24] 中,通过添加巨大的卷积层来缩放通道 (UP-Xcorr),交叉相关被扩展以嵌入更高级别的信息,例如锚点。 沉重的上行通道模块导致参数分布严重不平衡(即 RPN 模块包含 20M 参数,而特征提取器在 [24] 中仅包含 4M 参数),这使得 SiamRPN 中的训练优化变得困难。
在本小节中,我们提出了一个轻量级的互相关层,称为深度互相关 (DW-XCorr),以实现高效的信息关联。 DW-XCorr 层包含的参数比 SiamRPN 中使用的 UP-XCorr 少 10 倍,而性能与之相当。
为了实现这一点,采用了一个 conv-bn 块来调整每个残差块的特征以适应跟踪任务。 至关重要的是,边界框预测和基于锚的分类都是不对称的,这与 SiamFC 不同(参见第 3.1 节)。 为了编码差异,模板分支和搜索分支通过两个非共享卷积层。 然后两个具有相同通道数的特征图逐个通道进行相关运算。 附加了另一个 conv-bn-relu 块以融合不同的通道输出。 最后,附加用于分类或回归输出的最后一个卷积层。
通过将互相关替换为深度相关,我们可以大大降低计算成本和内存使用量。 这样,模板和搜索分支上的参数数量是平衡的,使训练过程更加稳定。
me:我之前照着pysot复现siamrpn的时候一直用的这个DW卷积啊,我还以为siamrpn就是这个呢?这个是在siamrpn++才搞出来的?
me:但是这个卷积方式明显可以看出限定的太死了,搜素图像的特征和模板图像的特征假如都是256个channel,可以发现只有对应维度的对应位置进行了卷积操作,不同维度直接没有联系,不同位置之间没有联系,比如说搜素图像的左上角只和模板图像的左上角的特征进行相乘,假如说目标发生了旋转,那么只有目标的中心位置可以产生高相应,因为那里一般位置不变,其他位置,比如说一个人的头部,在搜素图像上是在上面,在模板图像上人是倒立的,那么头在下面,DW卷积只会将头和脚进行匹配进行相似度的输出,这是不合理的。特征融合十分重要不应该这么粗糙。
此外,一个有趣的现象如图 5 所示。 同一类别的物体在同一通道(第 148 通道中的汽车、第 222 通道中的人、第 226 通道中的人脸)具有较高的响应,而其余通道的响应被抑制。 这个属性可以理解为深度互相关产生的通道特征几乎是正交的,每个通道代表一些语义信息。 我们还分析了使用上行通道互相关时的热图,并且响应图的可解释性较差。
me:这里作者说不同channel代表了不同类别的激活相同图,相同的维度表示相同类型的物品,更有利于获得较好的相应,有一定的道理,但是我认为这种操作更多是为了减少参数量。拿最简单的两个特征向量做相似度比较的时候,各个维度的值分别进行比较自然可以,但是全连接的效果应该具有更高的上限,但是如果不能较好的训练也的确会影响性能,但可以将相近的维度进行分组的全连接,应该会比完全的不连接要好。
4. Experimental Results
4.1. Training Dataset and Evaluation
训练。 我们架构 [14] 的骨干网络在 ImageNet [36] 上进行了预训练以进行图像标记,这已被证明是对其他任务 [13、27] 的非常好的初始化。 我们在 COCO [25]、ImageNet DET [36]、ImageNet VID 和 YouTube-BoundingBoxes 数据集 [35] 的训练集上训练网络,并学习如何测量通用对象之间的相似性以进行视觉跟踪的通用概念。 在训练和测试中,我们使用单尺度图像,127 像素用于模板补丁,255 像素用于搜索区域。
评估。 我们专注于 OTB2015 [46]、VOT2018 [21] 和 UAV123 [31] 上的短期单目标跟踪。 我们使用 VOT2018-LT [21] 来评估长期设置。 在长期跟踪中,目标可能会长时间离开视野或完全被遮挡,这比短期跟踪更具挑战性。 我们还分析了我们的方法在 LaSOT [10] 和 TrackingNet [30] 上的推广,这两个是最近最大的单目标跟踪基准。
4.2. Implementation Details
网络架构。 在实验中,我们按照 [52] 进行训练和推理设置。 我们将两个同级卷积层附加到步幅减少的 ResNet-50(第 3.2 节),以使用 5 个锚点执行提议分类和边界框回归。 三个随机初始化的 1 1 卷积层附加到 conv3、conv4、conv5 以将特征维度降低到 256。
优化。 SiamRPN++ 使用随机梯度下降 (SGD) 进行训练。 我们在 8 个 GPU 上使用同步 SGD,每个 minibatch 总共 128 对(每个 GPU 16 对),需要 12 小时才能收敛。 我们在前 5 个 epoch 中使用 0.001 的预热学习率来训练 RPN 分支。 在过去的 15 个 epoch 中,整个网络是端到端训练的,学习率从 0.005 指数衰减到 0.0005。 使用 0.0005 的重量衰减和 0.9 的动量。 训练损失是分类损失和回归的标准平滑 L1 损失的总和。