元学习----Meta-Tracker: Fast and Robust Online Adaptation for Visual

2023-10-18 12:50

本文主要是介绍元学习----Meta-Tracker: Fast and Robust Online Adaptation for Visual,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Abstract

这篇论文改进了最先进的使用在线适应的视觉对象跟踪器。(MDNET,Crest)我们的核心贡献是一种基于离线mete-learning-based的方法,用于调整在线适应跟踪中使用的初始深度网络。元学习是由深层网络的目标驱动的,深层网络可以在未来的框架中快速地适应对特定目标的鲁棒建模。理想情况下,得到的模型关注于对未来帧有用的特性,避免对背景杂波、目标的小部分或噪声的过度拟合。通过在元收益期间强制执行少量的更新迭代,得到的网络训练速度显著提高。我们在高性能跟踪方法的基础上演示了这种方法:基于MDNet[1]的跟踪检测和基于相关性的CREST[2]。在标准基准OTB2015[3]和VOT2016[4]上的实验结果表明,我们的元学习版本的跟踪器提高了速度、准确性和鲁棒性。

1.Introduction

视觉目标跟踪是在给定初始帧目标边界框的图像帧序列上精确定位目标对象的任务。在视觉目标跟踪中,与其他目标识别任务如目标分类和检测相比,实例级识别是一个重要的因素。例如,一个感兴趣的目标可以是人群中的一个特定的人,或者一个更广泛的类别中的一个特定的产品(如可乐罐)。因此,准确的目标跟踪器不仅要能够从背景杂波和其他类别的目标中识别出一般的目标,还要能够从可能属于同一类别的相似干扰物中识别出特定的目标。此外,在跟踪过程中学习的模型应该是灵活的,以考虑由于视角变化、遮挡和变形而导致的目标外观变化
应对这些挑战的一个方法是应用在线适应。跟踪过程中目标的模型,如DCF (discriminative correlation filter)或二分类器(object vs background),在asequence的第一帧初始化,然后更新以适应后续帧的目标外观[1、2、5、6、7、8、9、10]。随着强大的通用深度学习表示法的出现,最近的顶级跟踪器现在利用了两个共同的优点:深度学习特性和在线适应方法。也有人建议使用经过深度训练的离线追踪器,其结果令人满意,速度也很快,但与最先进的在线自适应追踪器相比,准确性有所下降[11、12、13],这可能是由于难以准确识别视频中的特定实例。
将深度学习特性和在线适应相结合的一个常见实践是在深度学习特性的基础上训练目标模型,并在大型数据集上进行预训练。这些预先训练的特性已经被证明是一种强大而广泛的表示,可以识别许多通用对象,从而使目标模型的有效训练能够集中于指定的目标实例。尽管这种方法迄今为止取得了最好的效果,但仍有几个重要问题有待解决

  • 首先,可用的训练示例非常少。在初始帧中,我们给目标一个边界框。在随后的帧中,跟踪器会收集额外的图像,但许多图像是多余的,因为它们本质上是相同的目标和背景。此外,最近的趋势是为目标外观构建深度模型[1,2],这使得问题更具挑战性,因为深度模型很容易在小数据集上过度拟合。因此,在深入学习的特征上训练的目标模型有时会受到影响,因为它与背景杂波、目标的小部件或特征或噪声不匹配。许多最近的研究提出了各种各样的方法来解决这些问题。其中包括使用大量带有侵略性正则化器[1]的阳性和阴性样本,分解卷积[6],空间剩余模块[2],或合并上下文信息[14]。

  • 其次,最先进的跟踪器在初始训练阶段花费了大量的时间[1,2,6]。虽然已有许多工作提出了快速训练方法[6,7],但这仍然是一个瓶颈。在目标跟踪的许多实际应用中,如监视,需要实时处理。根据应用程序的不同,在初始帧上落后可能意味着整个任务失败。另一方面,一个未完全训练的初始目标模型可能会影响未来帧的性能,或者在最坏的情况下,导致所有后续帧的失败。因此,在初始帧快速获取鲁棒目标模型是非常必要的

