Orbeez-SLAM 论文阅读

READ_Orbeez-SLAM

引用:Chung C M, Tseng Y C, Hsu Y C, et al. Orbeez-slam: A real-time monocular visual slam with orb features and nerf-realized mapping[C]//2023 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2023: 9400-9406.
文献链接:https://ieeexplore.ieee.org/abstract/document/10160950/

在这里插入图片描述

图一 Orbeez-SLAM 过程。相机上方的数字表示跟踪的时间戳。左图显示了 NeRF 结果,从头开始训练 27 秒。右图显示,在看到左侧的不可见区域(即新视图)后,我们的 NeRF 模型可以在几秒钟内更新区域。我们的 Orbeez-SLAM 是实时和无预训练的。

Abstract

一个空间AI,可以通过视觉信号执行复杂的任务,并与人类合作。为了实现这一点,我们需要一个视觉SLAM,它可以很容易地适应新的场景,而不需要预先训练,并实时为下游任务生成密集的地图。由于它们组件的内在限制,以前的基于学习的和非基于学习的视觉 SLAM 都不能满足所有需求。在这项工作中,我们开发了一个名为 Orbeez-SLAM 的视觉 SLAM,它成功地与隐式神经表示和视觉里程计协作以实现我们的目标。此外,OrbeezSLAM 可以与单目相机一起工作,因为它只需要 RGB 输入,这使得它广泛适用于现实世界。结果表明,我们的 SLAM 比具有优越渲染结果的基线快 800 倍。代码链接:https://github.com/MarvinChung/Orbeez-SLAM。

1.INTRODUCTION

一种智能空间AI,可以接收视觉信号(RGB-D图像),与人类合作解决复杂任务。为了有效地从环境中理解语义知识并像人类一样行动,空间AI需要一个核心组件,称为视觉同步定位和映射(SLAM)。视觉SLAM应该在不进行预训练的情况下快速适应新场景,并为下游任务(如家用机器人)生成实时细粒度地图。然而,传统的视觉 SLAM [1]、[2] 主要关注定位精度,只提供粗略的地图。为此,这项工作旨在开发一种具有上述属性的视觉 SLAM。

为了计算密集地图,最近基于学习的视觉SLAM Tandem[3],利用截断符号距离函数(TSDF)融合来提供密集的3D地图。如[3]所述,Tandem实现了实时推理,可以与单目相机一起工作。然而,深度估计涉及到TSDF融合,Tandem中的深度估计模块需要推理前的预训练,这限制了它对与预训练场景显着不同的新场景的适应性。
两个最新的NeRF-SLAM[5],[6]呼应了我们的动机。其中,iMAP[5]是第一个让NeRF作为SLAM中的地图表示的工作。同时,它通过NeRF光度损失反向传播来优化相机姿态。然后,NICESLAM [6] 扩展了 iMAP 并开发了一个分层特征网格模块。该模块允许 NICE-SLAM 在不灾难性遗忘的情况下扩展大型场景。然而,上述 NeRF-SLAM 需要 RGB-D 输入,因为它们纯粹通过没有视觉里程计 (VO) 的神经网络优化相机位姿,导致初始定位不良。换句话说,它们仍然需要深度信息来指导 3D 几何。此外,NeRF的一个显著缺点是收敛速度慢。具体来说,它利用了大量渲染,这使得实时训练 NeRF 变得模糊。
通过观察这一点,instant-ngp[7]补偿用于训练速度问题。在多分辨率哈希编码和CUDA框架[8]的帮助下,instant-ngp可以在几秒钟内训练nerf。
为了解决上述缺点,本文寻求开发一种无需预训练的单目视觉 SLAM,并在实际应用中实现实时推理。为此,我们提出了 Orbeez-SLAM,结合了基于特征的 SLAM(例如 ORB-SLAM2 [1])和基于instant-ngp 框架的 NeRF [7]。与[5]、[6]不同的是,我们强调VO(在ORB-SLAM2)即使在训练的早期阶段也可以提供更好的摄像机姿态估计,这使得Orbeez-SLAM可以与单目摄像机一起工作,即在没有深度监督的情况下。此外,我们通过VO同时估计相机姿势并更新NERF网络。值得注意的是,训练过程是在线和实时的,没有预训练,如图1所示。因此,OrbeezSLAM可以渲染密集的信息,如场景的深度和颜色。此外,它在各种室内场景中得到验证,并且在速度、相机跟踪和重建方面优于 NeRF-SLAM 基线。总而言之,我们的贡献有三个方面:

  • 我们提出了 Orbeez-SLAM,这是第一个无需预训练的实时单目视觉 SLAM,并提供为空间 AI 应用程序量身定制的密集地图。
  • 通过结合视觉里程计和快速 NeRF 框架,我们的方法实现了实时推理并产生密集地图。
  • 我们在具有挑战性的基准上使用最先进的 (SOTA) 基线广泛验证了 Orbez-SLAM,显示出卓越的定量和定性结果。

