湖南大学开源数据集及代码!ESVO2:事件相机的双目VIO系统,CPU实时运行!

科技   2024-11-01 21:30   上海  

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

MetaCam EDU 正式发售!应用于机器人定位导航、实景三维重建等,让研发之路,畅通无阻!

MetaCam EDU 产品功能及细节详细介绍

转载自:3D视觉之心

ESVO2: Direct Visual-Inertial Odometry with Stereo Event Cameras

代码链接:https://github.com/NAIL-HNU/ESVO2.git

解锁ESVO的限制

事件相机以异步方式传输逐像素的强度变化,称为“事件”,因此它们不生成灰度图像,也不遵循传统相机典型的固定捕获率的外部时钟。这种异步和差分的工作原理最小化了时间冗余,从而降低了功耗和带宽需求。事件相机具有高时间分辨率和高动态范围(HDR)能力,使其能够处理传统相机难以应对的挑战性场景,如高速运动和/或HDR照明跟踪、控制、图像合成以及同步定位与地图构建(SLAM)。

但事件相机的非常规输出与为传统相机设计的现有视觉里程计(VO)/SLAM系统中的模块不兼容。事件基础的视觉里程计在理论上继承了现代VO解决方案的构造和并行设计,但其在数据处理和表示方面展现出独特性。早期使用单目事件相机的研究:

  • 通常需要非常温和的运动(通常是局部环路行为)来初始化本地三维地图,基于该地图,可以通过3D-2D注册管道来跟踪相机姿态。
  • 对专用硬件(例如,GPU)的依赖和低效的地图扩展,限制了它们在配备有限计算资源和电力供应的移动平台上的应用。

Zhou等人提出了一种事件基础的立体视觉里程计(ESVO[2])管道,该管道在通过移动代理(如飞行无人机或地面车辆)收集的数据上实现了更高的精度和实时性能。然而,该方法的局限性

  • 在事件相机流速较高的情况下并不具备良好的扩展性。
  • 实时性能仅在小空间分辨率(Q-VGA)的事件相机上实现,例如DAVIS346(动态和主动像素视觉传感器)。
  • 角速度突然变化时的跟踪失败表明在系统中引入惯性测量单元(IMU)的必要性。

本文介绍的ESVO2[1]是提升原ESVO框架中的上述限制,是一种基于立体事件相机和IMU的视觉惯性里程计(VIO)方法。所提出的系统在精度和效率方面的建图和跟踪性能优于事件基础的最先进技术。

具体贡献如下:

  1. 一种新颖的图像样式事件表示,利用其局部动态进行自适应累积(AA),有效确定与瞬时边缘相关的像素位置

  2. 通过结合时间立体和静态立体配置,以及在静态立体操作中使用快速块匹配方案,改进了建图子问题的解决方案

  3. 将IMU预积分作为事件相机姿态估计的初始值(见第IV-C节),并进一步构建一个紧密耦合的视觉惯性后端,以持续抑制陀螺仪和加速度计偏差的漂移

  4. 在五个公开数据集上进行了广泛的实验评估,并与五种方法进行比较,报告了在准确性和效率上的最先进性能。此外,系统能够很好地扩展到不同空间分辨率的事件相机,并能够在标准CPU上稳定地实时运行,处理高达VGA分辨率的数据。此外,数据集和实现均已开源。

系统概览

该系统以原始的事件基础立体视觉里程计(ESVO)管道为基础,扩展为一个视觉惯性里程计(VIO)系统。该系统的目标是实时估计立体事件相机的姿态,并恢复半稠密深度图,同时在准确性和效率方面提供更好的性能。

所提系统主要包括以下模块:

  1. 事件数据预处理:该模块负责生成事件表示,包括时间表面(TS)图和我们提出的自适应累积(AA)事件图。两者可以以异步方式刷新(例如,在发生一定数量的事件时)或以固定频率(例如,在我们的实现中为100 Hz)更新,并分别存储在数据库中,供其他模块访问。

  2. 建图:建图模块利用从AA图、时间表面和相机姿态估计中采样的轮廓点,不断更新局部深度图。具体而言,该模块使用两种立体方法来处理事件的不同可观测性特性。通过将得到的深度估计合并来更新局部地图,持续推送到全局点云数据库,以便潜在可视化。

  3. 相机姿态估计:该模块基于时间表面和局部三维地图计算相机姿态。使用距离变换的性质,通过将局部深度点投影到最新的时间表面图像上进行优化。为此,系统需要一个良好的初始化值,特别是在存在角度突然变化的情况下。

  4. 后端优化:后端负责抑制运动估计中的漂移。我们采用滑动窗口方法,结合过去的IMU测量和相机姿态,不断优化IMU偏差和线速度,从而提高跟踪准确性。

