【论文】Know Your Surroundings: Exploiting Scene Information for Object Tracking -2020

 Abstract

目前最先进的跟踪器只依赖于目标外观模型来定位每个帧中的对象。然而,在出现例如快速的外观变化或存在干扰器对象的情况下,这种方法很容易失败,因为仅有目标外观模型不足以进行鲁棒跟踪。 在这种情况下,了解周围场景中其他物体的存在和位置是非常有益的。 这些场景信息可以通过序列传播,例如,可以显式地避免干扰对象并消除目标候选区域。

在本文中,我们提出了一种新的跟踪体系结构,它可以利用场景信息进行跟踪。 我们的跟踪器表示密集的局部状态向量等信息,例如,如果局部区域是目标、背景或干扰器,则可以进行编码。 这些状态向量通过序列传播,并结合外观模型输出来定位目标。 我们的网络通过直接最大化视频段的跟踪性能来有效地利用场景信息。 所提出的方法在3个跟踪基准上设置了一个新的最先进的状态,在最近的GOT-10k数据集上实现了63.6%的AO评分。

 

1. Introduction

Generic object tracking是计算机视觉的基础问题之一,有着广泛的应用。 任务是估计目标对象在视频序列的每个帧中的状态,只考虑其初始外观。 目前的大多数方法[3,8,31,34,25,16,37]通过在初始框架中学习目标的外观模型来解决这个问题。 然后将该模型应用于后续帧中,通过区分目标的外观和周围背景来定位目标。 在实现令人印象深刻的跟踪性能[29,23]的同时,这些方法只依赖于外观模型,而不使用场景中包含的任何其他信息。

相反,人类在追踪物体时利用了更丰富的线索。 我们对场景有一个整体的看法,不仅考虑到目标对象,而且还不断地意识到场景中的其他对象。 这些信息在定位目标时很有帮助。 如果场景杂乱,干扰器对象,或当目标经历快速的外观变化。例如图1中的示例。 只给出最初的目标外观,由于干扰物的存在,很难找出目标。然而,如果我们也利用以前的框架,我们可以很容易地检测到干扰物的存在。 然后可以将这些知识传播到下一个帧,以便可靠地定位目标。虽然现有的方法用先前跟踪的帧更新外观模型,但这种策略本身无法捕获场景中其他对象的位置和特征。

在这项工作中,我们的目标是超越传统的逐帧检测跟踪。 我们提出了一种新的跟踪体系结构,它可以通过序列传播有价值的场景信息。 这些信息用于在每个帧中实现改进的场景感知目标预测。 场景信息使用一组密集的局部状态向量来表示。 这些编码有关当地区域的有价值的信息,例如。 区域是否对应于目标、背景或干扰器对象。 当区域通过序列移动时,我们利用帧之间的密集对应映射来传播相应的状态向量。 因此,我们的跟踪器“意识到”场景中的每个对象,并且可以使用这些信息,例如。 避免干扰物。 该场景知识,以及目标外观模型,用于预测每个帧中的目标状态。 然后使用递归神经网络模块更新状态表示捕获的场景信息。

贡献:我们的主要贡献总结如下。(Ⅰ)我们提出了一种新的跟踪体系结构,它利用丰富的场景信息,表示为密集的局部状态向量。(Ⅱ)引入传播模块,通过预测软对应,将状态映射到后续帧。(Ⅲ)我们开发了一个预测模块,有效地将目标外观模型的输出与传播的场景信息结合起来,以便检测目标位置。(Ⅳ)通过集成递归神经网络模块,用新信息更新状态。(Ⅴ)训练我们的网络,以直接最大化跟踪性能的完整视频段。

我们对5个具有挑战性的基准进行了全面的实验:VOT-2018[29]、GOT-10k[23]、TrackingNet[36]、OTB-100[45]和NFS[14]。 我们的方法在所有五个数据集上都取得了最先进的结果。 在具有挑战性的GOT-10k数据集上,我们的跟踪器获得63.6%的平均重叠(AO)分数,比以前的最佳方法高出2.5%。 我们还提供了一个消融研究,分析关键组件在我们的跟踪架构中的影响。

 

2. RelateWork