2. RELATED WORKS

A.隐式神经表达
为了表示 3D 场景,显式表示(例如点云)需要巨大的空间来存储信息。相比之下,隐式曲面表示,如符号距离函数(SDF),缓解了空间问题,近年来得到了广泛的发展。其中,一些工作[9]、[10]利用神经网络来学习隐函数,称为隐式神经表示(INRs)。随着信号连续表示的特性,INRs 表现出几个优点:

  • 它们不耦合到输入信号的空间维度/分辨率
  • 它们可以预测/合成未观察到的区域。

此外,NeRF是一种新颖而流行的INR,在新视图合成[4]、[11]-[13]方面取得了成功。尽管如此,大多数nerf都假设相机姿势是已知的。因此,COLMAP[14]、[15]通常用于估计nerf相关作品中的内在和外在(相机姿态)。此外,一些作品 [16]-[18] 通过 NeRF 光度损失优化相机位姿,但该过程需要很长的训练时间。因此,如前所述,instant-ngp[7]开发了一个框架,该框架利用多分辨率哈希编码和CUDA平台[8],可以在几秒钟内训练nerf。直观地说,隐式表示可以作为视觉SLAM系统中的地图。例如,一些研究[19]、[20]利用SDF构造地图。此外,最近的两个 NeRF-SLAM [5]、[6] 为协作 NeRF 和视觉 SLAM 铺平了道路。然而,它们需要 RGB-D 输入并显示出较慢的收敛速度,这不能满足我们的需求。因此,我们的目标是构建一个 NeRF-SLAM 来实时生成密集地图。此外,我们的工作可以与单目相机一起工作,并在目标场景中从头开始训练,而无需冗长的预训练过程。

B.视觉SLAM系统
传统的视觉 SLAM 对于室外和大型场景具有优势。此外,它们可以快速计算准确的位置,但缺乏来自场景的细粒度信息。视觉 SLAM 分为两类,基于特征的 SLAM 和直接 SLAM。基于特征的 SLAM [1]、[21]、[22] 提取和匹配帧之间的图像特征,然后最小化重投影误差。此外,Direct SLAM[2]使用像素强度来定位和最小化光度误差。

为了满足空间AI的需求,我们需要一个视觉SLAM,它为复杂的任务提供密集的地图。一些工作 [3]、[5]、[6] 在深度学习技术下实现了这个目标。然而,他们要么需要预训练[3],这限制了适应能力,要么只依赖NeRF光度损失和深度监督[5],[6]来优化相机姿态和网络参数,缺乏VO的知识。因此,我们开发了 Orbeez-SLAM,通过考虑 VO 引导和快速 NeRF 实现来消除这些缺点。因此,OrbeezSLAM 是针对新场景进行预训练的,并达到实时推理(通过在线训练)。

3.PRELIMINARIES

A.NeRF
NeRF [4] 通过对来自不同视点的一系列 2D 图像进行训练来重建 3D 场景。连续场景可以表示为函数 F : (x, d) → (c, σ),其中 x 是 3D 位置,d = (dx, dy, dz) 是表示方向 (θ, φ) 的 3D 笛卡尔单位向量。输出是颜色 c = (r, g, b) 和体积密度 σ。这样的连续表示作为函数,可以通过优化权重 Θ 来近似 MLP 网络 F (Θ)。

按照上述定义,对于任何射线 r(t) = o + td,可以通过透射率 T (t)、体积密度和每个点的颜色的乘积之间的相互关系来获得近边界和远边界 [tn, tf ] 中的颜色 C®,即:
在这里插入图片描述

其中:
在这里插入图片描述
为了将输入射线输入到神经网络中,采样N个离散点ti∈[tn, tf], i∈[1,N],用正交规则[23]估计颜色(Eq. 1):
在这里插入图片描述
在这里插入图片描述

图2:跳过体素策略。当沿投射光线采样位置时,如果体素未被占用(标记为0),则跳过体素;我们对与表面相交的体素进行采样(标记为1)。

其中,
在这里插入图片描述
样本点的权重表示为:
在这里插入图片描述

