论文笔记-Fully-Convolutional Siamese Networks for Object Tracking

Fully-Convolutional Siamese Networks for Object Tracking

  • 摘要

任意对象跟踪的问题传统上通过仅在线学习对象外观的模型来解决,使用视频本身作为唯一的训练数据。 尽管这些方法取得了成功,但它们的在线方法本身就限制了他们可以学习的模型的丰富性。最近若干利用深度卷积网络的表达能力的尝试已经进行了。 然而,当事先不知道要跟踪的对象时,有必要在线执行随机梯度下降以适应网络的权重,这会严重损害系统的速度。在这篇文章中,我们为ILSVRC15数据集中的一个基本跟踪算法配备了一个新的完全卷积连体网络,用于端到端训练,用于视频中的目标检测。 我们的跟踪器以超出实时的帧速率运行,尽管极其简单,但在多个基准测试中实现了最先进的性能。

  • 1.介绍

我们考虑在视频中跟踪任意目标的问题,其中目标仅由第一帧中的矩形标识。 由于可以请求算法跟踪任何任意目标,因此不可能提前收集好数据并训练特定的检测器。

多年来,这种情况最成功的范例是使用从视频本身中提取的示例,以在线方式学习目标的外观模型。这在很大程度上归功于TLD ,Struck和KCF等方法的证明。 然而,使用仅来自当前视频的数据的明显缺陷是只能学习相对简单的模型。虽然计算机视觉中的其他问题已经越来越普遍地采用从大型监督数据集训练的深度卷积网络,但监督数据的稀缺性和实时操作的约束,阻碍了在这种一个视频学习一个探测器的范式中应用深度学习。

最近的一些研究旨在使用预先训练的深度网络来克服这种限制,该网络是针对不同但相关的任务而学习的。 这些方法要么使用网络的内部表示作为特征应用“浅”(shallow)方法(例如相关滤波器),要么执行SGD(随机梯度下降)以微调网络的多个层。 然而浅层方法的使用并未充分利用端到端学习的优势,并且在跟踪期间应用SGD以实现最新结果的方法却无法实时运行。

我们提出一种替代方法:深度网络被训练来解决在初始的离线阶段中的更一般的相似性学习问题,然后在跟踪期间简单地在线评估该功能。 本文的关键贡献是证明这种方法在速度远远超过帧速率要求的现代跟踪基准测试中表现出了非常具有竞争力的性能。 具体来说,我们训练一个孪生(Siamese)网络,以在更大的搜索图像中定位示例图像。 另一个贡献是一种新颖的孪生(Siamese)网络结构,它对搜索图像进行完全卷积:使用双线性层实现密集和有效的滑动窗口评估,并对其两个输入进行互相关运算。

我们认为相似性学习方法相对被忽略了,因为在跟踪社区中无法找到大量标记数据集。 实际上,直到最近,可用数据集仅包含几百个已发布的视频。 然而,我们认为在视频(以下称为ImageNet视频)中出现用于物体检测的ILSVRC数据集可以训练这样的模型。此外,训练和测试使用来自同一领域的视频进行跟踪的深度模型的公平性是一个争议点,因为VOT委员会最近已经禁止这样做。 我们展示了我们的模型从ImageNet视频域推广到ALOV / OTB / VOT 域,使得跟踪基准的视频可以保留用于测试目的。

  • 2.用于跟踪的深度相似性学习

可以使用相似性学习来处理学习如何跟踪任意目标。我们建议学习函数f(z,x),其将示例图像z与相同大小的候选图像x进行比较,并且如果两个图像描绘相同的对象则返回高分,否则返回低分。为了在新图像中找到对象的位置,我们可以穷尽地测试所有可能的位置,并选择与对象的过去的外观具有最大相似性的候选者。在实验中,我们将简单地使用对象的初始外观作为示例。 将从具有标记的对象轨迹的视频的数据集中学习函数f。

鉴于它们在计算机视觉方面的广泛成功,我们将使用深度卷积网络作为函数f。使用Siamese架构解决了使用深度卷积网络进行相似性学习的问题。 孪生(Siamese)网络对两个输入应用相同的变换t,然后根据f (z, x) = g(t(z), t(x))使用另一个函数g来组合它们的表示。 当函数g是简单距离或相似性度量时,函数t可以被认为是嵌入。深度孪生(Siamese)网络先前已应用于面部验证、关键点描述符学习和一次性字符识别等任务。译者注:千万注意整个Siamese Network对应的是相似性度量方式,不仅仅是最后一层FC Layer,而是包括了ConvNet。所以在对ConvNet模型进行训练时,就是一个学习相似性度量的过程。虽然看起来ConvNet是在做特征提取的工作,但实际上他就是Siamese Network作为相似性度量的一部分。

