ATOM论文阅读
ATOM: Accurate Tracking by Overlap Maximization
ATOM:通过重叠最大化进行精确跟踪
Abstract
虽然近年来目睹了视觉跟踪鲁棒性的惊人改进,但跟踪精度的进步受到了限制。
由于重点已经集中在强大分类器的开发上,准确的目标状态估计问题在很大程度上被忽视了。
事实上,大多数跟踪器采用简单的多尺度搜索来估计目标边界框。
我们认为这种方法从根本上是有限的,因为目标估计是一项复杂的任务,需要关于对象的高级知识。
我们通过提出一种新颖的跟踪架构来解决这个问题,该架构由专用的目标估计和分类组件组成。
通过广泛的离线学习,高级知识被纳入目标估计。
我们的目标估计组件被训练来预测目标对象和估计的边界框之间的重叠。
通过仔细整合特定于目标的信息,我们的方法实现了以前看不见的边界框精度。
我们进一步引入了一个在线训练的分类组件,以保证在干扰项存在的情况下具有高辨别力。
我们的最终跟踪框架在五个具有挑战性的基准测试中设定了最新的技术水平。
在新的大规模 TrackingNet 数据集上,我们的跟踪器 ATOM 比之前的最佳方法实现了 15% 的相对增益,同时以超过 30 FPS 的速度运行。
代码和模型可在https://github.com/visionml/pytracking 获得。
1. Introduction
通用在线视觉跟踪是一个困难且不适定的问题。
跟踪方法必须基于最小监督在线学习目标的外观模型,通常是视频中的单个起始帧。
然后模型需要泛化到目标外观的不可见方面,包括不同的姿势、视点、闪电条件等。
跟踪问题可以分解为分类任务和估计任务。
在前一种情况下,目的是通过将图像区域分类为前景和背景来稳健地提供图像中目标的粗略位置。
第二个任务是估计目标状态,通常由边界框表示。
近年来,跟踪研究的重点一直是目标分类。
许多注意力已经投入到构建鲁棒分类器上,例如基于相关过滤器 [6, 22, 33],并利用强大的深度特征表示 [3, 36] 来完成这项任务。
另一方面,目标估计的进展低于预期。
在最近的 VOT2018 挑战 [17] 中可以清楚地观察到这种趋势,其中 KCF [13] 和 MEEM [40] 等较旧的跟踪器仍然获得了具有竞争力的准确性,同时表现出极差的鲁棒性。
事实上,大多数当前最先进的跟踪器 [3, 4, 33] 仍然依靠分类组件通过执行多尺度搜索来进行目标估计。
然而,这种策略从根本上是有限的,因为边界框估计本质上是一项具有挑战性的任务,需要对对象的姿态有高层次的理解(见图 1)。
在这项工作中,我们着手弥合视觉对象跟踪中目标分类和估计之间的性能差距。
我们引入了一种新颖的跟踪架构,由两个专门为目标估计和分类设计的组件组成。
受最近提出的 IoU-Net [15] 的启发,我们训练目标估计组件来预测目标和估计边界框之间的联合交集 (IoU) 重叠,即 Jaccard 索引 [14]。
由于原始的 IoU-Net 是特定于类的,因此不适合通用跟踪,我们提出了一种将特定于目标的信息集成到 IoU 预测中的新架构。
我们通过引入基于调制的网络组件来实现这一点,该组件将目标外观合并到参考图像中以获得特定于目标的 IoU 估计。
这进一步使我们的目标估计组件能够在大规模数据集上进行离线训练。
在跟踪过程中,通过简单地最大化每帧中预测的 IoU 重叠来找到目标边界框。
为了开发一种无缝且透明的跟踪方法,我们还重新审视了目标分类问题,以避免不必要的复杂性。
我们的目标分类组件简单而强大,由两层全卷积网络头组成。
与我们的目标估计模块不同,分类组件是在线训练的,对场景中的干扰对象具有很高的鲁棒性。
为了确保实时性能,我们解决了梯度下降不足的高效在线优化问题。
相反,我们采用基于共轭梯度的策略,并演示如何在现代深度学习框架中轻松实现它。
我们的最终跟踪循环很简单,在目标分类、估计和模型更新之间交替进行。
我们对五个具有挑战性的基准进行了全面的实验:NFS [9]、UAV123 [24]、TrackingNet [25]、LaSOT [8] 和 VOT2018 [17]。
我们的跟踪方法在所有五个数据集上都设置了新的最新技术,在具有挑战性的 LaSOT 数据集上实现了 10% 的绝对增益。
此外,我们提供了对跟踪器的分析,以及用于重叠预测的不同网络架构。
2. Related Work
在视觉跟踪的背景下,将目标分类和目标估计区分为两个独立但相关的子任务通常是有意义的。
目标分类基本上旨在确定目标对象在某个图像位置的存在。
然而,只获得了关于目标状态的部分信息,例如它的图像坐标。
目标估计然后旨在找到完整状态。
在视觉跟踪中,目标状态通常由边界框表示,轴对齐 [9, 37] 或旋转 [17]。
然后将状态估计简化为找到最能描述当前帧中目标的图像边界框。
在最简单的情况下,目标是刚性的并且仅平行于相机平面移动。
在这种情况下,目标估计简化为找到目标的二维图像位置,因此不需要与目标分类分开考虑。
然而,一般来说,对象可能会在姿势和视点上发生根本性的变化,这使得边界框估计的任务变得非常复杂。
在过去几年中,通过在线有区别地训练强大的分类器,成功解决了目标分类的挑战 [6, 13, 26]。
特别是,基于相关性的跟踪器 [7, 13, 23] 已经广受欢迎。
这些方法依靠离散傅立叶变换给出的圆形卷积的对角化变换来执行有效的全卷积训练和推理。
通过在密集的 2D 网格中计算可靠的置信度分数,相关过滤器方法通常在目标分类方面表现出色。
另一方面,准确的目标估计长期以来一直没有这种方法。
即使找到一个参数比例因子也成为一项艰巨的挑战 [5, 20],并且大多数方法都采用了具有明显计算影响的蛮力多尺度检测策略。
因此,默认方法是单独应用分类器来执行完整的状态估计。
然而,目标分类器对目标状态的所有方面都不敏感,例如目标的宽度和高度。
事实上,目标状态某些方面的不变性通常被认为是判别模型的一个有价值的特性,以提高鲁棒性 [2, 3, 26]。
我们不依赖分类器,而是学习专用的目标估计组件。
准确估计对象的边界框是一项复杂的任务,需要高级别的先验知识。
边界框取决于对象的姿势和视点,不能将其建模为简单的图像变换(例如统一图像缩放)。
因此,从头开始在线学习准确的目标估计是非常具有挑战性的,如果不是不可能的话。
因此,文献中最近的许多方法都以大量离线学习的形式整合了先验知识 [18, 26, 42]。
特别是,由于广泛的离线训练,SiamRPN [18] 及其扩展 [42] 已被证明能够进行边界框回归。
然而,这些连体跟踪方法经常在目标分类问题上挣扎。
例如,与基于相关性的方法不同,大多数 Siamese 跟踪器没有明确考虑干扰因素,因为没有执行在线学习。
虽然这个问题已经使用简单的模板更新技术得到部分解决 [42],但它还没有达到强大的在线学习模型的水平。
与 Siamese 方法相比,我们在线学习分类模型,同时还利用广泛的离线训练进行目标估计任务。
3. Proposed Method
在这项工作中,我们提出了一种新的跟踪方法,由两个部分组成:1)离线学习的目标估计模块; 2)在线学习的目标分类模块。
也就是说,遵循目标检测的现代趋势 [28, 29],我们将目标分类和估计的子问题分开。
然而,这两项任务都集成在一个统一的多任务网络架构中,如图 2 所示。
我们为目标分类和估计任务使用相同的骨干网络。
为简单起见,我们使用在 ImageNet 上训练的 ResNet-18 模型,并避免在这项工作中对主干进行微调。
目标估计由 IoU 预测器网络执行。
该网络在大规模视频跟踪和对象检测数据集上进行离线训练,其权重在在线跟踪期间被冻结。
IoU-predictor 有四个输入:i) 来自当前帧的主干特征,ii) 当前帧中的边界框估计,iii) 来自参考框架的主干特征,iv) 参考框架中的目标边界框。
然后它为每个当前帧边界框估计输出预测的联合交叉(IoU)分数。
在跟踪过程中,通过使用梯度上升最大化 IoU 分数来获得最终的边界框。
目标估计组件在第 3.1 节中有详细说明。
目标分类由另一个网络头执行。
与目标估计组件不同,分类网络完全是在在线跟踪期间学习的。
它经过专门训练,通过基于从当前帧中提取的骨干特征预测目标置信度分数,将目标与场景中的其他对象区分开来。
训练和预测都以完全卷积的方式进行,以确保效率和覆盖率。
然而,使用常规方法(例如随机梯度下降)在线训练这样的网络对于我们的在线目的来说并不理想。
因此,我们建议使用基于共轭梯度和高斯牛顿的优化策略,以实现快速在线训练。
此外,我们展示了如何通过利用反向传播功能在常见的深度学习框架(例如 PyTorch)中轻松实现这种方法。
我们的目标分类方法在 3.2 节中描述,我们的最终跟踪框架在 3.3 节中详细说明。
3.1. Target Estimation by Overlap Maximization
在本节中,我们将详细介绍如何执行目标状态估计。
我们的状态估计组件的目的是在给定粗略的初始估计的情况下确定目标边界框。
我们从 IoU-Net [15] 中获得灵感,该网络最近被提议用于对象检测,作为典型的基于锚点的边界框回归技术的替代方案。
与传统方法相比,IoU-Net 被训练来预测图像对象和输入边界框候选者之间的 IoU。
然后通过最大化 IoU 预测来执行边界框估计。
为了介绍我们的目标估计模块,我们首先重温一下IOU-Net模型。
给出一张图片的深度特征x,$x\in R^{WHD}$,和一个目标位置的bbox B,$B \in R^4$。IOU-Net预测目标与B的IOU。这里B代表$B = (c_x/w, c_y/h, log w, log h)$,其中$(c_x, c_y)$指目标中心位置。网络使用了Precise ROI Pooling (PrPool)层去池化特征图中的B的区域,得到预先设定好大小的结果$x_b$。
从本质上讲,PrPool 是自适应平均池化的连续变体,其关键优势是可微分 w.r.t.边界框坐标 B。
这允许通过梯度上升最大化 IoU w.r.t.B 来细化边界框。
网络架构:对于对象检测任务,在 [15] 中为每个对象类训练独立的 IoU-Net。
然而,在跟踪目标类时一般是未知的。
此外,与对象检测不同,目标不需要属于任何一组预定义的类或在任何现有的训练数据集中表示。
因此,特定于类的 IoU 预测器对通用视觉跟踪几乎没有用。
相反,通过利用第一帧中的目标注释,需要特定于目标的 IoU 预测。
由于 IoU 预测任务的高级性质,在单帧上在线训练甚至微调 IoU-Net 是不可行的。
因此,我们认为目标估计网络需要离线训练以学习 IoU 预测的一般表示。
在视觉跟踪的背景下,目标对象事先未知,因此挑战在于构建一个 IoU 预测架构,以有效利用测试时给出的参考目标外观。
我们最初的实验表明,将参考图像特征与当前帧特征融合的幼稚方法会产生较差的性能(参见第 4.1 节)。
我们还发现 Siamese 架构提供了次优结果。
因此,在这项工作中,我们提出了一种基于调制的(modulation-based)网络架构,该架构仅在给定单个参考图像的情况下预测任意对象的 IoU。
建议的网络如图 3 所示。
我们的网络有两个分支,两个分支都使用骨干网络提取到的特征,从ResNet-18的第三层和第四层作为输入,
(reference branch)参考分支输入特征 x0 和参考图像中的目标边界框标注 B0。
reference branch 返回一个调制向量$c(x_0, B_0)$作为结果,包含一系列的正系数大小为$1 * 1 * D_z$
如图 3 所示,该分支由一个卷积层、后跟 PrPool 和一个全连接层组成。
我们要估计当前图像的目标边界框,当前图像通过测试分支进行处理。
它首先将主干网络提取的特征 x 送入两个卷积层,再送入具有边界框估计值 B功能 的 PrPool 层来获取深度表示。
由于测试分支为 IoU 预测提取一般特征,这构成了一个更复杂的任务,它使用了更多的层和与参考分支相比,池化分辨率更高(见图 3)。
结果表示 $z(x, B)$的大小是$K * K * D_z$,其中 K 是 PrPool 层输出的空间尺寸。
测试图像的计算特征表示然后由系数向量 c 通过通道乘法进行调制。
这为 IoU 预测创建了特定于目标的表示,有效地结合了参考外观信息。
调制后的表示最终被馈送到 IoU 预测器模块 g,它由三个完全连接的层组成。
因此,边界框 B 的预测 IoU 由下式给出
$$ IOU(B) = g(c(x_0, B_0)\cdot z(x, B)) $$
我们使用有标注的数据,通过最小化上述IOU的误差来训练网络。
再跟踪时我们最大化上述IOU w.r.t B 去预测目标状态。
训练:从(1)可以看出,整个 IoU 预测网络可以使用边界框注释的图像对以端到端的方式进行训练。
我们使用最近引入的大规模单对象跟踪 (LaSOT) 数据集 [8] 和 TrackingNet [25] 的训练分割。
我们从视频中采样图像对,最大间隔为 50 帧。
与 [42] 类似,我们使用来自 COCO 数据集 [21] 的合成图像对来增强我们的训练数据,以具有更多不同的类别。
从参考图像中,我们采样一个以目标为中心的正方形补丁,面积约为目标面积的 5^2 倍,即边长的5倍,面积的25倍。
从测试图像中,我们采样了一个类似的patch,在位置和尺度上有一些扰动来模拟跟踪场景。
然后将这些裁剪区域的大小调整为固定大小。
对于每个图像对,我们通过将高斯噪声添加到地面实况坐标来生成 16 个候选边界框,同时确保最小 IoU 为 0.1。
我们使用图像翻转和颜色抖动进行数据增强。
与 [15] 中一样,IoU 被归一化为 [-1, 1]。
我们的头部网络中的权重是使用 [12] 初始化的。
对于主干网络,我们在训练期间冻结所有权重。
我们使用均方误差损失函数并训练 40 个epochs,每批 64 个图像对。
使用 ADAM [16] 优化器,初始学习率为 10^-3,每 15 个epoch使用因子 0.2 衰减。
3.2. Target Classification by Fast Online Learning
虽然目标估计模块提供准确的边界框输出,但它缺乏稳健区分目标对象和背景干扰物的能力。
因此,我们用第二个网络头补充估计模块,其唯一目的是执行这种区分。
与估计组件不同,目标分类模块专门在线训练,以预测目标置信度分数。
由于目标分类模块的目标是提供对象的粗略 2D 位置,我们希望它对目标的大小和规模保持不变。
相反,它应该通过最小化错误检测来强调鲁棒性。
模型:我们的目标分类模块是一个 2 层全卷积神经网络,正式定义为
$$ f(x; w) = \phi_2(w_2 * \phi_1(w_1, x)) $$
x表示由骨干网络提取到的特征,$w = {w1, w2}$时网络的参数,$\phi_1, phi_2$时激活函数,* 表示标准的多通道卷积。
虽然我们的框架是通用的,允许为此目的使用更复杂的模型,但我们发现这样一个简单的模型在计算效率方面已经足够且有益。
受判别相关滤波器 (DCF) 方法最近成功的启发,我们基于 L^2 分类错误制定了一个类似的学习目标,
$$ L(w) = \sum_{j=1}^{m} \gamma_j ||f(x_j; w)-y_j||^2+ \sum_k \lambda_k ||w_k||^2 $$
每一个训练样本的特征图像$x_j$是通过分类置信度 $y_j \in R^{W * h}$来标注,设置为以目标位置为中心的采样高斯函数。
每一个训练样本的影响是通过权重$\gamma_j$来控制的,
全部关于$w_k$的正则化是由$\lambda_k$来设置的。
在线学习:最小化上述$L(w)$的蛮力方法是应用标准梯度下降或其随机孪生。
这些方法很容易在现代深度学习库中实现,但由于收敛速度慢,不太适合在线学习。
因此,我们开发了一种更复杂的优化策略,专为此类在线学习问题量身定制,但只需要很少的实现复杂性。
首先,我们将问题的残差定义为
$$ r_j(w) = \sqrt{\gamma_j}(f(x_j;w)-y_j) $$
其中$j \in {1...m}$, $r_{m+k}(w) = \sqrt{\lambda_k}w_k$, $k = {1,2}$
损失 L(w) 然后等价地写成残差向量的平方 L2 范数
$$ L(w)=||r(w)||^2 $$
其中 r(w) 是所有残差 r_j(w) 的串联。
我们利用二次高斯牛顿近似
$$ \tilde{L}_w(\Delta w) = \Delta w^T J^T_w J_w \Delta w+2\Delta w^TJ^T_wr_w+r^T_wr_w $$
我们定义$r_w = r(w)$, $J_w=\frac{\partial r}{\partial w}$ 是r和w的雅可比。
高斯-牛顿子问题 (4) 形成了一个正定二次函数,允许部署专门的机器,例如共轭梯度 (CG) 方法。
虽然对 CG 的完整描述超出了本文的范围(有关完整处理,请参见 [31]),但直觉上它会在每次迭代中找到最佳搜索方向 p 和步长 $\alpha$。
由于CG算法由简单的向量运算组成,因此只需几行python代码即可实现。
CG 唯一具有挑战性的方面是对再搜索方向p上的操作 $J^T_wJ_wp$ 的评估。
我们注意到 CG 已成功部署在一些 DCF 跟踪方法中 [4, 7, 33]。
但是,这些实现依赖于手动编码所有操作以实现 $J^T_wJ_wp$,即使对于简单的模型,也需要大量繁琐的工作和推导 (2)
这种方法也缺乏灵活性,因为架构 (2) 的任何微小修改,例如添加层或更改非线性,都可能需要全面的重新推导和实现工作。
因此,在本文中,我们展示了如何通过利用现代深度学习框架(如 PyTorch)的反向传播功能来实现(4)的 CG。
我们的实现只需要用户提供函数 r(w) 来评估残差,这很容易实现。
因此,我们的算法适用于形式(3)的任何浅层学习问题。
为了寻找一个可以评价$J^T_wJ_wp$的策略,我们首先考虑了使用一个和残差 r(w) 同样大小的向量 u。
通过计算它们内积的梯度,我们得到
$$ \frac{\partial}{\partial w}(r(w)^Tu) = \frac{\partial r}{\partial w} ^ Tu = J^T_wu $$
事实上,这是反向传播过程的标准操作,即在计算图中的每个节点应用转置雅可比行列式,从输出开始。
因此,我们可以将标量函数 s 相对于变量 v 的反向传播定义为
$$ BackProp(s, v) = \frac{\partial s}{\partial v} $$
所以有了:
$$ BackProp(r^Tu, w) = J^T_wu $$
但是,这仅占 $J^T_wJ_wp$ 中的后半部分
我们还需要计算$J_wp$ 这涉及雅可比本身的应用(不是它的转置)。
Thankfully, the Jacobian of the function u -> J^T_ wu is trivially J^T_w , since the function is linear.
因此,我们可以通过应用反向传播来转置它。
通过让