传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking
论文地址:https://arxiv.org/pdf/1501.04587.pdf
摘要
阻碍 CNN 应用于视觉跟踪的主要障碍是缺乏适当标记的训练数据。虽然释放 CNN 功率的现有应用程序通常需要大量数百万的训练数据,但是视觉跟踪应用程序通常在每个视频的第一帧中仅具有一个标记的示例。我们通过离线预培训 CNN,然后将学到的丰富特征层次结构转移到在线跟踪来解决此研究问题。 CNN 还在在线跟踪期间进行微调,以适应第一视频帧中指定的跟踪目标的外观。为了适应对象跟踪的特征,我们首先预先训练 CNN 以识别什么是对象,然后生成概率图而不是生成简单的类标签。使用两个具有挑战性的开放式基准进行性能评估。
1 简介
在最近的研究兴趣激增中,一些其他计算机视觉任务(例如视觉跟踪)仍然相对未开发。我们认为,一个主要原因是缺乏足够的标记训练数据,这些数据通常在实现其他应用的突破性表现方面起着非常重要的作用,因为 CNN 训练通常以完全监督的方式进行。
然而,在视觉跟踪的情况下,标记的训练数据通常非常有限,通常仅有一个标记的示例作为在每个视频的第一帧中指定的跟踪对象。这使得大规模 CNN 方法的直接应用变得不可行。在本文中,我们提出了一种可以解决这一挑战的方法,因此可以将 CNN 框架引入视觉跟踪。使用这种方法来实现跟踪器,我们实现了非常有前途的性能,其性能优于最先进的基线跟踪器超过 10%(对于一些定性跟踪结果,参见图 1)。
虽然视觉跟踪可以根据不同的应用在不同的设置中制定,但本文的重点是一次通过无模型的单目标跟踪设置。具体来说,它假定给出了第一帧中单个对象的边界框,但没有其他外观模型可用。给定这个单独的(标记的)实例,目标是以在线方式跟踪对象的移动。因此,该设置涉及基于跟踪器的可能有噪声的输出使跟踪器适应对象的外观变化。制定这个问题的另一种方法是作为一个自学成才的单一学习问题,其中单个例子来自前一帧。由于从单个示例学习视觉模型是一个不适定的问题,因此成功的方法将需要使用一些辅助数据来学习通用对象特征的不变表示。虽然最近的一些工作也有这种精神,但由于一方面缺乏足够的训练数据而另一方面所用模型的代表能力有限,所报告的表现不如现有技术水平。通过学习更强大的功能,CNN 可以在这里发挥作用。为了在在线跟踪期间使用有限的培训数据使其可行,我们离线预先培训 CNN,然后将学习的通用功能转移到在线跟踪任务。
文献中报道的第一个深度学习跟踪器(DLT)基于 SDAE 网络。虽然这种方法非常有前途,但与其他最先进的跟踪器相比,本文中报告的方法的确切实现有两个限制,阻碍了 DLT 的跟踪性能。首先,DLT 的预训练可能不太适合跟踪应用。用于预训练的数据来自 80M Tiny Images 数据集,每个图像通过直接从全尺寸图像下采样获得。尽管可以通过学习重建输入图像来学习一些通用图像特征,但是在典型的跟踪任务中跟踪的目标是单个对象而不是整个图像。对跟踪有效的特征应该能够将对象与非对象(即背景)区分开,而不仅仅是重建整个图像。其次,在每个帧中,DLT 首先基于先前帧的预测生成目标的候选者或提议,然后将跟踪视为分类问题。它忽略了边界框的结构化性质,因为边界框或分割结果对应于图像的区域,而不仅仅是分类或回归问题中的简单标签或实数。之前的一些工作表明,在模型中明确地利用结构化性质可以显着提高性能。此外,提案的数量通常在几百个数量级,因此很难应用更大的深度学习模型。
我们提出了一种新颖的结构化输出 CNN,它传输用于在线跟踪的通用对象特征。我们的论文的贡献总结如下:1.为了减轻在线跟踪过程中的过度拟合和漂移问题,我们预先训练 CNN 以区分对象和非对象,而不是简单地重建输入或对具有对象级注释的大规模数据集进行分类分类。
2.CNN 的输出是逐像素的映射,以指示输入图像中的每个像素属于对象的边界框的概率。像素输出的主要优点是其诱导的结构损失和计算可扩展性。
3.我们在开放基准以及具有挑战性的非刚性物体跟踪数据集上评估我们提出的方法,并获得非常显着的结果。特别是,对于开放基准,我们将重叠率曲线的 AUC 度量从 0.529 改善到 0.602。
2 相关工作
3 我们的追踪器
在本节中,我们将介绍我们的结构化输出深度学习跟踪器( structured output deep learning tracker SO-DLT)。我们首先介绍了 SO-DLT 中的 CNN 架构和 CNN 的离线预训练过程。然后,我们将介绍在线跟踪流程的详细信息。
3.1 概观
跟踪器的训练可分为两个阶段:
1.离线预训练阶段
2.在线微调和跟踪阶段。
在训练前阶段,我们训练 CNN 学习用于区分对象与非对象的通用对象特征,即,从示例中学习对象的概念。我们不是在在线跟踪期间修复 CNN 的学习参数,而是对它们进行微调,以便 CNN 能够适应被跟踪的目标。为了实现稳健性,我们在在线跟踪期间同时运行两个 CNN,以解决模型更新可能导致的错误。两个 CNN 协同工作以确定每个视频帧的跟踪结果。
3.2 对象性预训练
结构化输出 CNN 的结构如图 2 所示。它由七个卷积层和三个完全连接的层组成。在这两部分之间,引入了多尺度池化以保留与地点相关的更多特征,因为输出需要它们进行本地化。网络的参数设置如图 2 所示。与用于分类或回归的传统 CNN 相比,我们的模型存在一个重要的差异:CNN 的输出是 50×50 概率图而不是单个数。每个输出像素对应于原始输入中的 2×2 区域,其值表示对应的输入区域属于对象的概率。在我们的实现中,输出层是 2500 维全连接层,然后将其重新整形为 50×50 概率图。由于概率图的相邻像素之间存在强相关性,因此我们仅使用前一层中的 512 个隐藏单元来帮助防止过拟合。
要训练如此大的 CNN,必须使用大型数据集来防止过度拟合。由于我们对对象级功能感兴趣,因此我们使用 ImageNet 2014 检测数据集,其中包含训练集中的 478,807 个边界框。对于每个带注释的边界框,我们在其周围添加随机填充和缩放。当正样本的重叠率(Overlap Rate, OLR)低于某个阈值时,我们还随机抽样一些负样本(negative samples)。请注意,它不会像在典型的分类或检测任务中那样学会区分不同的对象类,因为我们只想学习在此阶段区分对象与非对象。因此,我们在 50×50 输出图的每个位置使用逐元素逻辑回归模型,并相应地定义损失函数。对于训练目标,边界框内的像素设置为 1,而外部为 0。对于负样本整个概率图目标是 0。该设置相当于惩罚预测和地面实况之间的不匹配像素的数量,从而引起更好地适应问题的结构化损失函数。在数学上,让 pij 表示(i,j)位置的预测,tij 是二进制变量表示(i,j)位置的基本事实,我们方法的损失函数定义为:
$$\min {p{i j}} \sum_{i=1}^{50} \sum_{j=1}^{50}-\left(1-t_{i j}\right) \log \left(1-p_{i j}\right)-t_{i j} \log \left(p_{i j}\right) \tag{1}$$4.1 中描述了培训的详细参数。
图 3 显示了在 ImageNet 2014 检测任务提供的保持验证集上测试预训练的 CNN 时的一些结果。 在大多数情况下,CNN 可以成功地确定输入图像是否包含对象,如果是,则可以准确地定位感兴趣的对象。 请注意,由于我们的训练数据的标签只是边界框,因此 50×50 概率图的输出也是正方形。 虽然有方法[6]利用边界框信息来提供弱监督并获得像素分割,但我们认为模型中的概率图输出足以用于跟踪。
3.3 在线跟踪
如上所述预训练学习通用对象特征的 CNN 不能直接用于在线跟踪,因为 ImageNet 数据的数据偏差不同于在线跟踪期间观察到的数据偏差。此外,如果我们不对 CNN 进行微调,它将检测到视频帧中出现的所有对象,而不仅仅是被跟踪的对象。因此,必须使用在线跟踪期间收集的每个视频的第一帧中的注释来微调预训练的 CNN,以确保 CNN 特定于目标。微调或在线模型调整是我们跟踪器中不可或缺的一部分,而不是仅为了进一步提高跟踪性能而引入的可选功能。
我们维护两个使用不同模型更新策略的 CNN。在使用第一帧中的注释进行微调之后,我们基于前一帧的估计从每个新帧中裁剪一些图像块。通过简单地向前穿过 CNN,我们可以获得每个图像块的概率图。然后通过搜索适当的边界框来确定最终估计。如有必要,将更新两个 CNN。我们在图 4 中说明了跟踪算法的流程。
3.3.1 边界框确定
当新框架到来时,我们的跟踪器的第一步是确定目标的最佳位置和比例。我们首先指定可能包含目标的可能区域,并将区域送到 CNN。接下来,我们根据概率图确定边界框的最可能位置。
**搜索机制:**为目标选择合适的搜索范围是一个非常重要的问题。使用太小的搜索区域使得在快速运动下很容易失去对目标的跟踪,但是使用太大的搜索区域可能包括背景中的显着干扰物。例如,在图 5 中,输出响应变弱,因为搜索区域被放大主要是由于杂乱的背景和附近的另一个人。为了解决这个问题,我们提出了一种用于确定正确边界框的多尺度搜索方案。首先,所有裁剪区域都以前一帧的估计为中心。然后,我们开始用最小的比例搜索。如果输出概率图上的总和低于阈值(即,目标可能不在该比例中),那么我们进入下一个更大的比例。如果我们无法在所有比例中找到对象,我们会报告目标丢失。
**生成边界框:**在我们选择最佳比例后,我们需要为当前帧生成最终边界框。我们首先确定边界框的中心,然后估计其相对于前一帧的比例变化。为了确定中心,我们使用基于密度的方法,该方法为相应的概率图设置阈值τ1,并找到具有高于阈值的所有概率值的边界框。接下来,通过取τ1 的不同值的平均值来估计当前尺度下的边界框位置。确定中心后,我们需要在相应区域再次搜索以找到合适的比例。该比例旨在完美地拟合精确的目标区域。简单地使用平均置信度(这使得跟踪器更容易选择中心区域具有高置信度)或完全置信度(这使得它更容易选择整个帧)并不令人满意。
设 P 表示输出概率图,并且 p 表示 P 中的第(i,j)个元素。我们考虑具有左上角(x,y),宽度 w 和高度 h 的边界框。其得分计算为:
在这里平衡边界框的比例。我们还重复几个值并对其结果进行平均以进行稳健估计。借助积分图像可以非常有效地计算置信度。
3.3.2 差分节奏微调
视觉跟踪中的模型更新经常面临两难选择。如果跟踪器更新频率低,则无法很好地适应外观变化。但是如果更新太频繁,不准确的结果可能会影响其性能并导致漂移问题。
我们通过在线跟踪期间使用两个 CNN 来解决这一难题。基本的想法是使一个 CNN(CNNS)短期出现,而另一个(CNNL)长期出现。首先,两个 CNN 都在视频的第一帧中进行微调。之后,CNNL 保守调整,而 CNNS 则积极调整。通过协作,CNNS 适应戏剧性的外观变化,而 CNNL 可以抵御潜在的错误。然后由更自信的人确定最终估计。因此,最终的综合结果对于由遮挡或杂乱背景引起的漂移更加稳健。
我们现在提供有关更新策略的更多详细信息。我们首先观察到,如果在预测低于阈值时立即更新模型,则模型将很容易受到噪声结果的影响。另一方面,我们发现负面例子的质量通常非常稳定。结果,当存在这样的负面示例时,CNNS 被更新:
这是为了确保应该抑制任何导致 CNN 起火的背景对象。 这样做将减少跟踪器在处理后续帧时向与跟踪对象类似的一些负示例漂移的可能性。 相反,除了上述条件外,CNNL 只会更新:
其中(x,y,w,h)表示当前帧中的输出目标边界框。 这意味着我们更保守地更新 CNNL,因为如果我们对当前帧中的结果非常有信心,我们只会更新它。 这样做可以降低真正目标已经漂移到后台时不正确更新的风险。
在每次更新中,我们都需要收集正面和负面的例子。 我们的抽样方案如图 5 所示。对于正例,我们基于前一帧的估计以四个尺度对它们进行抽样。 还引入随机翻译以消除对中心位置的学习偏差。 至于反面的例子,我们在两个尺度上在不同方向上围绕目标裁剪八个非重叠边界框。 正例的输出也显示在图 5 中。
在左侧,红色边界框表示要跟踪的目标,而其周围的八个蓝色边框是负面示例。 在右边,我们在上部显示了进入 CNN 的正面例子。 它们用不同的比例和随机翻译填充。 下部显示了对该帧进行微调后 CNN 的相应输出。
4 实验
在本节中,我们通过与其他最先进的跟踪器进行比较,对经过验证的 SO-DLT 跟踪器进行了实证验证。为了公平比较,我们不仅需要一个相当大的基准数据集来避免由于数据选择而产生的偏差,而且还应该有一个精心设计的协议,每个跟踪器都遵循该协议。最近的一项工作引入了统一的跟踪基准,其中包括数据集和协议。我们使用基准数据集进行比较研究,并严格遵循协议,为所有测试的视频序列固定相同的参数集。如果论文被接受,我们将公开实施。
与 CNN 相关的部分使用 Caffe 工具箱实现,在线跟踪包装器直接在 MATLAB 中实现。所有实验都在具有 3.40GHz CPU 和 K40 GPU 的台式计算机上运行。我们未经优化的代码的速度约为每秒 4 到 5 帧。对于 CNN 的预训练,我们从学习率 10-7 开始,动量为 0.9,并且每 5 个时期一次降低学习率。我们总共训练了大约 15 个时期。请注意,由于我们使用的损失函数不同,我们的学习率远低于典型选择。为了减轻过度拟合,每层使用 5×10-4 的重量衰减,并且第一完全连接层以 0.5 的压差率正规化。在微调期间,我们使用较大的学习率 2×10-7,动量小于 0.5。对于第一帧,我们对每个 CNN 进行微调 20 次。对于后续帧,我们只对一次迭代进行微调。τ1 的范围为 0.1 至 0.7,步长为 0.05。将负例的置信度τ2 的阈值设定为τ2= 100.将 CNNL 的更新阈值设定为τ3= 0.8。用于搜索适当比例的归一化常数范围从 0.55 到 0.6,步长为 0.025。
5 结论
在本文中,我们利用了传输高级特征层次结构进行视觉跟踪的有效性。 据我们所知,我们是第一个将大规模 CNN 带入视觉跟踪领域的公司,并且显示出对最先进的跟踪器的显着改进。 我们提出了一种用于视觉跟踪的新颖结构化输出 CNN,而不是将跟踪建模作为提议分类问题。 此外,CNN 不是像以前的工作那样学习重建输入图像,而是首先对大规模的 ImageNet 检测数据集进行预训练,以学习定位对象,从而缓解由于缺乏标记训练而导致的问题。 数据。 然后在在线跟踪过程中传输和微调该对象 CNN。 大量实验验证了我们的 SO-DLT 跟踪器的优越性。
学习更多编程知识,请关注我的公众号:
版权声明: 本文为 InfoQ 作者【代码的路】的原创文章。
原文链接:【http://xie.infoq.cn/article/cf5fba3d51b52a14c50748a4a】。文章转载请联系作者。
评论