2.1全卷积孪生网络架构

我们提出了一种相对于候选图像x完全卷积的孪生(Siamese)架构。我们说如果一个函数与平移相关,那么它就是卷积的。为了给出更精确的定义,引入L_T来表示translation算子(L_T x)[u] = x [u - T]。如果对于任何平移T有h(Lk_T x) = L_T h(x),则将信号映射到信号的函数h是有着整数步长k的卷积的函数(当x是有限信号时,只需要保持输出的有效区域)。译者注:由此将目标目标对搜索区域逐点进行相似度计算的过程视为卷积运算,所以在算法实现上,是将目标模版z与搜索区域x进行卷积运算,由此得到反映相似度度量的score map。Siamese Network提供的实际上是一种相似性度量。

完全卷积网络的优点是,我们可以提供更大的搜索图像作为网络的输入,而不是相同大小的候选图像,它将在一次评估中计算密集网格上所有转化的子窗口(sub-windows 这里指的应该是候选区域)的相似性。

为了实现这一点,我们使用卷积嵌入函数t并使用互相关层组合得到的特征图,f(z,x)=t(z)*t(x)+b1 ,其中b1表示在每个位置取值为b(b属于R)的信号。该网络的输出不是单个分数,而是在有限网格D(D包含于Z^ 2)上定义的分数图,如图1所示。请注意,嵌入函数的输出是具有空间支持的特征映射,而不是普通向量。 同样的技术已应用到了现代立体匹配的工作中。在跟踪期间,我们使用以目标的先前位置为中心的搜索图像。 最大分数相对于分数图中心的位置乘以网络中设定的步长,可以得到目标在帧与帧之间的位移。 通过组装小批量的缩放图像,在单个前向通道中搜索多个标度。

使用互相关运算结合特征图并在较大的搜索图像上对网络一次评估(在一个较大的搜索图像上,对两个特征图,其中一个特征图来自较大的搜索图像,另一个特征图来自要匹配的目标模版,进行互相关运算),在数学上等同于使用内积运算去结合特征图,并且独立地评估每个在转换的子窗(sub-windows)上的网络(对两个特征图,其中一个特征图较大的搜索区域通过搜索窗滑动平移的方式得到搜索子窗,另一个特征图来自于要匹配的目标模版,进行内积运算,并且将搜索窗在较大的搜索区域上平移,得到较大搜索区域中各个位置图像与目标模版图像的匹配程度值图)。 然而,互相关层提供了一种非常简单的方法,可以在有conv-net库的框架内有效地实现此操作。 这在测试期间是有用的,同时它也可以在训练期间被利用。译者注:对这段话的总结为,将目标模版对应的特征图和较大搜索区域对应图像的特征图进行互相关运算的结果,和使用滑动窗机制,在较大的搜索区域对应图像上获取各个位置对应的搜索子窗的图像,并获取特征图,再将这些特征图一一对目标模版对应的特征图进行内积运算,组合各个内积运算的结果得到的整个搜索区域图像对应的结果是一致的。而互相关运算,可以视为卷积运算。

2.2用大的搜索图像进行训练

译者注:对训练后的模型进行迁移。SiamFC中并没有引进在线学习的模块。

我们采用discriminative方法,用正负对和使用logistic loss作为损失函数对来训练网络。l(y, v) = log(1 + exp(-yv))。其中v是单个样本-候选对的实值得分,y(y属于{+ 1,1})是其真实的标签(ground-truth)。通过使用包含示例图像和更大搜索图像的对,我们在训练期间利用了网络的完全卷积性质。这将产生一个由得分v组成的图D(D属于R),每对都能有效地产生许多例子。我们将分数图(score map)的损失定义为个体损失的平均值,L(y, v) = (1/|D|) * sigma_u(l(y[u], v[u])),要求分数图中每个位置u都有真实标签y [u](y属于{+1, 1})。通过将随机梯度下降(SGD)应用于问题来获得卷积网络的参数theta。argmin_theta E{L(y,f(z,x;theta))}。

通过提取以目标为中心的示例和搜索图像,从注释视频的数据集中获得对,如图2所示。图像是从视频的两个帧中提取的,这两个帧都包含对象并且最多相隔T帧, 训练期间忽略对象的类。在不破坏图像的纵横比的情况下对每个图像内的对象的比例进行归一化。如果得分图的元素在中心的半径R内(考虑网络的步幅k),则认为分数图的元素属于正例。分数图中的正负示例的损失被加权以消除类的不平衡。

