如果你尝试过使用单图像 AI 模型逐帧处理视频,你可能对“闪烁”问题并不陌生。无论是深度估计、风格迁移还是视频着色,将图像模型应用于视频通常会导致画面抖动、不一致且混乱。地面震动,颜色随机变换,物体在这一秒和下一秒之间变形。

之所以会发生这种情况,是因为标准的图像模型没有时间概念。它们不知道第 10 帧中的椅子与第 11 帧中的椅子是同一个物体。

为了解决这个问题,研究人员通常采用 3D 卷积或复杂的时间注意力机制。这些方法计算量大,而且往往难以处理大幅度的运动。但是,有没有更好的方法呢?如果我们能简单地告诉网络像素是如何移动的呢?

在本文中,我们将深入探讨 Tracktention , 这是牛津大学视觉几何组 (Visual Geometry Group) 的一篇精彩论文。研究人员提出了一个即插即用的层,通过利用近期高质量点跟踪 (Point Tracking) 技术的爆发式发展,将标准的图像模型转化为最先进的视频模型。

Tracktention 概念图。左侧显示图像网络被转换为视频网络。右侧的性能图表显示它比竞争对手更快且更准确。

核心问题: 时间一致性

由于时间维度的存在,视频分析比图像分析要困难得多。视频处理的“圣杯”是时间一致性——即确保预测结果随时间推移保持连贯。

解决这个问题的传统方法通常分为两类:

  1. 隐式运动 (3D CNN 和时间注意力) : 这些方法试图隐式地学习运动特征。然而,3D 卷积只关注局部邻域 (时间上紧邻的像素) ,这使得它们不擅长跟踪快速移动的物体。时间注意力试图同时关注所有内容,这在计算上既昂贵 (\(O(T^2)\)) 又低效。
  2. 显式运动 (光流) : 一些网络摄入光流场来理解运动。虽然效果更好,但光流场在处理遮挡 (当一个物体移动到另一个物体后面时) 时往往表现不佳,并且经常无法捕捉长距离的依赖关系。

点跟踪技术的兴起

最近,计算机视觉领域见证了点跟踪技术的突破。像 CoTracker、PIPs 和 TAPIR 这样的模型可以在视频中以极高的精度跟踪成千上万个特定点,即使这些点被遮挡或摄像机剧烈移动也能保持跟踪。

Tracktention 的作者提出了一个简单的问题: 当我们拥有能够明确告知物体去向的专家级点跟踪器时,为什么还要强迫视频网络去隐式地学习运动呢?

介绍 Tracktention

Tracktention 是一种新颖的注意力层,旨在插入现有的 Vision Transformers (ViTs) 或 CNN 中。它将静态图像模型升级为具有运动感知能力的视频模型。

Tracktention 流程概览。1. 在轨迹位置对图像 Token 进行采样。2. 通过轨迹 Transformer 进行更新。3. 溅射回图像 Token。

如上图所示,该过程非常直观。Tracktention 没有让每个像素都去关注其他每一帧中的每个像素 (这既慢又充满噪声) ,而是使用点轨迹作为信息流的“导轨”。

该架构遵循三个步骤: 注意力采样 (Attentional Sampling)轨迹 Transformer (Track Transformer)注意力溅射 (Attentional Splatting) 。 让我们分解每一步的数学原理和机制。

1. 注意力采样

第一步是将信息从密集的图像特征图转移到稀疏的点轨迹中。

我们从输入视频特征 \(F\) (骨干网络某层的输出) 和由现成跟踪器 (如 CoTracker3) 生成的一组点轨迹 \(P\) 开始。

我们需要将图像特征转换为“轨迹 Token”。我们将轨迹点投影为查询 (Queries,\(Q\)) ,将图像特征投影为键 (Keys,\(K\)) 和值 (Values,\(V\)) :

查询、键和值投影的公式。

这里,\(\mathcal{T}\) 代表轨迹点的位置嵌入。

接下来,我们计算注意力权重。这不是标准的全局注意力;它是高度局部化的。我们希望轨迹 Token 仅从该特定时间戳下轨迹位置附近的图像特征中收集信息。

为了强制执行这一点,作者在 Softmax 计算中引入了一个基于距离的偏置项 \(B_t\):

带有偏置项 B 的 Softmax 注意力公式。

