专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
河南检察  ·  AI带你品宋词,梦回汴梁 ·  昨天  
河南检察  ·  AI带你品宋词,梦回汴梁 ·  昨天  
青塔  ·  更名大学,获官方支持 ·  2 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

RTG-SLAM:使用高斯Splatting进行大规模实时 3D 重建

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-11-25 00:05

正文

SIGRAPH 24年4月来自浙大等的论文 “RTG-SLAM: Real-time 3D Reconstruction at Scale Using Gaussian Splatting”。

实时高斯-SLAM (RTG-SLAM),是一种使用高斯splatting的 RGBD 摄像机大规模环境实时 3D 重建系统。该系统具有紧凑的高斯表示和高效的动态高斯优化方案。强制每个高斯都是模糊的或几乎透明的,模糊的高斯适合表面和主颜色,透明的高斯适合残差色。以不同于颜色渲染的方式渲染深度,让单个模糊高斯很好地适合局部表面区域,而无需多个重叠的高斯,从而大大降低内存和计算成本。对于动态高斯优化,明确为每帧的三种类型像素添加高斯:新观察的、有大颜色误差的和有大深度误差的。还将所有高斯分为稳定和不稳定两类,其中稳定高斯预计可以很好地拟合先前观察的 RGBD 图像,拟合不了的就算不稳定。只优化不稳定高斯,只渲染不稳定高斯占据的像素。这样,需要优化的高斯数量和需要渲染的像素数量都大大减少,并且可以实时进行优化。


大规模实时 3D 重建是计算机图形学和视觉领域长期研究的问题,在 VR/AR、自主机器人和具有即时反馈的交互式扫描等众多应用中都至关重要。随着 RGBD 相机(如 Microsoft Kinect)的普及,人们提出了不同的 RGBD SLAM方法进行实时 3D 重建,使用各种表面表示,如点云 [Du et al. 2011]、面元 [Keller et al. 2013; Whelan et al. 2015] 和符号距离函数 [Newcombe et al. 2011]。这些方法能够实时重建具有高质量 3D 表面的大规模场景 [Dai et al. 2017; Nießner et al. 2013; Steinbrücker et al. 2013]。但它们主要关注 3D 重建的几何精度,很少考虑重建结果的渲染真实感。

一些工作尝试使用NeRF作为密集 RGBD SLAM 的隐式场景表示 [Mildenhall et al. 2020],希望实现高质量的几何和外观重建。这些方法通常将场景表示为 MLP 网络 [Sucar et al. 2021a] 或隐式网格 [Yang et al. 2022; Zhu et al. 2022a],通过可微分体渲染,优化场景参数并估计相机姿势。然而,由于体渲染成本昂贵,这些方法难以达到实时性能。此外,高内存成本使得它们很难处理大规模场景。

最近,3D 高斯 [Kerbl et al. 2023] 作为辐射场的替代表示出现,它可以实现与以前 NeRF 相同或更好的渲染质量,同时渲染和训练速度更快。然而,到目前为止,三维高斯表示主要用于离线重建场景 [Chung et al. 2024; Yang et al. 2023],不适用于具有序贯 RGBD 输入的在线重建任务。要将其用于大规模实时三维重建,核心问题在于如何以低内存和计算成本表示场景,以及如何实时执行在线高斯优化。有几项并发的工作 [Huang et al. 2023b; Keetha et al. 2023; Matsuki et al. 2023; Yan et al. 2023; Yugay et al. 2023] 尝试将高斯函数融入 RGBD SLAM 系统,该系统使用高斯函数的不同场景表示以及不同的在线优化策略。虽然已经展示了有希望的结果,但要实现大规模场景的实时重建还有很长的路要走。

目前有一些同时进行的工作旨在将 3D 高斯集成到密集 RGBD SLAM 中。3D 高斯 [Kerbl et al. 2023] 可以实时渲染高质量图像,但优化是离线进行的,通常需要几分钟。为了将高斯扩展到在线重建,[Yan et al. 2023] 提出了一种自适应扩展策略添加新的或删除嘈杂的 3D 高斯,以及一种从粗到细的技术来选择可靠的高斯进行跟踪。[Yugay et al. 2023] 提出撒种子和优化高斯 splats 的新策略,以将其用途扩展到序贯 RGBD 输入。SplaTAM [Keetha et al. 2023] 定制了一个在线重建流水线,使用底层高斯表示和可微分渲染进行轮廓引导优化。[Matsuki et al. 2023] 统一高斯表示,实现准确、高效的跟踪、映射和高质量渲染。[Huang et al. 2023b] 引入一种基于高斯金字塔的训练方法,逐步学习多级特征并提高映射性能。虽然结果很有希望,但实现大规模实时重建仍然很困难。据报道,在合成的 Replica 数据集 [Straub et al. 2019] 上,NVIDIA RTX 4090 GPU [Matsuki et al. 2023] 的最快重建速度为 8.34 fps。也没有在真实的大场景上展示完整的重建结果。

得益于紧凑的高斯表示和高效的高斯优化策略,本文方法可以以较低的内存成本实时重建真实的大场景。


