跟踪精度提高至97.9%!TMU最新Gassidy: 处理动态物体不规则运动的稠密RGB-D SLAM

文摘   2024-11-27 07:00   上海  

点击下方卡片,关注“3D视觉之心”公众号

第一时间获取3D视觉干货

>>点击进入→3D视觉之心技术交流群

处理动态环境的困难

稠密视觉同步定位与建图(SLAM)因其能够呈现复杂环境的能力,广泛应用于移动机器人导航等任务。这些方法依赖已知的静态环境信息来构建精确的地图。然而,移动机器人通常在动态环境中工作,环境中的不可预测变化可能会降低 SLAM 的建图精度。因此,解决动态环境变化带来的挑战对于提升 SLAM 在移动机器人任务中的有效性至关重要。

最近,研究者们将神经辐射场(NeRF)与 SLAM 集成,用于重建动态环境中的场景,因为 NeRF 可以捕捉复杂的光照效果和细致的表面细节。通过生成光流并采用语义分割,基于 NeRF 的方法在过滤动态环境干扰方面表现出色。然而,这些方法依赖于预定义的语义分割来应对动态变化,而这种方法通常难以捕捉物体的不规则运动

3D 高斯喷溅(3DGS)通过独立构建高斯来表示场景的不同区域,成为解决这一问题的有前景的方案。这种方法使得环境变化能够灵活地通过特定区域内高斯的变化来表达,避免了依赖预定义语义掩码。然而,尽管具有优势,这一方法主要用于处理静态环境中的光度和几何变化,且在准确捕捉动态物体方面存在挑战。

上述工作都集中在识别环境特征以重建场景。然而,这些方法要么仅考虑静态环境,要么在有效处理动态环境变化时存在困难。原因有多方面:

  1. 动态物体的干扰常常导致场景重建中的过拟合,从而降低 SLAM 精度。
  2. 动态物体的变化是不可预测的,这限制了依赖先验动态知识的语义应用。
  3. 由于动态物体的小幅度变化,可能会被错误地识别为静态环境组件,导致微小运动被忽略。

为了解决这些挑战,提出动态环境高斯喷溅 SLAM(Gassidy) [1]是一种基于 3DGS 的优化 SLAM 方法,结合渲染损失流来分析动态环境。该方法旨在在跟踪摄像机姿态和重建场景时,过滤掉动态物体的干扰。图 1 展示了地图构建的一个示例结果。

主要贡献

  • 为了应对动态物体带来的不可预测干扰,我们使用高斯分别覆盖物体和背景特征,并通过实例分割来指导。动态物体引起的环境变化通过高斯的变化来表示,而不依赖于预定义的语义。
  • 为了区分由动态物体引起的高斯特征变化和由静态环境中的光度或几何变化引起的变化,Gassidy 基于设计的光度-几何损失函数计算高斯的渲染损失流,以捕捉动态变化。
  • 为防止错误识别细微的物体运动,渲染损失流通过迭代计算来更新摄像机姿态,通过分析损失值变化中的特征,放大微小物体变化和细微帧运动之间的区别,从而清晰地识别并过滤动态物体。
  • 与现有最先进的稠密 SLAM 方法相比,Gassidy 在使用广泛的开放数据集(“TUM RGB-D”和“BONN Dynamic RGB-D”)时,实现了更高的摄像机姿态跟踪精度和更精细的地图重建质量。特别是,使用 Gassidy 后,跟踪精度和建图质量分别提高了 97.9% 和 6%。

主页链接:https://wen950223.wixsite.com/gassidy-slam-1

具体方法

Gassidy 概述

Gassidy 的架构如图 2 所示,我们的目标是通过输入的 RGB 图像 及其深度信息 ,跟踪摄像机姿态 ,并生成一个干净的高斯地图来进行场景重建。跟踪过程首先通过 YOLO 分割生成的实例掩码 来区分物体 和背景 O_iB_ijjO_i(j)j[0, N]N$ 是物体的总数。

具体而言,物体和背景都由高斯来表示,初始时我们使用 来表示物体和背景的高斯,而不需要对其动态特征进行详细的语义定义。然后,我们通过渲染这些高斯并计算渲染损失流来进行优化,该过程基于光度-几何损失函数进行计算。

一旦计算出渲染损失流,就可以识别并过滤动态物体。通过这种方法,Gassidy 可以在跟踪摄像机姿态和重建场景时,有效地去除动态物体的干扰。接下来,我们选择具有显著变化的关键帧进行映射,这些变化来自于与前一个关键帧的差异。关键帧选择通过交集度(IoU)和重叠系数(OC)来进行检查。选择的关键帧需要满足 IoU 小于 80% 且 OC 大于 20%,以确保覆盖充分的区域,并排除那些变化过多的帧。

随着关键帧的选择,Gassidy 通过构建当前可见区域并更新高斯特征,继续进行场景重建。经过多次迭代后,动态物体被成功过滤,场景得以干净地重建。

使用 3DGS 表示场景

为了解决动态物体带来的不可预测干扰,我们采用 3D 高斯喷溅(3DGS)来表示环境的变化。具体来说,3DGS 通过在不同区域内使用高斯来表示环境变化,并结合实例分割来指导可能的动态物体。在应用 3DGS 时,我们首先需要进行高斯初始化。

高斯初始化的第一步是将物体 和背景 转换为点云。每个点云 都包含一组特征,其中 是物体 中的点数, 是背景中的点数。每个点云中的 7 个特征包括 3 个 RGB 通道,3 个坐标通道和 1 个物体 ID 通道。通过这些坐标和物体 ID 信息,我们初始化了每个物体和背景的高斯。

使用如下高斯函数 来表示场景中的每个高斯:

其中, 是高斯的均值向量,表示每个高斯的位置, 是 3D 协方差矩阵,定义了高斯在空间中的扩展和方向。初始化时,协方差矩阵 的尺度向量被设置为相同的值,且所有方向的尺度值相同,通常为均值深度值()。此外,方向用单位四元数初始化。

接下来,我们通过将点云中的高斯进行“喷溅”处理,将其颜色和不透明度信息合成,从而初始化物体和背景的高斯 。这种初始化方法参考了 GS-SLAM 中的相似处理方法。

渲染过程是通过将 3D 高斯 投影到 2D 空间 来计算损失的。具体而言,物体和背景的投影通过下列公式来进行计算:

其中 分别表示物体和背景, 表示物体在第 帧中的 2D 协方差矩阵, 是背景的协方差矩阵, 是 Jacobian 矩阵,用于近似每个高斯的投影变换, 是由摄像机姿态得出的旋转矩阵。高斯均值 在 2D 空间中通过下式计算:

其中, 表示投影操作, 是摄像机的平移部分。

这一过程将初始的点云通过渲染映射到 2D 图像中,并计算图像的光度和几何损失,用于优化和更新场景的高斯表示。通过这样的渲染和优化,Gassidy 能够逐步构建出高质量的场景,并有效处理动态物体带来的干扰。

损失定义与动态物体识别

与其他 3D 高斯喷溅(3DGS) SLAM 方法不同,该方法将场景分割为物体和背景两个部分,并利用物体和背景的误差来优化摄像机姿态和建图精度。

光度和几何损失

为每一帧图像定义了光度和几何损失,分别用 来表示。物体和背景的损失通过以下公式计算:

  • 物体的光度损失

其中 是第 个物体的像素数, 表示物体区域内的像素, 是通过渲染计算出的预测图像, 是真实图像, 是物体 在帧中的掩码, 表示掩码应用到损失图上。

  • 背景的光度损失

其中 是背景的像素数,掩码应用于背景区域,并忽略物体的部分。

几何损失的定义与光度损失类似,只不过它是基于 3D 空间中的几何信息进行计算。物体和背景的几何损失 是根据相同的方法计算的。

动态物体的识别

为了应对动态物体引起的误识别问题,我们采用了一个迭代优化的策略。在跟踪过程中,我们首先执行 40 次损失计算,并仅使用背景和物体的光度和几何损失来粗略优化摄像机姿态。每一轮迭代结束时,我们会计算第 帧和第 帧之间的损失差异 ,并通过这些损失流来分析物体和背景的变化。

为识别动态物体,我们使用高斯混合模型(GMM)来分析损失流的演化。背景和静态物体的损失在多次迭代中逐渐减小,表示它们与场景几何逐步对齐。而动态物体由于其运动特性,表现出较高且波动较大的损失值。基于这一区分,Gassidy 采用以下规则来过滤动态物体:

其中, 是通过 GMM 计算的物体 为动态物体的概率, 是物体 在迭代过程中的渲染损失流, 是一个阈值,用于决定物体是否被视为动态物体。动态物体会被添加到动态物体集合 中。

为了进一步防止误识别,动态物体会根据生命周期管理。如果一个物体在某一帧被初步识别为静态物体,它不会立刻被重新引入优化。只有当该物体在连续三帧内一直被识别为静态物体时,它才会重新参与优化过程。

动态物体过滤与优化

在过滤掉动态物体后,Gassidy 通过优化物体和背景的联合损失来精确估计摄像机姿态,并选择关键帧进行映射。关键帧选择基于交集度(IoU)和重叠系数(OC)的检查,确保覆盖足够的区域,同时排除变化过大的帧。每当选择一个关键帧后,我们会计算光度-几何损失 来进行场景重建优化:

其中, 是动态物体的掩码,通过生命周期管理来更新。

通过这种动态物体识别和过滤机制,Gassidy 能够准确地将动态物体与静态环境分离,从而避免动态物体的干扰,提高摄像机跟踪精度和地图重建质量。

实验效果

总结一下

Gassidy是一种稠密 RGB-D SLAM 方法,该方法利用 3D 高斯表示有效应对动态环境中的干扰。为了解决由不规则运动物体引起的干扰,通过为每个环境组件计算渲染损失流来进行处理。通过分析渲染损失流中的损失变化特征,Gassidy 能够区分并过滤动态物体,从而实现高质量的场景重建和准确的摄像机跟踪。此外,减少了对语义先验的依赖,仅需要对潜在动态物体进行实例分割,而不需要提前了解其动态特性。

未来工作:将集中在提升物体级别的重建效果和改进该方法在实时机器人应用中的效率。

参考

[1] Gassidy: Gaussian Splatting SLAM in Dynamic Environments


本文仅做学术分享,论文汇总于『3D视觉之心知识星球』,欢迎加入交流!



【3D视觉之心】技术交流群
3D视觉之心是面向3D视觉感知方向相关的交流社区,由业内顶尖的3D视觉团队创办!聚焦维重建、Nerf、点云处理、视觉SLAM、激光SLAM、多传感器标定、多传感器融合、深度估计、摄影几何、求职交流等方向。扫码添加小助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)


扫码添加小助理进群

【3D视觉之心】知识星球

3D视觉之心知识星球主打3D感知全技术栈学习,星球内部形成了视觉/激光/多传感器融合SLAM、传感器标定、点云处理与重建、视觉三维重建、NeRF与Gaussian Splatting、结构光、工业视觉、高精地图等近15个全栈学习路线,每天分享干货、代码与论文,星球内嘉宾日常答疑解惑,交流工作与职场问题。



3D视觉之心
3D视觉与SLAM、点云相关内容分享
 最新文章