天天看点

走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

论文题目:End-to-end representation learning for Correlation Filter based tracking

论文出处:CVPR 2017

论文作者:Jack Valmadre,Luca Bertinetto等人

论文主页:http://www.robots.ox.ac.uk/~luca/cfnet.html

源码链接:https://github.com/bertinetto/cfnet

模型的提出
走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

提出的网络架构概述,CFNet。它是一个非对称的Siamese网络:在对两个输入图像应用相同的卷积特征变换后,利用“训练图像”学习一个线性模板,然后利用该模板通过cross——correlation搜索“测试图像”。

摘要:

相关滤波器是一种训练线性模板来区分图像及其平移的算法。它非常适合于目标跟踪,因为它在傅里叶域中的公式提供了一个快速的解决方案(fft2),使探测器能够每帧预先重新训练一次。然而,以前使用相关过滤器的工作采用的特性都是针对不同任务进行的trained或者手工designed。本文首次将具有闭形式解的相关滤波器学习器解释为深度神经网络中的different layer,从而克服了这一局限性。这使得学习与相关过滤器紧密耦合的深层特性成为可能。实验表明 ,我们的方法具有重要的实用价值,允许轻量级架构在高帧率下实现最先进的性能。

1 引言

在计算机视觉应用中,深度神经网络是学习图像表达的有力工具。然而,在线深层网络,然而,在线训练深度网络,以便从一个或几个例子中捕获以前不可见的对象类,是具有挑战性的。这个问题在视觉对象跟踪等应用程序中很自然地出现,其目标是在视频中重新检测一个对象,并在序列开始时只检测一个边框。主要的挑战是缺乏目标对象的先验知识,目标对象可以是任何类。

最简单的方法是不考虑先验知识的缺乏,采用一个预测深度卷积神经网络(CNN)对目标进行预训练,例如使用载随机梯度下降(SGD)[31, 25, 35],这样一个深度神经网络的优化器。有限的训练数据和大量的参数使得这成为一个困难的学习问题。此外,SGD对于在线适应非常复杂。 对这些缺点的一个可能的答案是没有网络适应在线运行。

最近的工作集中在学习可以用作通用对象描述符的深度嵌入器(deep embeddings)[3,12,28,17,5]。这些方法使用Siamese CNN,离线训练来辨别两个图像块是否包含相同的对象。其理念是,强大的嵌入器将允许通过相似性检测(从而跟踪)对象,从而绕过在线学习问题。然而,使用固定的度量来比较外观会阻止学习算法利用任何可能有助于识别的视频特定线索。(所以这里解决了度量问题应该)

另一种策略是使用在线学习方法,如相关过滤器(CF)。CF是一种高效的算法,它通过极其高效地解决一个大的脊线回归问题,学会从周围的patch中识别出一个图像patch[4,13]。事实证明,它在目标跟踪方面非常成功(如[6,18,22,2]),其效率使得跟踪器能够在每一帧动态调整其内部对象模型。它的速度归功于傅里叶域公式,该公式允许只用快速傅里叶变换(FFT)的几个应用程序和简单的元素操作就能解决Ridge Regression脊回归问题。从设计上讲,这样的解决方案比SGD这样的迭代求解器要有效得多,而且仍然允许根据特定的视频定制鉴别器,这与嵌入方法相反。

因此,挑战在于将CF的在线学习效率与离线训练的CNN特性的区分能力结合起来。这已经在一些工作中做过(如[21,7,9,31]),这些工作表明CNNs和CFs是互补的,它们的结合可以提高性能。

然而,在前面的工作中,CF只是简单地应用于预先训练好的CNN特性之上,并没有对这两种方法进行深入的集成。深度架构的端到端train通常优于单独培训单个组件。其原因是,以这种方式,所有组件中的自由参数都可以相互适应和合作,以实现一个单一的目标。因此,我们很自然地会问,CNN - CF组合是否也可以端到端的培训,从而获得类似的好。

!!! 实现这种集成的关键步骤是将CF解释为一个可微CNN层,这样错误就可以通过CF传播回CNN特性。这是一个挑战,因为CF本身就是一个学习问题的解决方案。因此,这需要微分一个大型线性方程组的解。本文给出了相关滤波器导数的一个闭形式表达式。此外,我们还演示了我们的方法在训练CNN架构端到端的实际应用。