如图是方法概述。左图:强制每个高斯函数模糊或几乎透明,并且使用模糊高斯函数以不同于颜色的方式渲染深度,这样单个模糊高斯函数就可以很好地拟合表面的局部区域,从而产生一个紧凑的高斯表示,以更少量的高斯函数拟合 3D 表面。右图:计算颜色误差图、深度误差图和光透射图,以确定在何处添加模糊高斯函数或透明高斯函数。仅优化不稳定的高斯函数,并且仅渲染它们占用的像素以进行优化。


用一组 3D 高斯函数 {𝐺𝑖 } 来表示场景 S。 与 [Kerbl et al. 2023] 类似,每个高斯函数都与位置 p𝑖、协方差矩阵 𝚺𝑖、模糊度 𝛼𝑖 和球谐函数 (SH) 系数 SH𝑖 相关联。 协方差矩阵 𝚺𝑖 分解为尺度向量 s 和四元数 q。 每个高斯函数在添加后确定一次,使其模糊的(𝛼 = 0.99)拟合 3D 表面和主色,或使其几乎透明的(𝛼 = 0.1)拟合残差色。

将每个高斯视为一个椭球面(或面元素),面元素参数包括法线 n𝑖 、置信度计数 𝜂𝑖 和初始化时间戳 𝑡𝑖 。法向量定义为最小特征向量的方向。面元素的形状定义为高斯主平面上高斯密度大于 𝛿𝛼 = 𝑒^-0.5 的区域,对应于高斯分布标准差内的密度范围。𝜂 记录高斯优化的频率,𝑡 记录高斯创建的时间。还根据置信度计数阈值 𝛿𝜂 将高斯分布分成稳定分布 S𝑠𝑡𝑎𝑏𝑙𝑒 和不稳定分布 S𝑢𝑛𝑠𝑡𝑎𝑏𝑙𝑒。所有参数都存储在高斯索引 𝑖 记录的平面数组中。

优化高斯的核心在于通过可微分splatting渲染颜色和深度图,计算输入 RGBD 图像的误差,以及更新高斯参数。

给定相机姿态 T𝑔 和相机本征矩阵 K,通过图像中每个像素 u 中心的光线定义为:


颜色图像的渲染通过alpha混合:


𝑓𝑖 (𝑥 ) 由像素空间中 2D splatted 高斯的中心 𝝁𝑖 和协方差矩阵 𝚺2𝐷,𝑖 计算得出:


一个决定能见度的光线投射图像如下渲染:


深度渲染是紧凑高斯表示的关键,其中每个高斯都可以很好地拟合表面的局部区域,而无需多个高斯。 注: 所有并发高斯 SLAM 工作都利用 alpha 混合方法将深度渲染为颜色。 但是,如图所示,在 alpha 混合设置中,单个高斯将建成从高斯中心降低的不同深度值,只是近似为平面是不准确的。


为此,渲染深度的方式与渲染颜色的方式不同。也就是说,对于每个像素,计算视线与最前方模糊椭圆盘(ellipse disc)的交点以获得像素的深度。幸运的是,不需要明确将高斯转换为椭圆盘并计算每条光线的交点。在颜色渲染过程中,所有与光线 r(u) 相交的高斯函数 {𝐺 rj } 都已从前到后排序,并计算沿光线的相应模糊度 {𝛼 r 𝑗 }。相交的高斯函数 𝐺 r 𝑗 是第一个满足 𝛼 r 𝑗 > 𝛿𝛼 的高斯函数。交点可以通过光线平面相交公式计算:


如果所有 {𝛼r𝑗 } 都小于 𝛿𝛼 ,则像素深度设置为 -1。 当圆盘法线和光线几乎垂直时,光线平面相交可能导致像差(aberrations),用 pr𝑗 来近似相交。 最后,深度图 Dˆ 定义为:


显然,这个渲染的深度是通过高斯函数的位置和旋转做线性计算而来的,而该计算过程是完全可微分的,因此可以从深度图像损失来优化高斯函数。 此外,基于光线与椭球相交的结果,还得到了法线图Nˆ(u)和索引图Iˆ(u),其中存储各个高斯函数的法线和索引。 Nˆ(u)用于执行帧-到-模型的ICP以进行摄像机跟踪,而Iˆ(u)提供从像素到高斯函数的一一映射,用于后续的高斯添加和状态管理等过程。


在线重建系统包以下阶段:

1 图像预处理 :计算局部顶点图和局部法线图。利用估计的相机姿态, 将其转换到全局坐标。

2 高斯添加 :为了获得环境的完整表示,需要在线扫描时向场景添加新高斯函数以覆盖新观察的区域。[Kerbl et al. 2023] 中基于视图空间位置梯度的高斯自适应控制方法,对在线扫描效率低下。因此,这里采用基于几何和外观的更高效、更可靠的高斯添加策略。具体而言,给定估计的相机姿势 T𝑔,𝑘,使用场景中现有的高斯函数,渲染颜色图 Cˆ𝑘、深度图 Dˆ𝑘、光透射图 Tˆ𝑘 和索引图 Iˆ𝑘。然后创建一个掩码 𝑀 来确定应该为哪个像素添加高斯:


采用的策略是,在 𝑀𝑠 和 𝑀𝑐 上均匀采样 5% 的像素来执行高斯添加。







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