文章目录
论文阅读总结
-
Summary
论文提出了能在由ILSVRCt Youtube-BB上提到的图像对是end-to-end离线训练的Siamese-RPN网络,它能使用refinement procedure来得到更加精确的bbox。 在网络输出结果后,使用回归分支的输出结果,对由分类分支确定的anchor进行精调,可以得到更为准确的目标预测。(这也是Siamese-RPN对Siamese-FC的最大改进,更本质的讲,是对目标的描述发生了改变,下一步的工作是Siamese-Mask,它是对目标描述的进一步改进)。在追踪的过程中,将追踪任务形式化一个local one-shot detection task。实验表明,Siamese-RPN能在VOT2015,VOT2016,VOT2017 real-time竞赛上以160 FPS的速度达到顶尖性能。 -
Research Objective
作者的研究目标构建一个能在实时速度上达到顶尖性能的追踪器。 -
Problem Statement
目前大多大数SOTA的基于深度学习的视觉目标追踪方法不能以实时的速度达到顶尖的性能。 -
Method(s)
论文中提出了Siamese-RPN,它是一个能够使用大规模图像对进行end-to-end训练的模型。它包含用于特征提取的孪生子网络,和一个区域提议子网络。区域提议子网络由分类分支和回归分支构成。分类分支用于预测锚点是前景目标还是背景,回归分支用于预测目标框的形状。在推理阶段,网络被形式化为一个local one-shot detection task。 在网络输出结果后,使用回归分支的输出结果,对由分类分支确定的anchor进行精调,可以得到更为准确的目标预测。
-
Evaluation
论文对Siamese-RPN的评估主要是在VOT2015,VOT2016,VOT2017 real-time和OTB2015数据集上进行的,VOT2015和VOT2016上使用的指标主要是EAO(整体上评估精度和鲁棒性)、Accuracy(评估精度)、Failure(评估鲁棒性)、EFO(评估速度),OTB2015上使用的指标主要是Success plot和Precision Plot。 -
Conclusion
论文提出了能在由ILSVRCt Youtube-BB上提到的图像对是end-to-end离线训练的Siamese-RPN网络,它能使用refinement procedure来得到更加精确的bbox。在追踪的过程中,将追踪任务形式化一个local one-shot detection task。实验表明,Siamese-RPN能在VOT2015,VOT2016,VOT2017 real-time竞赛上以160 FPS的速度达到顶尖性能。 -
Notes
- 商汤科技智能视频团队首次开源其目标跟踪研究平台 PySOT。PySOT 包含了商汤科技 SiamRPN 系列算法,以及刚被 CVPR2019 收录为 Oral 的 SiamRPN++。
- SiamFC的作者是Luca Bertinetto,他也是Siammask的作者之一;SiamRPN的作者是Bo Li;Siammask的作者是Qiang Wang,他也是SiamRPN++的作者之一;SiamPRN++的作者是Bo Li,其中还有Qiang Wang。(这大佬都是一块的啊)
觉得文章有收获,欢迎关注公众号鼓励一下作者呀~
在学习的过程中,也搜集了一些量化、技术的视频及书籍资源,欢迎大家关注公众号【亚里随笔】获取
Translation
Abstract
视觉目标追踪近年已经成为了一个基础课题,很多基于深度学习的追踪器已经在多个benchmarks上面取得了SOTA结果。但是,大多数追踪器都不能以实时速度得到高分。在这篇论文中,我们提出了Siamses-RPN,它是在大规模图像对上end-to-end离线训练的。具体来说,它包含用于特征提取的孪生子网络,包含分类分支和回归分支的RPN子网络。在推断阶段,提出的框架被表述为局部检测任务。我们能先计算好孪生网络的模板分支,并将相关层公式化为简单的卷积层,以执行在线追踪。受益于提出微调方法,传统的多尺度测试和在线微调能够被抛弃。Siamses-RPN能够在VOT2015,VOT2016和VOT2017上以160fps的帧率达到顶尖性能。
1 Introduction
视觉目标追踪是计算机视觉各种任务(例如自动驾驶和视频监视)的基本构建模块。由于光照、变形、遮挡和运动引起的外观变化较大,这是一个挑战。
现代的追踪器能够被粗略地分为两个分支。第一个分支是correlation filter,它利用循环相关的性质,在傅立叶域中执行运算来训练回归器。它能执行在线追踪,能够同时高效地更新滤波器权重。原始版本是在傅立叶域中进行的,在追踪社区中得到广泛应用。近期基于相关滤波的方法使用深度特征来改善精度,但它在模型更新的过程中很大地损害了速度。另一个分支方法是力求使用强壮的深度特征而不是在线更新模型。但是,由于未使用领域特定信息,这些方法的性能始终不如基于相关滤波器的方法好。
在这篇论文中,我们显示了离线训练的基于深度学习的追踪器与基于相关滤波的SOTA方法相比能够取得竞争性的结果。其中的着急是提出的Siamese-RPN。它包含一个模板分支和一个检测分支,在大规模图像对上以end-to-end的方式训练。受到目前SOTA的候选框提取方法RPN的启发,我们在相关特征图上进行候选框提取。和标准的RPN不同,我们使用两个分支的相关特征图来进行候选框提取。在追踪的过程中,我们没有预定义的类别,所以需要模板分支来编码模板目标外观信息到RPN特征图里,以区分前景和背景。
对于推断,我们将它形式化为局部检测框架,第一帧边界框是唯一的模板。我们将模板分支重新解释为预测检测核的参数,正如meta-learner里做的那样。meta-learner和检测分支都是只使用RPN监督进行端到端训练的。模板分支用于加快在线追踪过程中初始帧之后的速度。据我们所知,这是将在线追踪任务表述为one-shot检测的第一项工作。
我们在VOT2015,2016和2017上评测我们的方法,它在三个竞赛中都能达到顶尖的性能。有两个原因能够让我们在没有在线微调的情况下达到SOTA。第一,我们的方法能够使用图像对离线训练,这使我们能充分利用大规模训练数据。Ablation实验显示更多的数据能帮助我们获利更好的结果。第二,我们发现区域提议子网络通常可以预测提议的精确比例和比率,以获利如Figure1所示的紧凑边界框。
本文的贡献可以概括为三个方面:(1)我们提出的孪生区域提议网络是使用大规模图像对进行端到端训练的,用于追踪任务。(2)在追踪阶段,提议网络被形式化为局部检测任务,它能够精炼候选框,而不用昂贵的多尺度测试。(3)它达到了VOT2015,2016和2017的顶尖表现,这证明了它在精度和效率的优势。
2 Related Works
由于本文的主要贡献是将SiameseRPN公式化为局部检测任务,因此,我们对我们的工作有关的三个方面进行了简要回顾:基于Siamese网络结构的追踪器,检测中的RPN和one-shot学习。
2.1 Trackers based on Siamese network structure
一个Siamese网络包含两个分支,隐式地将原始输入编码到另一个空间中,用一个特殊的张量混合特征,产生一个单独的输出。它经常用来在隐式的embeded space中比较两个分支的特征,用于对比任务中。近期Siamese网络已经在视觉追踪社区得到了足够的关注,因为它们在精度和速度上的权衡。GOTURN使用Siamese网络作为特征提取器,使用全连接层作为混合张量。通过将最后一帧中的预测边界框作为唯一建议,可以将其视为一种回归方法。Re3使用循环神经网络通过模板分支来获利更高的结果。受基于相关的方法的启发,Siamese-FC首先引入相关层作为混合张量,极大地改进了精度。与GOTURN的只有一项提议回归相比,其成功的原因是受严格监督的热图,这使Siamese-FC对快速移动的对象更具鲁棒性。CFNet在模板分支中加入了一个相关滤波,这使孪生网络更浅但是更高效。但是,Siamese-FC和CFNet都缺少边界框回归,而且需要进行多尺度测试,它使得它不太美观。比起目前SOTA的相关滤波方法,这些实时追踪器的缺点是不太令人满意的精度和鲁棒性。
2.2 RPN in detection
RPN首先在Faster R-CNN中提出。在RPN之前,传统的候选框提取方法是很花费时间的。例如,Selective Search需要2s来处理一张图片。另外,这些方法用于目标检测也不是很好。多个锚点的枚举和共享卷积特征使候选框提取方法变得很高效。RPN能够提取更准确的候选框,因为前景-背景分类和边界框回归的监督。也有一些使用RPN的Faster-R-CNN的变体。R-FCN将组件的位置信息考虑在内,FPN使用特征金字塔网络来改进小目标的检测。比较两阶段的检测器,RPN的改进版本,例如SSD,YOLO9000等都是非常高效地检测器。RPN在目标检测中有成功的应用,但是它还没有在追踪中被充分地使用。
2.3 One-shot learning
近年来,越来越多的注意力被放在深度学习里的one-shot学习了。基于贝叶斯统计和元学习的方法是解决这一问题的两个主要的方法。 在有的论文中,目标类别被表示为概率模型,在推断时使用贝叶斯估计。另一方面,元学习力求得到学习如何学习的能力,也就是说,能够意识到自己的学习。具体的,有论文使用一个神经网络在反向传播的过程中预测目标网络的梯度。论文学习了一个网络,它能够将一个小的标注支持集和未标注的样本映射到它的标签。尽管这些基于元学习的方法已经取得了有竞争性的结果,这些方法经常在分类任务上评测,很少被扩展到追踪任务中。Learnet是利用meta-learning方法来解决追踪任务的第一项工作,它从单个样本中预测学生网络的参数。但是,Learnet的性能不能和现代的基于DCF方法相竞争,例如CCOT多个benchmarks。
3 Siamese-RPN framework
这一节中,我们会详细地描述提出的Siamese-RPN架构。正如Fig.2中显示的一样,我们的框架包括用于特征提取的Siamese子网络,用于候选框区域生成的RPN子网络。具体来说,在RPN子网络中有两个分支,一个负责前景背景分类,另一个用于区域修正。包含目标的图像对被输入网络,整个系统是end-to-end训练的。
3.1 Siamese feature extraction subnetwork
在孪生网络中,我们使用不带填充的完全卷积网络。用
L
τ
L_{\tau}
Lτ变换算子,
(
L
τ
x
)
[
u
]
=
x
[
u
−
τ
]
(L_{\tau}x)[u]=x[u-\tau]
(Lτx)[u]=x[u−τ],为了满足带步长
k
k
k的全卷积的定义,移去了所有的填充:
h
(
L
k
τ
x
=
L
τ
h
(
x
)
)
h(L_{k\tau}x=L_{\tau}h(x))
h(Lkτx=Lτh(x))。这里我们使用修正的AlexNet,它的conv2和conv4被移除了。
Siamese特征提取子网络包含两个分支。一个是模板分支,它是包含目标的历史帧作为输入记为
z
z
z。另一个称为检测分支(记为
x
x
x)。这两个分支共享CNN的参数,以便两个分支使用相同的变化进行编码,用于后续的任务中。为了简化,我们用
φ
(
z
)
\varphi(z)
φ(z)和
φ
(
x
)
\varphi(x)
φ(x)来表示孪生子网络的输出特征图。
孪生特征提取子网络就是使用孪生网络提取模板分支和搜索图像分支的特征,用于后续计算。
3.2 Region proposal subnetwork
RPN子网络包含逐像素的相关部分和监督部分。监督部分有两个分支,一个用于前景背景分类,另一个用于候选区域回归。如果有
k
k
k个锚点,网络需要输出
2
k
2k
2k个通道来进行分类,输出
4
k
4k
4k个通道进行回归。所以,逐像素的相关部分首先通过两个卷积层增加
φ
(
z
)
\varphi(z)
φ(z)的通道到
[
φ
(
z
)
]
c
l
s
[\varphi(z)]_{cls}
[φ(z)]cls和
[
φ
(
z
)
]
r
e
g
[\varphi(z)]_{reg}
[φ(z)]reg。
φ
(
x
)
\varphi(x)
φ(x)也被两个卷积层分成
[
φ
(
x
)
]
c
l
s
[\varphi(x)]_{cls}
[φ(x)]cls和
[
φ
(
x
)
]
r
e
g
[\varphi(x)]_{reg}
[φ(x)]reg,但是保证通道数不变。
[
φ
(
z
)
]
[\varphi(z)]
[φ(z)]以“组”的方式用作
[
φ
(
x
)
]
[\varphi(x)]
[φ(x)]的相关核,也就是说,
[
φ
(
z
)
]
[\varphi(z)]
[φ(z)]的组中的通道数与
[
φ
(
x
)
]
[\varphi(x)]
[φ(x)]的通道数相同。相关操作在分类分支和回归分支上进行计算:
A
w
×
h
×
2
k
c
l
s
=
[
φ
(
x
)
]
c
l
s
⋆
[
φ
(
z
)
]
c
l
s
A
w
×
h
×
4
k
r
e
g
=
[
φ
(
x
)
]
r
e
g
⋆
[
φ
(
z
)
]
r
e
g
\begin{array}{l}{A_{w \times h \times 2 k}^{c l s}=[\varphi(x)]_{c l s} \star[\varphi(z)]_{c l s}} \\ \\ {A_{w \times h \times 4 k}^{r e g}=[\varphi(x)]_{r e g} \star[\varphi(z)]_{r e g}}\end{array}
Aw×h×2kcls=[φ(x)]cls⋆[φ(z)]clsAw×h×4kreg=[φ(x)]reg⋆[φ(z)]reg
模板特征图
[
φ
(
z
)
]
c
l
s
[\varphi(z)]_{cls}
[φ(z)]cls和
[
φ
(
z
)
]
r
e
g
[\varphi(z)]_{reg}
[φ(z)]reg被用作卷积核,
⋆
\star
⋆代表卷积操作。正如Fig.2中所显示的那样,
A
w
×
h
×
2
k
c
l
s
A^{cls}_{w\times h\times 2k}
Aw×h×2kcls中的每个点被表示为(
w
^
,
h
^
,
:
\hat{w},\hat{h},:
w^,h^,:),它包含
2
k
2k
2k个通道向量,它代表原始特征图上相应位置的每个ancher的正例和负例激活 (就是用于分类这个anchor是目标还是背景) 。使用softmax损失来进行分类分支的监督学习。相似地,
A
w
×
h
×
4
k
r
e
g
A^{reg}_{w\times h\times 4k}
Aw×h×4kreg中的每个点(
w
^
,
h
^
,
:
\hat{w},\hat{h},:
w^,h^,:)包含4
k
k
k个通道向量,表示
d
x
,
d
y
,
d
w
,
d
h
dx,dy,dw,dh
dx,dy,dw,dh,它衡量了anchor和真值之间的距离。
当使用几个anchor训练网络时,我们使用和Faster R-CNN中相同的损失函数。分类损失函数是交叉熵损失,使用smooth
L
1
L1
L1 loss with normalized coordinates进行回归。我们让
A
x
,
A
y
,
A
w
,
A
h
A_x,A_y,A_w,A_h
Ax,Ay,Aw,Ah表示anchor的中心和形状,
T
x
,
T
y
,
T
w
,
T
h
T_x,T_y,T_w,T_h
Tx,Ty,Tw,Th表示真值框,正则化距离是 (中心的位移,宽高的缩放对数比例。):
δ
[
0
]
=
T
x
−
A
x
A
w
,
δ
[
1
]
=
T
y
−
A
y
A
h
δ
[
2
]
=
ln
T
w
A
w
,
δ
[
3
]
=
ln
T
h
A
h
\begin{aligned} \delta[0] &=\frac{T_{x}-A_{x}}{A_{w}}, & \delta[1] &=\frac{T_{y}-A_{y}}{A_{h}} \\ \delta[2] &=\ln \frac{T_{w}}{A_{w}}, & \delta[3]&=\ln \frac{T_{h}}{A_{h}} \end{aligned}
δ[0]δ[2]=AwTx−Ax,=lnAwTw,δ[1]δ[3]=AhTy−Ay=lnAhTh
则smooth L1 loss可以被写作:
smooth
L
1
(
x
,
σ
)
=
{
0.5
σ
2
x
2
,
∣
x
∣
<
1
σ
2
∣
x
∣
−
1
2
σ
2
,
∣
x
∣
≥
1
σ
2
\operatorname{smooth}_{L_{1}}(x, \sigma)=\left\{\begin{array}{ll}{0.5 \sigma^{2} x^{2},} & {|x|<\frac{1}{\sigma^{2}}} \\ {|x|-\frac{1}{2 \sigma^{2}},} & {|x| \geq \frac{1}{\sigma^{2}}}\end{array}\right.
smoothL1(x,σ)={0.5σ2x2,∣x∣−2σ21,∣x∣<σ21∣x∣≥σ21
最终我们优化损失
l
o
s
s
=
L
c
l
s
+
λ
L
r
e
g
loss=L_{cls}+\lambda L_{reg}
loss=Lcls+λLreg其中
λ
\lambda
λ是用来平衡两部分的超参数。
L
c
l
s
L_{cls}
Lcls是交叉熵损失,
L
r
e
g
L_{reg}
Lreg是
L
r
e
g
=
∑
i
=
0
3
smooth
L
1
(
δ
[
i
]
,
σ
)
L_{r e g}=\sum_{i=0}^{3} \operatorname{smooth}_{L 1}(\delta[i], \sigma)
Lreg=i=0∑3smoothL1(δ[i],σ)
3.3 Training phase: End-to-end train Siamese-RPN
在训练阶段,样本对是从ILSVRC中以随机间隔挑选的,从Youtube-BB中连续选择 (这是不是说明孪生网络学习的特征是自适应于目标会发生巨大的形变的呢?)。模板和检测是从同一视频中选择的两帧。在Siamese子网络经Imagenet预训练之后,我们使用SGD端到端地训练Siamese-RPN。由于训练回归分支的需要,我们使用了包括仿射变换在内的数据增强策略。
我们在追踪任务中比检测任务选择更少的anchors,因为我们注意到相邻两帧的目标不会有太大变化。因此,仅采用具有不同anchor比率的一个尺度,并且我们采用的anchor的长宽比是[0.33,0.5,1,2,3]。
挑选用于训练的正样本和负样本的策略对我们的网络也很重要。我们也使用目标检测任务中使用的标准,使用带两个阈值
t
h
h
i
,
t
h
l
o
th_{hi},th_{lo}
thhi,thlo的
I
o
U
IoU
IoU作为评价标准。正样本被定义为具有
I
o
U
>
t
h
h
i
IoU>th_{hi}
IoU>thhi的anchor,负例被定义为具有
I
o
U
<
t
h
l
w
IoU<th_{lw}
IoU<thlw的。我们将
t
h
l
o
th_{lo}
thlo设置为0.3,将
t
h
h
i
th_{hi}
thhi设置为0.6。我们限制一张训练图像对至多产生16个正样本,总共产生64个样本。(这是训练anchor时的样本选择方法?)
4 Tracking as one-shot detection
在这一小节中,我们首先将追踪任务形式化为一个局部检测任务。然后,对这种解释下的推理阶段进行了详细分析和简化,以加快速度。最后,引入一些特定策略来使这一框架适用于追踪任务。
4.1 Formulation
在有的论文中,我们将one-shot检测任务看作一个判别任务。它的目标是找到参数
W
W
W,使预测函数
ψ
(
x
;
W
)
\psi(x;W)
ψ(x;W)的平均损失
L
\mathcal{L}
L最小化。它是在由
n
n
n个样本
x
i
x_i
xi和对应的标签
ℓ
i
\ell_{i}
ℓi组成的数据集上计算的: (对样本
x
i
x_i
xi,在参数为
W
W
W的情况下,通过预测函数
ψ
\psi
ψ,得到预测值
(
ψ
(
x
i
;
W
)
(\psi\left(x_{i} ; W\right)
(ψ(xi;W),然后计算和真实标签的损失
L
\mathcal{L}
L,计算在整个数据集上的均值,得到平均损失)
min
W
1
n
∑
i
=
1
n
L
(
ψ
(
x
i
;
W
)
,
ℓ
i
)
\min _{W} \frac{1}{n} \sum_{i=1}^{n} \mathcal{L}\left(\psi\left(x_{i} ; W\right), \ell_{i}\right)
Wminn1i=1∑nL(ψ(xi;W),ℓi)
One-shot学习旨在从一个感兴趣模板
z
z
z中学习
W
W
W。判别式one-shot学习的挑战是找到一个机制来使用学习器中的类别信息,例如,learning to learn。为了解决这一挑战,我们提出了一种方法使用meta-learning过程从一个单独模板
z
z
z中学习预测器的参数
W
W
W,例如,一个前向传播函数
ω
\omega
ω,它能将(
z
;
W
′
z;W'
z;W′)映射到
W
W
W。让
z
i
z_i
zi作为一个bacth里的模板样本,问题能够被形式化为 (就是将原来的参数
W
W
W,变成了从模板
z
i
z_i
zi中映射出来的,这个映射是
ω
(
z
i
;
W
′
)
\omega\left(z_{i} ; W^{\prime}\right)
ω(zi;W′),然后进一步用孪生网络的形式对函数进行表示,就得到再下一步的形式化表示):
min
W
′
1
n
∑
i
=
1
n
L
(
ψ
(
x
i
;
ω
(
z
i
;
W
′
)
)
,
ℓ
i
)
\min _{W^{\prime}} \frac{1}{n} \sum_{i=1}^{n} \mathcal{L}\left(\psi\left(x_{i} ; \omega\left(z_{i} ; W^{\prime}\right)\right), \ell_{i}\right)
W′minn1i=1∑nL(ψ(xi;ω(zi;W′)),ℓi)
与上面的公式相同,让
z
z
z表示模板patch,
x
x
x表示检测patch,函数
φ
\varphi
φ表示孪生特征提取子网络,函数
ζ
\zeta
ζ表示区域提取子网络,然后one-shot检测任务能够被形式化为 (
ζ
\zeta
ζ是上一个公式的
ψ
\psi
ψ的具体化,
φ
\varphi
φ是上一个公式中
ω
\omega
ω的具体化):
min
W
1
n
∑
i
=
1
n
L
(
ζ
(
φ
(
x
i
;
W
)
;
φ
(
z
i
;
W
)
)
,
ℓ
i
)
\min _{W} \frac{1}{n} \sum_{i=1}^{n} \mathcal{L}\left(\zeta\left(\varphi\left(x_{i} ; W\right) ; \varphi\left(z_{i} ; W\right)\right), \ell_{i}\right)
Wminn1i=1∑nL(ζ(φ(xi;W);φ(zi;W)),ℓi)
我们现在能够在孪生子网络里重新将模板分支解释为训练参数来预测局部检测任务的核,这是一个典型的learning to learn的过程。在这一解释下,模板分支用于将类别信息嵌入到内核中,而检测分支则使用嵌入的信息执行检测。在训练阶段,meta-learner除了pair-wise bbox监督以外,不需要任何其他的监督信息。在推理阶段,孪生网络被修剪为只保留初始帧之外的检测分支,从而提高了速度。从第一帧开始的目标patch被送入模板分支,并且检测内核已预先被计算好,以便我们能够在其他帧中执行one-shot检测。
4.2 Inference phase: Perform one-shot detection
正如Sec.4.1中形式化的一样,我们将模板分支的输出看作local detection的内核。这两个核都在初始帧中提前计算好,然后在整个追踪阶段都固定住。利用当前特征图和预先计算的内核进行卷积,检测分支将在线推理作为one-shot detection,正如Fig.3所示的。执行检测分支上的前向传播以获得分类和回归输出,从而获得前M个候选区。具体而言,在这们定义了Eq.2之后,我们将分类和回归特征图视为一个点集 (在实现的过程中
(
x
,
y
)
(x,y)
(x,y)这两个信息可以由坐标的网格来隐式的表示):
A
w
×
h
×
2
k
c
l
s
=
{
(
x
i
c
l
s
,
y
j
c
l
s
,
c
l
c
l
s
)
}
A_{w \times h \times 2 k}^{c l s}=\left\{\left(x_{i}^{c l s}, y_{j}^{c l s}, c_{l}^{c l s}\right)\right\}
Aw×h×2kcls={(xicls,yjcls,clcls)}
其中
i
∈
[
0
,
w
)
,
j
∈
[
0
,
h
)
,
l
∈
[
0
,
2
k
)
.
i\in[0,w),j\in[0,h),l\in[0,2k).
i∈[0,w),j∈[0,h),l∈[0,2k).
A
w
×
h
×
4
k
r
e
g
=
{
(
x
i
r
e
g
,
y
j
r
e
g
,
d
x
p
r
e
g
,
d
y
p
r
e
g
,
d
w
p
r
e
g
,
d
h
p
r
e
g
)
}
A_{w \times h \times 4 k}^{r e g}=\left\{\left(x_{i}^{r e g}, y_{j}^{r e g}, d x_{p}^{r e g}, d y_{p}^{r e g}, d w_{p}^{r e g}, d h_{p}^{r e g}\right)\right\}
Aw×h×4kreg={(xireg,yjreg,dxpreg,dypreg,dwpreg,dhpreg)}
其中
i
∈
[
0
,
w
)
,
j
∈
[
0
,
h
)
,
p
∈
[
0
,
k
)
.
i\in[0,w),j\in[0,h),p\in[0,k).
i∈[0,w),j∈[0,h),p∈[0,k).
由于分类特征图上的奇数通道表示正的激活,我们收集
A
w
×
h
×
2
k
c
l
s
A_{w \times h \times 2 k}^{c l s}
Aw×h×2kcls中奇数位置的前
K
K
K个点,其中
l
l
l是奇数,将这个点集表示为
C
L
S
∗
=
{
(
x
i
c
l
s
,
y
j
c
l
s
,
c
l
c
l
s
)
i
∈
I
,
j
∈
J
,
l
∈
L
}
C L S^{*}=\left\{\left(x_{i}^{c l s}, y_{j}^{c l s}, c_{l}^{c l s}\right)_{i \in I, j \in J, l \in L}\right\}
CLS∗={(xicls,yjcls,clcls)i∈I,j∈J,l∈L},
I
,
J
,
L
I,J,L
I,J,L是一些索引集 (
I
,
J
,
L
I,J,L
I,J,L就是那些奇数位置上的前
K
K
K个点)。变量
i
i
i和
j
j
j分别编码对应anchor的位置,
l
l
l编码对应anchor的比例,所以我们能够得到对应的anchor集为
A
N
C
∗
=
{
(
x
i
a
n
,
y
j
a
n
,
w
l
a
n
,
h
l
a
n
)
i
∈
I
,
j
∈
J
,
l
∈
L
}
A N C^{*}=\left\{\left(x_{i}^{a n}, y_{j}^{a n}, w_{l}^{a n}, h_{l}^{a n}\right)_{i \in I, j \in J, l \in L}\right\}
ANC∗={(xian,yjan,wlan,hlan)i∈I,j∈J,l∈L}。另外,我们发现在
A
w
×
h
×
2
k
c
l
s
A_{w \times h \times 2 k}^{c l s}
Aw×h×2kcls上的
A
N
C
∗
ANC^{*}
ANC∗的激活能够得到相应的精调坐标为
R
E
G
∗
=
{
x
i
r
e
g
,
y
i
r
e
g
,
d
x
l
r
e
g
,
d
y
l
r
e
g
,
d
w
l
r
e
g
,
d
h
l
r
e
g
i
∈
I
,
j
∈
J
,
l
∈
L
}
REG^{*}=\left\{x_{i}^{reg},y_{i}^{reg},dx_{l}^{reg},dy_{l}^{reg},dw_{l}^{reg},dh_{l}^{reg}i\in I,j\in J,l\in L\right\}
REG∗={xireg,yireg,dxlreg,dylreg,dwlreg,dhlregi∈I,j∈J,l∈L}。之后,精调的前
K
K
K个候选区域集
P
R
O
∗
=
{
x
i
p
r
o
,
y
i
p
r
o
,
w
l
p
r
o
,
h
l
p
r
o
}
PRO^*=\left\{x_i^{pro},y_i^{pro},w_l^{pro},h_l^{pro}\right\}
PRO∗={xipro,yipro,wlpro,hlpro}能够由以下等式获得 (这样计算的原理估计是:网络预测的
A
w
×
h
×
4
k
A_{w\times h \times 4k}
Aw×h×4k是每个位置的锚点与真实值的锚点(中心位移,宽高的缩放对数比),通过下面的计算,对这样的预测表示进行还原,就可以得到每个位置的预测bbox,包括中心坐标和bbox的尺寸):
x
i
p
r
o
=
x
i
a
n
+
d
x
l
r
e
g
∗
w
l
a
n
y
j
p
r
o
=
y
j
a
n
+
d
y
l
r
e
g
∗
h
l
a
n
w
l
p
r
o
=
w
l
a
n
∗
e
d
w
l
h
l
p
r
o
=
h
l
a
n
∗
e
d
h
l
\begin{aligned} x_{i}^{p r o} &=x_{i}^{a n}+d x_{l}^{r e g} * w_{l}^{a n} \\ y_{j}^{p r o} &=y_{j}^{a n}+d y_{l}^{r e g} * h_{l}^{a n} \\ w_{l}^{p r o} &=w_{l}^{a n} * e^{d w_{l}} \\ h_{l}^{p r o} &=h_{l}^{a n} * e^{d h_{l}} \end{aligned}
xiproyjprowlprohlpro=xian+dxlreg∗wlan=yjan+dylreg∗hlan=wlan∗edwl=hlan∗edhl
在生成前
K
K
K个proposals之后,我们使用一些提议选择策略来使它们适合于追踪任务,我们会在接下来的章节中讨论这些策略。
4.3 Proposal selection
为了使one-shot检测框架更适合于追踪任务,我们提出了两个策略来选择proposals。
第一个proposals选择策略是丢弃距离中心太远的anchor生成的边界框。例如,我们在
A
w
×
h
×
2
k
c
l
s
A_{w\times h\times 2k}^{cls}
Aw×h×2kcls分类特征图上只保留中心
g
×
g
g\times g
g×g的子区域来得到
g
×
g
×
k
g\times g\times k
g×g×k个anchor,而不是
m
×
n
×
k
m\times n\times k
m×n×k个anchor。因为邻近的帧总是不会有太大的运动,这个丢弃策略能有效地移除异常值。Fig.4是选择那些分类特征图上距离中心不多于7的目标anchor一个说明。
第二个proposal选择策略是我们使用consine窗口和尺度变化惩罚(scale change penalty)来重新排序proposal的得分,以便得到最好的一proposal。在异常值被丢弃以后,使用一个cosine窗口来抑制大的位移,然后使用一个penalty来抑制在尺度和比例上的巨大变化 (consine窗被用于消弱大的位移和尺度变化,有点抑制其他相似目标的感觉):
penalty
=
e
k
∗
max
(
r
r
′
,
r
′
r
)
∗
max
(
s
s
′
,
s
′
s
)
\text { penalty }=e^{k * \max \left(\frac{r}{r^{\prime}}, \frac{r^{\prime}}{r}\right) * \max \left(\frac{s}{s^{\prime}}, \frac{s^{\prime}}{s}\right)}
penalty =ek∗max(r′r,rr′)∗max(s′s,ss′)
这里的
k
k
k是一个超参数。
r
r
r表示proposal的高宽比,
r
′
r'
r′表示表示上一帧。
s
s
s和
s
′
s'
s′表示proposal和上一帧的整体尺度,它是按下面的方法计算的:
(
w
+
p
)
×
(
h
+
p
)
=
s
2
(w+p)\times(h+p)=s^2
(w+p)×(h+p)=s2
其中,
w
w
w和
h
h
h表示目标的宽和高,
p
p
p表示padding,它等于
w
+
h
2
\frac{w+h}{2}
2w+h。在这些操作之后,前
K
K
K个proposals被重新排序,在将分类得分乘以时间上的惩罚分后。 (排序是由分类得分乘以时序惩罚函数之后的结果来进行的) 在得到最后的追踪bbox之后,执行非极大值抑制(NMS)。在最终的bbox被选择之后,目标的尺寸被通过使用线性内插来更新,为了保证形状平滑的被改变。 (这里的线性内插更新目标的形状是什么意思?)
5 Experiments
实验在四个有挑战性的追踪数据集:VOT2015,VOT2016,VOT2017 real-time,和OTB2015,前三个各60个视频,最后一个有100个视频。所有的这些追踪的结果都使用报告的结果,以保证一个公平的比较。
5.1 Implementation details
我们使用一个在ImageNet上预训练的修正AlexNet模型,它的前三个卷积层固定住,只微调Siamese-RPN里的最后两个卷积层的参数。这些参数通过SGD优化Eq.5获利。总共执行50个epoches,学习率从
1
0
−
2
10^{-2}
10−2下降到
1
0
−
6
10^{-6}
10−6。我们从VID和Youtube-BB中通过选择间隔少于100的帧和执行更进一步的裁剪程序来提取图像对。假设目标bbox的尺寸表示为
(
w
,
h
)
(w,h)
(w,h),我们以历史帧中心裁剪大小为
A
×
A
A\times A
A×A的模板patch,它的定义如下。
(
w
+
p
)
×
(
h
+
p
)
=
s
2
(w+p)\times(h+p)=s^2
(w+p)×(h+p)=s2
其中,
w
w
w和
h
h
h表示目标的宽和高,
p
p
p表示padding,它等于
w
+
h
2
\frac{w+h}{2}
2w+h。它之后被resize到
127
×
127
127\times 127
127×127。检测分支以相同的方法处理,当前帧是模板帧的两倍,然后被resize到
255
×
255
255\times 255
255×255。在推理阶段,没有在线微调,因为我们将在线追踪形式化为one-shot检测任务。我们的实验使用PyTorch实现,在Intel i7的GPU,12G RAM,Nvidia GTX 1060。
5.2 Result on VOT2015
VOT2015数据集有60个视频序列。根据准确性(成功追踪时的平均重叠)和鲁棒性(追踪失败次数)评估性能。整体性能使用EAO评估,它同时考虑准确性和鲁棒性。除此之外,速度使用EFO进行评估。
我们将我们的追踪器和根据VOT最新的规则而定的前10个追踪器进行比较(MDNet被从排行中删除,因为它在由OTB序列中生成的数据进行训练的)。Siamese-FC被加入进比较之中,作为我们的baseline。Fig.5显示了Siamese-RPN能够比VOT2015的追踪器高出很多性能。Tab.1列出了这些追踪器的细节。正如Tab.1中显示的,Siamese-RPN能够在EFO、精度、失败率和EFO上排名第一。在VOT2015报告的追踪器中,只能少量的追踪器能够达到实时的速度,但是它们的overlap都相对较低。Siam-FC是VOT2015的最顶级的追踪器之一,它能以超实时帧率运行,并且达到了SOTA效果。Siamese_RPN能够达到160fps,几乎是Siamese-FC的两倍(86fps),并且它能在EAO上能达到23%的增幅。
5.3 Result on VOT2016
在VOT2016挑战赛中,视频序列是和VOT2015一样的,bbox是重新标注的。它的性能评估和VOT2015是相同的。
我们和VOT2016里的顶尖的25个跟踪器一直比较我们的追踪器。Siamese-RPN可以胜过所有的挑战。Fig.6显示了EAO排序,Tab.2显示了几个SOTA追踪器的细节信息。正如Fig.6里显示的,我们的追踪器能够在帧率达到 160fps的情况排名第一,它能比CCOT快500倍。Tab.2显示了Siamese-RPN在EAO和精度上排名第一,在失误率上排名第三。Fig.7显示了SOTA的追踪器的性能和速度。它表明我们的跟踪器在高速运行时可以实现出色的性能。
5.4 Result on VOT2017 real-time experiment
在VOT2017中,至少有10个有挑战性的序列被10个困难性的序列取代。除此之外,还增加了一些实时性的实验,追踪器需要处理实时性视频流,至少25FPS帧率的。这意味着,如果失踪器不能在40ms内处理,评估程序会使用最后一帧的结果作为当前帧的处理结果。这对最近的大多数SOTA的追踪器都是一项挑战。在无速度限制条件下,按原始EAO排名前10位的跟踪器在实时实验中获得的EAO较低。
Fig.8显示了Siamese-RPN以及VOT2017报告中列出的几个实时追踪器。相比之下,根据EAO,Siamese-RPN可以排名第一。具体而言,它可以超过第二名CSRDCF++14%,超过第三名Siamese-FC 33%。
5.5 Result on OTB2015
OTB2015包含100个序列,它们从常用的追踪视频序列中收集而来。评价基于两个度量:precision和success plot。精度图显示跟踪结果距目标20像素以内的帧的百分比。成功图显示阈值从0变为1时成功帧的比率,其中成功帧表示其重叠量大于给定阈值。成功曲线的曲线下面积(AUC)用于追踪算法进行排序。
在这个实验中,我们将我们的方法和几个其他的追踪器相比较,包括PTAV,CREST,SRDCF,SINT,CSR-DCF,Siamese-FC,Staple,CFNet和DSST。正如在Fig.9中显示的一样,提出的Siamese-RPN能够在success plot和precision上都排名第一。
5.6 Discussion
在这一小节里,我们讨论几个对我们性能至关重要的因素,包括数据大小,锚点比率和位置。
5.6.1 Data size
因为我们的追踪框架只需要图像对,而不是连续的视频流,我们能够受益于大规模的稀疏标注视频中受益。比起包含4000个视频逐帧标注的ILSVRC,Youtube-BB以每20帧的方式标注了多于100,000的视频。我们通过逐渐从Youtube-BB中增加更多的数据而使用不同数据集大小来训练Siamese-RPN。
Fig.10显示了Siamese-RPN当训练数据规模变化时的追踪结果。如果有更多的训练视频,VOT2015和VOT2016的EAO都保持着增加。具体来说,Youtube-BB的推出将VOT2016的EAO从0.317提高到0.344。 值得注意的是,性能并未达到饱和,这意味着随着训练数据的增加,跟踪器的性能可能会变得更好。
5.6.2 Anchor selection
这里我们讨论两关于anchors的因素,训练过程中的anchor比率选择和推理过程中的位置选择。
- anchor ratios. 正如Sec.3.3中所讨论的,我们只考虑不同比例的锚,而固定锚的比例,因为目标的比例在两个相邻帧中不会有太大变化。我们尝试了三个比率,分别为[0.5、1、2],[0.33、0.5、1、2、3],[0.25、0.33、0.5、1、2、3、4](分别表示为A3,A5,A7 )。
正如Tab.3里所显示的,使用A5的追踪器表现地比A3更好。因为通过更多的锚点,可以更容易地预测高宽比较大的目标的形状。但是,使用A7的跟踪器无法持续提高性能,我们认为这可能是由于过拟合造成的。当从Youtube-BB添加更多训练数据时,A7和A5之间的EAO差距将从0.013减小到0.007。 - anchor position. 在我们的实验中,中心大小(如4.3中所定义)与搜索区域的大小有关。我们可以看到,在图4中,较大的中心尺寸表示跟踪器可以选择距中心距离较大的锚点以扩大搜索区域。如图11所示,当使用Youtube-BB训练网络时,如果中心大小增加,则性能会更高。但是,如果仅使用ILSVRC进行训练,则性能不会达到预期的提高,这意味着RPN的区分能力不足以使用较大的搜索区域。
6 Conclusion
在这项工作中,我们提出了一个孪生区域提议网络(Siamese-RPN),该网络通过ILSVRC和YoutubeBB的大规模图像对进行了端到端的离线训练。Siamese-RPN可以通过应用box refinement procedure来获得更准确的边界框。在在线追踪时,提出的构架被形式化为一个局部one-shot检测任务。在实验中,我们的方法可以在160 FPS下运行,在VOT2015,VOT2016和VOT2017实时挑战中达到领先的性能。