在这项工作中,我们提出了解决这些挑战的一般性和原则性的方法。受最近元学习(learning to learn)研究的启发[15,16,17,18,19,20],我们寻求学习如何获得目标模型。关键的思想是用一种可以在未来框架中很好概括的方式来训练目标模型。在之前的所有工作中[1、2、5、6、7、8、9、10],对目标模型进行训练,使当前帧上的损失函数最小化。即使模型达到了最优解,也并不一定意味着它在未来的框架中可以很好地工作。相反,我们建议使用来自未来帧的错误信号。在元训练阶段,我们的目标是找到一个通用的初始表示和梯度方向,使目标模型能够专注于对未来帧有用的特性。此外,这个元训练阶段有助于避免在当前框架中过度拟合干扰项。此外,通过在元训练期间强制执行更新迭代的次数,得到的网络在初始化期间的训练速度要快得多
我们提出的方法可以应用于任何基于学习的跟踪器,只需稍作修改。我们从基于分类器的跟踪器(跟踪检测)类别和基于相关性的跟踪器CREST[2]中选择了两个最先进的跟踪器MDNet[1]。实验结果表明,我们的元学习版本的跟踪器可以非常快速地适应第一帧,只需迭代一次,同时提高了准确性和鲁棒性。请注意,即使没有使用一些手工设计的训练技术、复杂的体系结构设计和原始跟踪器的超参数选择,也可以做到这一点。 简而言之,我们提供了一种简单的方法,使非常好的跟踪器更好,而且不需要太多的工作,并在两种不同的跟踪体系结构上展示了它的成功,这表明它具有潜在的普遍适用性

2 Related Work

在线跟踪器:许多在线跟踪器使用相关滤波器作为算法的基础,因为它的计算效率和鉴别能力。从早期成功的MOSSE跟踪[10],大量的变化已经提出。[7]通过提取循环矩阵的advantage使其更高效,通过解决人工边界问题进一步改进[21,22]。通过使用上下文信息[14、23]、短期和长期记忆[24、25]以及尺度估计26,已经解决了许多棘手的问题。近年来,深度学习特征开始在相关滤波器中发挥重要作用[1,2,5,6,8,27,28]。另一方面,跟踪检测方法通常学习一个分类器来挑选围绕目标对象的正图像块。[9]率先提出了多种学习技术,如多实例学习[29]、结构化输出支持向量机[30]、在线增强[31]、模型集成[32]等。最近,MDNet[1]具有深度特征和深度分类器,实现了更高的精度
离线跟踪器:最近的几项研究表明,由于强大的深度学习功能,我们可以在不需要在线适应的情况下构建精确的跟踪器[11,12,13]。Siamese-style network采用小目标图像patch和大搜索图像patch,直接对目标位置[12]进行退化,或者通过相关层[33]生成响应映射[11]。为了考虑时间信息,在[34,35,36,37]中也研究了周期性网络.
元学习:这是机器学习及其应用的一个新兴领域。虽然这并不是一个新的概念[38,39,40,41],但是最近的许多著作在深度学习成功的同时也显示出了非常有前景的结果。[17,42,43,44]试图用元学习深度网络代替手工优化算法。[16]将这一思想引入到“几杆”或“一杆”学习问题中。它的目的是学习最优的更新策略,基于学习者在学习元学习者的策略时,在很少训练例子的情况下,学习者对测试图像分类的准确性。[15]没有删除现有的优化算法,而是专注于学习最适合现有算法的初始化。随着初始化的进行,[19]进一步学习现有优化算法的参数。与上述方法不同的是,也有一些研究不经过优化过程直接预测模型参数[37,45,46]。在这里插入图片描述
图1:我们的视觉对象跟踪元训练方法:元训练对象跟踪器的计算图。对于每一次迭代,它都会获得第一帧之后的梯度,然后由元更新器使用这些梯度更新跟踪器的参数。为了增加稳定性和鲁棒性,最后的损失是使用一个未来的框架来计算梯度w,r,t参数的元初始化和元更新。更多细节见第3节。

