KCF目标跟踪

摘要

大多数现代跟踪器的核心组件是判别式分类器,其任务是区分目标和周围环境。为了应对自然图像变化,该分类器通常使用平移和缩放的样本patch进行训练。这些样本集充满了冗余——任何重叠的像素都被限制为相同。基于这个简单的观察,我们为数千个translated patches的数据集提出了一个分析模型。通过显示生成的数据矩阵是循环的,我们可以使用离散傅立叶变换对其进行对角化,从而将存储和计算量减少几个数量级。有趣的是,对于线性回归,我们的公式相当于一些最快的有竞争性的跟踪器使用的相关滤波器。然而,对于核回归,我们推导了一种新的核化相关滤波器(KCF),它与其他核算法不同,具有与线性算法完全相同的复杂度。在此基础上,我们还提出了线性相关滤波器的快速多通道扩展,通过线性核,我们称之为双相关滤波器(DCF)。KCF和DCF在50个视频基准上都优于顶级跟踪器,如Strike或TLD,尽管它们以每秒数百帧的速度运行,并且只需几行代码即可实现(算法1)。为了鼓励进一步的发展,我们的跟踪框架是开源的。

关键词——视觉跟踪,循环矩阵,离散傅立叶变换,核方法,岭回归,相关滤波器

1 介绍

可以说,最近视觉跟踪研究的最大突破之一是判别式学习方法的广泛采用。跟踪任务是许多计算机视觉系统的关键组成部分,可以自然地指定为在线学习问题[1]、[2]。给定包含目标的初始图像块,目标是学习分类器来区分其外观和环境外观。该分类器可以在多个位置进行彻底评估,以便在后续帧中进行检测。当然,每个新的检测都提供了一个新的图像patch,可用于更新模型。

专注于表征感兴趣的对象——分类器的正样本是很有诱惑力的。然而,鉴别方法的一个核心原则是对相关环境(负样本)给予同等或更多的重视。最常用的负样本是来自不同位置和尺度的图像块,反映了在这些条件下将评估分类器的先验知识。

一个极具挑战性的因素是,从图像中可以获得几乎无限量的负样本。由于跟踪的时间敏感性,现代跟踪器在合并尽可能多的样本和保持较低的计算需求之间走得很好。通常情况下,每帧仅随机选择几个样本。

虽然这样做的原因是可以理解的,但我们认为,采样不足的负样本是抑制跟踪性能的主要因素。在本文中,我们开发了工具来分析合并数千个不同相对translations的样本,而无需明确地迭代它们。这是因为我们发现,在傅立叶域中,如果我们使用特定的模型进行translations,随着我们添加更多的样本,一些学习算法实际上变得更容易。

这些分析工具,即循环矩阵,在流行的学习算法和经典信号处理之间架起了一座有用的桥梁。这意味着我们能够提出一种基于核岭回归 [8] 的跟踪器,它不受“核化诅咒”的影响,核化诅咒是其更大的渐近复杂性,甚至比非结构化线性回归表现出更低的复杂度。相反,它可以被视为线性相关滤波器的核化版本,它为可用的最快跟踪器奠定了基础[9]、[10]。我们在与线性相关滤波器相同的计算复杂度下利用了强大的内核技巧。我们的框架很容易合并多个特征通道,通过使用线性核,我们将线性相关滤波器快速扩展到多通道情况。

2 相关工作

2.1 On tracking-by-detection

对检测跟踪的全面回顾超出了本文的范围,但我们对感兴趣的读者推荐给两个优秀且最近的调查 [1]、[2]。最常用的方法是使用判别式外观模型[3]、[4]、[5]、[6]。它包括在线训练分类器,受统计机器学习方法的启发,预测图像patch中目标的存在或不存在。然后在许多候选patch上测试该分类器以找到最可能的位置。或者,也可以直接预测位置[7]。带有类标签的回归可以看作是分类,因此我们可以互换使用这两个术语。

在这里插入图片描述
图1.所提出的核化相关滤波器(KCF)的定性结果与性能最好的Strike和TLD进行了比较。最好在高分辨率屏幕上观看。选择的核是高斯核,基于HOG特征。这些快照是在最近一次基准测试的50段视频的中点拍摄的。丢失的跟踪器用“x”表示。KCF的性能优于Strike和TLD,尽管其实现最少,运行速度为172 FPS。(参见算法1和表1)

在关注与我们的分析方法更直接相关的内容之前,我们将讨论一些相关的跟踪器。检测跟踪范式的典型示例包括基于支持向量机 (SVM) [12]、随机森林分类器 [6] 或增强变体 [13]、[5] 的示例。所有提到的算法都必须适应在线学习,以便对跟踪有用。Zhang等人[3]受压缩感知技术的启发,提出了一种固定随机基的投影,以训练朴素贝叶斯分类器。Hare等人[7]基于大量图像特征,采用结构化输出SVM和高斯核,旨在直接预测目标的位置,而不是其在给定图像块中的存在。非歧视性跟踪器的示例包括 Wu 等人的工作[14],他们将跟踪制定为一系列图像对齐目标,以及 Sevilla-Lara 和 Learned-Miller [15],他们提出了基于分布场的强大外观描述符。Kalal等人[4]的另一种判别式方法是使用一组结构约束来指导boosting分类器的采样过程。最后,Bolme等人[9]利用经典信号处理分析推导出快速相关滤波器。稍后,我们将更详细地讨论最后两项工作。

2.2 On sample translations and correlation filtering

回想一下,我们的目标是在translated图像块有效地学习和检测。与我们的方法不同,到目前为止,大多数尝试都集中在试图剔除不相关的图像块。在检测方面,可以使用分支定界来找到分类器响应的最大值,同时避免没有希望的候选补丁[16]。不幸的是,在最坏的情况下,该算法可能仍然需要迭代所有patches。一种相关方法可以有效地找到一对图像中最相似的patches[17],但不能直接转换为我们的设置。尽管它不排除穷举搜索,但值得注意的优化是使用快速但不准确的分类器来选择有希望的补丁,并且只对那些 [18]、[19] 应用完整的、较慢的分类器。

在训练方面,Kalal等人[4]建议使用结构约束从每个新图像中选择相关的样本patches。这种方法相对昂贵,限制了可以使用的功能,并且需要仔细调整结构启发式。一种流行的相关方法是硬负挖掘,尽管它主要用于离线检测器学习[20]。它包括在图像池上运行初始检测器,并选择任何错误的检测作为样本进行重新训练。尽管这两种方法都减少了训练样本的数量,但一个主要缺点是必须通过运行检测器来彻底考虑候选补丁。

我们研究的最初动机是最近相关滤波器在跟踪方面的成功。相关滤波器已被证明可以与更复杂的方法竞争,但只使用了计算能力的一小部分,每秒数百帧。他们利用了这样一个事实,即两个patch的卷积(粗略地说,它们在不同相对平移处的点积)等效于傅里叶域中的元素乘积。因此,通过在傅里叶域中制定他们的目标,他们可以一次为多个平移或图像移位指定线性分类器的期望输出。

傅里叶域方法非常有效,并且在信号处理方面有几十年的研究可借鉴。不幸的是,它也可能是极其有限的。我们希望同时利用计算机视觉方面的最新进展,例如更强大的特征、大边距分类器或核方法。

一些研究朝着这个方向发展,并试图将内核方法应用于相关滤波器。在这些工作中,必须区分两种类型的目标函数:那些不考虑功率谱或图像平移的目标函数,例如合成判别函数 (SDF) 滤波器 [25]、[26],以及那些考虑的, 例如最小平均相关能量 [28]、最佳权衡 [27] 和最小输出平方误差 (MOSSE) 滤波器 [9]。由于可以有效地忽略空间结构,前者更容易进行核化,因此提出了核SDF滤波器[26]、[27]、[25]。然而,由于在转换图像、非线性核和傅立叶域之间缺乏更清晰的关系,将核技巧应用于其他滤波器已被证明更加困难[25],[24],一些提议要求更高的计算时间,并对可以考虑的图像移位数施加了严格限制[24]。

