看见不可见: 事件相机如何彻底改变点跟踪技术

想象一下,试图跟踪快速旋转的风扇叶片上的一个特定点。或者也许你正试图追踪一只潜入黑暗阴影中的鸟。如果你使用标准的视频摄像机,很可能会撞上两堵大墙: 运动模糊和动态范围限制。风扇叶片变成了一团模糊的影子,而鸟则消失在黑暗中。

几十年来,计算机视觉一直依赖于帧 (Frame) ——即每隔固定时间拍摄的世界快照。但生物学的工作方式并非如此。你的视网膜不会每秒拍摄 30 张快照;它会对光线的连续变化做出反应。这一仿生原理催生了 事件相机 (Event Cameras)

虽然事件相机解决了模糊和光照问题,但它们也带来了一个新的难题: 对于传统算法来说,它们的数据极难解读。在这篇文章中,我们将深入探讨一篇开创性的论文 “ETAP: Event-based Tracking of Any Point” , 该论文提出了第一种仅使用事件数据就能稳健地跟踪任意物理点的方法。

我们将探讨作者如何克服“运动依赖性”悖论,如何为稀疏数据设计基于 Transformer 的架构,以及如何创建一个新的合成数据集来训练他们的模型。

帧的问题 (以及事件的承诺)

为了理解为什么 ETAP 是必要的,我们需要首先定义任务: 任意点跟踪 (Tracking Any Point, TAP) 。 目标是在物体上选取一个查询点,并在整个视频中跟踪该物理点,确定它在每一刻的位置以及是否可见 (被遮挡) 。

基于帧的方法已经变得相当强大 (例如 CoTracker 或 TAPIR) ,但它们受限于传感器的能力:

  1. 运动模糊: 快速运动会模糊特征,使得精确跟踪变得不可能。
  2. 低动态范围: 标准相机在强光下会致盲,或在阴影中丢失细节。
  3. 低带宽: 高速相机产生的数据量太大,无法实时处理。

事件相机 通过拥有独立运作的像素解决了这个问题。它们不输出图像;每当像素检测到亮度变化时,它们就会输出一连串异步的“事件”。这提供了微秒级的时间分辨率和高动态范围。

“运动依赖性”挑战

如果事件相机如此优越,为什么我们没有完全转换过去呢?答案在于事件的生成方式。

在标准图像中,无论相机是静止的、向左移动还是向右移动,咖啡杯看起来都像咖啡杯。其外观对运动具有不变性。

在事件视觉中,事件是由亮度变化触发的。这种变化取决于场景的梯度以及相机的运动。如果你水平移动相机经过一条垂直边缘,你会得到大量事件。如果沿着同一边缘垂直移动呢?你可能一个事件也得不到。

图 2 说明了运动依赖性问题。在左侧,帧的外观无论运动如何都保持一致。在右侧,事件数据根据运动方向发生剧烈变化。

图 2 所示,传感器产生的数据从根本上与运动本身耦合。这使得学习稳定的特征极其困难,因为物体的“指纹”会根据其移动方式而改变。ETAP 正是为解决这个问题而设计的。

ETAP: 首个仅基于事件的 TAP 方法

研究人员提出了 ETAP , 这是一个仅使用事件数据就能跟踪长距离半稠密轨迹的模型。它对高速运动和极具挑战性的光照具有鲁棒性,填补了基于帧的方法失效的空白。

图 1 展示了 ETAP 的概念。事件被处理成点轨迹,突出了在高速运动 (指尖陀螺) 下跟踪的能力,而这种情况下帧会模糊。

1. 从异步事件到结构化输入

深度学习模型,特别是 Transformer 和 CNN,通常需要结构化的网格状输入。然而,事件是稀疏的元组列表: \(e_k = (x, y, t, p)\),代表位置、时间、和极性 (亮度增加或减少) 。

\[ E _ { t } = \left\{ e _ { k } \ : | \ : \tau _ { k } \in \left( \tau _ { t } - \Delta \tau _ { t } , \tau _ { t } \right) \right\} \subset E \]

显示在时间窗口内选择事件的公式。

为了让网络能够消化这些数据,ETAP 将原始事件转换为 事件堆叠 (Event Stacks)

  1. 他们将事件分组到时间窗口中。
  2. 他们将这些事件分箱到一个多通道网格 (张量) 中。
  3. 这产生了一个维度为 \(H \times W \times B\) 的表示 \(I_t\) (其中 \(B\) 是时间箱的数量) 。

图 9 演示了异步事件如何转换为时间等距的帧表示。

如上图所示,这个过程将连续的数据流变成了离散的活动“快照”,在保持事件的时间丰富性的同时,兼容卷积编码器。

2. 架构

ETAP 的核心是一个基于 Transformer 的跟踪器。它接收事件堆叠和一组查询点 (用户点击开始跟踪的位置) ,并输出这些点的轨迹。

图 3 展示了模型架构和训练流程。(a) 使用时间反转进行训练。(b) 详细的 Psi 模型架构。(c) 特征对齐损失的可视化。

该过程由函数 \(\Psi\) 定义,迭代地工作:

\[ \mathcal { P } _ { t } = \Psi ( \mathcal { P } _ { t - T _ { s } } , \mathcal { E } _ { t } ) . \]

定义跟踪器函数 Psi 的公式。

以下是 图 3(b) 中展示的架构的分步拆解:

  1. 特征提取: 一个 CNN 从事件堆叠中提取多尺度特征。
  2. Token化 (Tokenization) : 对于每个被跟踪的点,模型创建一个“Token”,包含其当前估计的位置、视觉描述符 (它看起来像什么) 以及相关特征 (它与周围环境的匹配程度) 。
  3. Transformer 细化: 模型使用 Transformer 来混合跨时间的信息 (时间注意力) 和跨不同点的信息 (空间注意力) 。这允许点之间进行“对话”——如果一个点向右移动,它的邻居很可能也向右移动了。
  4. 更新循环: 模型输出位置和描述符的增量 (变化) ,在多次迭代中细化估计值。 \[ \begin{array} { r l } { { ( \mathrm { d } \tilde { \mathbf { x } } _ { s } ^ { i , m } , \mathrm { d } \tilde { Q } _ { s } ^ { i , m } ) = \gamma ( \mathcal { P } ^ { m } , \mathcal { D } ) } } \\ & { \quad \tilde { \mathbf { x } } _ { s } ^ { i , m + 1 } = \tilde { \mathbf { x } } _ { s } ^ { i , m } + \mathrm { d } \tilde { \mathbf { x } } _ { s } ^ { i , m } } \\ & { \quad \tilde { Q } _ { s } ^ { i , m + 1 } = \tilde { Q } _ { s } ^ { i , m } + \mathrm { d } \tilde { Q } _ { s } ^ { i , m } } \end{array} \] 显示位置和描述符迭代更新的公式。

为了帮助模型在下一个时间戳找到该点,它会查看像素的局部邻域。它计算 相关特征 (Correlation Features) ——本质上是检查被跟踪点的描述符与预测位置周围网格中的特征有多相似。

\[ C _ { s } ^ { i , m } = \oplus _ { \lambda = 1 } ^ { S } \oplus _ { \delta \in B _ { \Delta } } \left. \tilde { Q } _ { s } ^ { i , m } , D ( \tilde { \mathbf { x } } _ { s } ^ { i , m } / k \lambda + \delta ) \right. \]

跨尺度计算相关特征的公式。

3. 解决运动依赖性: 特征对齐损失

这是论文中最具创新性的部分。如前所述,如果运动方向改变,事件数据也会改变。然而,为了使跟踪器具有鲁棒性,它需要识别出“点 A”仍然是“点 A”,无论相机是向上还是向下移动。

为了教导网络这种不变性,作者引入了 对比特征对齐损失 (Contrastive Feature Alignment Loss, \(L_{fa}\))

逻辑: 如果你获取一段视频序列并倒放 (时间反转) ,运动矢量会反转。在标准视频中,图像看起来是一样的。但在事件视觉中,事件的极性和分布会发生根本性的变化。

\[ e _ { k } \in E _ { t } \iff - p _ { k } \nabla L ( \mathbf { x } _ { k } , \tau _ { k } ) \cdot \boldsymbol { v } ( \mathbf { x } _ { k } , \tau _ { k } ) \delta \tau _ { k } \approx C \]

公式 8: 线性化事件生成模型。

\[ \begin{array} { r l } & { - \tilde { p } _ { k } \nabla \tilde { L } ( \tilde { \mathbf { x } } _ { k } , \tilde { \tau } _ { k } ) \cdot \tilde { v } ( \tilde { \mathbf { x } } _ { k } , \tilde { \tau } _ { k } ) \delta \tilde { \tau } _ { k } } \\ & { } \\ & { = - p _ { k } \nabla L ( \mathbf { x } _ { k } , \tau _ { k } ) \cdot v ( \mathbf { x } _ { k } , \tau _ { k } ) \delta \tau _ { k } \overset { \mathrm { \tiny ~ ( 8 ) } } { \approx } C . } \end{array} \]

显示时间反转下事件差异的推导公式。

上面的数学推导证明了事件表示 \(\tilde{E}\) (时间反转后) 与 \(E\) (原始) 是不同的。

解决方案: 在训练期间,研究人员向网络提供同一样本的两个版本:

  1. 原始序列。
  2. 时间反转 (及可选旋转) 的版本。

然后,他们强制网络为两个版本中的对应点生成 相同的特征描述符 。 通过最小化这些描述符之间的差异,网络学会了忽略特定于运动的伪影,并专注于物体的底层结构。

\[ \begin{array} { r } { \mathcal { L } _ { \mathrm { f a } } = \sum _ { t } \frac { 1 } { | \mathcal { P } _ { t } | } \sum _ { i , s } \left( 1 - \big \langle { \mathrm { u } \left( d _ { t } ^ { s , i } \right) } , { \mathrm { u } \left( \tilde { d } _ { t } ^ { s , i } \right) } \big \rangle \right) ^ { 2 } } \end{array} \]

公式 7: 特征对齐损失函数。