总体而言,系统通过将事件相机和IMU的数据融合,实现了实时的高效建图和准确的相机姿态跟踪。

前端

预处理:事件的自适应累积

ESVO中建图方法的计算效率受到多个方面的限制,其中之一是边缘像素位置的确定方式。在ESVO中,通过对在短时间间隔内(例如10毫秒)发生的事件应用运动补偿,创建一个虚拟参考框架中的边缘图。当事件的流速超过某一范围时,这一操作作为预处理步骤会变得计算量巨大。此外,我们观察到提取的事件通常集中在某些具有大光流的区域。为了缓解轮廓点的不均匀分布,该方法必须采样大量的点,这显得冗余并成为映射的计算负担。因此,需要一种更高效的方式来确定轮廓点。

通过对事件进行简单累积获得的合成事件图可以用作近似边缘图。然而,当场景中的深度变化显著时,这一近似可能变得相当不准确(即边缘模糊或不可见)。这是因为事件累积的全局阈值无法处理事件的多样化局部动态。为了解决这个问题,我们提出了AA,一种新的事件数据表示,可以根据局部事件动态控制累积的事件数量。事件动态被表示为事件活动 ,定义为在给定时间间隔 内的事件数量。事件活动应用了一种时间衰减策略,每当一个事件到达时就更新。第 个事件到达时的事件活动可以表示为:

其中, 是随事件活动 变化的衰减率,并由两个连续事件之间的时间间隔 决定:

假设事件以相等的时间间隔生成(例如, 秒),则收敛的事件活动可以大致计算为:

如图3(b)所示,当事件在时间域内以均匀方式触发时,这一收敛事件活动的估计大致保持有效。因此,我们在事件活动收敛时终止事件的累积,以获得足够清晰的图像。为了处理局部事件动态的空间变化,我们将图像平面划分为小区域,并根据局部事件活动独立进行事件累积。

通过这种方法生成的AA图能够在高信噪比的情况下保留重要的边缘信息,从而为后续的映射和姿态估计提供了更好的数据基础。

AA图的生成过程在算法1中进行了总结。具体而言,我们首先将图像平面均匀划分为 个小区域,在每个区域内独立进行事件的累积。对于每个区域,使用公式(3)估计收敛的事件活动,然后顺序累积所有相关的事件,并更新事件活动,直到其收敛。AA图中的像素值表示该像素处累积的事件数量。像素值越高,越可能与轮廓点相关联。

为了评估所提出的AA方法的有效性,我们将其与三种图像样式的表示进行了比较,包括时间表面和两种速度不变的表示,即速度不变学习角点(SILC) 和阈值序列面(TOS)。如图4所示,AA图保留了相对完整的边缘,同时冗余点最少,保持了最高的信噪比(SNR)。这种优越的性能也可以通过将每种表示与相应灰度图像获得的边缘图进行比较来定量证明。如表II所示,所提出的AA表示在多组件结构相似性指数度量(3-SSIM) 评估指标中得分最高。

用于后续映射操作的轮廓点是进一步独立从每个区域中采样的。一般而言,每个区域中AA像素值越高,该像素被选择的概率就越大。我们将采样结果与从ESVO获得的轮廓点进行了比较。如图5所示,我们采样的像素更好地捕捉到边缘结构,表明我们的采样方法能够使用更少的冗余输入点覆盖环境中的边缘模式。

建图:深度估计

建图模块旨在恢复深度信息并维护局部3D地图。在原始ESVO管道中,这些通过不断传播采样事件的最近深度估计到一个虚拟参考框架来实现,在该框架上,重叠的估计会根据其概率特征进一步融合。对于每个单独事件的深度估计,提出了一种两步法(即,块匹配操作后跟随非线性优化)。一般来说,所应用的静态立体配置导致与立体基线平行的结构的深度估计不可靠。此外,深度估计的两步法在处理单独查询数量时扩展性较差。为了解决这两个问题,我们提出了两个修改:1) 额外的时间立体匹配方法和2) 更快速的块匹配设计。以下是对每个修改的详细说明。

  1. 时间立体匹配:静态立体方法几乎无法准确恢复与立体相机基线平行的结构的深度。这是因为这些结构的时空轮廓在基线方向上并不明显,因此在块匹配操作中会得到多个误匹配。我们引入了时间立体方法(即,在同一相机的相邻视图之间建立立体关联)来解决这个问题。已知只要立体相机不沿基线方向移动,定义在时间立体对之间的极线将不再平行于静态立体基线。对于向前移动的立体相机(例如,驾驶场景中使用的相机),这一假设始终成立。