对我们来说,这意味着为了克服直接傅立叶域公式的局限性,需要在转换图像块和训练算法之间建立更深入的联系。

2.3 Subsequent work

自这项工作的初始版本 [29] 以来,所提出的循环移位模型的一个有趣的时域变体已非常成功地用于视频事件检索 [30]。还提出了将线性相关滤波器推广到多通道的方法[31]、[32]、[33],其中一些是在我们最初工作的基础上提出的。这使他们能够利用更现代的特征(例如,方向梯度直方图-HOG)。还提出了对其他线性算法(如支持向量回归)的推广[31]。我们必须指出,所有这些工作都以离线训练为目标,因此依赖于较慢的解算器[31]、[32]、[33]。相反,我们专注于快速的元素操作,这更适合实时跟踪,即使使用内核技巧。

3 贡献

这项工作的初步版本已在早期介绍过[29]。它首次证明了具有循环移位样本的岭回归与经典相关滤波器之间的联系。这使得使用 O ( n l o g n ) O(nlogn) O(nlogn)快速傅立叶变换而不是昂贵的矩阵代数进行快速学习成为可能。还提出了第一个核化相关滤波器,但仅限于单个信道。此外,它还提出了在所有循环移位时计算核的闭式解。这些具有相同的 O ( n l o g n ) O(nlogn) O(nlogn) 计算成本,并且是针对径向基核和点积核导出的。

目前的工作在很大程度上补充了初始版本。使用更简单的对角化技术重新推导了所有原始结果(第4.6节)。我们将原始工作扩展到处理多个通道,从而允许使用最先进的功能,从而显著提高性能(第7节)。初始结果中添加了大量新的分析和直观的解释。我们还将原始实验从 12 个视频扩展到 50 个视频,并添加了基于方向梯度直方图 (HOG) 特征而不是原始像素的核化相关滤波器 (KCF) 跟踪器的新变体。通过线性内核,我们另外提出了一个计算复杂度非常低的线性多通道滤波器,几乎可以匹配非线性内核的性能。我们将其命名为双相关滤波器(DCF),并说明它与一组最近更昂贵的多通道滤波器的关系[31]。实验证明,KCF在没有任何特征提取的情况下,其性能已经优于线性滤波器。借助 HOG 特征,线性 DCF 和非线性 KCF 的性能都大大优于 Struck [7] 或 Track-Learn-Detect(TLD) [4] 等顶级跟踪器,同时以每秒数百帧的速度轻松运行。

4 BUILDING BLOCKS

在这一部分中,我们提出了一个分析模型,用于在不同的转换中提取图像块,并计算出对线性回归算法的影响。我们将展示与经典相关滤波器的自然内在联系。我们开发的工具将允许我们研究第5.7节中更复杂的算法。

4.1 线性回归

我们将重点讨论岭回归,因为它允许一个简单的闭式解,并且可以实现接近更复杂方法的性能,例如支持向量机[8]。训练的目标是找到一个函数 f ( z ) = w T z f(z)=w^Tz f(z)=wTz,最小化样本 x i x_i xi及其回归目标 y i y_i yi的平方误差,
min ⁡ w ∑ i ( f ( x i ) − y i ) 2 + λ ∥ w ∥ 2 (1) \min_{w}\sum_{i}(f(x_i)-y_i)^2+\lambda\|w\|^2 \tag{1} wmini(f(xi)yi)2+λw2(1)

λ \lambda λ是一个控制过拟合的正则化参数,如在SVM中。如前所述,极小值有一个闭合形式,由[8]给出
w = ( X T X + λ I ) − 1 X T y (2) w=(X^TX+\lambda{I})^{-1}X^Ty \tag{2} w=(XTX+λI)1XTy(2)

其中,数据矩阵 X X X 每行 x i x_i xi 有一个样本, y y y 的每个元素是回归目标 y i y_i yi I I I 是一个单位矩阵。

从第4.4节开始,我们必须在傅里叶域中工作,在其中,量通常是复变量。它们并不难处理,只要我们使用公式2的复杂版本,
w = ( X H X + λ I ) − 1 X H y (3) w=(X^HX+\lambda{I})^{-1}X^Hy \tag{3} w=(XHX+λI)1XHy(3)

其中 X H X^H XH 是 Hermitian 转置,即 X H = ( X ∗ ) T X^H= (X^∗)^T XH=(X)T X ∗ X^∗ X X X X 的复共轭。对于实数,等式3退化到等式2。

一般来说,必须求解一个大型线性方程组来计算解,这在实时设置中可能会变得令人望而却步。在接下来的段落中,我们将看到 x i x_i xi 的一个特殊情况,它绕过了这个限制。
在这里插入图片描述

图2.基准样品的垂直循环位移示例。我们的傅立叶域公式允许我们使用基本样本的所有可能循环移位(垂直和水平)来训练跟踪器,而无需显式迭代。可以看到包裹边缘的瑕疵(最左侧图像的顶部),但通过余弦窗口和填充可以减轻瑕疵。

4.2 循环移位

为了简化符号,我们将重点讨论单通道一维信号。这些结果以简单的方式推广到多通道二维图像(第7节)。

考虑一个 n × 1 n×1 n×1的向量,该向量表示具有感兴趣对象的patch,表示为 x x x。我们将其称为基础样本。我们的目标是用基础样本(正例)和通过变换它获得的几个虚拟样本(作为负例)来训练分类器。我们可以通过循环移位算子对这个向量的一维平移进行建模,也就是置换矩阵。
P = [ 0 0 0 ⋯ 1 1 0 0 ⋯ 0 0 1 0 ⋯ 0 ⋮ ⋮ ⋱ ⋱ ⋮ 0 0 ⋯ 1 0 ] (4) P= \begin{bmatrix} 0 & 0 & 0 & \cdots & 1 \\ 1 & 0 & 0 & \cdots & 0 \\ 0 & 1 & 0 & \cdots & 0 \\ \vdots & \vdots &\ddots&\ddots & \vdots\\ 0& 0 & \cdots &1& 0 \\ \end{bmatrix} \tag{4} P= 0100001000011000 (4)

乘积 P x = [ x n , x 1 , x 2 , . . . , x n − 1 ] T Px = [x_n, x_1, x_2, . . . , x_{n−1}]T Px=[xn,x1,x2,...,xn1]T x x x 移动一个元素,建模一个小平移。我们可以通过使用矩阵幂 P u x P^ux Pux来连锁 u u u次移位以实现更大的平移。负 u u u将反向移动。使用该模型水平平移的1D信号如图3所示,图2中显示出了2D图像的示例。

细心的读者会注意到,最后一个元素缠绕在一起,导致相对于真实变换的一些失真。但是,可以通过适当的填充和开窗来减轻这种不良属性(第 A.1 节)。即使对于相对较大的平移(见图2),信号的大部分元素仍能正确建模,这一事实解释了循环移位在实践中效果良好的观察结果。

由于循环特性,我们每 n n n个移位周期性地得到相同的信号 x x x。这意味着通过以下方式获得全部移位信号
{ P u x ∣ u = 0 , ⋯   , n − 1 } (5) \{P^ux|u=0,\cdots,n-1\}\tag{5} {Puxu=0,,n1}(5)

同样,由于循环性质,我们可以等效地将此集合的前半部分视为正向位移,后半部分视为负向位移。

在这里插入图片描述

图3.循环矩阵的图示。这些行是矢量图像的循环移位,或其在1D中的平移。同样的性质也适用于包含2D图像的循环矩阵。

