当前位置:AIGC资讯 > AIGC > 正文

数据闭环!DrivingGaussian:逼真环视数据,驾驶场景重建SOTA

本文经自动驾驶之心公众号授权转载,转载请联系出处。

写在前面&笔者的个人理解

北大王选计算机研究所的最新工作,提出了DrivingGaussian,一个高效、有效的动态自动驾驶场景框架。对于具有移动目标的复杂场景,首先使用增量静态3D高斯对整个场景的静态背景进行顺序和渐进的建模。然后利用复合动态高斯图来处理多个移动目标,分别重建每个目标,并恢复它们在场景中的准确位置和遮挡关系。我们进一步使用激光雷达先验进行Gaussian splatting,以重建具有更大细节的场景并保持全景一致性。DrivingGaussian在驱动场景重建方面优于现有方法,能够实现高保真度和多摄像机一致性的真实感环视视图合成。

开源链接:https://pkuvdig.github.io/DrivingGaussian/

总结来说,DrivingGaussian的主要贡献如下:

  • 据我们所知,DrivingGaussian是第一个基于复合Gaussian splatting的大规模动态驾驶场景的表示和建模框架。
  • 引入了两个新模块,包括增量静态三维高斯图和复合动态高斯图。前者逐步重建静态背景,而后者用高斯图对多个动态目标进行建模。在LiDAR先验的辅助下,该方法有助于在大规模驾驶场景中恢复完整的几何图形。
  • 综合实验表明,DrivingGaussian在挑战自动驾驶基准方面优于以前的方法,并能够模拟各种下游任务的corner case。

聊一聊相关工作

NeRF用于边界场景。用于新视图合成的神经渲染的快速进展受到了极大的关注。神经辐射场(NeRF)利用多层感知器(MLP)和可微分体素渲染,可以从一组2D图像和相应的相机姿态信息中重建3D场景并合成新的视图。然而,NeRF仅限于有边界的场景,需要中心目标和摄影机之间保持一致的距离。它也很难处理用轻微重叠和向外捕捉方法捕捉的场景。许多进步扩展了NeRF的功能,导致训练速度、姿态优化、场景编辑和动态场景表示显著提高。尽管如此,将NeRF应用于大规模无边界场景,如自动驾驶情景,仍然是一个挑战。

无边界场景的NeRF。对于大规模无界场景,一些工作引入了NeRF的精细版本来对多尺度城市级静态场景进行建模。然而,这些方法在假设场景保持静态的情况下对场景进行建模,并在有效捕捉动态元素方面面临挑战。

同时,以前基于NeRF的方法高度依赖于精确的相机位姿。在没有精确位姿的情况下,能够从动态单目视频中进行合成。然而,这些方法仅限于前向单目视点,并且在处理来自周围多相机设置的输入时遇到了挑战。

由上述基于NeRF的方法合成的视图的质量在具有多个动态目标和变化以及照明变化的场景中恶化,这是由于它们依赖于射线采样。此外,激光雷达的利用仅限于提供辅助深度监督,其在重建中的潜在好处,如提供几何先验,尚未得到探索。

为了解决这些限制,我们使用复合Gaussian splatting来对无界动态场景进行建模,其中静态背景随着自车辆的移动而逐步重建,多个动态目标通过高斯图建模并集成到整个场景中。激光雷达被用作高斯的初始化,提供了更准确的几何形状先验和全面的场景描述,而不仅仅是作为图像的深度监督。

3D Gaussian Splatting。最近的3DGaussian splatting(3D-GS)用许多3D高斯对静态场景进行建模,在新的视图合成和训练速度方面实现了最佳结果。与之前的显式场景表示(例如,网格、体素)相比,3D-GS可以用更少的参数对复杂形状进行建模。与隐式神经渲染不同,3D-GS允许使用基于splat的光栅化进行快速渲染和可微分计算。

Dynamic 3D Gaussian Splatting。最初的3D-GS是用来表示静态场景的,一些研究人员已经将其扩展到动态目标/场景。给定一组动态单目图像,

在真实世界的自动驾驶场景中,数据采集平台的高速移动会导致广泛而复杂的背景变化,通常由稀疏视图(例如2-4个视图)捕获。此外,具有强烈空间变化和遮挡的快速移动动态目标使情况进一步复杂化。总的来说,这些因素对现有方法提出了重大挑战。

详解DrivingGaussian

Composite Gaussian Splatting