我们对将CF合并到Bertinetto等人的全卷积Siamese框架中的效果进行了广泛的研究。我们发现CF并没有改善足够深的网络的结果。然而,我们的方法使超轻量网络的几千个参数,以实现在多个基准的最先进的性能,同时运行在高帧率。(性能并没有变好,但是网络轻量化了)

相关工作

自Bolme等人开创性的工作[4]以来,相关滤波器在跟踪社区中得到了广泛的应用。值得注意的是,已经作出了努力来改进它,例如减轻周期性的影响边界[10,15,8],包含多分辨率特征图[21,9],并以更鲁棒的损失[26]来增强目标。为了简便起见,本文采用了相关滤波器的基本公式。

最近,基于Simense网络的几种方法被引入[28,12,3],由于其简单性和竞争性能,引起了人们对跟踪社区的兴趣。对于我们的方法,我们更喜欢构建在完全卷积的Simense架构[3]之上,因为它强制执行了外观相似性函数应该与翻译进行交换的先验。

在其核心,我们引入的相关滤波层相当于计算正则化反卷积问题的解决方案,不要与有时被称为“反卷积层”[20]的上采样卷积层混淆。

在SGD等算法明显足以训练深度网络之前,Zeiler等人提出了一种深度架构【34】,其中每一层解决一个卷积稀疏编码问题。相比之下,我们的问题有一个封闭形式的解决方案,因为相关滤波器使用二次正则化L2而不是1-范数正则L1。(这里提到了一个20看一下,不是常说的那个翻卷机layer应该)

[两种范数的区别]

以前研究过在训练过程中通过优化问题的解反向传播梯度的思想。Ionescu等人的[14]和Murray[24]分别给出了SVD和Cholesky分解的反向传播形式,使得梯度下降可以应用于计算线性方程组或特征值问题解的网络。我们的工作可以理解为一个有效的反向传播过程,通过解线性方程组,其中矩阵有循环结构。

当迭代得到优化问题的解时,另一种方法是将迭代视为一个递归神经网络,显式展开一定数量的迭代[36]。Maclaurin等人的[23]更进一步研究,通过整个SGD学习过程反向传播梯度,尽管这需要计算和明智的簿记。Gould等人[11]最近考虑在不限制迭代过程的情况下对一般argmin问题的解进行微分。然而,这些方法在相关滤波器的情况下是不必要的,因为它有一个封闭的形式的解决方案。

通过学习算法进行反向传播可以将其与元学习进行比较**。最近的工作[30,1]提出了前馈结构,可以理解为学习算法,通过梯度下降实现优化。**本文没有采用抽象的学习定义,而是通过一个已经广泛使用的传统学习问题来传播梯度。

3 方法

在介绍CFNet体系结构(第3.3节)之前,我们简要介绍了一个使用Siamese网络学习嵌入的框架(第3.1节)和使用这种嵌入进行对象跟踪(第3.2节)。随后,我们推导出我们的网络中主要新成分的评估和反向传播的表达式,相关滤波层在正向传递中执行在线学习(第3.4节)。

3.1Fully-convolutional Simense Network (全卷积孪生网络)

我们的起点是一个类似于[3]的网络(fc-net),稍后我们将对其进行修改,以便将模型解释为一个cf’跟踪器。完全卷积的Siamese框架考虑成对(x ', z '),包括一个训练图像x '和一个测试图像z ’ ,这不同于fcnet中的x,z。图像x '表示感兴趣的对象(例如,在第一个视频帧中以目标对象为中心的图像块),而z '通常较大,表示搜索区域(例如,下一个视频帧)。

与可学的输入都是由CNN fρ处理参数ρ。这产生了两个特征图,然后它们互相关联:

走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

Eq. 1相当于对模式x '在测试图像z '上进行详尽的搜索。目标是使响应映射(eq. 1左侧)的最大值对应于目标位置。