4.3 循环矩阵

为了计算带有移位样本的回归,我们可以使用等式5的集合作为数据矩阵 X X X的行:
P = [ x 1 x 2 x 3 ⋯ x n x n x 1 x 2 ⋯ x n − 1 x n − 1 x n x 1 ⋯ x n − 2 ⋮ ⋮ ⋮ ⋱ ⋮ x 2 x 3 x 4 ⋯ x 1 ] (6) P= \begin{bmatrix} x_1 & x_2 & x_3 & \cdots & x_n \\ x_n & x_1 & x_2 & \cdots & x_{n-1} \\ x_{n-1} & x_n & x_1 & \cdots & x_{n-2} \\ \vdots & \vdots &\vdots&\ddots & \vdots\\ x_2 & x_3 & x_4 & \cdots & x_1 \\ \end{bmatrix} \tag{6} P= x1xnxn1x2x2x1xnx3x3x2x1x4xnxn1xn2x1 (6)

图3中给出了所得图案的图示。我们刚刚得到的是一个循环矩阵,它有几个有趣的性质。请注意,模式是确定性的,并且完全由第一行的生成向量 x x x指定。

也许最令人惊奇和有用的是,所有循环矩阵都是通过离散傅立叶变换(DFT)形成对角线的,而不管生成向量 x x x如何[34]。这可以表示为
X = F d i a g ( x ^ ) F H (7) X=Fdiag(\hat{x})F^H \tag{7} X=Fdiag(x^)FH(7)

其中, F F F是不依赖于 x x x的常数矩阵,且 x ^ \hat{x} x^表示生成向量的DFT, x ^ = F ( x ) \hat{x}=\mathcal{F}(x) x^=F(x)

常数矩阵 F F F称为DFT矩阵,是计算任何输入向量DFT的唯一矩阵,如 F ( z ) = n F z \mathcal{F}(z)=\sqrt{n}Fz F(z)=n Fz。这是可能因为DFT是一种线性操作。

式7表示一般循环矩阵的特征分解。共享的确定性特征向量F是许多不常见特征的根源,例如交换性或闭式逆。

4.4 Putting it all together

当训练数据由循环移位组成时,我们现在可以应用这一新知识简化等式3中的线性回归。能够单独处理对角矩阵非常有吸引力,因为所有操作都可以在对角元素上按元素进行。

以术语 X H X X^HX XHX为例,它可以看作是一个非中心协方差矩阵。替换其中的等式7,
X H X = F d i a g ( x ^ ∗ ) F H F d i a g ( x ^ ) F H (8) X^HX=Fdiag(\hat{x}^{\ast})F^HFdiag(\hat{x})F^H \tag{8} XHX=Fdiag(x^)FHFdiag(x^)FH(8)

由于对角矩阵是对称的,因此采用 Hermitian 转置只会留下复共轭, x ^ ∗ \hat{x}^{\ast} x^。此外,我们可以消除因子 F H F = I F^HF = I FHF=I。这个性质是 F 的单一性,可以在许多表达式中消除。 我们只剩下
X H X = F d i a g ( x ^ ∗ ) d i a g ( x ^ ) F H (9) X^HX=Fdiag(\hat{x}^{\ast})diag(\hat{x})F^H \tag{9} XHX=Fdiag(x^)diag(x^)FH(9)

因为对角矩阵上的运算是逐元素的,所以我们可以将逐元素积定义为 ⊙ \odot 并获得
X H X = F d i a g ( x ^ ∗ ⊙ x ^ ) F H (10) X^HX=Fdiag(\hat{x}^{\ast}\odot\hat{x})F^H \tag{10} XHX=Fdiag(x^x^)FH(10)

一个有趣的方面是,括号中的向量被称为信号 x x x的自相关(在傅立叶域中,也称为功率谱[21])。在经典的信号处理中,它包含了一个时变过程对于不同的时滞或空间的方差。

以上步骤总结了使用循环矩阵对角化表达式所采用的一般方法。将它们递归地应用于线性回归的完整表达式(公式3),我们可以将大多数量放在对角线内,
w ^ = d i a g ( x ^ ∗ x ^ ∗ ⊙ x ^ + λ ) y ^ (11) \hat{w}=diag(\frac{\hat{x}^{\ast}}{\hat{x}^{\ast}\odot{\hat{x}}+\lambda})\hat{y} \tag{11} w^=diag(x^x^+λx^)y^(11)

或者更好写成:
w ^ = x ^ ∗ ⊙ y ^ x ^ ∗ ⊙ x ^ + λ (12) \hat{w}=\frac{\hat{x}^{\ast}\odot{\hat{y}}}{\hat{x}^{\ast}\odot{\hat{x}}+\lambda} \tag{12} w^=x^x^+λx^y^(12)

分数表示按元素划分。我们可以使用逆 DFT 在空间域中轻松恢复 w w w,其成本与前向 DFT 相同。附录A.5中给出了产生公式12的递归对角化的详细步骤。

在这一点上,我们刚刚从经典信号处理中发现了一个意想不到的公式-解决方案是正则化相关滤波器。在进一步探索这种关系之前,我们必须强调公式12的计算效率,与显式提取patch和解决一般回归问题的流行方法相比。例如,岭回归的成本为 O ( n 3 ) O(n^3) O(n3),受矩阵求逆和乘积的约束。另一方面,等式12中的所有操作都是元素级的 O ( n ) O(n) O(n),除了DFT,DFT将成本限制在接近线性的 O ( n l o g ( n ) ) O(nlog(n)) O(nlog(n))上。对于典型的数据大小,这将存储和计算减少几个数量级。

4.5 与相关滤波器的关系

自80年代以来,相关滤波器一直是信号处理的一部分,在傅立叶域中有无数目标函数的解决方案。最近,他们重新出现在MOSSE滤波器中,尽管其简单且FPS率高,但在跟踪方面表现出了卓越的性能。

这些滤波器的解决方案类似于公式12(见附录A.2),但有两个关键区别。首先,MOSSE滤波器是从傅里叶域中专门制定的目标函数导出的。其次,以特殊方式添加 λ λ λ正则化器,以避免被零除。我们上面展示的推导通过将起点指定为带循环移位的岭回归,并得出相同的解,增加了相当多的洞察力。循环矩阵使我们能够丰富经典信号处理和现代相关滤波器提出的工具集,并将傅立叶技巧应用于新算法。在下一节中,我们将看到一个这样的例子,即训练非线性滤波器。

5 非线性回归

允许使用更强大的非线性回归函数 f ( z ) f(z) f(z)的一种方法是使用“内核技巧”。最吸引人的是,优化问题仍然是线性的,尽管是在不同的变量集(对偶空间)中。缺点是,计算 f ( z ) f(z) f(z)的复杂性通常会随着样本数的增加而增加。然而,使用我们的新分析工具,我们将证明有可能克服这一限制,并获得与线性相关滤波器一样快的非线性滤波器,用于训练和评估。

5.1 kernel trick—brief overview

本节将简要回顾内核技巧,并定义相关符号。

使用核技巧将线性问题的输入映射到非线性特征空间 φ ( x ) \varphi(x) φ(x),包括:

(1)将解 w 表示为样本的线性组合:
w = ∑ i α i φ ( x i ) (13) w=\sum_i\alpha_i\varphi(x_i) \tag{13} w=iαiφ(xi)(13)

因此,优化变量为 α α α,而不是 w w w

这种替代表示 α α α 被称为在对偶空间中,而不是原始空间 w w w(Representer Theorem)

(2)根据点积 φ T ( x ) φ ( x ′ ) = κ ( x , x ′ ) \varphi^T(x)\varphi(x')=\kappa(x,x') φT(x)φ(x)=κ(x,x)编写算法,使用核函数 κ κ κ计算(例如,高斯或多项式)
所有样本对之间的点积通常存储在一个n×n核矩阵K中,其中包含元素
K i , j = κ ( x i , x j ) (14) K_{i,j}=\kappa(x_i,x_j) \tag{14} Ki,j=κ(xi,xj)(14)

