专栏名称: 点云PCL
公众号将会推送基于PCL库的点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维世界相关内容的干货分享。不仅组织技术交流群,而且组建github组群,有兴趣的小伙伴们可以自由的分享。欢迎关注参与交流或分享。
目录
相关文章推荐
中国舞台美术学会  ·  分享丨《浪子的进步》:从奇装异服的服装设计走 ... ·  昨天  
中国舞台美术学会  ·  资讯丨2024中国旅游经济版图:全国31省份 ... ·  昨天  
中国舞台美术学会  ·  刘杏林:我们为什么需要舞美博物馆 ·  昨天  
江西宣传  ·  因为这几句诗,这位冠军来江西了! ·  3 天前  
江西宣传  ·  因为这几句诗,这位冠军来江西了! ·  3 天前  
51好读  ›  专栏  ›  点云PCL

MCVO: 一种适用于任意排列多相机的通用视觉里程计

点云PCL  · 公众号  ·  · 2024-12-10 08:00

正文



文章:MCVO: A Generic Visual Odometry for Arbitrarily Arranged Multi-Cameras

作者:Huai Yu Junhao Wang Yao He Wen Yang Gui-Song Xia

编辑:点云PCL


欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。 文章仅做学术分享,如有侵权联系删文。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系[email protected] 文章未申请原创 侵权或转载 联系微信cloudpoint9527。

摘要


使多相机视觉SLAM系统更易于部署且更能适应环境,一直是视觉机器人领域的重点之一。现有的单目和双目视觉SLAM系统由于视场角(FoV)狭窄,在纹理稀疏的环境中表现脆弱,精度下降且鲁棒性有限。因此多相机SLAM系统受到越来越多的关注,因为它们通过广视场角可以在纹理退化情况下提供冗余。然而现有的多相机SLAM系统面临巨大的数据处理压力以及对相机配置的精心设计需求,这导致任意排列多相机系统在估计中容易失败。

为了解决这些问题,本文提出了一种适用于任意排列多相机的通用视觉里程计(MCVO),能够在相机排列具有高度灵活性的情况下实现具有度量尺度的状态估计。具体而言首先设计了一个基于学习的特征提取与跟踪框架,以分担处理多路视频流的CPU压力。然后利用相机之间的刚性约束来估计度量尺度的位姿,从而实现鲁棒的SLAM系统初始化。最后在SLAM后端融合多相机的特征,达到稳健的位姿估计和在线尺度优化。此外多相机特征还可以改进回环检测,从而优化位姿图。在KITTI-360和MultiCamData数据集上的实验验证了我们方法在任意放置的相机设置中的鲁棒性,与其他双目和多相机视觉SLAM系统相比,该方法在位姿估计精度和泛化能力方面表现出更优越的性能。代码和在线演示可在以下地址获取:https://github.com/JunhaoWang615/MCVO

主要贡献



本文提出的一种通用的多相机视觉里程计系统,称为 MCVO。该系统仅需任意方向和位置刚性捆绑的多相机即可运行。首先从精度与效率的角度分析了当前最先进的特征关联方法,并设计了一个基于学习的特征提取与跟踪框架,以缓解 CPU 处理多路视频流的计算压力。随后利用每个相机对齐位姿之间的刚性约束,基于结构从运动(SfM)初始化 SLAM 系统,从而获取具有真实尺度的机体位姿。在后端融合多相机特征,实现稳健的位姿估计和尺度优化,此外使用词袋模型(BoW)将多相机特征整合,以进行回环检测。通过在 KITTI-360 和 MultiCamData 数据集上的严格测试和实际实现,我们证明了该系统在增强自动化设备灵活性和通用性方面的有效性。以下是我们系统的主要特点:

  1. 支持任意方向的多相机,只需提供相机的外参即可。

  2. 消除了对 IMU 的依赖,专注于纯视觉信息的处理,无论相机是否具有视场重叠,都能灵活处理任意配置,从而实现真实尺度估计和在线优化,提高精度和鲁棒性。

  3. 兼容多种相机类型,包括鱼眼和标准针孔相机等,适用于广泛的应用场景。