大多数跟踪方法通过学习第一帧中目标的外观模型来解决这个问题。 学习目标外观模型的一种流行方法是判别相关滤波器(DCF)[5,21,10,9,26,33]。这些方法利用卷积定理有效地训练傅里叶域中的分类器,使用输入图像的圆移作为训练数据。这些方法利用卷积定理有效地训练傅里叶域中的分类器,使用输入图像的圆移作为训练数据。 另一种方法是在第一帧中训练或微调几层深度神经网络,以执行目标背景分类[37,8,3,40]。MDNet在线[37]三个完全连接的层,而DiMP[3]采用meta-learning formulation 来预测分类层的权重。近年来,Siamese networks[2,32,31,44,18]受到了极大的关注。 这些方法通过学习相似性度量来解决跟踪问题,然后使用它来定位目标。

上述判别方法利用场景中的背景信息来学习目标外观模型。此外,在Siamese trackers[52,30,51]中,还尝试将背景信息集成到外观模型中。然而,在许多情况下,干扰器对象与以前的目标外观无法区分。因此,在这种情况下,单个目标模型不足以实现鲁棒跟踪。此外,在快速运动的情况下,很难快速地将目标模型适应新的干扰器。 与这些工作相反,我们的方法显式地编码关于不同图像区域的局部信息,并通过密集匹配通过序列传播这些信息。更多地与我们的工作有关,[46]目的是利用现场干扰器的位置。 然而,它使用手工制作的规则将图像区域独立地分类为背景和目标候选,并使用线性运动模型来获得最终的预测。 相反,我们提出了一个完全可学习的解决方案,其中图像区域的编码是通过基于外观的帧间密集跟踪来学习和传播的。 此外,我们的最终预测是结合显式背景表示和外观模型输出。

除了外观线索外,一些方法还研究了光流信息用于跟踪的使用。 Gladh等人在构建目标模型时[17]利用从光流图像中提取的深运动特征来补充外观特征。Zhu et al [53]使用光流将特征映射从以前的帧扭曲到参考帧,并将它们聚合,以学习目标外观模型。然而,这两种方法都利用光流来提高目标模型的鲁棒性。 相反,我们显式地使用密集的运动信息来传播关于背景对象和结构的信息,以补充目标模型。

一些工作也研究了使用递归神经网络(RNN)进行目标跟踪。 Gan et al[15]使用RNN使用图像特征和以前的目标位置直接回归目标位置。 Ning et al[38]利用YOLO[39]检测器生成初始对象建议。 这些建议以及图像特征通过LSTM[22]获得目标框。Yang et al[49,50]使用LSTM更新目标模型,以通过序列解释目标外观的变化。

3. Proposed Method

我们开发了一种新的跟踪体系结构,能够利用场景信息来提高跟踪性能。 虽然目前最先进的方法[8,3,31]只依赖目标外观模型来独立地处理每个帧,但我们的方法也从以前的帧传播有关场景的信息。 这提供了关于环境的丰富线索,例如。 干扰器对象的位置,这大大有助于目标的定位。

图2提供了跟踪体系结构的可视化概述。 我们的跟踪器内部跟踪场景中的所有区域,并传播有关它们的任何信息,以帮助目标的定位。 这是通过对目标邻域中的每个区域保持一个状态向量来实现的。 例如,状态向量可以编码特定补丁是否对应于可能欺骗目标外观模型的目标、背景或干扰器对象。 当对象通过序列移动时,通过估计连续帧之间的密集对应来相应地传播状态向量。 然后将传播的状态向量与目标外观模型融合,以预测用于定位的最终目标置信度值。 最后,利用预测器和目标模型的输出,利用卷积门控递归单元(ConvGRU)[1]对状态向量进行更新。

 

 

 

3.1 Tracking with Scene Propagation

我们的跟踪器预测基于两个线索:(1)当前帧中的外观和(2)随着时间的推移传播的场景信息。 外观模型τ旨在把目标对象从背景中提取出来。 通过将从帧t中提取的深度特征图x_t=\mathbb{R}^{W\times H\times D}作为输入,外观模型τ预测分数图s_t=\tau (x_t)\in \mathbb{R}^{W \times H}。 在这里,分数s_t(r)在每个空间位置 r\in \Omega :=\left \{ 0,...,W-1 \right \} \times\left \{0,...,H-1}{ \right \}表示该位置成为目标中心的可能性。

目标模型具有从遮挡中恢复的能力,并提供long-term robustness。然而,它忽略了周围场景的内容。为了提取这些信息,我们的跟踪器为目标邻域中的每个区域维护一个状态向量。具体地,对于深特征表示x_t中的每个空间位置r∈Ω,我们保持一个S维状态向量h^r,使得h\in \mathbb{R}^{W \times H \times S}。状态向量包含有关单元的信息,这有利于单个目标跟踪。 例如,它可以编码一个特定的单元格是否对应于目标、背景,或者实际上是一个看起来类似于目标的干扰器。 请注意,我们没有显式地强制执行任何这样的编码,但让h是一个泛型表示,其编码是通过最小化跟踪损失来训练的端到端。