考虑常用的水平立体配置。我们根据在时间表面(TS)上的梯度方向将来自第IV-A节的采样轮廓点分为两组。在第一组中,我们收集垂直梯度与水平梯度之间的比率()小于某一阈值的像素。这些像素被输入静态立体方法。其余采样像素进入第二组,并被输入到所提出的时间立体方法。

事件基础的时间立体问题的关键是有效利用事件数据中的外观相似性。这要求所应用的事件表示,基于该表示建立立体数据关联,必须在某种程度上具有速度不变的特性。因此,ESVO中使用的时间表面(TS)并不适用。为了解决这个问题,我们调查了三种表示的时间立体匹配性能,即阈值序列面(TOS)、速度不变学习角点(SILC) 和我们的自适应累积(AA)。我们发现AA是最佳选择,因为它具有最高的轮廓点比率。因此,极线匹配在左相机的连续AA图上进行。

2)快速块匹配:ESVO 中的静态立体方法通过块匹配操作初始化,该操作使用零均值归一化互相关(ZNCC)作为相似性度量:

其中, 分别表示两个图像, 是相应图像的均值。通过最大化ZNCC值来寻找最佳匹配块。

为了提高匹配的速度和效率,我们采用了一种更快速的块匹配设计,该设计能够在保持高精度的同时减少计算复杂度。这种方法通过对块进行下采样和使用更高效的特征描述符来实现。

结合以上两种修改,新的深度估计方法能够有效克服原有静态立体方法的局限性,并提高深度估计的准确性和速度。最终,我们的建图模块能够生成更可靠的深度信息,进一步增强整个系统的性能。

  1. 深度合并:给定左相机连续AA图之间的相对位姿,所提出的时间立体方法返回静态立体方法中缺失的结构的深度信息。理想情况下,这些立体结果可以像ESVO中那样进行融合,因为在AA上评估的时间立体残差 和在时间表面(TS)上评估的静态立体残差 大致遵循学生 分布。

具体来说,融合过程可以通过以下步骤进行:

  1. 残差计算:首先,计算来自时间立体和静态立体方法的残差。这些残差反映了深度估计的误差,可以用于评估不同方法的准确性。

  2. 分布拟合:根据统计特性,将这些残差拟合到学生 分布。这种分布的应用使得我们能够更好地处理异常值和不确定性,从而提高深度融合的鲁棒性。

  3. 融合深度信息:利用计算得到的残差,我们将来自时间立体和静态立体的深度信息进行加权融合,以获得最终的深度估计。这一过程确保了在融合时考虑到不同估计的可靠性。

通过以上步骤,深度合并模块能够有效结合不同来源的深度信息,从而生成更为准确和可靠的局部3D地图。

定位:相机位姿估计

前端基本上遵循 ESVO 中的跟踪模块,该模块将时间表面(TS)和局部 3D 地图作为输入,并计算立体相机阵列相对于地图的位姿。设 SF_ref = {x_i} 表示参考帧中具有反深度值的像素集合,T(x, t) 和 T(x, t) = 1 - T(x, t) 分别表示时间表面(TS)和时刻 t 的负时间表面。目标与 [1] 中相同,是通过求解以下公式来确定最佳运动参数 θ:

其中,变换函数 W(x, ρ; θ) 表示从局部深度点到最新负时间表面图像的变换。此外,θ = (c^T, t^T)^T 表示运动参数,其中 c = (c_1, c_2, c_3)^T 是旋转的 Cayley 参数,而 t = (t_x, t_y, t_z)^T 表示平移。

时空配准模块利用时间表面的距离变换特性,将相机位姿估计表述为一个 3D-2D 配准问题。使用经过模糊核平滑处理的时间表面,一方面增强了目标函数的可微性,另一方面,边缘点的真实位置在图像平面上发生偏移,导致配准结果的偏差。所得到的 3D-2D 配准问题的非线性特性需要进行适当初始化,尤其是在方向突然变化时。此外,在恢复俯仰和偏航分量时可能会出现退化,因此需要附加传感器(如 IMU)来补充。

  1. **无偏平滑时间表面 (OS-TS)**:原始时间表面提供了一个截断的距离场,其斜率朝向轮廓/边缘的真实位置上升。由于截断区域缺乏梯度,如图 6(a) 所示,导致了单侧收敛的盆地。为此,在 ESVO 中对时间表面应用了模糊滤波器,以获得双侧收敛的盆地,如图 6(b) 所示。然而,平滑操作会导致盆地的位移,从而在边缘位置上造成明显的偏移。这种现象可以通过比较图 6(a) 和图 6(b) 中像素值最高的区域观察到。因此,使用模糊时间表面的时空配准不再是最优的,因为 3D 地图与偏移后的边缘观测结果不再对齐。