偏置项 \(B_t\) 至关重要。它的作用类似于高斯窗口,强制注意力机制在空间上聚焦于轨迹点周围:

偏置项 B 的公式,利用了轨迹位置与特征位置之间的欧几里得距离。

在这个公式中,\(P_{ti}\) 是轨迹的位置,\(\mathrm{pos}_{F_t}(j)\) 是特征图中像素的位置。如果一个像素远离轨迹点,\(B_{tij}\) 就会变成一个很大的负数,有效地将注意力概率归零。

注意力采样的可视化。热图显示了模块如何关注与特定轨迹相对应的特征。

正如上面的可视化所示,这导致注意力图在帧之间紧紧跟随感兴趣的物体 (如骑手的头盔) ,而忽略背景杂波。

2. 轨迹 Transformer

一旦我们将图像特征“采样”成轨迹 Token (\(S\)),我们就本质上得到了一束时间线。我们有 \(M\) 条轨迹,每条轨迹都有 \(T\) 帧的特征。

现在,我们执行实际的时间处理。作者对数据进行转置,以便沿时间维度对其进行处理。他们使用的是标准的 Transformer 编码器 (自注意力 + 前馈网络) 。

这一步使模型能够:

  1. 平滑随时间推移产生的特征不一致。
  2. 将信息从置信度高的帧 (例如,物体完全可见) 传播到模糊的帧 (例如,物体被遮挡) 。
  3. 学习时间动态。

至关重要的是,这种处理是每条轨迹独立进行的 。 信息在这里不会在轨迹 A 和轨迹 B 之间流动;它只会在轨迹 A 内部从时间 \(t\) 流向时间 \(t+1\)。这保持了操作的高效性。

3. 注意力溅射

在轨迹 Transformer 更新 Token 后,我们得到了时间上一致、平滑的特征。现在我们必须将它们放回图像特征网格中,以便神经网络的其余部分可以使用它们。

这个过程是采样步骤的对称逆过程。我们将轨迹信息“溅射 (splat) ”回图像网格。现在的查询 (Queries) 来自图像像素,而键 (Keys) 和值 (Values) 来自更新后的轨迹 Token。

最终 Tracktention 输出计算的公式。