使用小网络在第一帧中初始化状态向量Υ该网络以第一帧目标注释B_0作为输入。 网络生成指定目标位置的单通道标签映射。 这是通过两个卷积层获得初始状态向量h_0=\gamma (b_0)。 状态向量包含特定于其相应图像区域的局部信息。 因此,当对象通过一个序列时,我们相应地传播它们的状态向量。 给定一个新的帧t,我们将状态h_{t-1}从以前的帧位置转换为当前帧位置。这是由我们的状态传播模块\prod执行的,

在这里,x_t \in \mathbb{R}^{W \times H \times D}x_{t-1} \in \mathbb{R}^{W \times H \times D}分别是来自当前和以前帧的深度特征表示。输出h_{t-1}表示空间传播状态,补偿物体的运动和场景中的背景。传播可靠性图\xi _t\in \mathbb{R}^{W \times H}表示状态传播的可靠性。也就是说,高\xi _t(r)表示r处的状态\hat {h^r _{t-1}}已经被自信地传播。因此,可靠性映射\xi _t可以用来确定在定位目标时是否信任传播的状态向量\hat h_{t-1} ^r

为了预测目标对象的位置,我们利用外观模型输出s_t\hat h_{t-1}传播状态。后者捕获关于场景中所有对象的有价值的信息,这补充了外观模型中包含的以目标为中心的信息。 我们将传播的状态向量\hat h_{t-1},连同可靠性分数\xi _t和外观模型预测s_t输入到预测模块P。预测器结合这些信息提供融合的目标置信度分数\xi _t

 然后,通过选择得分最高的位置r^* = arg max_{r\in \Omega }\xi _t,将目标定位在帧t中。 最后,我们使用融合置信度分数\xi _t以及外观模型输出s_t来更新状态向量,

递归状态更新模块\Phi可以使用当前帧信息,从分数映射图例如,重置不正确的状态向量\hat h_{t-1}^r,或将新输入的对象标记为干扰器。 然后使用这些更新的状态向量h_t来跟踪下一帧中的对象。 我们的跟踪程序在Alg.1中很详细。

3.2 State propagation

状态向量包含目标邻域中每个区域的局部信息。 因为这些区域通过一个序列。 物体或相机运动,我们需要相应地传播它们的状态,以补偿它们的运动。 这是由我们的状态传播模块\prod完成的。该模块的输入分别是从以前和当前帧中提取的深度特征映射x_{t-1}x_t。 请注意,深度特征x不需要与目标模型使用的特征x相同。 然而,我们假设两个特征映射具有相同的空间分辨率W \times H

为了将状态从前一个帧传播到当前帧位置,我们首先计算两个帧之间的密集对应关系。 我们将这种对应表示为概率分布p,其中p({r}'|r)是当前帧中位置r\in \Omega的概率,起源于前一帧中的{r}'\in \Omega。 密集对应是通过构造一个4D成本体积CV\in \mathbb{R}^{W \times H \times W \times H}来估计的,就像在光流接近[12,42,47]中通常做的那样。 成本卷包含来自前一帧和当前帧的每个图像位置对之间的匹配成本。 通过计算前一帧特征x_{t-1}中以{r}'为中心的3×3个窗口与当前帧特征x_t中的r之间的相关性,得到成本体积中的元素CV({r}',r)。 为了提高计算效率,我们只通过假设每个特征单元的最大位移d_{max}来构造部分成本体积。

