【SiamRPN】《High Performance Visual Tracking With Siamese Region Proposal Network》

CVPR-2018
商汤科技
文章目录
- 
背景与动机分析
 - 
相关研究综述
 - 
劣势与贡献总结
 - 
方法概述
 - 
实验分析
针对VOT平台的实验结果
针对OTB2015平台的实验结果
讨论- 6 Conclusion(own) / Future work
 - 附录——Pysot
 - 附录——作者解读
 
 
1 Background and Motivation

单目标跟踪的难点: illumination, deformation, occlusion and motion
基于深度学习的单目标跟踪精度越来越高,但是 real-time speed 还不足
基于 SiamFC 的基础上引入了Faster RPN框架,并提出了 Siamese Region Proposal Network(SiamRPN)。
让跟踪框更加的准确,并且省去多尺度测试耗费的时间
2 Related Work
- 基于Siamese网络架构设计的追踪系统
 - 检测中的RPN方法
 - 单类学习技术
 - 基于贝叶斯统计理论
 - �元学习方法
 
3 Advantages / Contributions

开发SiamRPN这一系统旨在实现其在全端训练下的高效性。
irst work to formulate online tracking task as one-shot detection
该方法展现出卓越的速度与性能,在VOT 2015、VOT 2016以及VOT 2017的实时挑战中表现突出,在每秒帧数(FPS)方面达到令人瞩目的水平
4 Method

该网络采用Siamese架构以实现特征提取;区域建议子网络结合分类分支与回归分支以生成区域建议
The generator produces a template with a channel count of also 2^8. The correlation operator's convolutional kernel size is either a configuration of (\mathbf{C}^{\prime \prime} \times \mathbf{C}^{\prime \prime} \times K^{\prime}) \times (C_o), where \mathbf{C}^{\prime} and \mathbf{C}^{\prime \prime} are the spatial dimensions, K^\prime is the number of feature channels, and C_o is the output channels.
(1)Siamese feature extraction subnetwork
template branch,输入 z,网络 \varphi(z)
detection branch,输出 x, 网络 \varphi(x)
(2)Region proposal subnetwork
pair-wise correlation section

\varphi(z) -> [\varphi(z)]_{cls} 和 [\varphi(z)]_{reg}
\varphi(x) -> [\varphi(x)]_{cls} 和 [\varphi(x)]_{reg}
[\varphi(z)] is served as the correlation kernel of [\varphi(x)] in a “group” manner

cls 中索引位置2对应的是物体及其背景区域;reg 层中的第4个通道用于计算 dx、dy、dw、dh 这些参数以衡量锚框与对应的 groundtruth之间的距离;k 的默认设置为5,在这种情况下表示有5种不同的 spatial scales 的锚框配置可用。
supervision section
foreground background classification——cross-entropy loss
the other for proposal regression——smooth L1 loss

A 为锚点;T 代表 ground truth;x 和 y 为中心点;学习的内容包括中心坐标的变化量以及长度与宽度的比例调整。



(3)Training phase: End-to-end train SiameseRPN
same object in two adjacent frames won’t change much
结果超过预设界限(设定值为0.6)则标记为阳性类别;而结果低于设定界限(设定值为0.3)则被归类为阴性类别;介于两者之间的结果则予以放弃;此外,在每次选取样例时还须限定数量范围以维持整体比例稳定;即每次最多选取16个阳性样例并确保总共有64个样例来自同一个训练对
(4)Tracking as one-shot detection

z template
x detection
The local detection task relies upon category information provided solely by the template during its initial frame, thereby qualifying as one-shot detection.

分类和回归分支的预测

k = 5,预测的是中心坐标的偏移和长宽尺度的缩放

proposals
anchors
预测结果结合 anchor 还原跟踪框的坐标
Proposal selection
第一个策略是丢弃由锚点生成的边界框中那些远离中心位置的

g x g subregion
g × g × k anchors instead of m × n × k anchors
the discard strategy can efficiently remove the outliers
该策略采用余弦窗口与尺度变化惩罚相结合的方法进行排序优化,以实现提案得分的最佳排序
cosine window 用的是 hanning window,中间权重大,边缘权重小

r denotes the height-to-width ratio of the proposal, while r′ expresses the proportion of the previous frame.
s and s′ denote the total extent of the proposal and last frame, which is computed as follows.