3 Meta-Learning for Visual Object Trackers (元学习应用于视觉对象跟踪)

在这一节中,我们将解释为视觉对象跟踪器提出的通用元训练框架。将其应用到每个跟踪器的详细信息见第4节。

3.1 Motivation

一个典型的跟踪事件是这样的:在一个序列的初始帧中,跟踪模型被调整到目标周围的一个指定的边界框中。积极的调整器和快速的优化技术被采用,以允许这种适应/训练快速完成,从而得到的模型对目标变化和环境变化具有鲁棒性。然后利用跟踪模型对后续帧的目标位置进行预测。然后将预测的目标位置和图像存储在数据库中,模型根据自己的策略定期更新收集到的数据。
一个关键的动机是将这些实际的跟踪场景合并到元学习过程中。跟踪器的最终目标是预测未来帧的目标位置因此,为了实现这个最终目标,最好是学习跟踪器。例如,如果我们可以看到未来帧的变化,那么我们就可以构建更健壮的目标模型,并防止它们与当前目标外观或背景杂波过度匹配。我们可以退一步,观察视频上运行的跟踪器,看看跟踪器是否归纳的很好,找出它们分心的原因,调整适应程序相应的行动。在这里插入图片描述

3.2 A general online tracker 一个通用的在线跟踪器

这一公式的在线跟踪是通用的,以适用于各种跟踪器。考虑一个追踪器的关键操作,ˆy = F (x,θ),这需要一个输入x,例如图像patch在目标或裁剪图像集中在假定的目标从一个图像I,和跟踪器的参数θ产生预测ˆy的标签(an ˆy of the label),如响应映射或位置的框架 (a response map or a location in the frame)表示目标的位置. 对于 initialization初始化期间,来自初始帧图像I0 中的x0(带有y0),我们(大约)解θ1 (x0, y0),或θ1为简洁起见,θ1损失,L (F (x0,θ1),y0)测量的模型预测指定的标签。跟踪期间的updates,我们得到(j-1)帧参数θj,并得到预测值ˆyj = F (xj,θj),然后找到θ(j + 1)的损失L(F(xj,θj),yj)。然后,我们可能将ˆyj合并到一个特定的估计目标位置以及时间平滑,等等。我们可以把用x0和y0初始化的跟踪过程写在一个初始帧中,然后跟踪和更新帧I1…In.用作track(θ1 (x0, y0), I1,In)和它的输出作为标签的ˆyn估计第n帧(指示目标位置)和θn + 1, n帧后的模型参数

3.3 Meta-training algorithm(元训练算法)