我们通过网络模块处理成本体积,以获得鲁棒的密集对应。我们将前一帧中每个单元{r}'的成本体积切片CV_{​{r}'}(r)\in \mathbb{R}^{W \times H}通过两个卷积块,以获得处理后的匹配成本\phi ({r}',r)。接下来,我们在当前帧位置上取此输出的Softmax以获得初始对应{\phi }'({r}',r)=\frac{exp(\phi({r}',r) )}{\sum _{​{r}''\in \Omega ^{exp(\phi ({r}',{r}''))}}}。softmax操作在当前帧维上聚合信息,并提供两帧之间位置的软关联。为了整合以前帧位置的信息,我们通过另外两个卷积块{\phi }'和在以前的帧位置上取Softmax。这提供了在每个当前帧位置r处所需的概率分布p({r}',r)

帧之间的估计对应性p({r}'|r)现在可以通过评估与前一帧状态向量相比的以下期望来确定当前帧位置r处传播的状态向量\hat h_{t-1}^r

 当使用传播的状态向量时\hat h_{t-1}进行目标定位时,了解特定的状态向量是否有效也是有帮助的,比如如果它已从上一个帧正确传播。我们可以使用该位置的对应概率分布p({r}'|r)来估计每个位置r处的可靠性\xi ^r_t。在p({r}',r)中的单模表明,我们对前一帧中位置r的来源有信心。另一方面,均匀分布的p({r}'|r)意味着不确定性。 在这样的场景中,期望4比以前的帧状态向量h_{t-1}^r降低到一个简单的平均值,导致不可靠的\hat h_{t-1}^r。因此,我们利用分布p({r}'|r)的Shannon熵的否定来获得状态\hat h_{t-1}^r的可靠性评分\xi _t^r

 然后使用可靠性\xi _t^r来确定在预测最终目标置信度分数时是否信任状态\hat h _{t-1}^r

3.3 Target Confidence Score Prediction

在本节中,我们描述了我们的预测模块P,它确定了当前帧中的目标位置。我们利用外观模型输出s_th_{t-1}编码的场景信息来定位目标。 外观模型得分s_t^r表示位置r是目标还是背景,仅基于当前帧中的外观。另一方面,状态向量\hat h_{t-1}^r包含每个位置r的过去信息。例如,它可以编码单元格r是否在前一帧中被归类为目标或背景,跟踪器对该位置的预测有多确定,等等。例如,它可以编码单元格r是否在前一帧中被归类为目标或背景,跟踪器对该位置的预测有多确定,等等。 相应的可靠性评分\xi ^r_t进一步表明状态向量\hat h _{t-1}^r是否可靠。这可以用来确定在确定目标位置时给状态向量信息多少权重。

对预测器模块P进行训练,有效地结合s_t\hat h_{t-1}\xi _t的信息,输出\varsigma _t \in \mathbb{R}^{W \times H}最终目标置信度评分。我们将外观模型输出s_t、传播状态向量\hat h_{t-1}和状态可靠性分数沿信道维数\xi _t,并通过两个卷积块传递所得到的张量。然后通过sigmoid层将输出映射到[0,1]的范围,以获得\hat \xi _t的中间分数。虽然可以直接使用这个分数,但在遮挡情况下是不可靠的。 这是因为目标对应的状态向量可以泄漏到遮挡对象中,特别是当两个对象缓慢地相互交叉时。 在这种情况下,融合的分数可能会被破坏。 为了处理这一点,我们将\hat \varsigma _t通过另一层,该层从评分图中屏蔽区域\hat \varsigma _t其中外观模型评分s_t小于阈值\mu。因此,我们让外观模型在遮挡的情况下覆盖预测器输出。 从而得到最终的分数图\varsigma _t\varsigma _t = \hat \varsigma _t \cdot \mathbb{I}_{s_t>\mu }。 在这里,\mathbb{I}_{s_t>\mu }是一个指示函数,当s_t >\mu时计算为1,否则为0,并且 · 表示元素乘积。注意,掩膜操作是可微的,是在网络内部实现的。

3.4 State update

虽然第3.2节中描述的状态传播将状态映射到新帧,但它不会用有关场景的新信息更新它。这是由递归神经网络模块完成的,该模块在每个时间步骤中演化状态。作为场景的跟踪信息,我们分别输入从外观模型\tau和预测模块P中获得的分数s_t\varsigma _t。因此,更新模块可以。 标记一个新的干扰器对象,该对象进入场景或纠正已被错误传播的损坏状态。此状态更新由递归模块\Phi( eq. 3)。

更新模块\Phi包含一个卷积门控递归单元(ConvGRU)[1,6]。我们将分数\varsigma _ts_t与它们的最大值连在一起,以获得输入f_t\in \mathbb{R}^{W \times H \times 4}ConvGRU。从上一帧\hat h _{t-1}中传播的状态被视为ConvGRU从上一个时间步骤的隐藏状态。

 3.5 Target Appearance Model

我们的方法可以与任何跟踪外观模型集成。 在本工作中,我们使用DiMP跟踪器[3]作为我们的目标模型组件,因为它的强大性能。DiMP是一种端到端可训练跟踪体系结构,它预测\tau _w的外观模型,由单个卷积层的权值w参数参数化。 该网络集成了一个优化模块,该模块将以下判别学习损失最小化,

 在这里,λ是正则化参数。训练集应变S_{train}={(x_j,c_j)}_{j=1}^n由从训练图像中提取的深度特征映射x_j和相应的目标注释c_j组成。残差函数r(s,c)计算跟踪器预测s=\tau_w(x)与地面真相之间的误差。采用不同的数据增强策略,在初始框架中构造训练集。 有关DiMP跟踪器的更多细节,我们参考[3]。

3.6 Offline Training

为了训练我们的体系结构,模拟跟踪场景是很重要的。确保网络可以学会有效地传播场景信息随着时间的推移,并确定如何最好地融合它与外观模型输出是需要的。因此,我们使用视频序列来训练我们的网络。 我们首先从视频中采样一组N_{train}列帧,我们用它来构造\tau的外观模型。然后,我们采样一个子序列V=\left \{(I_t,b_t)}{ \right \}^{N_{seq}-1}_{t=0},由N_{seq}连续帧I_t组成,它以及它们相应的目标注释b_t。我们将我们的网络应用于这个序列数据,就像它在跟踪过程中一样。我们首先使用状态初始化器\Upsilon获得初始状态h_0=\gamma (b_0)。然后将状态传播到下一个帧(Sec.3.2),用于预测目标分数\varsigma _t(Sec.3.3),最后使用预测的分数进行更新(Sec.3.4)。

为了获得跟踪损失L,我们首先利用标准最小二乘损失计算每个帧t的预测误差L_t^{pred}

 这里,z_t是一个标签函数,我们将其设置为以目标为中心的高斯函数。 为了获得额外的训练监督,我们还计算了一个预测误差L_t^{pred,raw},用原始分数映射\hat \varsigma _t它由P预测的。 为了帮助学习状态向量和传播模块\Pi,我们添加了一个额外的辅助任务。 我们使用一个小的网络头来预测一个状态向量h_{t-1}^r是否对应于目标或背景。 此预测使用二进制交叉输入损失来获得L_t^{state}。 网络头还应用于传播的状态向量\hat h_{t-1}^r以获得L_t^{state,prop}。 这种损失为传播模块\Pi提供了直接的监督信号。

我们的最终跟踪损失L作为上述单个损失在整个序列上的加权和,

超参数α和β决定了不同损失的影响。 请注意,外观模型预测的分数s_t本身可以在大多数情况下正确地定位目标。 因此,预测模块只学习依赖目标模型分数s_t是有风险的。为了避免这一点,我们在训练过程中随机地将干扰器峰值添加到分数s_t中,以鼓励预测器利用由状态向量编码的场景信息。

3.7 Implementation details

我们使用一个预先训练的DiMP模型与ResNet-50[19]骨干从[7]作为我们的目标外观模型。我们使用来自同一骨干网络的块4特征作为输入到状态传播模块\Pi。 为了计算效率,我们的跟踪器不处理完整的输入图像。 相反,我们裁剪一个包含目标的正方形区域,面积是目标的25倍。 裁剪后的搜索区域大小调整为288×288大小,并传递给网络。

我们使用S=8维状态向量对场景信息进行编码。 预测器P中的阈值µ设置为0.05。

我们使用跟踪网络[36]、LaSOT[13]和GOT-10k[23]数据集的训练分割来训练我们的网络。 在一个序列中,我们扰动目标在每个帧中的位置和尺度,以避免学习任何运动偏差。 虽然我们的网络是端到端可训练的,但由于GPU内存限制,我们不会对骨干网络的权重进行微调。我们的网络训练了40个迭代,每个迭代有1500个子序列。 我们使用ADAM[27]优化器,初始学习率为10^-2,每20个迭代减少5倍。 我们使用N_{train}=3帧来构造外观模型,而子序列长度设置为N_{seq}=50。 损失权重设置为\alpha =\beta =0.1

在在线跟踪过程中,我们使用简单的启发式方法来确定目标损失。 如果融合置信度分数\varsigma _t峰值小于阈值(0.05),我们推断目标丢失,在这种情况下不更新状态向量。 我们通过在外观模型预测s_t输入到P上应用窗口函数对目标运动施加先验,以及输出目标置信度评分\varsigma _t。 我们还处理目标置信度分数中的任何可能漂移。 如果外观模型分数s_t和目标置信度分数\varsigma _t在它们的峰值中只有小的偏移,我们使用外观模型分数来确定目标位置,因为它更能抵抗漂移。 在确定目标位置后,我们使用DiMP中的包围盒估计分支来获得目标盒。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wL魔法师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值