论文阅读总结
-
Summary
SiamFC使用全卷积孪生网络进行相似度计算,通过cross-relation进行子窗口的滑动计算,得到得分图,通过得分图的最大值的位置来确定目标相对于上一帧的位移,从而实现目标的追踪。
SiamFC对运动糊糊,剧烈外形变化,光照和尺度变化都很鲁棒,但是对遮挡很敏感。 -
Research Objective
这篇论文从ILSVRC15数据集中训练了一个全卷积孪生网络用于视频目标追踪。 -
Problem Statement
一方面在线学习方法固有地限制了能够学习到的模型的丰富性,另一方面,要追踪的目标事先是不知道的,很难提前训练深度卷积网络,并且也限制了系统的速度。 -
Method(s)
SiamFC,使用深度孪生网络计算模板图像和待搜索图像的相似度,将两个相似度进行相关运算,得到score map,利用score map得到目标在待搜索图像中的位置,完成追踪。 -
Evaluation
作者在OTB-13数据集、VOT数据集(14,15,16)上对方法进行了测试,这个方法能即使是使用极其简单的方法实现,也能也以实时的帧率达到SOTA效果。 -
Conclusion
我们在离线阶段训练一个强的embeddings,它能更加充分利用数据,用于追踪。在训练时每个子窗口都可以有效地代表有用的样本,而几乎不会产生任何额外的花费。深度embedding为在线追踪器提供一个更加丰富的的特征,使用简单的策略就能表现地很好。如果结合更加复杂的在线追踪策略,还可以取得更好的结果。 -
Notes
- cross-correlation与correlation filter。cross-correlation:适合特征分辨率较小的高层CNN,典型AlexNet的conv5,CNN特征提取部分更大更慢,滑窗检测计算量较大但没有边界效应,检测范围不受限,目标模型在线不更新,定位精度较低但更鲁棒。correlation filter:适合特征分辨率较大的低层CNN,典型AlexNet的conv2,CNN特征提取部分更小更快,模板更新和检测都可以在频域高效解决,CF速度快,但边界效应难以处理,目标模型在线更新,定位精度更高但容易被污染。
- 对运动模糊对robust;对剧烈的外形形变很robust;对光照和尺度变化很robust;对遮挡问题sensitive,因为模型从来不更新。
- github论文源码
Translation
Abstract
传统上,通过使用视频本身作为唯一的训练数据,专门在线学习对象的外观模型,即可解决任意的目标追踪问题。尽管这些方法取得了成功,但是仅在线学习的方法固有限制了他们可以学习的模型的丰富性。最近,利用深度卷积神经网络的强表达能力已经开始尝试了。但是,当待追踪的目标事先不知道,必须在线执行SGD以调整网络的权重,这样严重损害了系统的速度。本文中,我们使用一个在ILSVRC15数据集上end-to-end训练的一个全卷积孪生神经网络来进行视频中的目标检测。我们的追踪器能以超出实时性的帧率运行,尽管非常简单,但是在多个benchmarks中都可以实现最先进的性能。
Introduction
我们考虑视频中任意目标的追踪问题,视频中的目标仅仅在第一帧中使用一个矩形框进行标注。因为算法可能需要追踪任意目标,因此,不太可能收集数据训练一个专门的追踪器。
近年来,这一场景下最成功的范式是在视频样本的基础上,通过在线学习,学习目标的外观模型。这在很大程度是归功于TLD,Struck和KCF等证明的能力。但是,使用仅从当前视频获利的数据(第一帧)的明显缺陷是,只能学习相对简单的模型。然而,其他的计算机视觉问题已经越来越广泛地采用从大型监督数据集训练而来的深度卷积网络,监督数据的不足和实时性操作的限制阻止了对每个视频学习一个检测器这一范式的原始的深度学习应用。
最近的一些工作旨在使用预训练的深度卷积网络克服这一限制,该网络是为不同但相关的任务而学习的。这些方法有的应用滑动窗口,如相关滤波器,使用网络的内部表示作为特征,有的使用SGD有网络的多个层上进行微调。然而,使用滑动窗口的方法不能充分利用end-to-end学习,使用在追踪的过程中使用SGD达到了SOTA效果,不能实时的运行。
我们提出一种替代方法,在初始离线阶段训练深度卷积网络来解决一般的相似性学习问题,然后在追踪期间简单的在线评估此功能。这篇论文的主要贡献是,这个方法在目标的追踪benchmarks上展示了了非常有竞争性的性能,在速度上远超过帧率的要求。具体来说,我们训练了一个孪生神经网络来在较大的搜索图像(search image)中定位模板图像(exemplar image)。进一步的贡献是,相对于搜索图像,提出了一个全卷积的孪生神经网络架构:通过计算两个输入的互相关性的双线性层,实现了密集而有效的滑动窗口评估。
我们假定相似度学习方法已经相对地被忽略了,因为追踪社区无法获利大量的标记数据集。事实上,直到最近,可用的数据集也仅有数百个标注视频。但是,我们相信,视频目标检测数据集ILSVRC的出现使训练这样的模型成为可能。另外,使用来自同一域的视频训练和测试用于追踪的深度模型是一个有争议的问题,因为VOT委员会最近禁止这样做。我们展示了我们的模型可以从ImageNet视频域推广到ALOV/OTB/VOT域,从而可以将追踪的benchmarks保留用于测试。
Deep similarity for tracking
学习追踪任意目标这一问题可以使用相似度学习来解决。我们提出学习一个函数
f
(
z
,
x
)
f(z,x)
f(z,x),它比较模板图像
z
z
z和相同大小的待搜索图像
x
x
x,如果两个图像描述的是同一个目标,返回一个较高的分数,否则,返回一个较低的分数。为了找到目标在新图像中的位置,我们可以测试新图像中所有可能的位置,选择和模板图像外观相似度最高的作为候选位置。在实验中,我们会简单地使用目标的初始外观作为模板。函数
f
f
f由标注视频数据集中学习得到。
鉴于他们在计算机视觉领域的广泛成功,我们将使用深层卷积网络作为函数
f
f
f.相似度学习的典型的解决方案是使用孪生网络。孪生网络对两个输入应用相同的变换
φ
\varphi
φ,然后使用另一个函数
g
g
g根据
f
(
z
,
x
)
=
g
(
φ
(
z
)
,
φ
(
x
)
)
f(z,x)=g(\varphi(z),\varphi(x))
f(z,x)=g(φ(z),φ(x))来组合它们的表示。当函数
g
g
g是简单的距离或相似度度量,函数
φ
\varphi
φ可以被认为是一个embedding。深度孪生网络已经应用于一些任务,例如face verification、keypoint descriptor learning、one-shot character recognition。
Fully-convolutional Siamese architecture
我们提出了一个对候选图像
x
x
x的全卷积孪生网络架构。如果一个函数和经过变化后是等效的,则说它是全卷积的。为了给出更精确的定义,引入
L
τ
L_{\tau}
Lτ来定义变换操作(
L
τ
x
=
x
[
u
−
τ
]
L_{\tau}x=x[u-\tau]
Lτx=x[u−τ]),函数
h
h
h是信号到信号的映射,它是带有整数步长
k
k
k的全卷积,如果对任意的变换
τ
\tau
τ满足
h
(
L
k
τ
x
)
=
L
τ
h
(
x
)
h(L_{k\tau}x)=L_{\tau}h(x)
h(Lkτx)=Lτh(x)
如果
x
x
x是有限信号,只需要保持输出的有效区域。
全卷积网络的优势在于,我们可以提供一个更大的搜索图像到网络里,而不是相同的尺寸,它将在一次评估中计算密集网格上所有变换子窗口的相似度。为此,我们使用一个卷积embedding函数
φ
\varphi
φ,使用一个cross-correlation层来组合结果特征。
f
(
z
,
x
)
=
φ
(
z
)
∗
φ
(
x
)
+
b
1
f(z,x)=\varphi(z)*\varphi(x)+b\bold{1}
f(z,x)=φ(z)∗φ(x)+b1
其中,
b
1
b\bold{1}
b1代表在每个位置取值为
b
∈
R
b\in\mathbb{R}
b∈R的信号,网络的输出不是一个单独的得分,而是一个定义在有限网格
D
⊂
Z
2
\mathcal{D}\subset\mathbb{Z}^{2}
D⊂Z2上的得分图,正如Figure 1中展示的一样。同一技巧已经用于同时期的立体匹配的相关工作中。
在追踪的过程中,我们使用中心位于前一帧目标位置的搜索图像作为搜索区域。最大得分相对于得分图中心的位置乘以网络的步幅,得出目标在帧与帧之间的位移。通过组合一个小批量的缩放图像,可以在单个前身搜索中搜索多个比例。
在数学上,使用互相关来组合特征图并在较大的搜索图像上对网络进行一次评估等效于使用内积来组合特征图并在每个已变换的子窗口上独立地评估网络。但是,互相关层提供了一种非常简单的方法,可以在现有conv-net库的框架内有效地实现此操作。 尽管这在测试期间显然很有用,但也可以在训练期间加以利用。
Training with large search images
我们使用一个判别方法,在正例和负例上训练网络,调整logistic损失
l
(
y
,
v
)
=
l
o
g
(
1
+
e
x
p
(
−
y
v
)
)
\mathcal{l}(y,v)=log(1+exp(-yv))
l(y,v)=log(1+exp(−yv))
其中,
v
v
v是单个模板-候选框对的真值,
y
∈
{
+
1
,
−
1
}
y\in{\{+1,-1\}}
y∈{+1,−1}是真值标签。在训练过程中,我们通过使用包含模板图像和较大的搜索图像对来利用网络的全卷积性质。这会产生一个得分图
v
:
D
→
R
v:\mathcal{D} \to \mathbb{R}
v:D→R,能够有效地产生许多例子。我们将得分图的损失定义为单个损失的平均值
它对得分图上的每个位置
u
∈
D
u\in\mathcal{D}
u∈D需要真实标签
y
[
u
]
∈
{
+
1
,
−
1
}
y[u] \in{\{+1,-1\}}
y[u]∈{+1,−1}。卷积网络的参数
θ
\theta
θ由梯度下降法获得。
通过在视频标注数据集中提取模板和中心在目标上的搜索图像来获利Pairs,如Figure 2。图像从视频中抽取两帧,它们都包含目标,并且至多相距
T
T
T帧。目前的类别在训练的过程中被忽略了。每个图片的尺寸在不破坏图像长宽比的情况下进行标准化。如果得分图的元素在中心的半径R内(考虑网络的步长
k
k
k),则认为它们属于正例。
得分图中的正样本和负样本的损失被加权,以用来减少类别不均衡的影响。
因为我们的网络是全卷积的,学习对于中心位置的子窗口偏移是没有风险的。我们相信它能有效考虑目标在中心位置的搜索图像,因为,最困难的子窗口,和那些特别影响追踪器性能的子窗口,是邻近于目标的。1
注意,由于网络是对称的
f
(
z
,
x
)
=
f
(
x
,
z
)
f(z,x)=f(x,z)
f(z,x)=f(x,z),事实上在模板上也是全卷积的。这允许我们在理论上对不同的目标使用不同尺寸的模板图像,我们假定统一尺寸,因为它能简化mini-batch的实现。但是这一假设在将来可以弱化。
ImageNet Video for tracking
2015版本的ILSVRC,引入了ImageNet视频数据集作为新的视频目标检测竞赛。参与者被要求分类和定位30个不同类别的动物和车辆。训练集和验证集总共包含4500个视频,总共有超过100万的标注帧。相比于在VOT,ALOV和OTB中的标注视频序列而言(总共不多于500个视频),这个数量是非常有吸引力的。我们认为,该数据集不仅应因其庞大的规模而引起跟踪社区的极大关注,而且还因为它所描绘的场景和物体与规范跟踪基准中发现的场景和物体不同。因此,它可以安全地用于训练深度追踪模型,而不会对那些benchmarks里的视频过拟合。
Practical considerations
Dataset curation. 在训练的过程中,我们调整模板图像到
127
×
127
127\times127
127×127,搜索图像调整到
255
×
255
255\times255
255×255。缩放图像,使边界框加上下文的空白具有固定的区域。更准确地讲,如果边界框的尺寸是(
w
,
h
w,h
w,h),上下文的空白是
p
p
p,缩放因子是
s
s
s被选择用来使尺度调整后的矩形的面积是一个常数
s
(
w
+
2
p
)
×
s
(
h
+
2
p
)
=
A
s(w+2p)\times s(h+2p)=A
s(w+2p)×s(h+2p)=A。使用使用模板图像的面积
a
=
12
7
2
a=127^2
a=1272。设置上下文的数量为平均维度
p
=
(
w
+
h
)
/
4
p=(w+h)/4
p=(w+h)/4的一半。每帧的模板和搜索图像被离线提取,为了避免在训练的过程中的resize。在这项工作的初步版本中,我们采用了一些启发式方法来限制从中提取训练数据的帧数。在实验中,我们使用所有的4417个视频,有超过2百万的标注边界框。
Network architecture. 我们用来进行embedding的函数
φ
\varphi
φ使用Krizhevsky的卷积阶段。参数和激活函数的维度在Tabel1中给出。在最开始的两个卷积层之后,使用最大值池化。除了conv5和最后一层之外,每个卷积层都使用ReLU。在训练的过程中,batch normalization在每个线性层中插入。最终一层的表示的stride是8。这一设计的重要方面是,在网络中没有引入padding。尽管这在图像分类中很常见,但是它损坏了全卷积的性质。
Tracking algorithm. 因为我们的目标是证明全卷积孪生网络的效率和训练在ImageNet video上的泛化能力,我们使用极其简化的算法执行追踪。不像其他的追踪器,我们不需要更新模型或者维持过去的外观变化,我们不需要使用类似于或者颜色直方图之类的额外的线索,我们也不需要使用边界框回来来进行预测的精调。但是,尽管它很简单,使用离线学习的相似度度量仍然达到了令人惊讶的好结果。 我们不需要使用时间限制,我们仅在大约其先前大小的四倍的区域内搜索对象,并将余弦窗口添加到得分图中以惩罚较大的位移。通过处理搜索图像的多个尺度的版本,可以实现对尺度空间的追踪。尺度的任何变化都会受到处罚,当前尺度的更新会受到阻碍。
Related work
对于目标追踪问题,近期已经开始使用RNNs来解决这个问题。Gan等人训练一个RNN来预测每帧目标中的绝对位置,Kahou等人相似地训练RNN来使用不同的注意力机制进行追踪。这些方法没有在现在的benchmark里取得竞争性的优势,但是它是未来研究的一个方法。我们指出,通过将孪生网络解释为展开后的RNN,可以对长度为2的序列进行训练和评估,可以在这种方法与我们的方法之间得出有趣的相似之处。 因此,孪生网络可以作为递归模型的强大初始化。
Denil等人使用粒子滤波器追踪目标,该粒子滤波器使用学习的距离度量将当前外观与第一帧的外观进行比较。但是,他们的距离度量与我们的非常不同。它们无需计算整个目标的图像,而是计算注视点之间的距离(对象边界框内小区域的凹面瞥见)。为了学习一个距离度量,他们训练了一个RBM,然后对两个位置的隐藏层使用欧氏距离。尽管RBM是无人监督的,但他们建议对RBM进行训练,以对目标中心图像中的随机注视进行检测。这必须在了解要追踪的目标的情况下在在线或离线阶段执行。在追踪目标的时候,他们使用不确定性作为奖励信号,学习了用于选择特定于该目标的固定物的随机策略。除了MNIST数字的合成序列外,该方法仅在面部和人物追踪问题上得到了定性证明。
虽然为每个新视频从头开始训练一个深层的conv网络是不可行的,但是有几项工作研究了在测试时根据预先训练的参数进行微调的可行性。SO-DLT和MDNet都训练了一个卷积网络,用来离线除非的相似检测任务,然后在测试时利用从视频中提取的样本使用SGD学习一个检测器,作为在传统的追踪学习的范式。这些方法不能按帧率运行,由于在多个样本是训练的时间负担。利用卷积网络进行追踪的另一种方法是使用预训练卷积网络的内部表示作为特征来应用传统的浅层方法。这种追踪器例如DeepSRDCF等已经取得了非常好的结果,它们也不能取得帧率的操作,由于相对高维的卷积特征表示。
与我们的工作同时进行的,一些其他的作者也提出使用卷积网络用于目标追踪,通过学习一个图像对的函数。Held等人引入了GOTURN,训练一个卷积网络来直接回归第二个图像中目标的位置。预测矩形而不是位置具有以下优点:可以在不借助详尽评估的情况下处理比例和纵横比的变化。然而,他们的方法的缺点是它不具有第二图像变换的固有不变性。这意味着网络必须所有位置的样本,这可以通过数据增强策略实现。Chen等人训练了一个网络,能够将模板和一个更大的搜索区域映射到一个响应图里。但是,他们的方法也缺少第二幅图像上的变换不变性,因为最后一层是全连接的。与Held的方法相似,这也是不高效的,因为训练必须表示所有目标的所有变换。他们的方法叫YCNN。他们在训练之后不能再训练搜索图像的大小。Tao等人提出训练一个孪生网络利用原始目标外观来识别候选图像的位置,所谓的SINT。与我们的方法相比,他们不能对不同的搜索图像调整全连接的结构。取而代之的是,在测试时,他们像Struck中一样在半径变化的圆上均匀地对边界框进行采样。而且,他们利用光流和框回归来改善结果。为了改进计算速度,他们使用ROI pooling来有效地测试许多 重叠子窗口。尽管这样优化以后,也才2fps,大部分的系统都不能够实时。
所有这些有竞争性的结果都是在视频序列中训练的,使用数据集中属于相同域(ALOV/OTB、VOT)的训练数据。这一实践已经在VOT竞赛中被禁止了,考虑到使用benchmark中相同的场景和目标可能会导致过拟合。因此,我们工作的重要贡献是证明无需使用与测试集相同分布的视频,就可以训练卷积网络进行有效的对象跟踪。
Experiments
Implementation details
Training. embedding函数的参数通过直接的SGD使用MatConvNet最小化函数来实现。参数的初始化使用一个高斯分布,范围遵循Xavier方法。训练使用50个epochs。每个由50000样本对。每次迭代的梯度使用大小为8的mini-batches来估计,学习率每步衰减,从
1
0
−
2
到
1
0
−
5
10^{-2}到10^{-5}
10−2到10−5
Tracking. 正如前面提到的一样,在线阶段被刻意的简化了。目标的初始外观的embedding
φ
(
z
)
\varphi(z)
φ(z)只计算一次,在后续帧中,对子窗口以卷积的方式计算。我们发现在线更新模板(特征表示)不能够取得性能的提升,因此,将它保持固定。我们发现,将得分图三次上采样,从
17
×
17
17\times 17
17×17到
272
×
272
272\times 272
272×272,能够使定位的结果更准确,因为原始图是相对粗糙的。为了解决尺度变化,我们在四个尺度
1.02
5
{
−
2
,
−
1
,
0
,
1
,
2
}
1.025^{\{-2,-1,0,1,2\}}
1.025{−2,−1,0,1,2}上搜索目标,通过线性插值以0.35的系数更新比例以提供减幅。
为了使我们的实验结果可再生,我们分享了训练和追踪的代码,和生成组织好的数据集的脚本: http://www.robots.ox.ac.uk/~luca/siamese-fc.html. 在配置了单个VNIDIA GeForce GTX Titan X上和一个Intel Core i7-4790K at 4.0Ghz,我们的全部追踪技术中缝运行在86到58fps,当搜索超过3-5个尺度时。
Evaluation
我们评价两个变体的简单追踪器:SiamFC和SiamFC-3s,搜索超过3尺度而不是5尺度。
The OTB-13 benchmark
OTB-13 benchmark在不同的阈值上考虑平均每帧成功率:当估计和真值之前的IOU超过一定的阈值时,这个追踪器是成功的。追踪器能够通过在这个阈值的成功率曲线下的面积来比较。除了其他论文中提供的tracker报告,Figure 3也比较近期的在帧率速度上的SOTA结果。考虑到序列的性质,仅针对此基准,我们在训练过程中将25%的对转换为灰度, 所有其他超参数(用于训练和跟踪)均已固定。
The VOT benchmarks
对于我们的实验,我们使用最新的稳定版的VOT工具,它评价追踪器在从356个序列中选出来的数据集中评价,所有有挑战性的场景都有代表性。许多这些序列在其他的数据集中都呈出现过。在benchmarks里,追踪器会在追踪失败发生后的五帧内自动重新初始化,这被认为是在估计边界框和真值之间的IoU变为零时发生的。
VOT-14 results. 我们将我们的方法SiamFC和VOT2014中最好的10个追踪器进行比较。我们也包括了Staple和GOTURN。追踪被依据两种度量来评价性能:accurancy和robustness。accurancy被计算为IOU,robustness被表示为总的失败个数。这些可以深入了解追踪器的行为。Figure 4显示了Accuracy-Robustness曲线,最好的追踪器会更靠近右上角。
VOT-15 results. 我们也比较了VOT2015版本中最好的40个结果。在这种情况下,将使用准确性和故障次数的原始分数来计算预期的平均重叠量度,该平均量度表示故障后无需重新初始化的平均IoU。图5以预期的平均重叠率说明了最终排名,而表2报告了该挑战的15个排名最高的追踪器的得分和速度。
VOT-16 results. 在撰写本文时,尚无2016年版的结果。但是,为了便于与我们的方法进行早期比较,我们报了告分数。 对于SiamFC和SiamFC-3,我们分别获得了0.3876和0.4051的总体预期重叠(基线和无监督实验之间的平均值)。需要注意的是,这些结果和VOT-16上报告的结果不同,因为这个竞赛上的结果是我们先前版本的结果。
尽管它很简单,我们的方法改进了最近的SOTA结果。而且,它远比较VOT-15中的结果要好,而且是唯一一个达到帧率速度的。这些结果表明,仅在ImageNet Video上由我们的全卷积Siamese网络学习的相似性度量的表达能力就足以实现非常强大的结果,可与之媲美或优于最新的方法,后者通常速度慢上几个数量级。我们相信,通过使用追踪社区经常采用的方法(例如模型更新,边界框回归,微调,内存)来扩展简单的在线追踪方法,可以获得相当高的性能提升。
Dataset size
Table3显示了数据集的大小对训练Siamese网络在性能上有具体的影响。期待的平均覆盖(在VOT-15上测试的)当数据集的大小从5%增加到100%时,从0.168稳定地提高到0.274。这些发现表明了使用一个更大的视频数据集能够进一步的提升性能。实际上,即使有200万个受监督的边界框看起来非常庞大,也不应忘记与通常用于训练conv-net的数据量相比它们仍然属于相对中等数量的视频。
Conclusion
在这项工作中,我们没有在追踪中使用的传统在线学习方法,展示了一种替代方法,该方法侧重于在离线阶段学习强大的embedding。与它们在分类设置中的使用不同,我们证明了对于跟踪应用,孪生全卷积深度网络具有更有效地使用可用数据的能力。这既可以在测试时通过执行有效的空间搜索得到反映,也可以在训练时得到反映,在训练时每个子窗口都可以有效地代表有用的样本,而几乎不会产生任何额外费用。实验表明,深层embedding为在线追踪器提供了自然丰富的功能,并使简单的测试时策略能够很好地发挥作用。我们认为,这种方法是对更复杂的在线跟踪方法的补充,并希望未来的工作能够更彻底地探索这种关系。