核技巧的威力来自于隐式使用高维特征空间 φ ( x ) \varphi(x) φ(x),而无需在该空间中实例化向量。不幸的是,这也是它最大的弱点,因为回归函数的复杂性随着样本数的增加而增加,
f ( z ) = w T z = ∑ i n α i κ ( z , x i ) (15) f(z)=w^Tz=\sum_i^{n}{\alpha_i\kappa(z,x_i)}\tag{15} f(z)=wTz=inαiκ(z,xi)(15)
在接下来的部分中,我们将展示如何避免核技巧的大多数缺点,假设数据是循环的。

5.2 快速核回归

[8]给出了岭回归的核化版本的解决方案

α = ( K + λ I ) − 1 y (16) \alpha = (K+\lambda{I})^{-1}y \tag{16} α=(K+λI)1y(16)

其中 K K K是核矩阵, α α α是表示对偶空间中解的系数 α i α_i αi的向量。

现在,如果我们可以证明 K K K对于循环移位的数据集是循环的,我们可以对等式16进行对角化,并获得线性情况下的快速解。这似乎在直觉上是正确的,但在一般情况下并不成立。任意非线性映射 φ ( x ) φ(x) φ(x) 不能保证我们保留任何类型的结构。但是,我们可以强加一个允许 K 循环的条件。 事实证明它相当广泛,适用于大多数有用的内核。

Theorem 1. 给定循环数据 C ( x ) C (x) C(x),如果对于任何置换矩阵 M M M,核函数满足 κ ( x , x ′ ) = κ ( M x , M x ′ ) κ(x,x') = κ(Mx, Mx') κ(x,x)=κ(Mx,Mx),则对应的核矩阵 K K K 是循环的。

有关证明,请参见附录A.2。这意味着,为了使内核保持循环结构,它必须平等地对待数据的所有维度。幸运的是,这包括了最有用的内核。

Example 2. 下列核函数满足定理1:

  • 径向基函数核——例如高斯核
  • 点积核——例如,线性、多项式
  • 加性核——例如,交集、 χ 2 \chi^2 χ2和Hellinger核
  • 指数加性核

检查这一事实很容易,因为同时重新排列 x x x x 0 x_0 x0的维度不会改变这些内核的 κ ( x , x ′ ) κ(x,x') κ(x,x)。这适用于通过交换操作组合维度的任何内核,例如sum、product、min和max。

知道我们可以使用哪些内核来使 K K K 循环,就可以像在线性情况下一样对等式16进行对角化,获得
α ^ = y ^ k ^ x x + λ (17) \hat{\alpha}=\frac{\hat{y}}{\hat{k}^{xx}+\lambda} \tag{17} α^=k^xx+λy^(17)

其中, k x x k^{xx} kxx是核矩阵 K = C ( k x x ) K=C(k^{xx}) K=C(kxx)的第一行, ˆ ˆ ˆ表示向量的DFT。详细推导见附录A.3。

为了更好地理解 k x x k^{xx} kxx 的作用,我们发现定义更一般的内核相关性很有用。两个任意向量 x x x x ′ x' x的核相关是包含元素的向量 k x x ′ k^{xx'} kxx
k i x x ′ = κ ( x ′ , P i − 1 x ) (18) k_i^{xx'}=\kappa(x',P^{i-1}x) \tag{18} kixx=κ(x,Pi1x)(18)

换句话说,它包含为两个参数的不同相对位移计算的内核。那么, k ^ x x {\hat{k}^{xx}} k^xx是在傅里叶域中 x x x与其自身的核相关性。我们可以将其称为核自相关,类似于线性情况。

这个类比可以更进一步。由于内核相当于高维空间 φ ( ⋅ ) \varphi(\cdot) φ()中的点积,因此查看等式18的另一种方法是
k i x x ′ = φ T ( x ′ ) φ ( P i − 1 x ) (19) k_i^{xx'}=\varphi^T(x')\varphi(P^{i-1}x) \tag{19} kixx=φT(x)φ(Pi1x)(19)

这是高维空间 φ ( ⋅ ) \varphi(\cdot) φ() x x x x ′ x' x的互相关。

请注意,我们只需要计算和操作核自相关,即 n × 1 n×1 n×1向量,它随样本数线性增长。这与传统的核方法相反,核方法需要计算一个n×n核矩阵,并与样本进行二次缩放。我们对 K K K的精确结构的了解使我们比一般算法做得更好。找到最佳α并不是唯一可以加速的问题,因为在检测跟踪设置中,转换的patch无处不在。

5.3 快速检测

我们很少单独计算一个图像patch的回归函数 f ( z ) f(z) f(z)。为了检测感兴趣的对象,我们通常希望在多个图像位置上评估 f ( z ) f(z) f(z),即多个候选patch。这些patch可以通过循环移位来建模。

K z K^z Kz 表示所有训练样本和所有候选patch之间的(不对称)核矩阵。由于样本和patch分别是基础样本 x x x 和基础patch $z $的循环移位,因此 K z K^z Kz 的每个元素由 κ ( P i − 1 z , P j − 1 x ) κ(P^{i-1}z, P^{j-1}x) κ(Pi1z,Pj1x) 给出。很容易证明这个核矩阵满足定理1,并且对于适当的核是循环的。

与第5.2节类似,我们只需要第一行来定义内核矩阵:
K z = C ( k x z ) (20) K^z = C(k^{xz}) \tag{20} Kz=C(kxz)(20)

其中 k x z k^{xz} kxz x x x z z z的核相关性,如前所述。

根据公式15,我们可以计算所有候选patch的回归函数
f ( z ) = ( K z ) T α (21) f(z)=(K^z)^T\alpha \tag{21} f(z)=(Kz)Tα(21)

注意, f ( z ) f(z) f(z)是一个向量,包含 z z z的所有循环移位的输出,即完整的检测响应。为了高效计算等式21,我们将其对角化得到:
f ^ ( z ) = k ^ x z ⊙ α ^ (22) \hat{f}(z)=\hat{k}^{xz}\odot{\hat{\alpha}} \tag{22} f^(z)=k^xzα^(22)

直观地说,在所有位置计算 f ( z ) f(z) f(z)可以看作是对核值 k x z k^{xz} kxz的空间过滤操作。

每个 f ( z ) f(z) f(z) k x z k^{xz} kxz中相邻核值的线性组合,由学习系数 α α α加权。由于这是一种滤波操作,因此可以在傅立叶域中更有效地表示。

6 FAST KERNEL CORRELATION

尽管我们已经找到了更快的训练和检测算法,但它们仍然依赖于分别计算一个核相关性(分别为 k x x k^{xx} kxx k x z k^{xz} kxz)。回想一下,核相关包括计算两个输入向量的所有相对位移的核。这代表了最后一个存在的计算瓶颈,因为对于大小为 n n n 的信号,对 n n n 个内核进行简单的评估将具有二次复杂度。然而,使用循环移位模型将允许我们有效地利用这种昂贵计算中的冗余。

6.1 Dot-product and polynomial kernels