我们的元培训方法有两个目标 … 其中一个目标是初始化一个跟踪器在一个序列可以被开始执行θ0和应用一个或少量的迭代更新函数M(α)。另一个目标是得到的跟踪器在以后的帧上是准确和鲁棒的。
这个梯度下降更新函数M关于x在这里插入图片描述
这里的α与跟踪参数θ[19]是同样的尺寸,L是一个损失function,圆环是元素对应乘积element-wise product. α是一个标量值,这可能是可学的[20]或手动固定[15]。根据经验,我们发现每个参数系数是最有效的设置
meta-training算法来找到一个好的θ0和α多次采样视频,执行初始化,应用学到的初始模型的框架略高于序列,然后back-propagating更新θ0和α。将初始模型应用于序列中稍微提前的帧有两个目标,模型应该足够健壮以处理更多的帧到帧的变化,如果是这样,在跟踪过程中也应该快速更新,如果不需要修正太多。
从一个随机抽样随机起始帧后视频,我们执行优化初始化开始θ0 0 =θ0考虑到转换的输入和输出对,(xj, yj)。优化的步骤如下在这里插入图片描述
这一步可以重复了一个预定义的次数T,θ1 (xj, yj) =θT0。然后,我们随机样本未来帧Ij +δ和评估模型训练的初步框架,未来帧产生:ˆyj +δ= F (xj +δ,θ1)。
较大的δ,更大的目标对象变化和环境变化纳入培训过程。现在,我们可以根据未来的帧数和训练后的跟踪器参数来计算损耗。目标函数定义为在这里插入图片描述
我们使用ADAM[47]梯度下降算法进行优化。注意,θ0和α是固定在不同的episodes 在一个小批次mini-batch,但是θ1 0,…,θT0都改变了。计算目标函数wr的梯度。tθ0和α,应计算高阶梯度(函数的梯度渐变)。这种计算方法在最近的研究中得到了应用[15,48,49]。我们可以很容易地计算这个,这要感谢自动微分软件库[50]。更多的细节在算法1中有解释
更新后续帧的规则 , 大多数在线跟踪器,包括我们元训练的两个跟踪器(第4节),定期更新目标模型,以适应跟踪过程中自己收集的新示例。我们可以简单地使用meta-trainedα更新model,θj =θj−1−α∇θj−1 L (为了简洁,只给出了一个迭代).提出一个迭代然而,它常常在较长的序列或具有非常小的帧间变异的序列上发散。我们认为这主要是因为我们训练α快速适应在初始帧,所以α的值相对较大,导致不稳定的收敛行为(类似的现象在[20]尽管在不同的上下文中)。因此 α稳定与θ0,时我们可以定义更新规则对后续帧θj =θ0−α∇θ0 L,[20].建议我们也可以组合两个strategies,θj =β(θj−1−α∇θj−1 L) +(1−β)(θ0−α∇θ0 L). 尽管,我们可以解决不稳定收敛行为与这些策略,这些表现好于简单地寻找一个单一的学习。因此,我们找到后续帧的学习率,然后使用现有的优化算法来更新模型,就像在原始版本的跟踪器中所做的那样 .在这里插入图片描述

4 Meta-Trackers

在本节中,我们将展示我们提出的元学习技术如何在最先进的跟踪器中实现。我们选择了两种不同类型的跟踪器,一种来自基于相关性的跟踪器CREST[2],另一种来自基于detection的跟踪器MDNet[1]。

4.1 Meta-training of correlation based tracker(相关滤波器的元训练)

CREST. 一个典型的相关滤波器目标定义如下 .在这里插入图片描述f是相关滤波器,∗卷积操作,和Φ是一个特征提取器,例如CNN。x为以目标为中心的裁剪后的图像,y∈R H×W为高斯型响应映射,其中H和W分别为高度和宽度。裁剪后的图像通常比目标对象大,这样可以提供足够的背景信息。一旦我们训练了相关滤波器,目标定位在一个新的未来帧只是找到坐标(h, w)有最大的响应值在这里插入图片描述
ˆy =Φ(xnew)∗ f,ˆy(h,w)表示(y在(h,w))坐标中的元素。 CREST使用了相关滤波器目标的变体,定义为
在这里插入图片描述
其中P = {(h,w)| | y(h,w)− yˆ(h,w)| > 0.1}。 这将鼓励模型将重点放在远离groundtruth的部分上.
通过将相关滤波器重新构造为卷积层,可以将其有效地集成到CNN框架中[2]。 这使我们可以轻松添加新模块,因为优化可以通过端到端的标准梯度下降很好地完成。 他们插入了时空残差模块,以避免目标模型因外观大变化而退化。 他们还设计了复杂的初始化,学习率和权重衰减调节器,例如 时空残差模块上的权重衰减参数大1000倍。在没有那些钟声的情况下,我们旨在通过提出的元学习过程来学习鲁棒的单层相关滤波器。 将CREST追踪器插入建议的元训练框架中存在两个重要问题,我们将在以下各节中介绍解决方案 .

  • 元学习降维
    CREST使用PCA将提取的CNN特征的通道数量从512个减少到64个。这不仅降低了计算成本,而且有助于增强相关滤波器的鲁棒性。在初始帧进行主成分分析,剩下的序列使用学习投影矩阵。当元训练相关筛选器时,这就成为一个问题。我们试图找到一个全局初始化的相关过滤器的所有目标从不同的插曲。然而,PCA会改变每个序列的基,这使得不可能在每次都在变化的投影特征空间中获得全局初始化。我们建议学习减少特征的维数。在CREST中,我们可以在特征提取后立即插入1x1卷积层,该层的权值也是可元学习的,并且在元学习过程中与相关滤波器共同训练。θ0在提出meta-training框架中,因此,由θ0dθ0f,降维的参数和相关滤波器,分别 .# 看不懂啊???

  • 标准尺寸的初始化
    相关滤波器的大小取决于目标的形状和大小。为了meta-trainθ0f固定大小的初始化相关的过滤器,我们应该调整所有对象的相同的尺寸和相同的比例。然而,它会引入目标的失真,并会降低识别性能[51,52]。为了充分利用相关滤波器的能力,我们提出使用正则大小初始化并将其大小和长宽比作为训练数据集中对象的平均值。基于规范的初始化大小,我们经特定大小为每个目标对象跟踪事件,为˜θ0f =Warp(θ0f)。我们使用可微的双线性抽样法[53]通过梯度一直到θ0f
    把它放在一起,F (xj,θ)在我们的提议meta-training框架波峰,现
    在需要一个输入一个裁剪图像从输入帧Ij xj,通过CNN特征提取器随后降维与重量θ0d卷积(1 x1)
    。然后,它扭曲相关过滤θ0f,最后应用扭曲相关滤波器˜θ0f产生响应映射ˆyj(图2)。

