论文笔记:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

2019-04-02 12:44:36

Paperhttps://arxiv.org/pdf/1812.11703.pdf 

Projecthttps://lb1100.github.io/SiamRPN++ 

Official Codehttps://github.com/STVIR/pysot  

Unofficial Pytorch Implementationhttps://github.com/PengBoXiangShang/SiamRPN_plus_plus_PyTorch (Support Multi-GPU and LMDB data preprocessing) 

 

1. Background and Motivation

与 CVPR 2019 的另一篇文章 Deeper and Wider Siamese Networks for Real-Time Visual Tracking 类似,这篇文章也是为了解决 Siamese Tracker 无法利用 Deep Backbone Network 的问题。作者的实验发现,较深的网络,如 ResNet, 无法带来跟踪精度提升的原因在于:the distroy of the strict translation invariance。因为目标可能出现在搜索区域的任何位置,所以学习的target template 的特征表达应该保持 spatial invariant,而作者发现,在众多网络中,仅仅 AlexNet 满足这种约束。本文中,作者提出一种 layer-wise feature aggravation structure 来进行 cross-correlation operation,帮助跟踪器从多个层次来预测相似形图。

 

此外,作者通过分析 Siamese Network 发现:the two network branches are highly imbalanced in terms of parameter number; 作者进一步提出 depth-wise separable correlation structure,这种结构不但可以大幅度的降低 target template branch 的参数个数,还可以稳定整个模型的训练。此外,另一个有趣的现象是:objects in the same categories have high response on the same channels while responses of the rest channels are supressed. 这种正交的属性可能有助于改善跟踪的效果。

 

2. Analysis on Siamese Networks for Tracking

各种实验说明了 stride,padding 对深度网络的影响。

 

3. ResNet-driven Siamese Tracking 

为了降低上述影响因子对跟踪结果的影响,作者对原始的 ResNet 进行了修改。因为原始的残差网络 stride 为 32,这个参数对跟踪的影响非常之大。所以作者对最后两个 block 的有效 stride,从 32 和 16 改为 8,并且通过 dilated convolution 来增加 receptive field。利用 1*1 的卷积,将维度降为 256。但是这篇文章,并没有将 padding 的参数进行更改,所以 template feature map 的空间分辨率增加到 15,这就在进行 correlation 操作的时候,计算量较大,影响跟踪速度。所以,作者从中 crop 一块 7*7 regions 作为 template feature,每一个 feature cell 仍然可以捕获整个目标区域。作者发现仔细的调整 ResNet,是可以进一步提升效果的。通过将 ResNet extractor 的学习率设置为 RPN 网络的 1/10,得到的 feature 可以更加适合 tracking 任务。

 

 

 

4. Layer-wise Aggregation 

本文是想利用多层特征的聚合来提升特征表达,提升跟踪结果。作者从最后三个残差模块,得到对应的输出:F3(z), F4(z) 以及 F5(z)。由于多个 RPN 模块的输出,有相同的分辨率。所以,直接对这几个结果进行加权求和,可以表达为:

 

 

5. Depthwise Cross Correlation 

 

Cross correlation module 是映射两个分支信息的核心操作。SiamFC 利用 Cross-Correlation layer 来得到单个通道响应图进行位置定位。在 SiamRPN 中,Cross-Correlation 被拓展到更加高层的信息,例如 anchors,通过增加一个 huge convolutional layer 来 scale the channels (UP-Xcorr)。这个 heavy up-channel module 使得参数非常不平衡(RPN 模块包含 20M 参数,而特征提取部分仅包含 4M 参数),这就使得 SiamRPN 变的非常困难。于是作者提出一个轻量级的 cross correlation layer,称为:Depthwise Cross Correlation (DW-XCorr),以得到更加有效的信息贯通。DW-XCorr layer 包含少于 10 倍的参数(相比于 UP-XCorr used in RPN),而性能却可以保持不降。

 

为了达到这个目标,作者采用一个 conv-bn block 来调整特征,来适应跟踪任务。Bounding box prediction 和 基于 anchor 的分类都是非对称的 (asymmetrical)。为了编码这种不同,the template branch 和 search branch 传输两个 non-shared convolutional layers。然后,这两个 feature maps 是有相同个数的 channels,然后一个 channel 一个 channel 的进行 correlation operation。另一个 conv-bn-relu block,用于融合不同 channel 的输出。最终,最后一个卷积层,用于输出 classification 和 regression 的结果。

 

通过用 Depthwise correlation 替换掉 cross-correlation,我们可以很大程度上降低计算代价和内存使用。通过这种方式,template 和 search branch 的参数数量就会趋于平衡,导致训练过程更加稳定。

 

另一个有意思的现象是:the objects in the same category have high response on same channels, while response of the rest channels are supressed。也就是说,同一类的物体在同一个 channel 上,都有较高的响应,而其他的 channels 上则被抑制。如下图所示:

 

 

6. Experimental Results:

 

 

==

posted @ 2019-04-02 12:45  AHU-WangXiao  阅读(1770)  评论(0编辑  收藏  举报