近期拜读了Jo ̃ao F. Henrique大神的KCF论文,该论文在IEEE2014发表,在2015年公开了Matlab与C版本的代码(数据集为OTB-50、OTB-100,在Matlab R2016b版本中,将代码中的show_video.m的第24行的Number改为NumberTitle,即可跑通)。
下面是对该论文的详细介绍。
如今大多数跟踪器的核心组件是判别分类器,其任务是区分目标和周围环境。为了适应自然图像变化,通常使用经过转化和缩放的样本块来训练该分类器。这样的样本集充满了冗余 --- 任何重叠的像素都被限制为相同。基于这个简单的观察,我们提出了数千个转化块的数据集分析模型。通过显示结果数据矩阵是循环的,我们可以使用离散傅立叶变换对其进行对角化,从而将存储和计算减少几个数量级。有趣的是,对于线性回归,我们的公式相当于一些最快竞争的跟踪器使用的相关滤波器。而对于核回归,我们推导出一种新的核化相关滤波器(KCF),与其他核算法不同,它具有与线性对应物完全相同的复杂度。在此基础上,我们还提出了一种线性相关滤波器的快速多通道扩展,通过线性核,我们称之为对偶相关滤波器(DCF)。 KCF和DCF在50个视频基准测试中的表现优于Struck或TLD等顶级跟踪器,尽管每秒运行数百帧,并且只需几行代码即可实现(算法1)。为了鼓励进一步的发展,我们的跟踪框架是开源的。
可以说,最近视觉跟踪研究中最大的突破之一是判别学习方法的广泛采用。跟踪任务是许多计算机视觉系统的关键组成部分,可以自然地指定为在线学习问题[1],[2]。给定包含目标的初始图像块,目标是训练学习一个分类器以区分目标和周围环境。该分类器可以在许多位置进行精细评估,以便在后续帧中检测它。当然,每个新检测都提供了一个新的图像块从而更新模型。
我们很容易专注于表征感兴趣的目标对象 - 分类器的正样本。然而,判别方法的核心原则是给予同样或者更多的相关环境 -- 即负样本。最常用的负样本是来自不同位置和尺度的图像块,它反映了在这些条件下评估分类器的先验知识。
一个极具挑战性的因素是可以从图像中获得几乎无限量的负样本。由于跟踪的时间敏感性,如今的跟踪器在尽可能多地合并样本和保持较低的计算需求之间保持得很好。通常的做法是每帧随机选择几个样本[3],[4],[5],[6],[7]。
虽然这样做的原因是可以理解的,但我们认为负样本的欠采样是阻碍跟踪绩效的主要因素。在本文中,作者开发了用于在不同的相对平移下分析地合并数千个样本的工具,而无需明确地迭代它们。这可以通过以下发现来实现:在傅立叶域中,如果我们使用特定的模型进行转换,一些学习算法实际上变得更容易。
这些分析工具,即循环矩阵,在流行的学习算法和经典信号处理之间提供了有用的桥梁。这意味着我们能够提出一种基于Kernel的脊回归[8]的跟踪器,它不会受到“核诅咒”的影响,它有较大的渐近复杂度,甚至比非结构化线性回归表现出更低的复杂性。而且它可以被视为线性相关滤波器的核化版本,它构成了可用的最快跟踪器的基础[9],[10]。我们利用与线性相关滤波器相同的计算复杂度的强大内核技巧。我们的框架轻松地包含多个特征通道,并且通过使用线性内核,我们展示了线性相关滤波器到多通道情况的快速扩展。
对检测跟踪的全面回顾超出了本文的范围,但我们将感兴趣的文章引用到两个极好的和最近的调查[1],[2]。最流行的方法是使用判别性外观模型[3],[4],[5],[6]。受统计机器学习方法的启发,它包含了在线训练分类器,来预测图像块中目标的存在与否。然后在许多候选块上测试该分类器从而找到最可能的位置。或者,也可以直接预测位置[7]。使用类标签的回归可以看作是分类,因此我们可以互换地使用这两个术语。
在关注与我们的分析方法更直接相关的文献之前,我们将讨论一些相关的跟踪器。逐个检测范例的典型例子包括基于支持向量机(SVM)[12],随机森林分类器[6]或弱分类变体[13],[5]。为了对跟踪有用,所有提到的算法都适用于在线学习。张等人[3]提出了一个固定随机基础的投影,以受压缩传感技术的启发来训练朴素贝叶斯分类器。为了直接预测目标的位置,而不是在给定的图像块中进行选取,Hare等人[7]基于大量的图像特征,采用了结构化输出SVM和高斯核。非判别性跟踪器的例子包括Wu等人的工作[14],他们将跟踪描述为一系列图像对齐目标。以及Sevilla-Lara和Learned-Miller [15],他们提出了一个基于分布领域的强外观描述符。 Kalal等人[4]的另一种判别性方法使用一组结构约束来指导增强分类器的采样过程。最后,Bolme等人[9]采用经典信号处理分析来推导快速相关滤波器。我们将在稍后更详细地讨论最后这两个的文章。
回想一下,我们的目标是有效地学习和检测转换的图像块。与我们的方法不同,到目前为止,大多数尝试都集中在试图清除不相关的图像块。在检测方面,可以使用分支定界来找到分类器响应的最大值,同时避免不希望的候选块[16]。不幸的是,在最坏的情况下,算法可能仍然需要迭代所有图像块。相关方法可以有效地找到一对图像中最相似的色块[17],但不会直接转换为我们的设置。虽然它并不排除详尽的搜索。但值得注意的是,使用快速但不准确的分类器来选择有可能的块,并且只在那些[18],[19]上应用完整但较慢的分类器。
在训练方面,Kalal等人[4]提出,使用结构约束从每个新图像中选择相关的样本块。这种方法相对昂贵,限制了可以使用的特征,并且需要仔细调整结构启发式;另一种流行的相关方法虽然主要用于离线检测学习,即负样本挖掘[20]。它包括在图像池上运行初始检测器,并选择任何错误的检测作为重新训练的样本。尽管两种方法都减少了训练样本的数量,但主要缺点是必须通过运行检测器来考虑候选块。
我们研究方向的最初动机是在跟踪中近期成功的相关滤波器的应用[9],[10]。事实证明,相关滤波器与更复杂的方法相比具有竞争力,但仅使用一小部分计算能力,数百帧/秒。他们利用了这样一个事实,即两个图像块的卷积(松散地,它们在不同相对转换中的点积)相当于傅里叶域中的元素乘积。因此,通过在傅里叶域中制定它们的目标,它们可以一次性指定用于若干平移或图像移位的线性分类器的期望输出。
从[21]中可以看出,在信号处理方面有数十年的研究中,傅立叶域方法可以非常有效。不幸的是,它也可能是非常有限的。我们希望,在傅里叶域上,同时利用计算机视觉方面的最新进展,例如更强大的功能,大边缘分类器和核方法[22],[20],[23]。
一些研究正朝该方向发展,并尝试将核方法应用于相关滤波器中[24],[25],[26],[27]。在这些工作中,必须区分两种类型的目标函数:一种是不考虑功率谱或图像转换,例如合成判别函数(SDF)滤波器[25],[26],以及另一种,即考虑功率谱或图像转换,例如最小平均相关能量[28],最佳权衡[27]和最小平方误差输出和(MOSSE)滤波器[9]。由于可以有效地忽略空间结构,前者更容易核化,并且已经提出了核SDF滤波器[26],[27],[25]。然而,在图像转换方面,由于缺乏非线性核和傅里叶域之间的相关性,将核技巧应用于其他滤波器更困难[25],[24],他们提出需要更高的计算时间和图像偏移数量的限制[24]。
这提示我们需要在图像块转换和训练算法之间建立更深层次的联系,以克服傅立叶域公式的局限性。
图1.与性能最佳的Struck和TLD相比,作者提出的核心相关滤波器(KCF)的结果。 在HOG特征上选择的是高斯核,上述截图是在最近的基准测试的50个视频中截取的[11]。 丢失的跟踪器用“x”表示。 KCF优于Struck和TLD,其实现最少且运行速度为172 FPS。表1:50个视频数据集的实验结果
自从这项工作的初始版本[29]以来,所提出的循环移位模型的一个有趣的时域变体已经非常成功地用于视频检索[30]。 还提出了线性相关滤波器到多通道的推广[31],[32],[33],其中的一些是基于我们的初始版本。 这允许他们利用更现代的特征(例如,方向梯度直方图 - HOG)。 还提出了对其他线性算法的推广,例如支持向量回归[31]。 这里必须指出,所有这些工作都以离线训练为目标,因此依赖于较慢的求解器[31],[32],[33]。 相比之下,我们专注于快速元素操作,甚至使用核技巧,它也更适合实时跟踪。
早期提出了这项工作的初级版本[29]。它首次证明了带有循环移位样本的脊回归和经典相关滤波器之间的联系。这使得用快速傅里叶变换的快速学习代替了昂贵的矩阵代数。还提出了第一个核相关滤波器,但仅限于单个通道。还提出了在所有循环移位中计算核的封闭式解决方案。它们具有相同的计算成本,并且是针对径向基和点积核导出的。
目前的工作是在初始版本基础上增加了重要的方法:(1)使用更简单的对角化技术重新导出所有原始结果(第4-6节)。(2)我们将原始工作扩展到多通道,这就让我们使用最先进的特征来显着提升性能(第7节)。(3)在初始工作中添加了大量新分析和直观解释。(4)我们还将原始实验从12个视频扩展到50个视频,并添加了基于方向梯度直方图(HOG)特征而非原始像素的核相关滤波器(KCF)跟踪器的新变体。(5)通过线性核,我们还提出了一种计算复杂度非常低的线性多通道滤波器,几乎与非线性内核的性能相匹配。我们将其命名为对偶相关滤波器(DCF),并展示了它与一组最近更昂贵的多通道滤波器的关系[31]。在实验上,我们证明了在没有任何特征提取的情况下,KCF已经比线性滤波器表现更好。凭借HOG功能,线性DCF和非线性KCF都可以在Struck [7]或Track-Learn-Detect(TLD)[4]等大型顶级跟踪器表现出色,同时可以在数百帧每秒的情况下轻松运行。
在本节中,我们提出了在不同平移下提取图像块的分析模型,并计算出对线性回归算法的影响。我们将展示与经典相关滤波器的自然底层连接,这将允许我们在第5-7节中研究更复杂的算法。
由于脊回归展现了一个简单的闭合式解决方案,并且可以实现接近更复杂方法的性能,例如支持向量机[8]。 训练阶段,我们需要找到一个函数,使得平方误差达到最小值,即
其中,为样本,为所回归的目标,为如同SVM中的控制过拟合的正则化参数。
文献[8]中给出了的闭合形式(2),由于在本文的4.4节中提出要在傅里叶域中进行运算,通常会出现复数值,故将转换为复数域:
(3)
其中,为厄米特转置。可以看到,由于涉及矩阵的求逆等复杂操作,从而使得计算复杂度过高。
我们首先讨论一下一维单通道信号,之后在第7节将推广至二维多通道图像。作者将维列向量作为基础样本,目的是使用基本样本(一个正样本)和通过转换获得的几个虚拟样本(即负样本)来训练一个分类器。 我们可以通过循环移位算子来建模该向量的一维转换,循环移位算子是置换矩阵。
那么表示向量的元素向右平移一个单位。
上图表示了维列向量组成的维循环矩阵, 由于循环特性,我们每个周期定期得到相同的信号。 这意味着可以获得整个移位信号,即有:
(5)
由上节分析可知,,即
上图3给出了得到的模式图示。我们刚刚得到的是一个循环矩阵,它具有几个有趣的特性[34],[35]。 请注意,该模式是确定性的,并且由生成向量(第一行)完全指定。而且无论生成向量 [34]如何,所有循环矩阵都通过离散傅立叶变换(DFT)(线性运算)进行对角化。 即有
(7)
其中,是一个与向量无关的常数矩阵,为进行离散傅立叶变换后的向量。(7)式表示了一般循环矩阵的特征分解。 共享的、确定性的特征向量F位于许多不常见特征的缘由。
对于常数矩阵的表示形式,在循环矩阵傅立叶对角化里面有详细的推导介绍,该傅立叶矩阵有酉矩阵和对称矩阵的性质,即,。
当训练数据由循环移位组成时,我们现在可以应用这一新知识来简化(3)式中的线性回归,由此便使得计算更加简单。
其中,由于上式中的第二行为两个对角矩阵的乘积,即对应对角元素的相应乘积,故用点积符号化简上式。将(10)式代入(3)式(论文附录A.5推导):
对上式左乘常数矩阵,得到:
(12)
对于计算复杂度,若只考虑脊回归,则为;而对于(12)式,其计算复杂度为,若除去最后一步的傅立叶矩阵计算,其复杂度为。
自80年代以来,相关滤波器一直是信号处理的一部分,在傅里叶域中解决了无数的目标函数[21],[28]。最近,他们作为MOSSE滤波器[9]重新出现在人们的视野中,尽管它们简单且具有处理极快,在跟踪方面表现出了卓越的性能。
这些过滤器的解决方案看起来像(12)式,但有两个关键的区别:首先,MOSSE滤波器源自在傅里叶域中设计一个特别的目标函数;其次,正则化器以点对点方式添加,以避免被零除。我们在上面展示的推导通过将起始点指定为具有循环移位的脊回归并且到达相同的结果。
循环矩阵丰富了经典信号处理和现代相关滤波器提出的工具集,并将傅里叶技巧应用于新算法。在下一节中,我们将在训练非线性滤波器中看到一个这样的实例。
使非线性回归函数更强大的的一种方法是使用“核技巧”[23]。 最有吸引力的是尽管是在一组不同的变量(在对偶空间)中,此优化问题仍然是线性的。 但我们必须注意一点,回归函数通常随着样本数量的增加而增加。然而,我们用了一种新的分析工具后克服了该限制,并获得与线性相关滤波器一样快的非线性滤波器,将其用于训练和评估。
使用核技巧将线性问题(原空间)的输入映射到非线性特征空间(对偶空间)(基向量):
1)将向量(原空间)表示为对偶空间中基向量的线性组合:
此时优化问题转化为求解向量。
2)定义核函数为向量之间的点积。
所有样本对之间的点积通常用维的核矩阵中:
(14)
核技巧的特点是采用来自隐式的高维特征空间,而无需实例化原空间中的向量,(15)。但因为回归函数的计算复杂度随着样本的数量的增加而增加,为了避免这一问题,我们采用了循环矩阵的性质特点。
在文献8中有对脊回归的核心思想:
(16)
上式是在对偶空间中的表示方式,为核矩阵,是由系数组成的向量。
现在,如果我们可以证明矩阵对于循环移位的数据集是循环的,对于(16)式,我们可以对矩阵进行对角化,并得到如同线性问题的快速解决方式。 任意非线性映射不能保证保留任何类型的结构。 但是,我们可以加一个使矩阵循环的条件。 事实证明它应用相当广泛,适用于大多数核。
定理1. 对于给定的循环数据和任意一个排列矩阵,当核函数满足时,相关核矩阵是循环矩阵。
证明:(在附录A.2中给出了证明)
由于核矩阵满足,那么假设矩阵的元素,对于任意一个排列矩阵则有:
(37)
由于,故(37)式可改写为 (38)
证毕。
下述的核函数都满足定理1:
(1)径向基函数核。例如:高斯核;
(2)点积核。例如:线性核、多项式核;
(3)加权核。例如:交集、和Hellinger核[36];
(4)指数加权核。
由于对和的重新排序不会改变它们的,所以该定理适用于任何维度中的可交换操作组合的任何核运算,例如求和、乘积、取最值。所以我们可以将(16)式作为线性情况对齐公式,用表示循环矩阵中的第一列向量,则由(7)式可得(在附录A.3中给出了求解):
作者定义了更通用的核相关,对于两个任意向量和,它们的核相关向量的第个元素为: (18),换句话说,它表示两个参数的不同相对位移进行评估的核函数,表示在傅立叶域中向量与其自身的核相关性。 我们可以将它称为类似于线性情况的核自相关。对应的,在高维空间中,核函数就用点积表示: (19)。可以看出,我们只需要计算和操作核自相关性即可,是一个维向量,随样本数量呈线性增长,这与核方法的传统观点相反,核方法需要计算维的核矩阵,与样本数量呈平方增长。
由于在逐个检测设置中无处不在的转换图像块,找到最佳的并不是唯一可以加速的方法。 在接下来的章节中,我们将研究循环移位模型对检测阶段和计算核相关的影响。
我们很少想要单独评估一个图像块的回归函数。 为了检测感兴趣的目标对象,我们通常希望在几个图像位置上评估,也就是说这几个候选块可以通过循环移位来建模。用表示所有训练样本和所有候选块之间的核矩阵(不对称)。 由于样本和图像块分别是基础样本和基础图像块的循环移位组成的,因此矩阵的每个元素可表示为:。 很容易验证该核矩阵满足定理1,并且对于适当的核函数是循环的。
与5.2节类似,我们只需要第一行来定义该核矩阵: (20)。由(15)式可知(在附录A.4中给出了求解),
对上式两边进行傅立叶变换,得: (22)。可以看出,在所有位置处评估函数可以被视为对核值的空间滤波操作。 每个评估函数都是来自相邻核值的与学习系数加权的线性组合,因为这是一个滤波操作,因此可以在傅里叶域中更有效地制定
尽管我们已经找到了很快的训练和检测算法,但它们仍依赖于计算每个图像块的核相关性(分别为和)。 回想一下,核相关包括为计算两个输入向量所有相对移位的核计算,这是最后一个常见的计算瓶颈,因为对于大小为的信号,对个内核的简单评估复杂度为,而使用循环移位模型将允许我们在这种昂贵的计算中有效地利用冗余。
点积核的形式为,对于两个任意向量和,它们的核相关向量的第个元素为: (23),写成列向量的形式: (24),由于,所以对其中的元素进行对角化运算得: (25)
同样的,对于多项式核,核向量为 (26)
RBF核的形式为,与6.1节类似, (27),由帕斯瓦尔定理【21】得排列矩阵并不影响向量的2-范数,有: (28)。可以看出,(28)式与(23)式有相同的点积核形式,故RBF核的列向量形式可写为: (29)。
同样的,作为一个特别有用的特例,对于高斯核 ,核向量为(30)。和以前一样,我们可以计算整个核相关性的计算复杂度为。
前两节的方法取决于核矩阵是否由单一变换(例如DFT)保持不变,而这通常不适用于其他核运算,例如交核。 我们仍然可以使用快速训练和检测的结果(第5.2和5.3节),但必须通过更昂贵的滑动窗口方法来评估核相关性。
在本节中,我们将看到在对偶空间中具有允许多个通道(例如HOG描述符[20]的方向区间)的优点,只需在傅立叶域中对它们求和即可。 该特征延伸到线性情况,在特定情况下显著简化了最近提出的多通道相关滤波器[31],[32],[33]。
在本节中我们针对多通道假设向量是连接个通道每个通道中的各个向量(例如,HOG变体的31个梯度方向区[20]),如。请注意,第6节中研究的所有核函数都基于参数的点积等运算,可以通过简单地对每个通道的各个点积进行求和来进行计算。 由于离散傅里叶变换的线性性质,对傅里叶域中每个通道的结果求和即可。 作为一个具体的例子,我们可以将这个推理应用于高斯核,得到(30)式的多通道模拟:
可以看出,多个通道的集成不会导致更难的推理问题 --- 我们只需在计算核相关函数时对通道求和即可。
对于最简单的线性核,对于扩展后的多通道为: (32),我们将其称之为对偶相关滤波(DCF),该滤波为线性滤波,但它是在对偶空间中进行的训练,接下来将会提到其他多通道滤波器的优势。
线性相关滤波器扩展到多个通道由这三组独立发现[31],[32],[33]。在脊回归的情况下,通过将问题分解为对每个DFT频率组建一个线性系统,使得它们在训练的速度方面比非结构化算法更快。 Henriques等[31]另外将其推广到其他训练算法。但是,(32)式表明,在带有线性核的对偶空间中训练一个具有多个通道的线性分类器,仅使用逐元素进行运算。这可能是一开始就不太理想,因为这需要更昂贵的矩阵求逆[31] ,[32],[33]。
我们通过如下方法来解决这种差异:我们只考虑单个基础样本向量,在这种情况下,无论特征或通道的数量如何,核矩阵都是维的,它涉及基础样本的个循环移位,并且可以通过DFT对其对角化((10)式可知),由于是完全对角的,故我们可以单独使用元素操作。但对于两个基础样本向量,则变为并且离散傅里叶变换不再足以完全对角化核矩阵,这种不完全对角化(块对角化)需要更昂贵的操作来处理,这些皆在本论文中提出。
一个有趣的对称论证:在原始空间中使用多个基本样本和单个通道进行训练,并只进行逐元素操作(附录A.6)。接下来,将相同的推理应用于非中心协方差矩阵,而不是。在这种情况下,我们获得了原始的MOSSE过滤器[9]。
总之,对于快速逐元素操作,我们可以选择多个通道(通过在对偶空间中进行离散傅里叶变换)或多个基本样本(通过在原始空间中进行MOSSE操作),但不能都选择。这对时间敏感型模型(如跟踪)具有重要影响。一般情况[31]更昂贵,其主要适用于离线训练。
我们在Matlab中实现了两个简单的跟踪器,它们基于所提出的高斯核相关滤波器(KCF),对偶线性核相关滤波器(DCF)。 我们在这里不展示多项式核的效果,因为它们与高斯核的效果相同,并且需要更多的参数。 我们还测试了另外两个变体:一个直接作用于原始像素值,另一个为图像块是4像素,特别是Felzenszwalb的变体[20],[22]的HOG描述符。 注意,在单个通道(原始像素)的限制情况下,我们的线性DCF等同于MOSSE [9],并且它还具有支持多个通道(例如HOG)的优点。 我们的跟踪器只需要很少的参数,我们会在表2中报告我们使用的参数,这些值是针对所有视频修复的。
表2:所有实验中使用的参数。 在此表中,n和m指的是目标的宽度和高度,以像素或HOG单元格为单位KCF的大部分功能在算法1中表示为Matlab代码。与此工作的早期版本[29]不同,该工作处理了多通道,其可以在输入数组的第三个维度中可以看出。 它实现了3个函数:训练(17)式,检测(22)式和用到前二者函数的多通道核相关(31)式。
跟踪器的管道很简单,并且不包括用于故障检测或运动建模的任何启发式。 在第一帧中,我们训练模型,其中图像块位于目标的初始位置。 此图像块大于目标,以提供一些上下文。 对于每个新目标帧,我们检测前一个位置的图像块,并将目标位置更新为产生最大值的位置。 最后,我们在新位置训练一个新模型,并将得到的和值与前一帧的值进行线性插值,为跟踪器提供一些信息。
贴一张大神的照片镇楼