4.2 Meta-training of tracking-by-detection tracker

MDNet。 MDNet基于二进制的CNN分类器,该分类器由一些卷积层和完全连接的层组成。在离线阶段,它使用多领域训练技术来预训练分类器。在初始帧处,它随机初始化最后一个完全连接的层,并训练大约30次迭代,其中包含大量的正片和负片(图2b)。后续帧中的目标位置由得分最高的正片的边界框回归输出的平均值确定。它在跟踪过程中收集正样本和负样本,并定期更新分类器。多域预训练是获得鲁棒性的关键因素,他们使用了积极的辍学正则化器和不同层的不同学习率,以进一步避免适应当前的目标外观。如果没有这些技术(多域训练和正则化器),我们的目标是仅基于建议的元学习过程来获得强大且快速的自适应分类器。
Meta-training。它也可以很容易地插入到提议的元处理框架中。F (xj;θ)作为输入图像补丁xj∈R N×D从输入帧Ij(和yj∈{0,1} N是对应的标签),D是补丁的大小和N是补丁的数量。然后,这些patch经过CNN分类器,损失函数L是一个简单的交叉熵损失- PNk= 1yj log(F k (xj;θ))
标签洗牌。虽然大型视频检测数据集包含丰富的视频对象变化,但是与其他静态图像数据集相比,对象和类别的数量是有限的。这可能会导致深度CNN分类器记住数据集中所有的对象实例,并将新看到的对象分类为背景。为了避免这个问题,我们采用了[18]中建议的标签变换技巧。每次我们运行一个跟踪事件,我们都会洗牌,这意味着有时正补丁的标签变成0而不是1,负补丁变成1而不是0。这个技巧鼓励分类器通过查看当前的训练示例来学习如何从背景中区分目标对象,而不是记住特定的目标外观。

5 Experiments

5.1 Experimental setup

6 Conclusion and future works

在这篇论文中,我们提出了一种使用元学习来改进基于深度网络的在线跟踪器的方法。我们通过改进两个最先进的跟踪器(CREST和MDNet)来证明这一点。在元训练阶段,**我们学习从未来帧的错误信号中获得稳健的初始目标模型。**实验结果表明,这两种跟踪器在速度、精度和鲁棒性方面都有改进。所提出的技术也是通用的,因此
追踪者可能会从中受益。

除了本文重点研究的目标外观建模外,在目标跟踪算法中还有许多其他重要因素。例如,何时或多久更新模型[56],如何管理数据库[6],以及如何定义搜索空间。这些考虑因素有时比目标外观建模更重要。在未来的工作中,我们建议将这些处理作为学习和元学习的一部分

这篇关于元学习----Meta-Tracker: Fast and Robust Online Adaptation for Visual的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232681

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个