3D-GS在纯静态场景中表现良好,但在涉及大规模静态背景和多个动态目标的混合场景中具有显著的局限性。如图2所示,我们的目标是用无界静态背景和动态目标的复合Gaussian splatting来表示周围的大型驾驶场景。

增量静态3D高斯。驾驶场景的静态背景由于其大规模、长持续时间以及随着自车辆运动和多相机变换的变化而带来的挑战。随着自我载体的移动,静态背景经常发生时间上的变化。由于透视原理,从远离光流的时间步长预先融入远处的街道场景可能会导致尺度混乱,导致令人不快的伪影和模糊。为了解决这个问题,我们通过引入增量静态3D高斯来增强3D-GS,利用车辆运动带来的视角变化和相邻帧之间的时间关系,如图3所示。

具体来说,我们首先基于LiDAR先验提供的深度范围,将静态场景均匀地划分为N个bin。这些bin按时间顺序排列,其中每个bin来自一个或多个时间步长的多目图像。对于第一个bin内的场景,我们使用LiDAR先验初始化高斯模型(类似地适用于SfM点):

对于随后的bin,我们使用来自前一个bin的高斯作为位置先验,并根据相邻bin的重叠区域对齐相邻bin。每个bin的3D中心可以定义为:

迭代地,我们将后续bin中的场景合并到先前构建的高斯模型中,并将多个周围帧作为监督。增量静态高斯模型Gs可以定义为:

请注意,在静态高斯模型的增量构建过程中,前后相机对同一场景的采样可能存在差异。为了解决这个问题,我们在3D高斯投影期间使用加权平均来尽可能准确地重建场景的颜色:

复合动态高斯图。自动驾驶环境高度复杂,涉及多个动态目标和时间变化。如图3所示,由于自车辆和动态目标的运动,通常从有限的视图(例如2-4视图)观察目标。高速还导致动态目标的显著空间变化,这使得使用固定的高斯表示它们具有挑战性。

为了应对这些挑战,我们引入了复合动态高斯图,可以在大规模、长期的驾驶场景中构建多个动态目标。我们首先从静态背景中分解动态前景目标,使用数据集提供的边界框来构建动态高斯图。动态目标通过其目标ID和相应的出现时间戳来识别。此外,Segment Anything模型用于基于边界框范围的动态目标的精确像素提取。

然后,我们将动态高斯图构建为:

在这里,我们分别为每个动态目标计算高斯。使用变换矩阵mo,我们将目标o的坐标系变换为静态背景所在的世界坐标:

在优化了动态高斯图中的所有节点后,我们使用复合高斯图将动态目标和静态背景相结合。根据边界框的位置和方向,按时间顺序将每个节点的高斯分布连接到静态高斯场中。在多个动态目标之间发生遮挡的情况下,我们根据与摄影机中心的距离调整不透明度:根据光传播原理,距离越近的目标不透明度越高:

最后,包括静态背景和多个动态目标的复合高斯场可以公式化为:

LiDAR Prior with surrounding views

基元3D-GS试图通过structure-from-motion(SfM)来初始化高斯。然而,用于自动驾驶的无边界城市场景包含许多多尺度背景和前景。尽管如此,它们只是通过极其稀疏的视图才能瞥见,导致几何结构的错误和不完整恢复。

为了为高斯提供更好的初始化,我们在3D高斯之前引入了激光雷达,以获得更好的几何形状,并在环视视图配准中保持多相机的一致性。在每个时间步长,给定从移动平台和多帧激光雷达扫描Lt收集的一组多相机图像。我们的目标是使用激光雷达图像多模态数据最小化多相机配准误差,并获得准确的点位置和几何先验。

我们首先合并多帧激光雷达扫描,以获得场景的完整点云,并从每个图像中单独提取图像特征。接下来,我们将激光雷达点投影到环视的图像上。对于每个激光雷达点,我们将其坐标变换到相机坐标系,并通过投影将其与相机图像平面的2D像素匹配:

值得注意的是,来自激光雷达的点可能被投影到多个图像的多个像素上。因此,我们选择到图像平面的欧几里得距离最短的点,并将其保留为投影点,指定颜色。

与以往的三维重建工作类似,我们将密集束平差(DBA)扩展到多相机设置,并获得更新的激光雷达点。实验结果证明,在与周围的多目对准之前用激光雷达进行初始化有助于为高斯模型提供更精确的几何先验。

Global Rendering via Gaussian Splatting