这里,\(A'_t\) 是注意力矩阵 (计算方式与步骤 1 类似) ,\(W_{out}\) 是最终的投影层。

关于集成的说明: 为了确保该层可以放入预训练模型中而不破坏它们,作者使用了残差连接 (\(F_{new} = F + \text{Tracktention}(F)\)) ,并将最终投影权重 \(W_{out}\) 初始化为零。这意味着在训练开始时,该层不执行任何操作,允许模型逐渐学习利用时间线索。

相对空间信息 (RoPE)

值得注意的一个实现细节是模型如何处理位置。由于轨迹是连续移动的,标准的固定位置嵌入效果不佳。

作者使用了旋转位置编码 (RoPE) 。 这种现代技术使注意力机制能够比绝对位置嵌入更有效地理解轨迹点与图像像素之间的相对距离。

RoPE 公式显示基于位置的特征向量旋转。

为什么这比标准注意力机制更好

要理解为什么 Tracktention 如此巧妙,我们需要将其与视频 Transformer 通常的工作方式进行比较。

注意力机制的比较。红框是查询 Token,蓝色块是关注的 Token。

  • 时空注意力 (上图) : 每个像素都关注时间和空间中的其他每个像素。这非常慢且占用大量内存。
  • 空间/时间注意力 (中图) : 分解注意力先看空间,再单独看时间。这比较快,但“时间”部分通常只看上一帧中相同的像素位置。如果一个物体移动了 (比如滚动的球) ,第 \(t\) 帧中 \((x, y)\) 处的像素关注的是第 \(t-1\) 帧中的 \((x, y)\),而那里现在已经是背景了!
  • Tracktention (下图) : 注意力跟随轨迹。第 \(t\) 帧的查询关注的是第 \(t-1\) 帧中物体的正确位置,无论它移动了多远。

实验结果

研究人员在两个具有挑战性的任务上测试了 Tracktention: 视频深度估计视频着色 。 在这两种情况下,他们都采用了标准的单图像模型,并用 Tracktention 层对其进行了“升级”。

任务 1: 视频深度估计

他们采用了 Depth Anything (一种强大的单图像深度估计器) ,并添加了 Tracktention 层。他们将其与 DepthCrafter (一种专门的视频扩散模型) 和 DUSt3R 进行了比较。

定量结果:

对比 Tracktention 与 DepthCrafter 及其他模型的表格。Tracktention (Ours) 实现了更低的误差 (AbsRel) 和显著更少的参数。

结果非常明显。增强了 Tracktention 的模型 (标记为“Ours”) 在几乎所有指标上都优于标准的 Depth Anything、DepthCrafter 和 NVDS。

  • 参数效率: 他们的模型只有 1.4 亿参数 。 相比之下,DepthCrafter 有 15.21 亿参数。Tracktention 的体积大约只有其十分之一,但更准确。

定性结果:

深度预测的定性比较。红色列可视化了随时间变化的像素切片。

看上面的图片。“像素列”可视化 (垂直条带) 是观察时间稳定性的绝佳方式。

  • DepthCrafter 显示出波动 (蓝框) 。
  • DUSt3R 在处理动态内容时很吃力 (绿框) 。
  • Ours (Tracktention) 保持平滑和一致。

这是直接比较误差图的另一个视角。注意“Ours”列中的红色/黄色 (高误差) 明显少于竞争对手,特别是在墙壁等缺乏特征的区域,而在这些区域一致性是关键。

详细的误差图比较。DepthCrafter 和 DUSt3R 显示出大面积的红色误差区。Tracktention 在整个帧中保持低误差。

任务 2: 视频着色

着色任务因闪烁而臭名昭著,因为一个物体通常有多种合理的颜色 (一件衬衫可能是红色或蓝色的) 。如果模型在视频中途改变主意,结果就会很刺眼。

作者用 Tracktention 升级了 DDColor

视频着色的定量表格。CDC (颜色分布一致性) 显著提高。

这里需要关注的指标是 CDC (颜色分布一致性) ——越低越好。Tracktention 将基础模型的一致性提高了 46.5%

着色的视觉比较。上: 输入。中: 基础模型。下: Tracktention。

在上面的鹦鹉示例中 (图片左侧) ,基础模型在绿色和粉色色调之间闪烁。Tracktention 模型锁定了一种颜色表示,并在整个片段中保持稳定。

轨迹的重要性

论文中最有趣的消融研究之一分析了轨迹的选择如何影响输出。

研究人员发现,输出的一致性与轨迹的一致性直接相关。如果你跟踪背景,背景就会变得稳定。如果你跟踪物体,物体就会变得稳定。

展示选择性轨迹的消融实验。跟踪特定物体可以稳定其特定的着色。

在上图 (顶行) 中,当轨迹放置在左边的鸟身上时,左边鸟的颜色变得稳定 (绿框) ,但右边的鸟 (未被跟踪) 可能仍然会闪烁 (红框) 。这证实了网络确实依赖显式的轨迹信息来传播特征。

实现细节: 预处理器

为了使其工作,你需要轨迹。作者使用了 CoTracker3 。 他们强调了初始化的重要性。

如果你只是在第 1 帧的网格上初始化点,随着物体移出屏幕或被遮挡,你会丢失轨迹。相反,他们在整个时空体 (空间和时间中的随机点) 中随机采样点,并向前和向后跟踪它们。

网格与随机查询初始化的比较。随机初始化随时间推移能更好地覆盖视频。

如上图所示,网格初始化 (顶行) 在第 50 帧留下了巨大的空白。随机初始化 (底行) 保持了密集的覆盖,确保 Tracktention 始终有数据可用。

结论

Tracktention 代表了我们思考视频架构方式的转变。它不再构建试图从头开始“学习”物理和运动的大型、参数繁重的 3D 网络,而是主张一种模块化的方法。我们已经拥有出色的运动估计器 (点跟踪器) 。通过注意力机制显式地将这种运动知识注入网络,我们获得了两全其美的效果:

  1. 来自图像基础模型的高保真特征
  2. 来自点跟踪器的稳健的时间一致性

结果是一个比原生视频模型更快、更小、更准确的模型。它将“闪烁”问题从黑盒之谜变成了一个已解决的几何问题。

对于学生和研究人员来说,这突显了一个宝贵的教训: 有时改进神经网络的最佳方法不是使其更深,而是给它正确的提示。


本文中出现的所有图片和公式均直接源自 Lai & Vedaldi 的研究论文 “Tracktention: Leveraging Point Tracking to Attend Videos Faster and Better”。