为了解决这一问题,我们提出了一种替代设计,称为无偏平滑时间表面 (OS-TS),如算法 2 所述。具体而言,它使用平滑时间表面中对应区域的像素值来填充原始时间表面 (TS) 中缺乏有效梯度信息的一侧(如图 6(a))。如图 6(c) 所示,结果在保留边缘两侧有效梯度信息的同时,消除了偏移。最后,计算负的 OS-TS,并在时空配准中使用。

  1. 使用 IMU 预积分作为运动先验:为了处理方向的突然变化并为时空配准提供适当的初始值,我们使用 IMU 的预积分作为运动先验。对于具有三轴加速度计和陀螺仪的 IMU,测量的加速度 和角速度 可以表示为:

其中 是加速度计和陀螺仪在 IMU 坐标系中的偏置, 是加速度计和陀螺仪的噪声。两个连续姿态估计(例如,从时刻 )之间的相对平移、速度和旋转在 IMU 坐标系 中可以通过以下公式计算:

其中 是在 IMU 坐标系中时间 的重力,,而 是一个向量的斜对称矩阵。线性速度和偏置(即 )是通过经验初始化的,并在后端不断更新(见 V)。IMU 坐标系 的相对速度和旋转,即 ,作为运动先验用于时空配准。

后端优化

为了抑制运动估计中的漂移,通常需要进行一个束调整(BA)优化作为后端。最常用的策略之一是滑动窗口方法,该方法通过最小化异构测量之间的不一致性,联合优化所有相关关键帧的位姿,并可选地优化共视 3D 点的深度信息。然而,我们的几何方法在时空域中缺乏显式的数据关联,因此,类似的松弛与优化方案不适用。此外,我们观察到,在优化变量中引入相机位姿并未改善相机跟踪性能。这是因为局部地图(即窗口内相关的点云)是依赖现有相机位姿的融合结果。因此,简单地将 3D 点云引入滑动窗口优化并不会建立额外的约束。

因此,我们尝试创建一个紧凑且高效的后端,该后端仅考虑线性速度和 IMU 的偏置作为优化变量。实验表明,基于该策略构建的后端显著提高了系统的跟踪精度。

具体而言,我们应用一个滑动窗口(如图 7 所示),其中包含最后 N 个位姿估计和相应的 IMU 测量。目标是在每个相关位姿的相应时间下,优化估计的线性速度和 IMU 偏置,使得相对位姿与 IMU 预积分结果尽可能一致:

其中 表示优化变量(即线性速度和 IMU 的偏置), 是相关的位姿估计,而 是 IMU 预积分测量。相对位姿残差 特别定义为:

其中 分别表示位置和旋转, 提取四元数 的向量部分以表示误差状态。具体而言,滑动窗口的大小设置为 5,并且我们应用 Levenberg-Marquardt (LM) 算法来解决优化问题。当获得新的位姿估计时,滑动窗口向前移动,而最旧的位姿估计和相应的 IMU 测量被移除。

实验效果

总结一下

ESVO2是一个基于事件相机和IMU的立体视觉惯性里程计(VIO)系统ESVO2。通过引入局部动态自适应的事件轮廓点采样策略、结合时间立体和静态立体的建图方法、以及IMU预积分的运动先验,解决了现有事件视觉里程计系统在大视差、复杂旋转运动下的跟踪和建图退化问题。广泛的实验表明,在准确性和效率上优于现有的最先进方法,并能够在标准CPU上实时处理高分辨率事件相机数据。

未来工作

  • 扩展到更复杂的场景
  • 进一步优化系统性能

参考

[1] ESVO2: Direct Visual-Inertial Odometry with Stereo Event Cameras

[2] Event-based stereo visual odometry


推荐阅读

MetaCam EDU 正式发售!应用于机器人定位导航、实景三维重建等!
隧道低纹理大摆锤,暴力SLAM!
暴力升级!暗黑隧道极限测试SLAM!
效果哇塞!3D高斯泼溅来实景重建公园!
全面启动!全国线下试用报名!
MetaCam EDU 产品功能及细节详细介绍
MetaCam EDU 实机展示和操作

基于MetaCam EDU的二次开发流程及说明

SLAM挑战:上下天桥绕一圈、定位建图准确完美回环无漂移

SLAM挑战:多楼层、720°旋转楼梯、狭窄玻璃白墙过道

三维空间扫描仪,轻松重建小树林

空间定位建图挑战:长走廊、白墙、玻璃、反光等

如何高效率重建古建筑

南京见了几个客户,应用场景需求和难题,探讨解决思路

计算机视觉life
聚焦计算机视觉、机器人SLAM、自动驾驶、AR领域核心技术。系统学习教程官网cvlife.net
 最新文章