主要贡献包括:

  • 提出了一种适用于任意排列多相机的通用视觉 SLAM 系统框架,创新性地设计了前端多相机特征检测与匹配、系统初始化、后端优化以及回环检测模块。

  • 综合考虑现有最先进的特征关联方法,设计了一个基于 SuperPoint 的特征提取器和 LK 跟踪前端,减少了 CPU 的计算压力,提高了特征匹配的稳定性,为多目 SLAM 的稳定性和效率提供了保障。

  • 提出了一种基于多相机轨迹一致性的 SLAM 尺度估计策略,兼容不同的相机模型,无论是否具有视场重叠,均表现出较强的通用性和稳定性。

图 1:所提 MCVO 系统的示意图。以 KITTI-360 数据集中使用两台鱼眼相机和一台针孔相机进行状态估计为例。与使用前置双目相机的 ORB-SLAM3相比,MCVO 展现了更优的性能。

内容概述


A. 概述

本文提出的通用多相机视觉里程计框架如图 2 所示。框架的主要输入是同步的多相机视频序列。这些相机通过刚性捆绑,已预先标定并具有已知的内参和外参,输出为真实世界环境中的具有度量尺度的 6 自由度机器人位姿。

图 2:所提 MCVO 系统的流程。尺度估计与校正确保了尺度的稳定性

该流程包含四个主要组件:前端特征提取、位姿与度量尺度初始化、后端优化以及回环检测。为了加速多相机特征关联的前端处理,采用了基于 GPU 加速的特征提取和三优先级特征选择方法。随后利用多相机位姿和外参对度量尺度机体位姿进行初始化。为确保运动尺度的真实性,我们在后端优化过程中对尺度偏差进行了自适应关联处理。考虑到多相机系统较大的视场角(FoV),设计了一种更鲁棒的多相机全向回环检测算法。最后在回环中结合位姿图约束进一步优化机体位姿。

B. 高效的多相机前端

本文提出的 MCVO 系统的前端主要处理多相机图像,提取和匹配有用特征,然后为后端优化提供可靠的地标,提高特征检测质量和关联效率对于视觉里程计前端至关重要。随着相机数量的增加,提取和跟踪的特征数量显著增长,这对实时性能带来了相当大的计算负担。为了解决这些问题,采用了 SuperPoint 进行特征提取,并使用 LK 光流法进行特征跟踪。这个过程通过 GPU 加速,显著减少了多相机带来的 CPU 使用负担,提升了处理图像流的性能。

我们进一步进行了特征选择处理,以减轻优化过程中的 CPU 负担并提高估计性能。传统的四叉树算法倾向于将新的特征放置在纹理丰富区域中现有特征的附近,这可能会由于约束不足而降低优化精度。我们的特征选择算法避免了过度的特征集中,确保通过三项关键优先级实现特征的均匀分布。

  1. 数量优先:优先处理特征更多的节点,以提高处理效率。

  2. 跟踪特征优先:通过避免在跟踪点附近添加无用特征,优先减少纹理丰富区域内点的密度。

  3. 高分特征优先:优先选择得分较高的特征。

图 3:特征点分布。所提方法相比基于得分的方法实现了更均匀的特征分布和更好的鲁棒性。红点:跟踪特征。蓝点:新添加的特征。

C. 多相机初始化

MCVO 系统的初始化旨在估计初始位姿并确定运动的度量尺度。这个过程包括每个相机的位姿初始化和机体位姿的度量尺度估计。

首先,我们计算每个相机在一个 10 帧窗口中的视差。当所有相机在时间 t 的帧都具有足够的视差(大于 30 像素)时,我们将时间 t 作为所有相机的世界坐标原点。然后,我们选择在时间 t 上跟踪特征最多的相机作为主相机。同时,我们使用来自前端的地标数据,独立地利用结构从运动(SfM)方法估计每个相机的位姿,SfM 是在每个单目相机的 10 帧图像上进行的,因此每个相机的尺度并不位于相同的度量级别。

