走进VOT--《End-to-end representation learning for Correlation Filter based tracking》 阅读笔记 CFnet-master
Fully automatic feature extraction for CF-based tracking system was presented in this paper. The work was carried out by Jack Valmadre and his team, which was published in CVPR 2017. The project homepage is available at http://www.robots.ox.ac.uk/~luca/cfnet.html, while the source code can be downloaded from https://github.com/bertinetto/cfnet.
模型的提出

CFNet是一种非对称的Siamese网络结构:经过两个输入图像分别接受相同的卷积特征提取处理后,在训练阶段通过建立线性模板模型来辅助识别和分类任务中进行目标检测或匹配定位操作。
摘要:
线性模板匹配算法 是一种训练一种线性模板以区分图像及其平移变换的有效方法。它广泛应用于目标跟踪任务中,在傅里叶域中其计算效率由fft2提供保障(fast Fourier transform),使得检测器每隔一帧就能进行一次预训练以适应动态变化。然而,在过去的工作中,默认假设相关滤波器所具有的特性通常是针对特定任务设计或人工定制的(pre-trained or handcrafted)。本文首次提出了一种将具有闭合形式解的相关滤波器学习框架解释为深度神经网络中的不同层级(different layers)的方法。这不仅消除了传统方法的局限性——即无法自然地与深层特征学习紧密结合——也为后续研究提供了新的思路和可能的方向。通过实验验证表明:我们的方法不仅具有重要的实用价值,在轻量级架构下实现了高帧率下的最佳性能。
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并没有改善足够深的网络的结果。然而,我们的方法使超轻量网络的几千个参数,以实现在多个基准的最先进的性能,同时运行在高帧率。(性能并没有变好,但是网络轻量化了)
相关工作
34
在获得优化问题解的过程中,另一种思路是将迭代过程建模为递归神经网络,并具体展开一定次数以捕捉其动态特性 [36]。Maulaurin等人引用文献 [23] 进一步研究了这一方向,并通过对整个 SGD 学习过程进行反向传播来计算梯度;尽管如此,在计算上仍需付出一定的努力和巧妙的方法来处理相关计算量大的挑战 [23]. Gould等人引用文献 [11] 最近探讨了在不限制迭代次数的情况下对一般 argmin 问题求导的方法;然而,在某些特定情况下(如使用固定滤波器),这些方法并非必要 因为它们拥有封闭形式的解析解 [11].
基于学习算法的反向传播过程(...),我们可以将其与元学习进行比较**。最近的研究工作[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' 通常较大 ,代表搜索区域(如下一帧)。包括用于训练的一幅图像x' 和用于测试的一幅图像z',这与FC-Net中的x和z不同。
与可学输入均经过CNN fρ处理参数ρ。此生成两个特征图后,它们相互关联:

Eq. 1等价于在测试图像z'上对模式x'进行全面的搜索操作。该方法旨在使响应映射函数(左侧)的最大值对应于目标位置坐标。为了实现这一目标设计,在视频集合中随机抽取了数百 million对(x'i, z'i)进行离线训练(Image-net数据集)。每个样本都具有一个空间域上的标签ci标记,在{-1,1}范围内取值其中真实对象的位置标记为1类其余所有对象位置标记为-1类。整个训练过程通过最小化训练集中基于逻辑损失函数ℓ来进行优化

3.2 跟踪算法
网络自身仅限于定义了两个图像块之间相似性的唯一函数。要将该网络应用于目标追踪流程中,则需将其与追踪器逻辑机制相结合使用。类似于文献[3]中的方法,我们采用了简单的追踪算法来评估相似性函数的表现效果。
在线追踪过程是通过前向模式直接评估网络实现的。具体而言,在每个新帧中进行操作时:
- 首先提取以目标估计位置为中心扩展四倍大小的窗口作为搜索区域
- 将该搜索区域与目标对象特征进行比较
- 计算得到的目标新位置即为得分最高的位置
传统的全卷积Siamese网络仅在每帧中与物体初始外观进行比较。相比之下,在我们的方法中: - 每一帧都会计算一个新的模板
- 新旧模板会被结合在一起用于后续处理
3.3 相关滤波网络
我们可以推荐采用x与互相关算子间的相关滤波块来修改方程组1中的基准级联Siamese网络结构。具体来说, 如图1所示展示了这一变化的具体架构设计。这种技术性的变化可以通过数学公式...来正式描述出来

这个 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 \in R^{m\times m}与其相关的核模板w \in R^{m\times m}之间的点积运算(其中x \ast \delta - u)的结果应尽量趋近于所需结果y[u][13]$。我们需要对该过程进行优化以使其达到最低水平。


滤波器网络的内部架构图中包含多个模块单元。每个模块单元对应于公式7所描述的功能子程序,在系统流程图中标注为独立的小矩形块(见图2)。其中U={0,…,m-1}²代表输入空间中的像素坐标范围范围定义域为二维整数集合

最优模板w必须满足方程组(通过拉格朗日对偶得到,见附录C,补充材料)

k被定义为一种信号,并描述了一个循环线性内核矩阵。同时,α是一个与约束优化问题相关的拉格朗日乘数法相关联的信号,并等价于Eq.5。文献[13]指出,在傅里叶域中能够快速地计算出方程6的解

我们定义为xb = F (其中x代表一个变量进行离散傅里叶变换,x∗则表示该变量的复共轭,◦符号标识元素间的乘法运算,而✶则标记着一个信号的整体变换过程。需要注意的是,eq.7所描述的操作在频域中执行更为高效的原因在于它们主要依赖于element-wise操作,相较于eq.6中的旋转或矩阵运算符而言具有显著优势。值得注意的是,反卷积问题对应于求解傅里叶域中的对角方程组(如eq.7所示)。
- 反向传播
我们采用的符号,如果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中的方程组进行微分

然后对每个方程进行Fourier变换重组以获得每个因变量的微分 图2展示了输入变量的微分在Fourier域中的线性表示

注意:由于这些方程具有较高的复杂性(即它们是由实变量函数的傅里叶变换所生成),因此在实际应用中可能会遇到一定的挑战。然而,在这种情况下(即当处理的是实变量计算时),我们可以更加高效地处理相关问题。

完成正向与逆向傅里叶变换的基础要求是必要的前提条件。将多通道图像的技术拓展至这一领域相对简单,并在附录E中详细阐述了相关方法。
作为补充说明,在实际应用中我们发现:由于基于"期望"响应y的存在损失梯度信息的存在性(即损失梯度),因此我们可以无需人工设定去优化这一参数设置。
然而,在具体实施过程中我们发现:并未发现通过学习该参数能显著提升跟踪精度相比固定高斯响应方法的效果[4,13]。
4 实验
实验的主要目标是探究在训练过程中引入相关滤波器的影响。其主要应用于对比Bertinetto等人的对称Siamese架构。随后将端到端训练的CFNet与其变体展开对比,在该变体中用于不同任务训练的特性被用来作为替代特征。最后验证了我们的方法取得了最新的研究成果
5 结论
本文引入了一种新型的相关滤波器网络结构,并提出了一种基于在线学习算法实现梯度反向传播以优化底层特征表示的新颖方法。这种方案是可行的,并通过构建一个高效的反向传播映射循环方程来解决问题。实验结果表明,在使用足够深度的Siamese网络时,并未通过增加相关滤波器层显著提升跟踪精度。我们相信,在充足的数据训练下,深度学习模型展现出强大的能力。然而,在训练过程中将相关滤波器整合到相似架构中确实能够使浅层模型与较慢、较深的竞争。未来研究可能探索扩展适应时间,并通过反向传播梯度优化在一次性学习及领域适应等任务上的性能
实现细节
我们遵循文献[3]所描述的方法,并利用随机梯度下降(SGD)优化算法,在式(2)中使损失达到最低水平(见附录)。为了提高初始化效果,在网络参数初始化阶段采用了Xavier改进方案。此外,在实验过程中还采用了8号小批量的数据采样策略。所有实验均基于ImageNet Video[27]这一数据集进行,该数据集包含超过100万个带注释的帧(每帧包含多个独立的对象)。整个训练过程持续100个时间段,在每个时间段内从每个视频中随机提取大约12对时空特征点(x ’ i,z ’ i),这些特征点之间的时间间隔不超过100帧。为了减少目标漂移现象,在跟踪过程中对分数图应用了一个加权的空间余弦窗口。此外,在尺度空间中通过对网络在前一目标尺度上的响应以及其相邻尺度上的特征进行评估(见图1),实现了多尺度目标跟踪效果(几何步长取值为1.04)。为了避免目标尺寸变化带来的影响,在缩放参数更新阶段采用学习率为0.6的滚动平均算法来进行调整。代码实现及实验结果均已公开发布。
见附录D中的补充材料
大佬解读:
