2024-12-06 支持任意排列的多相机系统!武大开源MCVO:克服数据处理压力和布局依赖

多相机SLAM的限制

传统的单目或双目SLAM系统通常需要严格的相机配置,并且高度依赖于惯性测量单元(IMU)的集成来实现真实尺度的位姿估计和地图构建。然而,这些方法受到狭窄视场(FoV)的限制,在需要灵活相机布局的环境(例如,装有6个不同摄像头的大多数汽车)中表现不佳。最近,多相机视觉SLAM在这些情况下表现出更高的鲁棒性,能够覆盖更多周围的视觉场景,为纹理较差的环境提供冗余。这为无人机在复杂环境中的导航以及自主驾驶中多相机覆盖的应用带来了新的可能性。

当前的多相机视觉SLAM系统在实际应用中仍面临诸多挑战。

  • 一方面,增加的相机数量虽然提供了信息冗余,却不可避免地带来了数倍的数据处理压力。大多数现有方法采用传统的特征关联方法,例如ORB,这导致CPU使用率大幅增加,并使后端非线性优化的资源平衡变得困难,从而需要高性能的CPU,或者无法实现实时性。
  • 另一方面,准确的尺度估计也是一项挑战。现有方法大多通过多个双目配置或添加IMU来估计尺度,这些方法需要相机视场重叠或相机与IMU之间的外参精确校准,从而难以在系统配置灵活性与尺度估计精度之间取得平衡。因此,本研究的主要目标是解决任意排列多相机系统中的特征关联计算压力和尺度估计问题,从而实现鲁棒且通用的多相机视觉里程计。

MCVO[1]是一种通用的多相机视觉里程计系统,该系统只需要多个刚性捆绑的相机,无论其方向和位置如何。我们首先从精度与效率的角度分析了最新的特征关联方法,并设计了一种基于学习的特征提取与跟踪框架,以转移多视频流处理对CPU的计算压力。接着,我们基于每个相机的对齐位姿之间的刚性约束,初始化SLAM系统以获得真实尺度的位姿。在后端中,我们融合多相机特征实现鲁棒的位姿估计与尺度优化。多相机特征进一步被整合到词袋(BoW)中用于回环检测。通过在KITTI-360和MultiCamData数据集上的严格测试与实际实现,我们旨在展示该系统在各种领域增强自主代理能力的灵活性与通用性。

代码仓库:https://github.com/JunhaoWang615/MCVO

系统亮点

  1. 允许多个任意方向和位置的相机使用,仅需已知的外参。
  2. 通过消除对IMU的依赖并支持任意配置的相机处理,仅依赖视觉信息,无论相机是否重叠,从而实现真实尺度的估计和在线优化,提升了精度与鲁棒性。
  3. 能够兼容多种相机类型,包括但不限于鱼眼和标准针孔相机,适用于广泛的应用场景。

主要贡献

  • 提出了一种适用于任意排列多相机的通用视觉SLAM系统框架,并在前端多相机特征检测与匹配、系统初始化、后端优化和回环检测方面进行了创新设计。
  • 综合考虑了现有最先进的特征关联方法,并设计了基于SuperPoint的提取器和LK跟踪前端,转移了CPU计算压力,改善了特征匹配的稳定性,从而保证了多相机SLAM的稳定性与效率。
  • 提出了基于多相机轨迹一致性的SLAM尺度估计策略,能够兼容不同的相机模型,无论是否具有视场重叠,展现出强大的通用性和稳定性。

具体方法

通用多相机视觉里程计框架如图2所示。该框架的主要输入为同步的多相机视频序列,这些相机被刚性绑定并预先校准,已知其内参和外参。输出为实际环境中的公制尺度六自由度(6-DoF)机器人位姿。整个管道由四个主要组件组成:前端特征提取、位姿与公制尺度初始化、后端优化,以及回环检测。

  1. 前端特征提取
    为了加速多相机特征关联的前端处理,我们采用GPU加速的特征提取和三优先级特征选择方法。
  2. 位姿与公制尺度初始化
    利用多相机的位姿和外参,初始化多相机系统的公制尺度位姿。
  3. 后端优化
    为了确保运动尺度的真实性,在后端优化过程中对尺度偏差进行自适应修正。
  4. 回环检测
    鉴于多相机系统较大的视场,设计了一种更鲁棒的多相机全向回环检测算法。通过回环检测,进一步在位姿图约束下优化整体轨迹。

框架设计旨在充分利用多相机的视场优势,实现更鲁棒和准确的状态估计,同时保持系统的高效性和通用性。

高效的多相机前端

MCVO前端主要负责处理多相机图像,提取和匹配有效特征,并为后端优化提供可靠的特征点。