接下来,在获得所有相机的位姿后,我们首先使用相机的外参计算机体框架(主相机框架)的位姿。通过以下公式:

其中,Rct 和 pct 分别是时间 t 时相机 c 的旋转和平移估计,sc 是相机 c 的尺度参数(待估计),pc 是相机 c 的平移外参,而 pbct 是从相机 c 估计得到的机体框架的平移。

然而,由于每个相机的位姿是独立计算的,它们的尺度并不对齐,导致机体位姿之间存在显著的差异。理论上,不同相机估计的机体位姿应该是一致的。因此,我们将由不同相机计算出的机体位姿差异视为残差,并将优化问题定义为:

为了求解这个最小二乘问题,我们使用 Ceres Solver 库中的 Levenberg-Marquardt 算法。然后,根据估计的度量尺度重新调整相机位姿,并使用更新后的位姿重新三角化所有特征,获取它们的度量深度。完成位姿和尺度的初步估计后,我们进行基于滑动窗口的后端优化,以进一步进行状态估计。

D. 尺度修正与后端优化

在使用度量尺度初始化位姿估计系统后,我们使用仅依赖视觉的束调整(bundle adjustment)方法,结合从所有相机提取的特征,最小化先验与所有视觉测量残差的马氏距离范数之和,以获得最大后验状态估计:

尺度修正,公式 (3) 中的优化持续提供准确的机体位姿和特征深度。然而,随着地图的扩展,尺度误差会逐渐积累。为了解决这个问题,我们在后端优化的同时定期进行尺度修正。在尺度修正过程中,首先对每个相机执行仅依赖视觉的束调整,独立地确定每个相机的位姿。我们不是直接调整位姿的尺度,而是修改每个相机中的特征深度,通过后续的状态估计实现更平滑的位姿尺度修正。

E. 多相机回环检测

尽管多相机视觉里程计和尺度修正提供了高精度的状态估计,但随着纯视觉里程计的运行,积累的漂移仍然存在。为减少这种漂移,我们设计了一个跨多个相机的多相机回环检测模块,并在位姿图中建立回环连接,以进一步优化状态。

回环检测

在MCVO 流程中,回环检测简单地利用 DBoW2算法进行位置识别。关键在于如何使用多相机特征来提高回环检测的准确性和鲁棒性。首先,所有相机的特征被存储在对应的词袋模型中。然后,通过比较来自不同帧的 DBoW2 模型之间的匹配分数,识别潜在的回环帧。多相机系统提供的广阔视场角提高了潜在回环的检测率。一旦检测到回环,我们就进行重新定位,如图 4 所示。当前帧的特征被转换为 3D 特征 z,并附带其深度信息。通过匹配回环帧的特征描述符,建立了 2D-3D 特征对应关系{(xi,zi)}。当某个相机具有足够的 2D-3D 特征对时,我们进行以下优化来精细化相机位姿:

其中,Kc 是相机 c 的内参和外参(相对于机体框架),π是 3D 特征zi 在图像平面上的投影。最小二乘问题同样通过 Levenberg-Marquardt 算法求解。

这一过程确保了即使在视点差异显著的情况下,也能实现准确的重新定位。如果多个相机符合条件,我们会使用外参约束进一步验证重新定位的成功性。一旦验证成功,基于相机位姿和外参,确定回环帧的精确机体位姿。与单目系统相比,我们的多相机配置通过不同视点增强了回环检测,显著提高了回环检测率。

图 4:多相机重新定位示意图

位姿图优化

我们遵循常用的 4 自由度位姿图优化方法来更新回环中的轨迹。位姿图 G={V,E} 跟踪所有关键帧及其空间约束,其中顶点 V 代表关键帧,边 E 存储关键帧位姿之间的变换约束。滑动窗口中被边际化的关键帧被添加到位姿图中,并将它们与其他关键帧之间的相对变换作为边加入。当回环被检测到时,当前帧与回环帧之间会添加一条回环边到 E,随后进行 4 自由度位姿图优化。优化过程有效地减少了累计误差,并增强了系统的鲁棒性。

实验


A. 实验设置

1. 数据集

为了评估MCVO方法,数据集必须包含预校准的内参和外参的多相机配置,选择了两个公开可用的数据集,分别是 KITTI360和 MultiCamData,这两个数据集具有不同的相机类型、场景类型和多种相机布局。

  • KITTI360 数据集:该数据集在户外道路环境中收集,包含两个 180° 鱼眼相机和两个 90° 针孔相机,如图 1 所示。四个相机已经同步并预先校准。与其他数据集(如 EuRoC [34])相比,KITTI360 数据集具有更大的规模、更长的距离和更具挑战性的场景,例如桥下道路(光照变化)、荒野(纹理退化)和动态场景。我们在大多数序列上进行了测试,并与真实轨迹进行比较。

  • MultiCamData 数据集:该数据集在室内环境中收集,使用了 6 台相机。我们主要使用无重叠的相机(cam0, cam5 和 cam6)进行测试,以提高方法的泛化性。该数据集还包括一些具有挑战性的场景,例如狭窄的走廊、大面积的白色墙壁(纹理退化)、急转弯和动态场景。

2. 评估设置

我们选择了 VINS-Fusion 、ORBSLAM3和 MultiCamSLAM 作为对比基准。在 KITTI360 数据集上的评估指标包括绝对轨迹误差(ATE)、相对位姿误差(RPE)和尺度误差 [35]。由于 MultiCamData 缺乏真实轨迹,我们通过视觉目标估计初始和最终位姿之间的误差,所有实验均在一台配备 2.5GHz Intel Core i7-11700 CPU 和 NVIDIA RTX3060 GPU 的桌面计算机上进行。

B. 实验结果

定量结果(ATE)展示在表格 I 和图 5 中。与立体 ORB-SLAM3 和 VINS-Fusion 相比,MCVO 在大多数 KITTI360 数据集的序列中实现了显著较低的旋转误差,并且在平移误差上表现出竞争力,这主要归功于多相机配置提供的宽视场(FoV)以及前端的高精度和鲁棒性。小的尺度误差进一步证明了我们尺度估计策略的有效性。MultiCamSLAM 方法无法完成 KITTI360 数据集的大部分序列,原因在于 KITTI360 数据集以高速采集,导致大范围的帧间位移。MultiCamSLAM 在面对显著的帧间位移时,无法有效地进行三角化和初始化。

Fig. 5: 不同方法在 KITTI360 数据集上的 ATE 比较。

与使用 ORB 特征的 MCVO 比较进一步表明,我们前端设计的鲁棒性。此外,MCVO 在 MultiCamData 数据集上也表现出了强大的性能和鲁棒性。在精度上,MCVO 优于 VINS-Fusion,并与 ORB-SLAM3 相当。精度上的微小差异主要归因于室内走廊中众多白色墙壁的影响,这些墙壁引入了噪声,影响了多相机视觉里程计(VO)。与同样使用无重叠相机设置的 MultiCamSLAM 相比,MCVO 在不同序列上实现了更优的精度和更好的泛化能力。

图 6 展示了在 KITTI360 数据集 00 序列上的 RPE 结果。MCVO 明显优于其他方法,具有最小的位姿漂移。这一改善主要得益于多相机设置提供的更广阔场景覆盖和鲁棒高效的前端。扩展的视场(FoV)为状态估计提供了更强的约束,导致了更高的位姿估计精度。此外,鲁棒的前端确保了即使在低质量场景中也能精确地跟踪特征。这些结果验证了 MCVO 在状态估计中的有效性。

图. 6: 不同方法在 KITTI360 00 序列上的 RPE 比较。