由于我们的网络是完全卷积的(Fully-Convolutional),因此不存在它为中心的子窗口(sub-windows)学习偏差的风险。 我们认为考虑以目标为中心的搜索图像是有效的,因为最困难的子窗口以及对跟踪器性能影响最大的子窗口可能是与目标相邻的子窗口。

注意,由于网络是对称的f(z,x) = f(x,z),因此它实际上也是示例中的完全卷积(Fully-Convolutional)。 虽然这允许我们在理论上对不同的对象使用不同尺寸的示例图像,但我们假设统一尺寸,因为它简化了小批量实现。 但是,这种假设将来可以放宽。

2.3用ImageNet Vedio来进行跟踪

2.4实际考虑

数据集规划

训练期间,我们采用127 x 127的示例图像,并搜索255 x 255像素的图像。加上附加边缘,使得图像缩放后例如Bounding Box具有固定的区域。更确切地说,如果紧密边界框(tight bounding box)具有大小(w,h)并且上下文context边距是p,则选择比例因子s使得缩放矩形的面积等于常数 s(w+2p) x s(h+2p)=A。译者注:s为scale,缩放尺度大小。且注意这是在训练期间。

我们使用示例图像A = 127^2的区域并将上下文context的量设置为平均维度的一半p = (w + h)/4。 每帧的示例和搜索图像都被提取出来以避免在训练期间调整图像大小。 在这项工作的初步版本中,我们采用了一些启发式方法来限制从中提取训练数据的帧数。 相反,对于本文的实验,我们使用了ImageNet Video的所有4417个视频,其中包含超过200万个标记的边界框。

网络架构

我们采用的embedding function t的体系结构类似于Krizhevsky等人的网络的卷积部分。参数和激活函数的尺寸在表1中给出。在前两个卷积层之后使用最大池化层。 除了conv5(最后一层)之外,每个卷积层都遵循ReLU非线性。在训练期间,在每个线性层之后立即插入批标准化(Batch Normalization)。最终表示(representation)的步幅是8。 该设计的一个重要方面是在网络中没有引入填充。 虽然这是图像分类中的常见做法,但它违反了方程式的完全卷积性质。

跟踪算法

由于我们的目的是证明我们完全卷积的Siamese网络的功效及其在ImageNet Video上训练时的泛化能力,我们使用极其简单的算法来执行跟踪。与更复杂的跟踪器不同,我们不更新模型或维护过去外观的记忆,我们不包含额外的线索,如光流或颜色直方图,我们不会使用边界框回归来改进我们的预测。然而,尽管他很简单,但是当配备我们的在线学习的相似性度量时,跟踪算法实现了令人惊讶的良好结果。

在在线部分,我们确实结合了一些基本的时间约束:我们只在大约其先前大小的四倍的区域内搜索对象,并且在分数图中添加余弦窗口以惩罚大的位移。通过处理搜索图像的若干缩放版本来实现通过比例空间来进行跟踪。 规模的任何变化都会受到惩罚,当前规模的更新也会受到抑制。

  • 3.相关工作

最近的一些研究试图针对物体跟踪问题训练递归神经网络(RNN)。 甘等人,通过训练RNN预测每个帧中目标的绝对位置,Kahou等人类似地训练RNN,使用不可靠的注意机制进行跟踪。这些方法尚未在现代基准测试中显示出有竞争力的结果,但它无疑是未来研究的一个有希望的途径。 我们注意到,通过将孪生(Siamese)网络解释为在长度为2的序列上训练和评估的展开的RNN,可以在此方法和我们的方法之间绘制一个有趣的平行线。 因此,孪生网络可以作为重复模型的强大初始化。Denil等人,使用粒子滤波器来跟踪目标,该粒子滤波器使用学习距离度量来比较当前外观与第一帧的外观。 但是,它们的距离度量与我们的距离度量差异很大。 它们不是比较整个物体的图像,而是计算固定点间的距离(目标边界框内的小区域的局部)。为了学习距离度量,他们训练受限制的玻尔兹曼机器(RBM),然后使用隐藏激活之间的欧几里德距离进行两次固定。虽然RBM是非监督的,但他们建议在对象的图像中心随机固定训练RBM以进行检测。 这必须在线执行或在离线阶段执行,并了解要跟踪的对象。 在跟踪对象时,他们学习了一种随机策略,用于选择特定于该对象的注视,使用不确定性作为奖励信号。除了MNIST数字的合成序列之外,该方法仅在面部和人物跟踪问题上得到定性证明。