p 是 padding,p = \frac{w+h}{2}
注意 r' 和 s' 是上一帧的,不是第一帧的
对应的代码(https://github.com/STVIR/pysot/blob/master/pysot/tracker/siamrpn_tracker.py)

变化幅度越大时,则乘数减小(基于指数函数),其分类分支得分下降幅度越大
window对应的相关代码(https://github.com/STVIR/pysot/blob/master/pysot/tracker/siamrpn_tracker.py)


来做一个空间位置上的滤波(认为下一帧的跟踪目标不会离这一帧太远)
5 Experiments
the parameters of the first three convolution layers are set to fixed values, while only performing tuning on the last two convolution layers within a Siamese-RPN framework.

train 50 epoches
输入尺寸

resize 到 127(z) 和 255(x)
p = \frac{w+h}{2} padding
5.1 Datasets and Metrics
- VOT2015
 - VOT2016
 - VOT2017
 - OTB2015
 
accuracy (average overlap while tracking successfully)
robustness (failure times)
Expected Average Overlap (EAO)——incorporates both metrics of accuracy and robustness
the speed is evaluated with a normalized speed (EFO)
5.2 Result on VOT
(1)VOT2015


Siamese-RPN——160 FPS
Siamese-FC——86 FPS
(2)VOT2016
the sequences are identical to those of VOT2015, but the bounding boxes have been revised.



(3)Result on VOT2017 real-time experiment

Siamese-RPN can rank 1st according to EAO
5.3 Result on OTB2015
The precision of this method is demonstrated by tracking results falling within a 20-pixel margin around the target, and its success is defined by an overlap that surpasses a specified threshold. The plot illustrates the ratios of successfully captured frames as the threshold shifts from 0 to 1.

Siamese-RPN is able to rank 1st
5.4 Discussion
(1)Data size

引入 youtube-bb 之后,性能还有增长的空间
By significantly expanding the training data sources, sparsely annotated datasets enable more comprehensive training of deep neural networks.
(2)Anchor selection
anchor ratios
A3 [0.5, 1, 2]
A5 [0.33, 0.5, 1, 2, 3]
A7 [0.25, 0.33, 0.5, 1, 2, 3, 4]

anchor position

This implies that the discriminative ability of RPN cannot effectively utilize extensive search regions.
6 Conclusion(own) / Future work
参考
* https://github.com/songdejia/siamese-RPN-pytorch
* [Siamese RPN 翻译解析](https://zhuanlan.zhihu.com/p/423508140)
* [Siamese系列跟踪网络之SiamFC、SiamRPN、DaSiamRPN、SiamRPN++、SiamMask]()
        代码肯定和论文细节上肯定是有一些差距的
不同于标准的RPN方法,在该论文中我们采用了相关运算后的特征图来进行区域提取过程(在Faster RCNN中使用的是原始图像生成的特征图)——我们通过相关性特征图进行提案抽取
模板匹配问题看成了一个部分范围内的 one-shot detection问题
Hanning 窗口

附录——Pysot
源码链接:https://github.com/STVIR/pysot
掌握PySOT库的基础知识(从介绍到配置再到实际应用)]()(测试集中标签与图片的一一对应关系,在VOT2016和VOT2018数据集同样需要对这两个数据集进行类似的处理流程)
深入学习 PySOT 工具包 v2(包含 PySOT 工具包, 比较分析功能, 和 数据可视化功能)
PySOT单目标跟踪系统的全程训练与验证流程(网络上最为详尽的内容,请随时关注更新中!值得保存参考)]()(数据集中记录相关的配置参数设置)
针对目标追踪的技术研究与实践(SiamRPN\SiamRPN++)
重量级!商汤开源最全面的目标追踪库PySOT发布:包含诸如SiamRPN++和SiamMask等算法
PySOT训练流程概述(深入解析) - SiamRPN++ & ResNet50
目标追踪技术作为研究热点,开源高质量数据集的分类与整理工作(无标注信息且不可靠的内容或数据源)
PySOT代码中的SiamRPN++解析与训练(主干)
SiamRPN代码解析–方案选择部分(结合相关公式进行初步说明)
整理中的目标跟踪数据集下载链接汇总(更新中)(BD cloud disk)
https://github.com/HonglinChu/SiamTrackers
https://github.com/foolwood/SiamMask
https://github.com/STVIR/pysot/discussions/447(which model is siamrpn++? #447)
model zoo
GitHub仓库pysot的MODEL_ZOO.md文件中包含后缀otb和lt这两个技术项,它们专为OTB(Object Tracking in a Broad Sense)与VOT(Visual Object Tracking)领域的长期跟踪挑战而设计。其中,默认值(即未添加任何后缀的情况)则是专为解决VOT中的短期跟踪问题而开发的技术方案。


backbone 的预训练模型需要找找上面的链接,作者没有开源
测试集
- OTB2015
VOT_{} 以及 VOT_{} / VOT_{} / VOT_{} (如 LaSOT)已发布;UAV_{} 数据集也被广泛采用;其中label和image的数量存在差异;可能存在某些图像包含多个目标,并且每个图像对应两个标签分别为person-{} 和person-{};需要手动复制并重命名相关图片文件夹。 
转 onnx
- https://github.com/STVIR/pysot/issues/125
 - https://github.com/STVIR/pysot/discussions/368
动态输入相关的操作设计如何实现这一功能? 
用自己训练完后的模型跑demo

跑 resnet18

实验中曲线图的画法——TNL2K
跑 alexnet
在分析16gpu版本的配置后,在查看网络结构中的配置参数(包括core中的设置),未能正确设置可能导致系统异常
附录——作者解读