本文采用可微3DGaussian splatting渲染器,并将全局复合3D高斯投影到2D中,其中协方差矩阵由下式给出:

复合高斯场将全局3D高斯投影到多个2D平面上,并在每个时间步长使用环视视图进行监督。在全局渲染过程中,下一个时间步长的高斯最初对当前图像不可见,随后与相应全局图像的监督相结合。

我们的方法的损失函数由三个部分组成。接下来,我们首先将tile结构相似性(TSSIM)引入Gaussian Splatting,它测量渲染的tile与对应的GT之间的相似性。

我们还引入了用于减少3D高斯中异常值的鲁棒损失,其可以定义为:

通过监督激光雷达的预期高斯位置,进一步利用激光雷达损失,获得更好的几何结构和边缘形状:

实验结果

如表1所示,我们的方法在很大程度上优于Instant-NGP,后者使用基于哈希的NeRF进行新的视图合成。Mip-NeRF和MipNeRF360是针对无界户外场景设计的两种方法。我们的方法在所有评估指标中也显著超过了它们。

KITTI-360单视图合成的比较。为了进一步验证我们的方法在单目驾驶场景设置上的有效性,我们对KITTI-360数据集进行了实验,并将其与现有的SOTA方法进行了比较。如表2所示,我们的方法在单目驾驶场景中表现出最佳性能,大大超过了现有方法。补充材料中提供了更多的结果和视频。

消融实验

Gaussians的初始化先验。通过对比实验分析了不同先验和初始化方法对高斯模型的影响。原始3D-GS提供了两种初始化模式:随机生成点和COLMAP计算的SfM点。我们还提供了另外两种初始化方法:从预先训练的NeRF模型导出的点云和使用LiDAR先验生成的点。

同时,为了分析点云数量的影响,我们将激光雷达下采样到600K,并应用自适应滤波(1M)来控制生成的激光雷达点的数量。我们还为随机生成的点(600K和1M)设置了不同的最大阈值。这里,SfM-600K±20K表示COLMAP计算的点数,NeRF-1M±20K代表预训练的NeRF模型生成的总点数,LiDAR-2M±20K代表LiDAR点的原始数量。

如表3所示,随机生成的点会导致最差的结果,因为它们缺乏任何几何先验。由于点稀疏和无法容忍的结构误差,用SfM点初始化也不能充分恢复场景的精确几何结构。利用从预先训练的NeRF模型生成的点云提供了相对准确的几何先验,但仍存在明显的异常值。对于用LiDAR先验初始化的模型,尽管下采样会导致一些局部区域的几何信息丢失,但它仍然保留了相对准确的结构先验,从而超过了SfM(图5)。我们还可以观察到,实验结果不会随着激光雷达点数量的增加而线性变化。我们推断这是因为过密的点存储了冗余特征,干扰了高斯模型的优化。

每个模块的有效性。我们分析了每个提出的模块对最终性能的贡献。如表4所示,复合动态高斯图模块在重建动态驾驶场景中发挥着至关重要的作用,而增量静态3D高斯图模块能够实现高质量的大规模背景重建。这两个新颖的模块显著提高了复杂驾驶场景的建模质量。关于所提出的损失函数,结果表明,和都显著提高了渲染质量,增强了纹理细节并消除了伪影。在LiDAR先验的帮助下,帮助高斯获得更好的几何先验。实验结果还表明,即使没有激光雷达先验,DrivingGaussian也能很好地执行,对各种初始化方法表现出强大的鲁棒性。

Corner Case仿真

进一步展示了我们在真实驾驶场景中模拟Corner Case的方法的有效性。如图6所示,我们可以将任意动态对象插入重建的高斯场中。模拟场景主要具有时间一致性,并在多个传感器之间表现出良好的传感器间一致性。我们的方法能够对自动驾驶场景进行可控的模拟和编辑,促进安全自动驾驶系统的研究。

总结

本文提出了DrivingGaussian,这是一种基于所提出的复合高斯Splatting的用于表示大规模动态自动驾驶场景的新框架。DrivingGaussian使用增量静态3D高斯逐步对静态背景进行建模,并使用复合动态高斯图捕获多个运动目标。我们进一步利用激光雷达先验来获得精确的几何结构和多视图一致性。DrivingGaussian在两个著名的驱动数据集上实现了最先进的性能,允许高质量的周围视图合成和动态场景重建。

原文链接:https://mp.weixin.qq.com/s/pGwIbrgvmbScyNKNbZLE1w

更新时间 2023-12-28