SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks
文章下载:https://arxiv.org/abs/1812.11703
代码地址:可参考pysot。https://github.com/STVIR/pysot
Abstract
动机:以往的Siamese tracking在精度上还有较大的提升空间,他们不能利用深度网络(如Resnet-50及更深的网络)的特征。
本文:验证了其核心原因在于缺乏严格的translation invariance。做法:1)提出spatial aware sampling strategy(空间感知采样策略),成功将Resnet嵌入Siamese网络中;2)提出一个新的模型架构进行了layer-wise和depth-wise的聚合,不仅进一步提升了追踪精度也减少了模型规模。
实验:在OTB2015, VOT2018, UAV123, LaSOT, TrackingNet 五个数据集上进行了性能验证。
1. Introduction
跟踪背景:视觉对象跟踪受到广泛关注,已广泛应用于视觉监控、人机交互、增强现实等领域。然而,由于光影变化、遮挡和背景杂乱,目标跟踪仍然是一个非常具有挑战性的问题。
Siamese定义:将视觉目标跟踪问题表述为通过互相关学习一个通用的相似度图,这些互相关关系来自于目标模板和搜索区域的特征表示。
历史工作:CFNet通过平均模板更新追踪模型;DSiam通过一个快速转换模块更新追踪模型;SiamRPN在孪生网络后引入RPN并将追踪问题建模为回归和分类问题;DaSiamRPN进一步引入干扰鉴别模块提升模型的鉴别能力。
提出问题:当前Siamese追踪器的性能仍然不能让人满意。
原因分析:这些Siamese追踪器都是将类AlexNet网络作为backbone,本文尝试将更深的网络(Resnet)作为backbone去训练,但性能没有提升。本文发现其核心原因在于严格translation invariance被破坏(只有AlexNet的0-padding变体满足空间不变性限制)。
本文贡献:
做法 | 意义 |
---|---|
提出空间感知采样策略 | 打破Siamese追踪器对空间不变性的限制,继而使用Resnet作为backbone |
提出逐层特征聚合结构用户互相关操作 | 帮助跟踪器从多层次学习的特征中预测相似度图。 |
提出深度可分离相关结构 | (两个分支的参数量非常不平衡)减少目标模板的参数量并稳定训练阶段 |
———————————————————————————————————————
Q:什么是空间不变性?
简而言之,可以理解为:目标在搜索区域中翻译后和翻译前的相似度结果应该保持不变。
对SiamFC的训练方式而言,若将其backbone替换为带有padding的ResNet,其就违背了空间不变性。这样训练好的网络只关注图像的中心区域,当目标出现在搜索区域的角落时,网络不能对这些位置进行有效响应。也就是下图中,训练样本中目标的位置总是在图像中央,使得训练好的网络对边界的响应为0。(在3.1节中有更具体的介绍)
———————————————————————————————————————
2. Related Work
3. Siamese Tracking with Very Deep Networks
直接将backbone由AlexNet替换为ResNet,性能没有提升。因此本文先做了以下的理论分析和实验。
3.1. Analysis on Siamese Networks for Tracking
回顾基于孪生网络的追踪器:目标patch记为z, 搜索区域记为x,追踪器的目标是从搜索区域x中找到和目标最相似的patch,其公式可表示为:
其中b表示相似度值的偏移量。
设计追踪器时有2个隐含的约束:
1)严格的平移不变性:目标在搜索区域内平移后和平移前的相似性结果应保持不变。
2)结构对称性:如果将搜索区域图像和模板区域图像互换,相似性结果应保持不变。
理论分析:为什么更深的bockbone不能提升追踪器的性能?1. 深度网络中的padding破坏了平移不变性;2. RPN需要对称特征用于分类和回归。
实验分析:1. 将目标放置在中心,然后将目标进行3种幅度(偏移量为0,16,32)的移动;2. 用这些样本分别对更深的网络训练到收敛,可视化其特征图,见下图。
可以发现,若偏移量为0时,网络只关注图像的中心位置;增加偏移量,使得边缘区域位置也受到关注。另外,将SiamRPN+ResNet50的网络通过以上偏移试验发现,当偏移量为64像素时,追踪性能EAO的结果是最好的。
3.2. ResNet-driven Siamese Tracking
除了上述对训练样本的采样策略的改进外,要将深度网络嵌入到跟踪器中,还需要进行以下改进:
1). 将conv4, conv5的stride由16,32减少至8pixels, 增加空洞卷积提升感受野,在每个block后加入一个1*1卷积减少通道数至256;
2). 将模板特征裁剪至7乘7以减少互相关的计算代价;
3). 将ResNet的学习率调整为RPN学习率的1/10,可以使得整个孪生网络端到端地训练。
SiamRPN++的整体网络架构如下图所示:
为了便于理解,下图展示了SiamRPN++前馈过程中张量变换的细节:
前馈过程的流程:
Step1: 提取模板分支的特征(得到3组中间特征图);
Step2: 提取待检测分支的特征(得到3组中间特征图);
Step3:将3组中间特征图对应地进行加权求和,得到所有框的分类分数和回归系数(共25x25x5=3125个,每个像素点对应5个框);
Step4:求得3125个框的归一化得分score;
Step5:还原框的实际位置,计算尺度+比例惩罚值,将惩罚值和score加权求和。再进行窗口惩罚,选择得分最高的框作为该帧的检测结果。
3.3. Layer-wise Aggregation逐层特征聚合结构
该模块的动机:聚合不同层次的特征可以有效改善识别和定位。ResNet中不同层次有丰富的意义。浅层特征聚焦于颜色,形状,但缺乏语义信息;深层特征具有丰富的语义信息,有助于在移动模糊,形变上提升追踪性能。
具体做法:将ResNet50的第3,4,5个block的特征图进行加权求和。具体公式如下:
其中权重用作可训练参数。
3.4. Depthwise Cross Correlation深度可分离相关结构
该模块的动机:SiamFC中,用互相关层以滑窗方式得到不同位置的单通道响应图;
SiamRPN中用UP-Xcorr,在互相关前加了2个卷积层用于提升通道数(2k->4k),这里分类分支有接近6M参数,回归分支有12M参数,参数量巨大且不平衡。
具体做法:提出深度可分离互相关DW-XCorr,比SiamRPN少了10倍的参数。1. 模板分支和搜索分支分别通过2个不共享的卷积层得到2个具有相同通道的特征图;2. 将这2个特征图做逐通道相关操作;3. 加入一个卷积层混合不同通道的输出;4. 再加一个卷积层用于输出分类/回归结果。
意义:大大降低计算成本和内存使用量。模板分支和搜索分支的参数量是平衡的,以便于训练。
一个有趣的小现象:同类型的模板在同一个频道的反应几乎是一样的。不同的频道代表不同的语言信息。见下文:
4. Experimental Results
4.1.Training Dataset and Evaluation
4.2. Implementation Details
Network architecture: 3个随机初始化的1×1卷积用在ResNet50的conv3, conv4, conv5的后面用于减少特征维度到256.
Optimization: 用SGD算法训练, 在8个GPU上用了12天,lr=0.001在前5个epoches,最后15个epoches中lr指数衰减从0.005到0.0005, weight decay=0.0005, momentum=0.9。训练损失是分类损失+平滑l1损失。
4.3. Ablation Experiments
Backbone Architecture: 对Backbone的分析结果
Layer-wise Feature Aggregation和Depthwise Correlation: 消融结果见下表
4.4. Comparison with the state-of-the-art
1. OTB-2015:
2. VOT2018: 60个序列还在VOT2018上比较了速度,在NVIDIA Titan Xp上SiamRPN++是35fps, SiamRPN++的两个变体和SiamRPN++性能相近,但速度是70fps.
3. VOT2018 Long-term: 30个长序列
4. UAV123: 123个序列,平均长为915帧
5. LaSOT: 提供了大规模高质量的稠密注释,共1400个视频
6. TrackingNet:测试集有511个视频
文章出处登录后可见!