B.密度网格
NeRF 中的渲染方程 (1) 需要对光线上的位置进行采样。我们应该只对与表面相交的位置感兴趣,因为它们对 (1) 的贡献更大。一些研究[4]、[12]、[13]利用从粗到细的策略,该策略在射线上均匀采样,通过查询NeRF找到密度分布。在知道射线的密度分布后,它们只对表面附近的这些位置进行采样。然而,这些步骤需要频繁的 NeRF 查询,这是耗时的。

为了解决这个问题,最近的工作 [7]、[24]-[27] 将查询结果存储在密度网格中,然后应用跳过体素策略,如图 2 所示。在这项工作中,我们进一步将跳过体素策略与 NeRF 的知识扩展到处理光线投射三角部分(参见 IV-Ray-casting triangulation )。

4.METHODOLOGY

与之前需要深度信息更好地感知几何的NERF-SLAM[5]、[6]不同,开发了Orbeez-SLAM,它利用VO进行精确的姿态估计,生成具有单目相机的密集地图。此外,它实现了无预训练的适应和实时推理。接下来,系统概述在第IV-A节中描述,优化目标在第IV-B节中描述。最后,在第IV-C节介绍了光线投射三角部分。

A.系统概述
图 3 显示了我们的系统管道。跟踪过程从输入图像中提取图像特征,并通过VO估计相机姿态。映射系统通过三角部分生成地图点,并通过束调整(重投影误差)优化相机姿势和地图点。这些地图点代表一个稀疏的点云。然后,我们利用更新后的相机姿势和地图来训练NeRF。由于该过程是可微的,我们仍然可以从 NeRF 光度损失优化相机姿势。最后,NeRF可以为下游任务生成密集Mapping。此外,该管道应该适用于任何提供稀疏点云的 SLAM。

B.优化
以下目标用于优化 OrbeezSLAM:(a) 姿态估计,(b) BA © NeRF Regression。其中,(a) 在跟踪过程中,(b) 和 © 在映射过程中进行。