为了实现这一目标,该网络通过从视频集合中随机选取数百万对(x ’ i, z ’ i)进行离线训练。(IMage-net)每个示例都有一个标签ci的空间映射,其值为{−1,1},真正的对象位置属于1性类,其他所有对象位置都属于-1性类。培训收益通过最小化训练集以一个明智的逻辑损失 ℓ :

走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

3.2 跟踪算法

网络本身只提供了一个函数来度量两个图像块的相似性。要将此网络应用于目标跟踪,必须将其与描述跟踪器逻辑的过程相结合。与[3]类似,我们使用了一个简单的跟踪算法来评估相似函数的效用。

**在线跟踪是通过在前向模式下简单地评估网络来执行的。将目标对象的特征表示与搜索区域的特征表示进行比较,搜索区域在每个新帧中通过提取一个以先前估计位置为中心的窗口获得,该窗口的面积是对象的四倍。**对象的新位置被认为是得分最高的位置。

原始的全卷积Siamese网络只是简单地将每一帧与物体的初始外观进行比较。相比之下,我们在每一帧中计算一个新模板,然后将其与移动平均线中的前一个模板结合起来。

3.3 相关滤波网络

我们建议使用x和互相关算子之间的相关滤波块来修改eq. 1的基线Siamese网络。结果架构如图1所示。这种变化可以正式表述为:

走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

这个 CF Block w =ω(x)计算标准的CF模板w从训练特征map:x = fρ(x′)中,通过求解傅里叶域中的岭回归的问题[13]。它的作用可以被理解为创建了一个有区别的模板,这个模板对移动是robust的。有必要引入标量参数s和b(比例和偏差),使得分范围适合于逻辑回归。然后,以与SIamese网络相同的方式进行离线训练(第3.1节),将eq. 2中的g替换为h。

我们发现在训练图像中提供大区域上下文的相关滤波器是很重要的,这与Danelljan等人[8]和Kiani等人[15]的发现一致。为了减少圆形边界的影响,将feature map x预先乘以一个余弦窗口[4],最后裁剪出[29]。(hann windows的作用)

请注意,图1中架构的前向传递与使用CNN功能的标准CF tracker[13, 6, 22, 3]的操作完全一致,正如之前的工作所提出的那样[21,7]。然而,这些早期的网络并没有经过端到端的训练。新颖之处在于计算CF模板相对于其输入的导数,这样包含CF的网络就可以端到端的进行训练

3.4 相关滤波