这个损失函数 (\(L_{fa}\)) 明确地惩罚模型,如果前向运动的特征与后向运动的特征不匹配 (通过余弦相似度测量) 。

EventKubric: 一个新的基准

深度学习需要数据。虽然已经有一些用于事件相机的合成数据集,但它们往往缺乏真实感或点跟踪所需的特定标注 (可见性标志、长轨迹) 。

作者创建了 EventKubric , 这是一个大规模合成数据集,使用复杂的管道生成:

  1. Kubric: 渲染具有物理特性 (重力、碰撞) 和逼真纹理的 3D 场景。
  2. FILM: 将视频上采样到高帧率以模拟连续时间。
  3. ESIM: 一个事件模拟器,将高速视频转换为事件流。

图 11: 数据生成管道。

该数据集包含超过 10,000 个具有不同相机运动和复杂物体交互的样本。它提供了完美的真实值 (Ground Truth) 用于训练,这在现实世界中以这种规模是无法获得的。

图 13: 来自 EventKubric 数据集的示例,展示了深度、分割和事件等不同模态。

实验与结果

它有效吗?作者在真实和合成数据上对比了 ETAP 与最先进的基线方法。

任务 1: 任意点跟踪 (TAP)

主要评估是在 EVIMO2 数据集 (真实世界数据) 和新的 EventKubric 数据集上进行的。

定量结果: 在合成的 EventKubric 基准测试中,ETAP 相比基线 (使用 E2VID 从事件重建图像,然后运行标准跟踪器) 实现了 136% 的提升 。 这证明了原生处理事件远优于试图将它们变回图像。

在真实世界的 EVIMO2 数据集上,ETAP 展示了对 3D 空间中移动物体的稳健跟踪。

图 4: EVIMO2 上的轨迹预测可视化。 图 14: EVIMO2 上的额外可视化,显示密集跟踪。

终极压力测试: 指尖陀螺 为了凸显相对于标准相机的优势,作者使用了 E2D2 数据集 , 该数据集的特点是在低光照下以越来越快的速度旋转的指尖陀螺。

  • 基于帧的方法 (CoTracker): 完全失败。运动模糊和低帧率 (10Hz) 让陀螺看起来像一团模糊。
  • ETAP: 即使在陀螺达到极高角速度时也能成功跟踪上面的点,利用了事件传感器的微秒级分辨率。

图 6: 指尖陀螺序列的比较。上图: 真实值。中图: ETAP (本文方法) 。下图: 基于帧的 CoTracker 因模糊而失败。

差异是巨大的。在 图 6 的底行中,你可以看到基于帧的跟踪器几乎立即丢失了点。ETAP (第二行) 则紧紧抓住了它们。

定性分析的胜利: 该方法在无约束环境中也大放异彩,例如在鸟舍中跟踪一只鸟 (图 7) 。这对于计算机视觉来说是一个“噩梦般的场景”: 一个小的、可变形的物体,在复杂的背景和困难的光照 (HDR) 下快速移动。

图 7: 在困难光照条件下跟踪鸟类的定性结果。

任务 2: 特征跟踪

作者还在 EDSEC 数据集上将 ETAP 与专门的特征跟踪算法进行了比较。

ETAP 在 EDS 基准测试中比最好的 仅基于事件 的方法高出 20% 。 甚至更令人印象深刻的是,它的表现比 结合了事件和帧 的最佳方法 (FE-TAP) 还要高出 4.1%

表 4: 特征跟踪指标的详细性能比较。

图 8: EDS 上的特征跟踪。注意 ETAP 如何跟踪重新进入视野的点。

图 8 所示,跟踪器具有持久性。即使一个点离开了相机的视野并返回,模型通常也能重新识别并继续跟踪它。

为什么损失函数很重要

研究人员进行了一项消融实验,以验证他们的特征对齐 (FA) 损失是否真的有帮助。他们设置了一个实验,跟踪在水平移动然后垂直移动的图案上的相同点。

理想情况下,无论运动方向如何,特征描述符都应该是相似的。

图 12: 运动鲁棒性实验的设置。

结果: 如果没有 FA 损失,水平和垂直特征之间的相似度很低 (0.399) 。加上 FA 损失后,相似度跃升至 0.887 , 几乎达到了基于帧的特征的一致性。这证实了网络成功学会了在其内部表示中“忽略”运动方向。

表 7: 测量特征独立性。FA 损失显著提高了簇间相似度。

结论与启示

ETAP 标志着神经形态视觉的一个重要里程碑。通过构建首个仅基于事件的任意点跟踪方法,作者开启了在以前不可能的条件下——极端速度和挑战性动态范围——跟踪任意场景点的能力。

主要结论:

  1. 速度上事件 > 帧: 原生事件处理优于从事件重建图像。
  2. 可解决的运动依赖性: 新颖的对比特征对齐损失有效地教导网络学习运动不变特征。
  3. 数据是关键: EventKubric 数据集提供了训练这些高容量模型所需的规模和复杂性。

这项技术对机器人、自动驾驶无人机和高速工业检测具有巨大的意义,在这些领域,机器需要以比眨眼更快的速度进行“观察”。