(a)姿态估计:重投影误差[28]被广泛应用于基于特征的SLAM[1]、[21]、[22]中来估计姿态,其公式如下:
在这里插入图片描述
其中 uij 是图像上的像素位置,由第 j 个相机 Cj 观察,并由第 i 个 3D 点投影。π(Cj, Pi) 通过 1/Z Kj (Rj Pi + tj ) 将 3D 地图点 Pi 投影到像素坐标中,其中 Pi = [X, Y, Z]T 和 Kj , [R|t]j 是 Cj 描述的内部和外部(世界到相机)。我们通过最小化重投影误差来优化相机姿势 {[R|tj }:
在这里插入图片描述
(b)BA:在VO的三角化步骤之后,将新的地图点添加到局部地图中。BA还最小化了地图点位置和相机姿势的重投影误差:
在这里插入图片描述
最小化公式 (6) 实际上是一个非线性最小二乘问题。我们通过 LevenbergMarquardt 方法解决这两个目标,同ORBSLAM2 [1]。BA优化了关键帧(K, [R|t])的相机姿态和这些关键帧中的可观察地图点。然后,这些优化的关键帧和地图点被传递到NeRF。

©NeRF回归:NeRF通过回归图像颜色来最小化光度误差。光线可以通过给出关键帧 (K, [R|t]) 和像素坐标 [u, v] 来制定:
在这里插入图片描述

通过应用图2中提到的跳过体素策略,我们对射线上的位置进行采样靠近表面。最后,NeRF光度损失是预测颜色ˆC®和像素颜色C®之间的L2范数:
在这里插入图片描述
其中C(rij)是图像Ii中射线j的观测颜色。由于 (9) 是可微的,相机外部 {[R|t]i} 和网络参数 Θ 都可以通过 Lpht 进行优化。但是,在测试后(cf.表V),我们只通过以下方式(6)优化 {[R|t]i}。
在这里插入图片描述

图3:系统管线 跟踪和映射过程同时运行。来自图像流的帧必须满足这两个条件才能成为关键帧。第一个条件过滤掉那些跟踪结果较弱的帧。如果映射过程繁忙,第二个条件会删除帧。跟踪过程提供相机姿势估计。映射过程细化相机姿势并保持地图。我们还展示了我们提出的光线投射三角部分生成的密集点云,该三角部分在第 IV-C 节中介绍。

C.光线投射三角测量
在图2中,我们展示了密度网格可以加速渲染过程。然而,这种结构只考虑了光线,高度依赖于 NeRF 模型的密度预测。我们还存储每个体素的采样次数。经常阻塞投射光线的体素更有可能是表面,如图4所示。对于噪声抑制,我们只对位于足够频繁地扫描的体素内的点进行三角测量。我们选择 64 作为实际实现的阈值,因为根据我们的经验,这样的值具有最佳的可视化。我们还利用稀疏点云生成的数据结构的地图点。由于地图点的周围环境更有可能是表面,我们在密度网格的样本计数器中添加了大量的数字。这种方法可以找到更可靠的表面,并通过训练 NeRF 在线生成地图点。用这种方法生成的点云不参与(8)的优化。

在这里插入图片描述

图4:NeRF中的光线投射三角化。我们记录每个密度网格体素的样本计数。如果体素的权重(参见第 III-A 节中的 (5))超过阈值作为表面候选,我们将 1 添加到体素计数器中。这些具有高样本计数的体素可能包含表面,并作为密集点云的地图点添加。

5.EXPERIMENTS

A.实验设置
数据集:为了公平比较,在三个基准 TUM RGB-D [29]、Replica [30] 和 ScanNet [31] 上进行了实验,它们提供了广泛的图像、深度和相机轨迹,并在以前的工作中被广泛使用。

基线:将提出的 Orbeez-SLAM 与两类基线进行比较,(a) 基于学习的 SLAM:DI-Fusion [32]、iMap [5]、iMap∗(在 [6] 中重新实现) 和 NICESLAM [6]。(b)基于传统的SLAM: BAD-SLAM[33]、Kintinuous[34]和ORB-SLAM2[1]。

评估设置:在实践中,单目 SLAM 工作验证了深度版本下的有效性,因为它们无法在不知道深度的情况下估计场景的正确尺度。此外,所有先前的 NeRF-SLAM 都需要深度监督。因此,所有方法都在深度版本上得到验证。我们仍然证明 Orbez-SLAM 可以与单目相机一起工作。此外,我们从跟踪和映射结果两个方面广泛检查了功效。

度量:为了评估跟踪结果,我们展示绝对轨迹误差 (ATE),它计算地面实况 (GT) 轨迹和对齐估计轨迹之间的均方根误差 (RMSE)。对于映射结果,我们将 NeRF 中经常使用的 PSNR 和 Depth L1 指标扩展到 NeRF-SLAM。PSNR 评估 GT 轨迹遍历的 NeRF 渲染和 GT 图像的失真率。至于深度 L1,我们计算 GT 轨迹遍历的估计深度和 GT 深度的 L1 误差。

与[5]、[6]不同的是,我们不对网格(mesh)进行评估。我们认为,评估网格的性能可能是不公平的,因为后处理NeRF的网格生成过程并不统一。此外,我们的设置具有以下优点:

  • 不同作品中采样关键帧的数量多种多样,同时使用 GT 轨迹进行评估提供了一致的标准。
  • 深度和PSNR可以有效地反映NeRF学习到的几何和亮度的质量。
  • 我们的实验设置可以在新视图上验证方法,因为在训练期间仅使用关键帧(GT 轨迹的子集)。此外,即使模型备份看到的关键帧,度量仍然可以揭示它们本地化是否到错误的视点。(不是很理解这句话:the metric can still reveal that when they are localized to the wrong viewpoints.)

在这里插入图片描述

表 I:TUM RGB-D 跟踪结果。使用 ATE [cm] (↓)。基于学习的传统SLAM由中间线隔开。DI-Fusion、iMAP、iMAP∗、NICE-SLAM、BAD-SLAM 和 Kintinuous 的结果来自 [6]。报告了 5 次运行中最好的。

在这里插入图片描述

表II:ScanNet上的跟踪结果。使用 ATE [cm] (↓)。iMAP∗、DI-Fusion 和 NICE-SLAM 的结果来自 [6]。

在这里插入图片描述

表 III:副本的重建结果。使用深度 L1 [cm] (↓) 和 PSNR [dB] (↑)。值在办公室 0 到 4 和房间 0 到 2 的平均值。 NICE-SLAM 在渲染颜色和深度期间使用 GT 深度。我们展示了 NICE-SLAM w 和 w/o GT 深度的结果。

实施细节:在配备 Intel i7-9700 CPU 和 NVIDIA RTX 3090 GPU 的台式 PC 上进行了所有实验。我们遵循ORB-SLAM2 1[1]和instant-ngp 2[7]的官方代码来实现Orbeez-SLAM。请注意,Orbeez-SLAM继承了ORBSLAM2[1]的闭合过程,以提高轨迹精度。我们没有像ORB-SLAM2那样剔除关键帧,以确保关键帧在传递给NeRF后不会被消除。代码是用 C++ 和 CUDA 编写的。关于损失,重投影误差通过g2o[35]框架进行优化,NeRF中的光度误差通过tiny-cuda-nn框架[8]进行优化。

在这里插入图片描述

表 IV:运行实时性比较。在 TUM RGB-D 上运行时每秒帧数 [fps] (↑)。我们表明 OrbeezSLAM 比 SOTA NeRF-SLAM 快得多。

在这里插入图片描述

表 V:副本的消融研究。我们证明了仅从重投影误差Lrpj优化相机姿势优于Lrpj和光度误差Lpht。

B.质量结果
我们的目标是验证 Orbeez-SLAM 是否可以在具有挑战性的设置下产生准确的轨迹 (ATE)、精确的 3D 重建 (Depth) 和详细的感知信息 (PSNR),即无需预训练的实时推理。以前的工作侧重于前两个指标。然而,包含丰富感知信息的密集地图对于空间AI应用至关重要;因此,我们也关注这一方面。

TUM RGB-D(小规模场景)[29]的评估:表 I 列出了所有方法的跟踪结果。请注意,Orbeez-SLAM 优于所有具有显着差距(远超最高一半)的深度学习基线。此外,ORB-SLAM2 是我们对跟踪结果的上限,因为我们的方法是建立在它之上的。然而,Orbeez-SLAM 仅显示出轻微的性能下降,而它提供了 NeRF 生成的密集地图。

ScanNet(大规模场景)[31]的评估:如表 II 所示,我们在所有场景中获得了最好的平均结果。我们认为Orbezz-SLAM和ORB-SLAM2之间的性能差异是由于随机性造成的。此外,NICESLAM在某些情况下表现最好,与[6]中放大场景的claimed strength相呼应。尤其是场景 0181 和 0207 包含隔间。提高房间大场景中的性能是未来工作之一。

Replica评估:NICE-SLAM 评估副本上的映射结果,因为它提供了 GT 网格。但是,如前所述,我们认为来自 NeRF 的网格生成过程并不统一且棘手。因此,我们在 NeRF 工作、Depth L1 和 PSNR 中使用常用指标。如表 III 所示,当渲染深度期间支持 GT 深度时,NICE-SLAM 在 Depth L1 上获得了最好的值。然而,当渲染中没有 GT 深度时,我们的深度 L1 值优于 NICE-SLAM。请注意,我们的 NeRF 永远不会有 GT 深度监督。接下来,在比较NeRF渲染图像的质量时,我们在PSNR上击败了NICE-SLAM的所有变体,表明我们的方法提供了优越的颜色结果。

运行时间比较:表 IV 描述了我们在 TUM RGB-D 基准上运行的 Orbeez-SLAM 和 NICE-SLAM 的运行时间。归因于VO在训练的早期阶段估计准确的相机姿势,Orbeez-SLAM比NICE-SLAM快360 ~ 800倍。

在这里插入图片描述

图 5:渲染结果的比较。可视化 Orbeez-SLAM(我们的)和 NICE-SLAM [6] 的 NeRF 渲染结果的 RGB 和深度。我们提供了 Orbeez-SLAM(mono 和 RGB-D)和 NICE-SLAM(在推理过程中 RGB-D w/ 和 w/o GT 深度)的结果。值得注意的是,我们在 RGB-D 设置中不使用深度信息进行 NeRF 渲染(深度仅用于跟踪过程);因此,NICE-SLAM 提供了更好的深度渲染结果。

在这里插入图片描述

图6:随时间变化的NeRF结果。我们的 TUM-fr3/office、Replica-office 和 ScanNet0207 的 NeRF 渲染结果随着时间的推移而列出。经过的时间显示在左上角。第一列、第二列和第三列分别是训练开始时的渲染结果、跟踪过程结束和损失值的完全收敛。我们的NeRF在TUM和Replica上计算良好的结果,但在ScanNet(大场景)上失败。它成功地重建了床,但不能重建左边的桌子,这表明大场景更具挑战性。

C.消融研究
表 V 说明了消融实验结果。我们可以观察到,仅由 Lrppj 引导的相机位姿比 Lrppj 和 Lphht(来自 NeRF)引导的相机位姿取得了更好的结果。我们认为 Lpht 的收敛速度要慢得多,这在实时推理中被利用时带来了负面影响。这也是我们没有提供仅由 Lphht 引导的版本的原因,因为它产生了不好的结果,并且在我们的设置中不可用。我们将感兴趣的读者推荐给我们的演示视频以获取更多详细信息。

D.定性结果
我们在图5和图6中提供了定性结果。如图5所示,NICE-SLAM借助GT深度渲染图像。很明显,在 NICE-SLAM 案例的训练中使用了 GT 深度。相比之下,我们的 Orbeez-SLAM 不使用深度监督来渲染图像,即使在仅使用 GT 深度进行跟踪的 RGB-D 情况下。值得注意的是,Orbeez-SLAM 在两种设置下都提供了比 NICESLAM 更好的 RGB 结果。我们强调,由于访问 GT 深度,NICE-SLAM 产生更好的深度结果。此外,我们在图6中提供了不同时间戳的Orbeez-SLAM渲染结果。当实时SLAM结束(第二列)后,我们对NeRF应用离线训练,直到损失完全收敛(第三列)。Orbeez-SLAM 在 TUM 和副本案例(前两行)中展示了出色的结果,但在大规模 ScanNet 案例中失败了。我们假设大规模场景对 OrbeezSLAM 更具挑战性,我们将其留作未来的工作之一。

6.结论

我们的目标是开发空间 AI 的核心组件,即可实现实时推理的免预训练视觉 SLAM,并为下游任务提供密集的地图。为此,我们提出了 Orbeez-SLAM,它利用 ORB 特征和 NeRF 实现的映射。我们在instant-ngp平台上与视觉里程计和快速NeRF实现合作。此外,Orbeez-SLAM可以与单目摄像机一起工作,从而实现灵活、实际应用。我们相信我们为加快空间 AI 开发进度铺平了道路。值得注意的是,如何有效地利用下游任务中的密集地图很有趣,但超出了本文的范围;我们将其留作未来的工作。

#致谢
This work was supported in part by the National Science and Technology Council, under Grant MOST 110-2634-F002-051, Qualcomm through a Taiwan University Research Collaboration Project, Mobile Drive Technology Co., Ltd (MobileDrive), and NOVATEK fellowship. We are grateful to the National Center for High-performance Computing.

### SLAM项目实现教程及相关下载 #### RDS-SLAM 项目 RDS-SLAM 是一种基于视觉的同步定位与建图(SLAM)算法,适用于机器人导航和增强现实应用。该项目提供了详细的文档和示例代码来帮助开发者快速上手[^1]。其目录结构清晰明了,主要包括以下几个部分: - `src` 文件夹:包含了核心算法的源码文件。 - `data` 文件夹:用于存储测试数据集以及配置文件。 - `docs` 文件夹:提供开发指南和技术细节说明。 对于希望深入研究该系统的人员来说,可以从阅读这些资料入手并尝试运行官方给出的例子程序以熟悉整个流程。 ```python import rds_slam slam = rds_slam.RDSSlam() video_path = "./test_video.mp4" slam.initialize(video_path) slam.process_frames() results = slam.get_results() print(results) ``` #### Orbeez-SLAM 开源项目 Orbeez-SLAM 提供了一种轻量级解决方案,在资源受限设备上也能高效工作[^2]。它支持多种传感器输入形式,并且具有良好的跨平台兼容特性。通过访问指定链接可以获取最新版本软件包及其配套教学材料。 #### DROID-SLAM 开源项目 作为一款专为移动终端优化设计的产品,DROID-SLAM 结合深度学习技术实现了更精准的位置估计功能[^3]。用户能够按照在线手册指示完成环境搭建过程之后加载预训练模型执行实际操作演示。 ```bash git clone https://gitcode.com/gh_mirrors/dr/DROID-SLAM.git cd DROID-SLAM pip install -r requirements.txt python run.py --input path/to/input/video.mp4 ``` #### DCL-SLAM 应用实例 利用 Python 接口调用库函数构建完整的 SLAM 系统变得非常简便快捷[^4]。下面展示了怎样借助 webcam 实时捕捉图像序列进而绘制三维地图场景片段。 ```python from dcl_slam import DCLSLAM, CameraConfig config = CameraConfig(width=640, height=480, fx=..., fy=...) dcl_slam_instance = DCLSLAM(config) camera_index = 0 dcl_slam_instance.start(camera_index) while True: frame_data = dcl_slam_instance.grab_frame() if not frame_data: break point_cloud = dcl_slam_instance.extract_pointcloud() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

节拍玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值