对于某些函数 g g g,点积核的形式为 κ ( x , x ′ ) = g ( x T x ′ ) \kappa(x,x')=g(x^Tx') κ(x,x)=g(xTx)。那么, κ x x ′ \kappa^{xx'} κxx有元素
k i x x ′ = κ ( x ′ , P i − 1 x ) = g ( x ′ T P i − 1 x ) (23) k_i^{xx'}=\kappa(x',P^{i-1}x)=g(x'^TP^{i-1}x) \tag{23} kixx=κ(x,Pi1x)=g(xTPi1x)(23)

g g g也在任何输入向量上按元素工作。这样我们就可以用向量形式写出等式23
k x x ′ = g ( C ( x ) x ′ ) (24) k^{xx'}=g(C(x)x')\tag{24} kxx=g(C(x)x)(24)

这使得它很容易成为对角化的目标
k x x ′ = g ( F − 1 ( x ^ ∗ ⊙ x ^ ′ ) ) (25) k^{xx'}=g(\mathcal{F}^{-1}(\hat{x}^{\ast}\odot{\hat{x}'})) \tag{25} kxx=g(F1(x^x^))(25)

其中 F − 1 \mathcal{F}^{−1} F1表示逆DFT。

特别是对于多项式核 κ ( x , x ′ ) = ( x T x ′ + a ) b \kappa(x,x')=(x^Tx'+a)^b κ(x,x)=(xTx+a)b
k x x ′ = ( F − 1 ( x ^ ∗ ⊙ x ^ ′ ) + a ) b (26) k^{xx'}=(\mathcal{F}^{-1}(\hat{x}^{\ast}\odot{\hat{x}'})+a)^b \tag{26} kxx=(F1(x^x^)+a)b(26)

然后,只需使用少量DFT/IDFT和元素操作即可在 O ( n l o g n ) O(nlogn) O(nlogn)时间内计算这些特定内核的内核相关性。

6.2 Radial Basis Function and Gaussian kernels

对于某些函数h,RBF核形式为 κ ( x , x ′ ) = h ( ∥ x − x ′ ∥ 2 ) \kappa(x,x')=h(\|x-x'\|^2) κ(x,x)=h(xx2)。那么, κ x x ′ \kappa^{xx'} κxx有元素
k i x x ′ = κ ( x ′ , P i − 1 x ) = h ( ∥ x − x ′ ∥ 2 ) (27) k_i^{xx'}=\kappa(x',P^{i-1}x)=h(\|x-x'\|^2)\tag{27} kixx=κ(x,Pi1x)=h(xx2)(27)

我们将展示(等式29),这实际上是点积内核的一个特例。我们只需要展开范数
k i x x ′ = κ ( x ′ , P i − 1 x ) = h ( ∥ x ∥ 2 + ∥ x ′ ∥ 2 − 2 x ′ T P i − 1 x ) (28) k_i^{xx'}=\kappa(x',P^{i-1}x)=h(\|x\|^2+\|x'\|^2-2x'^TP^{i-1}x)\tag{28} kixx=κ(x,Pi1x)=h(x2+x22xTPi1x)(28)

根据 Parseval 定理,置换 P i − 1 P^{i−1} Pi1 不影响 x x x 的范数。由于 ∥ x ∥ 2 \|x\|^2 x2 ∥ x ′ ∥ 2 \|x'\|^2 x2关于 i i i是常量,等式28和点积核(等式23)有相同的形式。利用上一部分的结果,
k i x x ′ = κ ( x ′ , P i − 1 x ) = h ( ∥ x ∥ 2 + ∥ x ′ ∥ 2 − 2 F − 1 ( x ^ ∗ ⊙ x ^ ′ ) ) (29) k_i^{xx'}=\kappa(x',P^{i-1}x)=h\Big(\|x\|^2+\|x'\|^2-2\mathcal{F}^{-1}(\hat{x}^{\ast}\odot{\hat{x}'})\Big)\tag{29} kixx=κ(x,Pi1x)=h(x2+x22F1(x^x^))(29)

作为一个特别有用的特例,对于高斯核 κ ( x , x ′ ) = e x p ( − 1 σ 2 ∥ x − x ′ ∥ 2 ) \kappa(x,x')=exp\Big(-\frac{1}{\sigma^{2}}\|x-x'\|^2\Big) κ(x,x)=exp(σ21xx2),我们有
k i x x ′ = κ ( x ′ , P i − 1 x ) = e x p ( − 1 σ 2 ( ∥ x ∥ 2 + ∥ x ′ ∥ 2 − 2 F − 1 ( x ^ ∗ ⊙ x ^ ′ ) ) ) (30) k_i^{xx'}=\kappa(x',P^{i-1}x)=exp\bigg(-\frac{1}{\sigma^2}\Big(\|x\|^2+\|x'\|^2-2\mathcal{F}^{-1}(\hat{x}^{\ast}\odot{\hat{x}'})\Big)\bigg)\tag{30} kixx=κ(x,Pi1x)=exp(σ21(x2+x22F1(x^x^)))(30)

与之前一样,我们可以只在 O ( n l o g n ) O(nlogn) O(nlogn)时间内计算完整的内核相关性。

6.3 Other kernels

前两节的方法依赖于核值不会被酉变换(例如 DFT)改变。这通常不适用于其他内核,例如交叉内核。我们仍然可以使用快速的训练和检测结果(第5.2节和第5.3节),但必须使用更昂贵的滑动窗口方法来评估核相关性。

7 多通道

在本节中,我们将看到在对偶中工作的优点是允许多个通道(例如 HOG 描述符 [20] 的方向箱),只需在傅里叶域中对它们求和即可。该特性扩展到线性情况,在特定条件下大大简化了最近提出的多通道相关滤波器。

7.1 General case

为了处理多个通道,在本节中,我们将假设向量 x x x 连接 C C C 通道的各个向量。(例如,HOG 变体 [20] 的 31 个梯度方向箱),如 x = [ x 1 , . . . , x C ] x = [x_1, . . . ,x_C] x=[x1,...,xC]

请注意,第6节中研究的所有内核都基于点积或参数的范数。点积可以通过简单地对每个通道的各个点积求和来计算。通过DFT的线性,这允许我们对傅立叶域中每个通道的结果求和。作为一个具体的例子,我们可以将此推理应用于高斯核,获得等式30的多通道模拟,
k i x x ′ = κ ( x ′ , P i − 1 x ) = e x p ( − 1 σ 2 ( ∥ x ∥ 2 + ∥ x ′ ∥ 2 − 2 F − 1 ( x ^ c ∗ ⊙ x c ^ ′ ) ) ) (31) k_i^{xx'}=\kappa(x',P^{i-1}x)=exp\bigg(-\frac{1}{\sigma^2}\Big(\|x\|^2+\|x'\|^2-2\mathcal{F}^{-1}(\hat{x}_c^{\ast}\odot{\hat{x_c}'})\Big)\bigg)\tag{31} kixx=κ(x,Pi1x)=exp(σ21(x2+x22F1(x^cxc^)))(31)

值得强调的是,多个通道的集成不会导致更困难的推理问题——我们只需在计算内核相关性时对通道求和即可。

7.2 Linear kernel

