Event representations
原始事件流是稀疏、异步的元组列表 ——几乎没有下游算法能够直接处理这种格式。在进行跟踪、建图或输入神经网络之前,大多数系统会先将一批事件转换为某种中间表示。表示方式的选择是基于事件视觉领域的核心设计决策之一,需要在时间保真度和与现有算法的兼容性之间做出权衡。
事件帧/直方图
在一个时间窗口内(或固定事件数量内)累积事件,形成一张二维图像:
这种方式简单,与任何基于图像的算法(特征检测、CNN、直接对齐)都兼容,是许多跟踪前端的基础。代价是:窗口内部的时间结构被丢弃,且”图像”的外观取决于运动速度和窗口长度。
时间面
在每个像素处存储最近一次事件发生的时间,通常再经过指数衰减处理:
这编码了活动的新近性——最近活跃的像素较亮,陈旧的像素则逐渐淡去——生成平滑、富含梯度的图,非常适合用于配准和数据关联。例如,ESVO的跟踪就是针对时间面进行对齐。衰减常数 是一个真正需要调节的参数:太短则时间面稀疏,太长则会把历史信息模糊在一起。
体素网格
将事件按空间和离散化时间分箱到一个三维张量中:
体素网格在保留粗粒度时间结构的同时,仍是一个标准二维/三维CNN可以处理的稠密张量——这是诸如DEVO等学习式事件流水线的默认输入——代价是内存开销和固定的分箱选择。
脉冲张量/事件点云
将事件本身视为 空间中的点,由类PointNet的网络或原生处理异步脉冲的脉冲神经网络(SNN)来处理。这是最忠实的表示方式(完全没有聚合),但需要专用的架构,对SNN而言还需要神经形态硬件才能实现效率优势。
运动补偿事件图像
第五种表示方式值得特别提及,因为运动估计本身被纳入了表示之中。在累积之前,先按照候选运动(相机位姿轨迹、光流)将每个事件扭曲到一个共同的参考时刻:
如果运动假设 是正确的,由同一场景边缘产生的事件会落在同一像素上,图像就会清晰;如果假设错误,图像就会模糊。对比度最大化将这一点转化为一个目标函数——选择使 的清晰度(例如方差)最大化的运动——这是该领域用于自运动和光流估计的基本的基于模型的工具之一。同样的思路也出现在ESVIO中作为基于IMU的运动补偿,将事件扭曲到参考时刻可以使场景边缘变得清晰,从而便于匹配。
表示方式的选择
| 表示方式 | 时间保真度 | 兼容性 | 典型用途 |
|---|---|---|---|
| 事件帧 | 低(窗口内被压缩) | 最高(任意图像算法) | 跟踪前端、CNN |
| 时间面 | 中等(仅保留新近性) | 高 | 配准、数据关联(ESVO) |
| 体素网格 | 中高(分箱) | 高(CNN) | 学习式VO(DEVO) |
| 运动补偿图像 | 高(利用逐事件时间信息) | 中(需要运动估计) | 对比度最大化、VIO前端 |
| 脉冲/点 | 完整 | 低(需专用架构) | SNN、类PointNet模型 |
在构建这些表示时常见的陷阱包括:
- 固定时间窗口与固定事件数量:固定时间窗口在运动速度变化时会产生剧烈变化的事件数量;固定数量窗口能自动适应,但延迟会随之变化。因此许多系统更偏好固定数量的方式。
- 极性处理:对带符号极性求和会使那些被穿越两次的边缘上的事件相互抵消;将正负极性分为两个独立通道能保留更多信息,但会占用双倍内存。
- 运动依赖性:任何窗口化的表示在不同速度下”看起来”都不同——针对某一速度区间训练或调参的匹配器,在另一速度区间可能会失效。
对SLAM的意义
每一个基于事件的SLAM系统首先都要隐含地回答”我们该如何处理原始事件流?“这一问题,而答案会塑造后续的一切:事件帧使得类似帧式的跟踪流水线成为可能,时间面使得ESVO中的立体匹配和地图配准成为可能,运动补偿图像是对比度最大化跟踪和ESVIO前端的基础,而体素网格则使得复用基于深度学习的帧式VO架构(DPVO/DROID风格)应用于事件数据(如DEVO)成为可能。理解这些表示方式——以及它们各自丢弃了什么信息——是批判性阅读事件SLAM文献的最快途径。