1. 提升特征检测质量与关联效率

随着相机数量的增加,提取和跟踪的特征数量显著增长,为实时性能带来了巨大的计算负担。为了解决这些问题,我们在特征提取中采用了SuperPoint,并利用LK光流法进行特征跟踪。这一过程通过GPU加速,大幅减少了多相机引起的CPU使用率,同时提升了图像流处理性能。

2. 特征选择过程

为了降低优化阶段的CPU负载并提高估计性能,我们设计了特征选择过程。传统的四叉树算法倾向于在纹理丰富区域将新特征点分布在已有特征附近,这可能由于约束不足而降低优化精度。我们的特征选择算法通过以下三种优先级,避免了特征点的过度集中,从而确保特征点的均匀分布:

  • 数量优先(Quantity priority): 优先选择特征点数量较多的节点以提升处理效率。
  • 跟踪优先(Tracked feature priority): 通过避免在跟踪点附近添加无用特征点,降低纹理丰富区域的点密度。
  • 高分优先(High score feature priority): 优先选择得分较高的特征点。

3. 特征分布结果

与基于分数的选择方法相比,本文提出的方法能够实现更均匀的特征分布并提高鲁棒性(如图3所示)。红色点表示跟踪特征,蓝色点表示新添加的特征。通过这种分布策略,我们在特征检测和匹配的稳定性与精度方面取得了显著改进。

这种高效的多相机前端设计,不仅能够缓解多相机系统对计算资源的高要求,还为后续的位姿估计和优化提供了强有力的保障。

多相机初始化

MCVO系统的初始化阶段旨在估计初始位姿并确定运动的公制尺度。该过程包括为每个相机的位姿初始化以及整体系统的公制尺度估计。

1. 位姿初始化

2. 公制尺度估计

3. 尺度校正

根据优化后的尺度参数调整相机位姿,并使用更新后的位姿重新三角化所有特征点,获得其公制深度。在完成初始位姿与尺度估计后,进入基于滑动窗口的后端优化阶段以进一步提升状态估计的精度和稳定性。

本文提出的多相机初始化策略,不仅解决了多相机系统中因独立估计导致的尺度不一致问题,还为后续的鲁棒位姿估计和优化打下了坚实基础。

尺度校正与后端优化

在完成公制尺度的初始位姿估计后,本文在后端优化阶段使用纯视觉的捆绑调整(bundle adjustment),通过整合所有相机提取的特征,进一步优化状态估计。

1. 后端优化

2. 尺度校正

3. 校正效果

这种尺度校正方法不仅能有效减少累积的尺度误差,还能在不影响系统稳定性的情况下,维持位姿和深度估计的高精度。

本文的后端优化与尺度校正策略显著提升了多相机系统在长期运行中的鲁棒性和精确性,确保了在地图扩展和复杂场景中的一致性。

多相机回环闭合

尽管多相机视觉里程计(VO)和尺度校正能够提供高精度的状态估计,但随着运行时间的增加,累积漂移仍然不可避免。为了进一步减少累积误差,本文设计了一种多相机回环闭合模块,通过在位姿图中建立回环连接来优化全局状态。

1. 回环检测

在MCVO管道中,回环检测采用DBoW2算法进行地点识别。本文的关键在于如何利用多相机特征提升回环检测的准确性与鲁棒性:

  • 将所有相机的特征存储到对应的词袋(bag-of-words)模型中。
  • 通过比较不同帧之间DBoW2模型的匹配分数,识别潜在的回环帧。
  • 多相机提供的宽视场(FoV)显著提高了潜在回环检测的成功率。

2. 重定位

3. 位姿图优化

4. 效果验证

本文的多相机回环闭合模块不仅提升了长期运行中的全局一致性,还显著减少了由于漂移引起的定位误差,进一步验证了系统在复杂场景下的鲁棒性和高精度。

实验效果

总结一下

本文提出了一种通用的多相机视觉里程计系统,能够在不同类型相机的任意排列下运行,无论视场是否重叠。该系统不仅提高了SLAM系统的灵活性,还实现了仅依赖视觉信息的真实尺度位姿估计。设计的基于学习的特征关联前端通过GPU有效缓解了多相机数据处理对CPU的计算压力,并提高了特征匹配的稳定性。在实验中验证了多相机特征在尺度初始化、后端优化和回环检测等方面的功能。与当前最新技术的对比进一步证明了MCVO在状态估计上的有效性和鲁棒性。未来的工作将集中于MCVO在更多平台上的部署。

参考

[1] MCVO: A Generic Visual Odometry for Arbitrarily Arranged Multi-Cameras

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


往期评论