现在,我们展示了如何通过相关滤波器解有效地通过傅里叶域以封闭的形式对梯度进行反向传播.

  • 形式

    给定一个纯量值图像x∈R m×m相关滤波器模板w∈R m×m的内积与每个圆图像的转变x∗δ−u是尽可能接近所需的响应y [u][13],最小化

    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master
    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

    相关滤波器的内部计算图。方框表示方程7中定义的函数,圆圈表示变量。

    这里,U ={0,…, m−1}2

    图像的领域,y∈R m×m是一个信号,其u-th元素y (u),和δτ翻译狄拉克δ函数δτ[t] =δt[−τ)。在本节中,我们使用∗表示循环卷积和⋆表示循环互相关。回想一下,翻译与翻译δ函数的卷积相当于(x∗δτ)[t] = x (t−τmod m]。结合二次正则化来防止过拟合,问题是找到其中n = |U|是有效样本数

    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master
    最优模板w必须满足方程组(通过拉格朗日对偶得到,见附录C,补充材料)
    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master
    k可以解释为信号,定义了一个循环线性内核矩阵,和α是一个信号由一个约束优化问题的拉格朗日乘数法,相当于eq。5。方程6的解可以在傅里叶域[13]中有效地计算出来,
    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master
    我们使用xb = F (x表示一个变量的离散傅里叶变换,x∗表示复共轭,◦表示element-wise乘法和✶表示的一个信号。元素乘的逆是元素乘标量的逆。注意,eq。7中的操作更有效地计算在傅里叶域中,因为它们涉及element-wise操作而不是更贵的旋转或矩阵运算符(eq。6)。此外,反卷积问题(发现αk∗α= 1 n y)是一个对角方程组的解在傅里叶域中(eq。7 b)
  • 反向传播

    我们采用的符号,如果x∈x = R n是一个变量的计算图表计算最后一个标量损失ℓ∈R,然后∇xℓ∈x表示向量的偏导数(∇xℓ)i =∂ℓ/∂ξ。如果y∈y = R m是图中的另一个变量,根据y = f(x)直接从x计算,则so-艾尔反向传播映射函数f是一个线性映射从∇yℓ∈y∇xℓ∈x.

    附录D给出了数学背景的教程回顾。简而言之,反向传播映射就是微分伴随的线性映射。Ionescu等人使用此特性使用矩阵微分学计算反向传播映射。当他们使用矩阵内积hX、Y i = tr(XT Y)来寻找伴随项时,我们使用Parseval定理,该定理指出,傅里叶变换是酉的(除比例因子外),因此保留内积hX、yi - hX、b ybi。

    为了通过相关滤波器找到反向传播的线性映射,我们首先对定义了模板w的公式6中的方程组进行微分

    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

    然后对每个方程进行傅里叶变换重新排列得到每个因变量的微分

    图2是输入变量的微分在傅里叶域中的线性函数

    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

    注意,虽然这些是复杂的方程,那只是因为它们是实方程的傅里叶变换。导数本身都是关于实变量计算的。

    这些线性映射定义的伴随整个反向传播从∇wℓ映射到∇xℓ∇yℓ。我们把推导过程推迟到附录B,在这里给出最终结果

    走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master

    是计算傅里叶前向变换和反变换的必要条件。扩展到多通道图像是琐碎的,并在附录E(补充材料)中给出。

    作为一个有趣的旁白,我们注意到,由于我们有关于“期望的”响应y的损失梯度,实际上可以优化这个参数,而不是手动指定它。然而,在实际应用中,我们并没有发现通过学习该参数来提高跟踪精度比传统的固定高斯响应的选择[4,13]。

4 实验

实验的主要目的是研究在训练中加入相关滤波器的效果。我们首先将其与Bertinetto等人的对称Siamese架构进行比较。然后,我们将端到端训练的CFNet与一个变体进行比较,在变体中,特性被为不同任务而训练的特性所替换。最后,我们证明我们的方法达到了最先进的结果。

5 结论

本文提出了相关滤波器网络,这是一种通过在线学习算法反向传播梯度以优化底层特征表示的非对称结构。这是可行的,通过建立一个有效的反向传播映射的解决方案的循环方程。我们的实证研究表明,对于一个足够深的暹罗网络,添加相关滤波器层并不能显著提高跟踪精度。我们相信,这证明了在有足够的培训数据的情况下,深度学习的力量。然而,在训练过程中将相关滤波器合并到相似网络中,确实可以使浅层网络与较慢、较深的网络竞争。未来的研究可能包括对适应时间的扩展,以及通过对相关任务(如一次性学习和领域适应)的学习问题的反向传播梯度。

实现细节

我们按照[3]的流程通过SGD将损失最小化(式2),使用Xavier-improved的参数初始化,并使用8号的小批量。我们使用了ImageNet Video[27]的全部3862个训练视频,包含超过100万个带注释的帧,每帧包含多个对象。训练进行100个时间段,每个时间段从每个视频中随机抽取大约12对(x ’ i,z ’ i),使它们最多相隔100帧。在跟踪过程中,一个空间余弦窗口乘以分数地图,以惩罚大位移。在尺度空间中,通过对网络在前一个目标的尺度上和在每一边的一个相邻尺度上进行评估,实现尺度空间的跟踪,几何步长为1.04。通过将被标对象的响应乘以0.97,不鼓励更新量表。为了避免对象大小的突变,使用学习率为0.6的滚动平均对尺度进行更新。代码和结果可以在网上找到。

代码和结果可以在线获得。

B.相关滤波器的反向传播

如附录D(补充材料)所述,反向传播映射是线性映射的伴随,即微分。相关滤波器的这些线性映射如式9所示。我们可以自由地在傅里叶域中得到这些伴随映射,因为Parseval定理提供了内积的保持性。设J1为式9a中dx 7→dk的映射。这就是内积的运算

大佬解读:https://blog.csdn.net/jacke121/article/details/82826009

继续阅读