虽然为每个新视频从头开始训练深度卷积网络是不可行的,但有几项工作已经研究了在测试时从预先训练的参数进行微调的可行性。SO-DLT和MDNet都在一个类似的检测任务中训练卷积网络,然后在测试时使用SGD学习一个探测器,其中包含从视频中提取的例子跟踪作为探测器学习范例。由于在许多示例中评估前向和后向传递的计算负担,这些方法不能以帧速率操作。 利用卷积网进行跟踪的另一种方法是使用预先训练的卷积网络的内部表示作为特征来应用传统的浅层方法。虽然这种风格的跟踪器如Ma等人的DeepSRDCF和FCNT取得了很好的成果,由于卷积网络表示的维度相对较高,它们无法实现帧率运算。

在我们自己的工作的同时,其他一些作者也提出了通过学习图像对的函数来使用目标跟踪的网络。 Held等人介绍了GOTURN,其中训练了一个网络,以便从两个图像直接回归到第一个图像中所示的对象的第二个图像中的位置。预测矩形而不是位置具有以下优点:可以在不借助于详尽评估的情况下处理尺度和纵横比的变化。 然而,它们的方法的缺点是它不具有对第二图像的平移的内在不变性。这意味着必须在所有位置显示网络示例,这是通过相当大的数据集扩充来实现的。Chen等人训练了将示例和较大搜索区域映射到响应图的网络。 然而,由于最终的层是完全连接的,因此它们的方法也缺乏对第二图像的平移的不变性。与Held等人类似,这是不方便的,因为训练集必须代表所有对象的所有翻译。 他们的方法被命名为YCNN用于网络的Y形状。 与我们的方法不同,它们无法在训练后动态调整搜索区域的大小。 陶等人建议训练一个孪生(Siamese)网络,以识别与初始物体外观相匹配的候选图像位置,方法称为SINT(Siamese INstance search Tracker)。与我们的方法相反,它们不采用相对于搜索图像完全卷积的架构。 相反,在测试时,他们在Struck中对不同半径的圆均匀地采样边界框。此外,它们结合光流和边界框回归来改善结果。 为了提高系统的计算速度,他们采用感兴趣区域(RoI)池化来有效地检查许多重叠的子窗口。 尽管进行了这种优化,但每秒2帧,整个系统仍然远非实时。上面训练视频序列的所有竞争方法(MD-Net,SINT,GOTURN)使用属于基准使用的相同ALOV / OTB / VOT域的训练数据。 由于担心过度拟合基准测试中的场景和对象,这种做法已经在VOT挑战中被征用。 因此,我们工作的一个重要贡献是证明可以在不使用与测试集相同的分布的视频的情况下训练网络以进行有效的对象跟踪。

  • 4.实验

4.1实现细节

训练

通过最小化来找到embedding function的参数,使用MatConvNet直接进行SGD。参数的初始值遵循高斯分布,根据改进的Xavier方法进行缩放。训练进行了50多个时期,每个时期由50,000个采样对组成。使用尺寸为8的小批量估计每次迭代的梯度,并且在每个周期几何地从10^-2到10^-5对学习速率进行退火。

跟踪

如前所述,在线阶段是刻意的简约。 初始对象外观的嵌入函数(embedding function) t(z)被计算一次,并且被卷积地与后续帧的子窗口进行比较。 我们发现通过简单的策略(如线性插值)在线更新(特征表示)样本并没有获得太多的性能,因此我们将其保持固定。我们发现,使用双三次插值从17 x 17到272 x 272在分数图进行上采样,由于原始地图相对粗糙,因此可以实现更准确的定位。为了处理比例变化,我们还搜索五个比例的对象1.025^{-2,-1,0,1,2},并通过线性插值更新比例,系数为0.35,以提供阻尼。为了证明我们的实验结果可重复,我们共享训练和跟踪代码,以及脚本,以在http://www.robots.ox.ac.uk/~luca/siamese-fc.html生成精选数据集。在配备单个NVIDIA GeForce GTX Titan X和4.0GHz英特尔酷睿i7-4790K的机器上,我们的完整在线跟踪管道分别以每秒86和58帧的速度运行,分别搜索3和5级。

4.2评估

我们评估了我们的简单跟踪器的两个变体:SiamFC(Siamese Fully-Convolutional)和SiamFC-3s,它们搜索3个等级而不是5个等级。

4.3数据集尺寸

表3说明了用于训练Siamese网络的数据集的大小如何极大地影响性能。 当将数据集的大小从5%增加到100%时,预期的平均重叠(在VOT-15上测量)从0.168稳定地提高到0.274。 这一发现表明,使用更大的视频数据集可以进一步提高性能。 实际上,即使200万个有监督的边界框看起来很庞大,也不应忘记它们仍然属于相对适中数量的视频,至少与通常用于训练网络的数据量相比。

  • 5结论

在这项工作中,我们偏离了跟踪中使用的传统在线学习方法,并展示了一种侧重于在离线阶段学习强嵌入的替代方法。 与它们在分类设置中的使用不同,我们证明了对于跟踪应用,Siamese全卷积深度网络能够更有效地使用可用数据。 这既可以在测试时进行,也可以通过执行有效的空间搜索,也可以在训练时进行,其中每个子窗口都能有效地代表一个有用的样本,而且成本很低。 实验表明,深度嵌入为在线跟踪器提供了自然丰富的功能来源,并使简单的测试时策略能够很好地运行。 我们相信这种方法是对更复杂的在线跟踪方法的补充,并期望未来的工作能够更彻底地探索这种关系。

==================================================================================================

总结 :

一、总体框架

图中z代表的是模板图像,算法中使用的是第一帧的groundtruth;x代表的是search region,代表在后面的待跟踪帧中的候选框搜索区域;ϕϕ代表的是一种特征映射操作,将原始图像映射到特定的特征空间,文中采用的是CNN中的卷积层和pooling层;6*6*128代表z经过ϕϕ后得到的特征,是一个128通道6*6大小feature,同理,22*22*128是x经过ϕϕ后的特征;后面的*代表卷积操作,让22*22*128的feature被6*6*128的卷积核卷积,得到一个17*17的score map,代表着search region中各个位置与模板相似度值。

从图一和文章题目我们可以很容易理解算法的框架,算法本身是比较搜索区域与目标模板的相似度,最后得到搜索去区域的score map。其实从原理上来说,这种方法和相关性滤波的方法很相似。其在搜索区域中逐点的目标模板进行匹配,将这种逐点平移匹配计算相似度的方法看成是一种卷积,然后在卷积结果中找到相似度值最大的点,作为新的目标的中心。

上图所画的ϕϕ其实是CNN中的一部分,并且两个ϕϕ的网络结构是一样的,这是一种典型的孪生神经网络,并且在整个模型中只有conv层和pooling层,因此这也是一种典型的全卷积(fully-convolutional)神经网络。

二、具体实现

1、损失函数

在训练模型的时肯定需要损失函数,并通过最小化损失函数来获取最优模型。本文算法为了构造有效的损失函数,对搜索区域的位置点进行了正负样本的区分,即目标一定范围内的点作为正样本,这个范围外的点作为负样本,例如图1中最右侧生成的score map中,红色点即正样本,蓝色点为负样本,他们都对应于search region中的红色矩形区域和蓝色矩形区域。文章采用的是logistic loss,具体的损失函数形式如下:
对于score map中了每个点的损失:
l(y,v)=log(1+exp(−yv))
其中v是score map中每个点真实值,y∈{+1,−1}是这个点所对应的标签。

如果score map上的元素根据以下条件判断y值是1 还是-1 :

上面的是score map中每个点的loss值,而对于score map整体的loss,则采用的是全部点的loss的均值。即

这里的u∈D代表score map中的位置。
有了损失函数,那就可以用SGD对模型进行训练。

2、训练所用数据库

与以前的算法不一样的是,起训练的数据库并不是传统的VOT,ALOV,OTB这三个跟踪benchmark,而是ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中用于视频目标检测中的视频,这个数据集一共有4500个videos,4500个,4500….视频的每一帧都有标记的groundtruth,4500是什么概念呢,VOT,ALOV,OTB这三个数据集加起来也就不到500个视频,500个,500…..

3、网络结构

整个网络结构类似与AlexNet,但是没有最后的全连接层,只有前面的卷积层和pooling层。整个网络结构入上表,其中pooling层采用的是max-pooling,每个卷积层后面都有一个ReLU非线性激活层,但是第五层没有。另外,在训练的时候,每个ReLU层前都使用了batch normalization,用于降低过拟合的风险。
图2  网络结构
 

4、一些实现细节

训练采用的框架是MatConvNet
训练采用的优化算法就是batch SGD,batch大小是8
跟踪时直接对score map进行线性插值,将17*17的score map扩大为272*272,这样原来score map中响应值最大的点映射回272*272目标位置

 

 

 

 

 

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值