为了进一步定性分析性能,我们在图 7 中绘制了 KITTI360 数据集 00 和 05 序列中不同方法的轨迹。ORB-SLAM3 和 VINS-Fusion 在 00 序列上表现出较大的旋转误差。相比之下,MCVO 在这种情况下展现了更好的稳定性和准确性。此外,我们方法的整体轨迹更平滑,位置估计更加稳定。

Fig. 7: KITTI360 数据集不同序列的轨迹比较。

C. 消融实验

进行了一系列消融实验,探讨不同数量的相机、特征提取器、特征匹配方法以及是否使用闭环检测的影响。通过全面分析验证了我们提出方法的各个部分的有效性。

1. 相机数量:表 II 显示了不同数量相机下 MCVO 的状态估计精度。使用两台相机时,由于视场较小,提供的信息不足,MCVO 的精度相对较低。当相机数量增加到三台时,估计精度达到峰值。然而,当增加到四台相机时,精度略有下降。这主要是因为两台鱼眼相机和一台透视相机已经覆盖了足够的周围信息,新增的相机会引入更多的观测噪声和计算负担,因此新增相机的贡献不能显著提高精度。

2. 特征提取器:我们使用姿态精度和 CPU 使用率指标比较不同的特征提取方法。表 III 显示,SuperPoint 在精度上优于常用的 Shi-Tomasi 和 ORB 特征。这主要是因为 SuperPoint 可以提取多层次的特征,并且对环境变化更具鲁棒性。此外,MCVO(SuperPoint) 的 CPU 使用率显著较低。这种 CPU 使用率的降低是由于我们前端采用了 GPU 加速。因此,CPU 使用率的转移也确保了后端优化能够高效地进行精确的姿态估计。

3. 特征匹配:表 IV 显示了 MCVO 在不同特征匹配方法下的性能。基于流的方法相比基于匹配的方法(如 KNN、SuperGlue)具有更低的 CPU 使用率和更多的内点。此外,我们统计了每个特征的平均跟踪时间。LK 方法的跟踪时间最长,相比其他方法提供了更稳定的标定地标供后端姿态估计使用。其他方法的跟踪时间较短,导致姿态初始化失败。

4. 闭环检测:我们还在 KITTI360 05 序列上进行了闭环检测实验以验证闭环检测的有效性。定性结果如图 8 所示。我们可以观察到,多相机闭环检测有效地执行了闭环检测和闭环修正,为后端优化提供了稳定的全局约束。MCVO 成功地纠正了地图中的累计误差,从而实现了更精确的轨迹估计。

Fig. 8: KITTI360 05 序列上的闭环检测有效性验证。

D. 讨论

与其他立体视觉里程计(VO)和多相机视觉里程计(VO)方法的比较表明,提出的 MCVO 在状态估计方面具有显著的有效性。对每个组件的分析验证了我们在多相机数据处理设计中的合理性。然而仍然存在一些局限性:

  1. 多相机配置可以提高视觉里程计的鲁棒性,但不可避免地带来新的计算要求。我们的方法通过基于学习的特征提取来转移 CPU 负担,但也引入了对 GPU 资源的需求。最佳的方法可能是开发一种专用相机,将特征关联功能嵌入传感器硬件中。

  2. MCVO 需要任意排列的多相机的外参。当视场(FoV)之间没有重叠时,外参标定将成为一个具有挑战性的问题。

总结与展望



本文提出了一种通用的多相机视觉里程计系统,该系统在相机配置方面具有高度灵活性,能够支持不同类型的相机,并且不受视场(FoV)重叠的限制。多相机的任意排列不仅提升了SLAM系统的灵活性,还实现了基于相机的鲁棒的真实尺度位姿估计。设计的基于学习的特征关联前端利用GPU有效地减轻了多相机数据处理对CPU的计算压力,并提高了特征匹配的稳定性。系统在尺度初始化、后端优化和回环闭合等功能方面在实验中得到了充分验证。与现有最先进方法的比较进一步证明了MCVO在状态估计上的有效性和鲁棒性。未来的工作将专注于将MCVO部署到更多平台上。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测







请到「今天看啥」查看全文