我们推出 DrivingGaussian,这是一个针对动态自动驾驶场景的高效且有效的框架。对于具有移动物体的复杂场景,我们首先使用增量静态 3D 高斯函数顺序渐进地对整个场景的静态背景进行建模。然后,我们利用复合动态高斯图来处理多个移动对象,单独重建每个对象并恢复它们在场景中的准确位置和遮挡关系。我们进一步使用 LiDAR 先验进行高斯散射来重建具有更多细节的场景并保持全景一致性。DrivingGaussian 在动态驾驶场景重建方面优于现有方法,并能够实现具有高保真度和多摄像头一致性的逼真环视合成。
1.引言
大规模动态场景的表示和建模是 3D 场景理解的基础,有助于一系列自动驾驶任务,例如 BEV 感知、3D 检测和运动规划。驾驶场景的视图合成和可控模拟还可以生成极端情况,安全关键情况有助于以较低的成本验证和增强自动驾驶系统的安全性。
不幸的是,从稀疏的车载传感器数据重建如此复杂的 3D 场景具有挑战性,尤其是当自我车辆高速移动时。想象这样一个场景:一辆车辆出现在左前摄像头拍摄的无界场景的边缘,迅速移动到前置摄像头视野的中心,并在随后的帧中缩小为一个遥远的点。对于此类驾驶场景,自我车辆和动态物体都以相对较高的速度移动,这对场景的构建提出了重大挑战。静态背景和动态物体发生快速变化,通过有限的视角来描绘。此外,由于多摄像头设置的外部视图、最小的重叠以及来自不同方向的光线的变化,它变得更具挑战性。复杂的几何形状、多样化的光学退化和时空不一致也对这种 360 度大规模驾驶场景的建模提出了重大挑战。
3D 高斯泼溅。 最近的 3D 高斯分布 (3D-GS) 使用大量 3D 高斯对静态场景进行建模,在新颖的视图合成和训练速度方面取得了最佳结果。与之前的显式场景表示(例如网格、体素)相比,3D-GS 可以用更少的参数对复杂的形状进行建模。与隐式神经渲染不同,3D-GS 允许通过基于 splat 的光栅化进行快速渲染和可微分计算。
动态 3D 高斯泼溅。 最初的 3D-GS 旨在表示静态场景,一些研究人员已将其扩展到动态对象/场景。给定一组动态单目图像,先前工作引入了变形网络来模拟高斯运动。还有的工作通过 HexPlane 连接相邻的高斯,实现实时渲染。然而,这两种方法是专门为聚焦于中心物体的单目单相机场景而设计的。有的工作使用一组演化的动态高斯参数化整个场景。然而,它需要一个具有密集多视图的相机阵列作为输入。
增量静态 3D 高斯。 驾驶场景的静态背景由于其大规模、持续时间长以及多摄像机变换的自我车辆运动的变化而带来挑战。当自我车辆移动时,静态背景经常经历时间上的转变和变化。由于透视原理,过早地合并远离当前时间步长的遥远街道场景可能会导致比例混乱,从而导致令人不快的伪像和模糊。为了解决这个问题,我们通过引入增量静态 3D 高斯,利用车辆运动带来的视角变化以及相邻帧之间的时间关系来增强 3D-GS,如图 3 所示。
具体来说,我们首先根据 LiDAR 先验提供的深度范围(第 3.2 节)将静态场景统一划分为 N 个 bins。这些 bin 按时间顺序排列,表示为 {bi} N ,其中每个 bin 包含来自一个或多个时间步长的多相机图像。对于第一个 bin 内的场景,我们使用 LiDAR 先验初始化高斯模型(同样适用于 SfM 点):
其中 l ∈ R 3 是 LiDAR 先验位置;µ 是 LiDAR 点的平均值;Σ ∈ R 3×3 是各向异性协方差矩阵;⊤ 是转置运算符。我们利用该箱段内的周围视图作为监督来更新高斯模型的参数,包括位置 P(x, y, z)、协方差矩阵 Σ、与视图相关的颜色 C(r, g, b) 以及不透明度 α。
对于后续的 bin,我们使用前一个 bin 的高斯作为先验位置,并根据重叠区域对齐相邻的 bin。每个 bin 的 3D 中心可以定义为:
其中 ˆP 是当前所有可见区域的高斯 G 的 3D 中心集合,(xb+1, yb+1, zb+1) 是 b + 1 区域内的高斯坐标。迭代地,我们将后续箱中的场景合并到先前构建的高斯模型中,并以多个周围帧作为监督。增量静态高斯模型Gs可定义为:
图 3. 具有增量静态 3D 高斯和动态高斯图的复合高斯分布。我们采用复合高斯泼溅将整个场景分解为静态背景和动态物体,分别重建每个部分并整合它们进行全局渲染。
为了应对这些挑战,我们引入了复合动态高斯图,能够在大规模、长期驾驶场景中构建多个动态对象。我们首先从静态背景分解动态前景对象,以使用数据集提供的边界框构建动态高斯图。动态对象通过其对象 ID 和相应的出现时间戳来标识。此外,Grounded SAM 模型用于根据边界框的范围精确地逐像素提取动态对象。
然后我们构建动态高斯图为:
其中每个节点存储一个实例对象o ∈ O,gi ∈ Gd 表示对应的动态高斯,mo ∈ M 是每个对象的变换矩阵。po(xt, yt, zt) ε P 是边界框的中心坐标,ao = (θt, phit) ε A 是边界框在时间步 t ∈ T 的方向。这里,我们分别计算高斯函数:每个动态对象。使用变换矩阵 mo,我们将目标对象 o 的坐标系变换到静态背景所在的世界坐标:
为了为高斯提供更好的初始化,我们在 3D 高斯之前引入 LiDAR,以获得更好的几何形状并保持周围视图配准中的多摄像机一致性。在每个时间步 t ∈ T,给定一组多摄像机图像从移动平台收集,多帧激光雷达扫描 Lt。我们的目标是使用激光雷达图像多模态数据最大限度地减少多相机配准误差,并获得准确的点位置和几何先验。
我们首先合并 LiDAR 扫描的多个帧以获得场景的完整点云,记为 L。我们遵循 Colmap并从每个图像中单独提取图像特征 X = x q p。接下来,我们将 LiDAR 点投影到周围图像上。对于每个LiDAR点l,我们将其坐标转换到相机坐标系,并通过投影将其与相机图像平面的2D像素进行匹配:
其中 x q p 是图像的 2D 像素,I i t 、Ri t 和 Ti t 分别是正交旋转矩阵和平移向量。K ∈ R 3×3 是已知的相机本征。值得注意的是,激光雷达的点可能会投影到多个图像的多个像素上。因此,我们选择到图像平面欧氏距离最短的点并将其保留为投影点,并分配颜色。
与之前的 3D 重建工作类似,我们将密集束调整 (DBA) 扩展到多相机设置并获得更新的 LiDAR 点。实验结果证明,在与周围多摄像机对齐之前使用 LiDAR 进行初始化有助于为高斯模型提供更精确的几何先验。
3.3 通过高斯泼溅进行全局渲染
我们采用可微分 3D 高斯喷射渲染器 ς 并将全局复合 3D 高斯投影到 2D,其中协方差矩阵 Σ 可由下式给出:
式中,J为透视投影的雅可比矩阵,E为世界到摄像机矩阵。
复合高斯场将全局 3D 高斯投影到多个 2D 平面上,并在每个时间步使用周围视图进行监督。在全局渲染过程中,下一个时间步的高斯最初对当前是不可见的,随后并入相应全局图像的监督中。