对于线性核 κ ( x , x ′ ) = x T x ′ \kappa(x,x')=x^Tx' κ(x,x)=xTx,前面部分的多通道扩展只会产生
k x x ′ = F ( ∑ c x ^ c ∗ ⊙ x ^ c ′ ) (32) k^{xx'}=\mathcal{F}({\sum}_c\hat{x}_c^{\ast}\odot\hat{x}'_c) \tag{32} kxx=F(cx^cx^c)(32)

我们将其命名为双相关滤波器(DCF)。该滤波器是线性的,但在对偶空间α中训练。我们将很快讨论与其他多通道滤波器相比的优势。

最近,三个小组独立发现了线性相关滤波器对多个信道的扩展。在岭回归的情况下,通过将问题分解为每个DFT频率的一个线性系统,它们允许比非结构化算法更快的训练时间。Henriques等人[31]还将分解推广到其他训练算法。

然而,等式32表明,通过使用线性核的对偶运算,我们可以训练具有多个通道的线性分类器,但只使用元素操作。这在一开始可能出乎意料,因为这些工作需要更昂贵的矩阵求逆。

我们通过指出这是可能的,因为我们只考虑单个基样本 x x x来解决这个差异。在这种情况下,核矩阵 K = X X T K=XX^T K=XXT n × n n×n n×n的,与特征或通道的数量无关。它与基样本的 n n n个循环移位相关,并且可以通过DFT的 n n n个基对角化。由于 K K K是完全对角的,我们可以单独使用元素操作。然而,如果我们考虑两个基样本, K K K变成 2 n × 2 n 2n×2n 2n×2n,并且 n n n个DFT基不再足以完全对角化它。这种不完全对角化(块对角化)需要更高昂的操作来处理,这是这些工作中提出的。

有一个有趣的对称参数,使用多个基本样本和一个通道的训练可以在原始中完成,只需进行元素操作(附录A.6)。接下来,将相同的推理应用于非中心协方差矩阵 X T X X^TX XTX,而不是 X X T XX^T XXT。在这种情况下,我们获得原始的MOSSE滤波器。

总之,对于快速元素操作,我们可以选择多个通道(在双通道中,获得DCF)或多个基本样本(在原始通道中,获得MOSSE),但不能同时选择两者。这对时间关键型应用程序(如跟踪)有重要影响。一般情况下,成本要高得多,并且主要适用于离线训练应用程序。

8 实验

8.1 Tracking pipeline

我们在Matlab中实现了两个简单的跟踪器,分别基于所提出的高斯核相关滤波器(KCF)和线性核相关滤波器(DCF)。我们不报告多项式核的结果,因为它们实际上与高斯核的结果相同,并且需要更多的参数。我们测试了另外两种变体:一种直接作用于原始像素值,另一种作用于单元大小为4像素的HOG描述符,特别是Felzenszwalb的变体。请注意,在单通道(原始像素)的极限情况下,我们的线性DCF相当于MOSSE[9],但它的优点是还支持多个通道(例如HOG)。我们的跟踪器需要的参数很少,我们在表2中报告了我们使用的值,所有视频都是固定的。

KCF的大部分功能在算法1中以Matlab代码表示。与这项工作的早期版本 [29] 不同,它准备处理多个通道,作为输入数组的第 3 维。它实现了3个功能:train(等式17)、detect(等式22)和kernel_correlation(等式31),这是前两个功能所使用的。

追踪器的管道有意简单,不包括任何用于故障检测或运动建模的启发式方法。在第一帧中,我们在目标的初始位置使用图像patch训练模型。这个patch比目标大,以提供一些上下文。对于每个新帧,我们在前一个位置检测patch,并且目标位置更新为产生最大值的位置。最后,我们在新位置训练一个新模型,并将获得的 α 和 x 值与前一帧的值进行线性插值,为跟踪器提供一些内存。

算法1:Matlab代码,带高斯核

Inputs
• x: training image patch, m × n × c
• y: regression target, Gaussian-shaped, m × n
• z: test image patch, m × n × c
Output
• responses: detection score for each location, m × n

function alphaf = train(x, y, sigma, lambda)
k = kernel_correlation(x, x, sigma);
alphaf = fft2(y) ./ (fft2(k) + lambda);
end

function responses = detect(alphaf, x, z, sigma)
k = kernel_correlation(z, x, sigma);
responses = real(ifft2(alphaf .*fft2(k)));
end

function k = kernel_correlation(x1, x2, sigma)
c = ifft2(sum(conj(fft2(x1)) .*fft2(x2), 3));
d = x1(:)'*x1(:) + x2(:)'*x2(:) - 2*c;
k = exp(-1 / sigma^2*abs(d) / numel(d));
end

8.2 Evaluation

我们使用最近的一个基准测试来测试我们的跟踪器,该基准包括50个视频序列[11](见图1)。此数据集收集了以前工作中使用的许多视频,因此我们避免了过度拟合到一个小子集的危险。对于性能标准,我们没有选择平均位置误差或其他在帧上平均的度量,因为它们对丢失的跟踪器施加任意惩罚,这取决于机会因素(即丢失跟踪的位置),使它们不可比较。

我们在评估中选择的一种越来越流行的替代方法是精度曲线[11]、[5]、[29]。如果预测的目标中心在真实值的距离阈值内,则可以认为帧被正确跟踪。精度曲线仅显示在距离阈值范围内正确跟踪帧的百分比。请注意,通过绘制所有阈值的精度,不需要任何参数。这使得曲线明确且易于解释。低阈值下的更高精度意味着跟踪器更精确,而丢失的目标将阻止它在非常大的阈值范围内实现完美的精度。当需要具有代表性的精度分数时,所选的阈值为20像素,与以前的工作一样。

在这里插入图片描述
图4.所有50个序列的精确绘图。拟议的跟踪器(粗体)优于最先进的系统,如TLD和Strike,后者的实现更复杂,速度也慢得多(见表1)。

8.3 在完整数据集上的实验

我们首先总结表1和图4中所有视频的结果。为了进行比较,我们还报告了其他几个系统的结果,包括一些最具弹性的跟踪器,即Strike和TLD。与我们过于简单的实现(算法1)不同,这些跟踪器包含许多工程改进。Strike可以处理许多不同类型的特征和越来越多的支持向量。TLD专门用于重新检测,使用一组具有多个参数的结构规则。

尽管存在这种不对称性,我们的核化相关滤波器(KCF)已经可以通过单独对原始像素进行操作来达到具有竞争力的性能,如图4所示。在这种情况下,高斯核所产生的丰富的隐式特征比所提出的双相关滤波器(DCF)具有明显的优势。

我们注意到,具有单通道特征(原始像素)的DCF理论上等同于MOSSE滤波器[9]。为了进行直接比较,我们在图4中包含了作者的MOSSE跟踪器的结果。两者的性能非常接近,表明它们实现中的任何特定差异似乎都无关紧要。然而,我们提出的核化算法(KCF)在性能上确实有显著的提高。用HOG特性替换像素可以使KCF和DCF以相对较大的幅度超过TLD和STRICK(图4)。这表明,与使用类似功能的其他跟踪器相比,实现高性能的最关键因素是有效地合并来自目标环境的数千个负样本,而这样做的开销很小。

Timing. 如前所述,我们的封闭式解决方案的总体复杂性为 O ( n l o g n ) O(nlogn) O(nlogn),因此其速度很高(表1)。跟踪器的速度与跟踪区域的大小直接相关。这是比较基于相关滤波器的跟踪器时的一个重要因素。MOSSE[9]跟踪与目标对象具有相同支持的区域,而我们的实现跟踪的区域是大2.5倍(平均116x170)。减少跟踪区域将允许我们接近其FPS 615(表1),但我们发现这会影响性能,尤其是对于内核变体。表1中另一个有趣的观察结果是,在每个空间单元上操作31个HOG特征可能比在原始像素上操作快一些,尽管我们考虑了计算HOG特征的开销。由于每个4x4像素单元由一个HOG描述符表示,因此较小的DFT抵消了在特征通道上迭代的成本。KCF/DCF利用台式计算机的所有4个核心,只需不到2分钟即可处理全部50个视频(∼29000帧)。

在这里插入图片描述
表1.50个视频数据集的实验结果摘要。报告的数量是所有视频的平均值。报告的速度包括特征计算(例如HOG)。

8.4 Experiments with sequence attributes

基准数据集[11]中的视频带有属性注释,这些属性描述了跟踪器在每个序列中将面临的挑战,例如照明变化或遮挡。这些属性对于在如此大的数据集中诊断和描述跟踪器的行为非常有用,无需分析每个视频。我们在图5中报告了4个属性的结果:非刚性变形、遮挡、视线外目标和背景杂波。

我们的跟踪器的HOG变体对于非刚性变形和遮挡的鲁棒性并不令人惊讶,因为已知这些特征具有高度的区分性。然而,仅原始像素上的KCF仍然与Struck和TLD一样好,内核弥补了这些特性的缺点。

由于缺乏故障恢复机制,我们实施的系统面临的一个挑战是目标脱离视野。在这种情况下,TLD的性能比大多数其他跟踪器都要好,这说明了它专注于重新检测和故障恢复。此类工程改进可能会使我们的跟踪器受益,但KCF/DCF仍能优于TLD的事实表明,它们不是决定性因素。

背景杂波严重影响了几乎所有的跟踪器,除了提议的跟踪器,在较小程度上影响了 Struck。 对于我们的跟踪器变体,这是通过在跟踪对象周围隐含包含数千个负样本来解释的。由于在这种情况下,即使是我们跟踪器的原始像素变体的性能也非常接近最优,而 TLD、CT、ORIA 和 MIL 显示性能下降,我们推测这是由于它们对负样本的欠采样造成的。

我们还在图 7 中报告了其他属性的结果。通常,提出的跟踪器对 7 个挑战中的 6 个是最稳健的,除了低分辨率,它同样影响除 Struck 之外的所有跟踪器。

在这里插入图片描述
图5.具有属性的序列的精确绘图:遮挡、非刚性变形、视线外目标和背景杂波。建议的跟踪器(粗体)的HOG变型对所有这些干扰最具弹性。

9 结论和未来工作

在这项工作中,我们证明了对自然图像变换进行分析建模是可能的,表明在某些条件下,生成的数据和核矩阵是循环的。DFT对它们的对角化为创建处理变换的快速算法提供了一个总体蓝图。我们已将此蓝图应用于线性和内核岭回归,获得了以数百FPS速度运行且只需几行代码即可实现的最先进的跟踪器。扩展我们的基本方法似乎对其他问题很有用。自这项工作的第一个版本以来,循环数据已被成功地用于其他检测算法和视频事件检索。进一步工作的一个有趣方向是放宽周期边界的假设,这可能会提高性能。通过研究具有循环数据的其他目标函数,也可以获得许多有用的算法,包括SDF或MACE等经典滤波器[25]、[26],以及比平方损失更稳健的损失函数。我们还希望将此框架推广到其他操作符,例如仿射变换或非刚性变形。

附录A

  • A.1 实现细节

与相关滤波器的标准情况一样,输入patch(原始像素或提取的特征通道)通过余弦窗口进行加权,余弦窗口平滑地消除了由循环假设引起的图像边界处的不连续性。跟踪的区域有2.5倍个目标大小,以提供一些上下文和其他负样本。

回想一下,训练样本由基础样本的移位组成,因此我们必须为 y y y中的每个样本指定回归目标。回归目标 y y y简单地遵循高斯函数,对于中心目标,该函数的值为1,对于任何其他偏移,根据空间带宽 s s s平滑衰减为0。高斯目标比二进制标签更平滑,并且具有减少傅里叶域中的振铃伪影的好处。

在这里插入图片描述
表2.所有实验中使用的参数。在该表中,n和m是指目标的宽度和高度,以像素或HOG单元格为单位。

一个微妙的问题是确定y的哪个元素是居中样本的回归目标,我们将以高斯函数为中心。虽然从直觉上看,它似乎位于输出平面的中间(图6-a),但事实证明,正确的选择是左上角的元素(图6-b)。解释是,在计算傅里叶域中两幅图像之间的互相关并转换回空间域后,结果的左上角元素对应于零偏移。当然,由于我们总是处理循环信号,高斯函数的峰值必须从左上角环绕到其他角,如图6-b所示。在一些滤波器实现中,将高斯峰值置于回归目标的中间是常见的,这会导致相关输出不必要地偏移半个窗口,这必须在post-hoc 2 ^2 2进行校正。

在这里插入图片描述
图6.回归目标为y,遵循空间带宽为s的高斯函数(白色表示值为1,黑色表示值为0)。(a)将峰值置于中间将不必要地导致检测输出偏移半个窗口(在A.1节中讨论)。(b)将峰值放置在左上角的元素(并环绕)可使检测输出正确居中。

另一个常见的错误来源是,大多数快速傅立叶变换 3 ^3 3的实现都没有计算酉DFT。这意味着不保留信号的L2范数,除非通过常数因子校正输出。由于符号的一些滥用,我们可以说酉DFT可以计算为
F u ( x ) = f f t 2 ( x ) / s q r t ( m ∗ n ) (33) \mathcal{F}_u(x)=fft2(x)/sqrt(m*n) \tag{33} Fu(x)=fft2(x)/sqrt(mn)(33)

其中,输入 x x x的大小为 m × n m×n m×n,对于逆DFT也是如此,
F u − 1 ( x ) = i f f t 2 ( x ) ∗ s q r t ( m ∗ n ) (34) \mathcal{F}^{-1}_u(x)^{}=ifft2(x)*sqrt(m*n) \tag{34} Fu1(x)=ifft2(x)sqrt(mn)(34)

  • A.2 定理1的证明

在定理假设 κ ( x , x ′ ) = κ ( M x , M x ′ ) κ(x,x')=κ(Mx,Mx') κ(x,x)=κ(Mx,Mx)的情况下,对于任意置换矩阵 M M M,有
K i , j = κ ( P i x , P j x ) = κ ( P − i P i x , P − i P j x ) (35,36) K_{i,j}=\kappa(P^ix,P^jx)=\kappa(P^{-i}P^{i}x,P^{-i}P^{j}x) \tag{35,36} Ki,j=κ(Pix,Pjx)=κ(PiPix,PiPjx)(35,36)

用置换矩阵的已知性质,这将减少到
K i , j = κ ( P i x , P j x ) = κ ( x , P j − i x ) (37) K_{i,j}=\kappa(P^ix,P^jx)=\kappa(x,P^{j-i}x) \tag{37} Ki,j=κ(Pix,Pjx)=κ(x,Pjix)(37)

根据 P P P的循环性质,它每 n n n次方重复一次,即 P n = P 0 P^n=P^0 Pn=P0。因此,式37相当于
K i j = κ ( x , P ( j − i ) m o d n x ) (38) K_{ij}=\kappa(x,P^{(j-i)modn}x) \tag{38} Kij=κ(x,P(ji)modnx)(38)

其中 m o d mod mod是模运算(除以n的余数)。

我们现在使用循环矩阵的元素 X = C ( x ) X = C(x) X=C(x) (等式6) 满足
X i j = x ( ( j − i ) m o d n ) + 1 (39) X_{ij}=x_{((j-i)modn)+1} \tag{39} Xij=x((ji)modn)+1(39)

也就是说,如果它的元素只依赖于 ( j − i ) m o d n (j - i) mod n (ji)modn,一个矩阵是循环的。很容易检查等式6是否满足此条件,事实上,它通常被用作循环矩阵的定义。

因为 K i j K_{ij} Kij也依赖于 ( j − i ) m o d n (j - i) mod n (ji)modn,我们必须得出 K K K也是循环的结论,完成我们的证明。

  • A.3 循环数据核岭回归

本节显示了公式17的更详细推导。我们首先替换核岭回归公式(公式16)中的 K = C ( k x x ) K=C(k^{xx}) K=C(kxx),并对其进行对角化
α = ( C ( k x x + λ I ) − 1 y = ( F d i a g ( k ^ x x ) F H + λ I ) − 1 y (40,41) \alpha = (C(k^{xx}+\lambda{I})^{-1}y=\Big(Fdiag\Big(\hat{k}^{xx}\Big)F^H+\lambda{I}\Big)^{-1}y \tag{40,41} α=(C(kxx+λI)1y=(Fdiag(k^xx)FH+λI)1y(40,41)

通过简单线性代数和F的酉性: F F H = I FF^H=I FFH=I
α = ( F d i a g ( k ^ x x ) F H + λ F I F H ) − 1 y = F d i a g ( k ^ x x + λ ) − 1 F H y (42,43) \alpha =\Big(Fdiag\Big(\hat{k}^{xx}\Big)F^H+\lambda{F}{I}{F^H}\Big)^{-1}y=Fdiag\Big(\hat{k}^{xx}+\lambda \Big)^{-1}F^Hy\tag{42,43} α=(Fdiag(k^xx)FH+λFIFH)1y=Fdiag(k^xx+λ)1FHy(42,43)

相当于
F H α = d i a g ( k ^ x x + λ ) − 1 F H y (44) F^H\alpha=diag\Big(\hat{k}^{xx}+\lambda \Big)^{-1}F^Hy\tag{44} FHα=diag(k^xx+λ)1FHy(44)

因为对于任何向量 F z = z ^ Fz=\hat{z} Fz=z^,我们有
α ^ ∗ = d i a g ( 1 k ^ x x + λ ) y ^ ∗ (45) \hat{\alpha}^*=diag\Big(\frac{1}{\hat{k}^{xx}+\lambda}\Big)\hat{y}^* \tag{45} α^=diag(k^xx+λ1)y^(45)

最后,因为对角矩阵和向量的乘积就是它们的元素积,
α ^ ∗ = y ^ ∗ k ^ x x + λ (46) \hat{\alpha}^*=\frac{\hat{y}^*}{\hat{k}^{xx}+\lambda} \tag{46} α^=k^xx+λy^(46)

  • A.4 快速检测公式的推导

为了对等式21进行对角化,我们使用了与前一节中相同的属性。我们有
f ( z ) = ( C ( k x z ) ) T α = ( F d i a g ( k ^ x z ) F H ) T α = F H d i a g ( k ^ x z ) F α (47,48,49) f(z)=(C(k^{xz}))^T\alpha=\Big(Fdiag\Big(\hat{k}^{xz}\Big)F^H\Big)^T\alpha=F^Hdiag\Big(\hat{k}^{xz}\Big)F\alpha \tag{47,48,49} f(z)=(C(kxz))Tα=(Fdiag(k^xz)FH)Tα=FHdiag(k^xz)Fα(47,48,49)

相当于
F f ( z ) = d i a g ( k ^ x z ) F α (50) Ff(z)=diag\Big(\hat{k}^{xz}\Big)F\alpha \tag{50} Ff(z)=diag(k^xz)Fα(50)

复制上一节中相同的最后步骤,
f ^ ( z ) = k ^ x z ⊙ α ^ (51) \hat{f}(z)=\hat{k}^{xz}\odot{\hat{\alpha}} \tag{51} f^(z)=k^xzα^(51)

  • A.5 循环数据线性岭回归

这是第4.4节中步骤的更详细版本。这与内核的情况非常相似。我们首先用的公式10替换岭回归公式,即公式3。
w = ( F d i a g ( x ^ ∗ ⊙ x ^ ) F H + λ I ) − 1 X H y (52) w=(Fdiag(\hat{x}^{\ast}\odot\hat{x})F^H+\lambda{I})^{-1}X^Hy \tag{52} w=(Fdiag(x^x^)FH+λI)1XHy(52)

通过简单线性代数和 F F F的酉性,
w = ( F d i a g ( x ^ ∗ ⊙ x ^ ) F H + λ F H I F ) − 1 X H y = ( F d i a g ( x ^ ∗ ⊙ x ^ + λ ) F H ) − 1 X H y (53,54) w=(Fdiag(\hat{x}^{\ast}\odot\hat{x})F^H+\lambda{F^HIF})^{-1}X^Hy=\Big(Fdiag(\hat{x}^{\ast}\odot\hat{x}+\lambda){F^H}\Big)^{-1}X^Hy \tag{53,54} w=(Fdiag(x^x^)FH+λFHIF)1XHy=(Fdiag(x^x^+λ)FH)1XHy(53,54)
= F d i a g ( x ^ ∗ ⊙ x ^ + λ ) − 1 F H F d i a g ( x ^ ) F H y = F d i a g ( x ^ x ^ ∗ ⊙ x ^ + λ ) F H y (55,56) =Fdiag(\hat{x}^{\ast}\odot\hat{x}+\lambda)^{-1}{F^HFdiag(\hat{x})F^H}y=Fdiag\Big(\frac{\hat{x}}{\hat{x}^{*}\odot\hat{x}+\lambda}\Big)F^Hy \tag{55,56} =Fdiag(x^x^+λ)1FHFdiag(x^)FHy=Fdiag(x^x^+λx^)FHy(55,56)

这相当于
F w = d i a g ( x ^ x ^ ∗ ⊙ x ^ + λ ) F y (57) Fw=diag\Big(\frac{\hat{x}}{\hat{x}^{*}\odot\hat{x}+\lambda}\Big)Fy \tag{57} Fw=diag(x^x^+λx^)Fy(57)

因为对于任何向量 F z = z ^ Fz=\hat{z} Fz=z^
w ^ = d i a g ( x ^ x ^ ∗ ⊙ x ^ + λ ) y ^ (58) \hat{w}=diag\Big(\frac{\hat{x}}{\hat{x}^{*}\odot\hat{x}+\lambda}\Big)\hat{y} \tag{58} w^=diag(x^x^+λx^)y^(58)

我们可以更进一步,因为对角矩阵和向量的乘积就是它们的元素乘积。
w ^ = x ^ ∗ ⊙ y ^ x ^ ∗ ⊙ x ^ + λ (59) \hat{w}=\frac{\hat{x}^{*}\odot\hat{y}}{\hat{x}^{*}\odot\hat{x}+\lambda} \tag{59} w^=x^x^+λx^y^(59)

  • A.6 MOSSE滤波器

等式12和MOSSE滤波器[9]之间的唯一区别在于后者将多个基样本xi的误差(循环移位)最小化,而等式12是针对单个基样本x定义的。这样做是为了表达的清晰,并且很容易得出一般情况。另请注意,MOSSE 不支持多通道,这是我们通过双重公式实现的。

每个基样本 x i x_i xi的循环移位可以用循环矩阵 X i X_i Xi表示。然后,通过直接应用分块矩阵乘积规则替换公式3中的数据矩阵 X ′ = [ X 1 X 2 ⋮ ] X'=\begin{bmatrix}X_1\\X_2\\ \vdots \\ \end{bmatrix} X= X1X2 得到
w = ∑ j ∑ i ( X i H X i + λ I ) − 1 X j H y (60) w=\sum_j\sum_i\Big(X_i^HX_i+\lambda{I}\Big)^{-1}X_j^Hy \tag{60} w=ji(XiHXi+λI)1XjHy(60)

考虑括号内的表达式,
w = ( ∑ i X i H X i + λ I ) − 1 ( ∑ i X i H ) y (61) w=\Big(\sum_iX_i^HX_i+\lambda{I}\Big)^{-1}\Big(\sum_iX_i^H\Big)y \tag{61} w=(iXiHXi+λI)1(iXiH)y(61)

除了和之外,等式61看起来与等式3完全相同。然后按照与第 4.4 节相同的步骤来
对角化,得到滤波器方程
w ^ = ∑ i x i ^ ∗ ⊙ y ^ ∑ i x ^ i ∗ ⊙ x ^ i + λ (62) \hat{w}=\frac{\sum_i\hat{x_i}^{*}\odot\hat{y}}{\sum_i\hat{x}_i^{*}\odot\hat{x}_i+\lambda} \tag{62} w^=ix^ix^i+λixi^y^(62)

在这里插入图片描述
图7.数据集6个属性的精度图。由于空间限制,平面内旋转被忽略。其结果实际上与平面外旋转的结果相同(如上),因为它们共享几乎相同的序列集。

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值