引言
通往全自动驾驶的竞赛严重依赖于一种关键资源: 数据。虽然现实世界的驾驶日志极其宝贵,但它们是有限的,且往往无法捕捉到罕见、危险的长尾极端情况。这就是仿真的用武之地。如果我们能够创建逼真且符合物理规律的真实世界数字孪生,我们就可以在无限变化的复杂场景中训练和测试自动驾驶汽车 (AV) 。
然而,从传感器数据重建动态城市环境是出了名的困难。像神经辐射场 (NeRFs) 和最近的 3D 高斯泼溅 (3DGS) 等现代技术已经彻底改变了静态场景重建。它们能够以惊人的保真度渲染建筑物和停放的汽车。但是,一旦画面中出现了移动的卡车,情况就会变得糟糕。移动的物体通常表现为幽灵般的模糊拖影,或者产生破坏静态背景的伪影。
以前解决这个问题的方法通常需要“作弊”——使用昂贵的人工标注 3D 边界框来准确告诉算法汽车在哪里。这限制了可扩展性;如果你必须先在每辆车周围画一个框,就不可能重建整个世界。
SplatFlow 应运而生。
在这篇文章中,我们将深入探讨一篇新的研究论文,该论文介绍了一种用于动态场景重建的自监督框架。SplatFlow 利用一种称为神经运动流场 (Neural Motion Flow Fields, NMFF) 的概念,在不需要任何人工标注的情况下将移动世界与静态世界分离。通过结合高斯泼溅的速度和运动流的时间智能,SplatFlow 实现了最先进的渲染质量。
![图 1. 上: Street GS [25];中: PVG [1];下: 我们的 SplatFlow。SplatFlow 消除了 Street GS 所需的 3D 边界框,并且与 PVG 相比提高了渲染质量。](/en/paper/2411.15482/images/001.jpg#center)
如上图所示,其他方法会产生体素状的伪影或简化的几何形状,而 SplatFlow 生成了密集、连贯的深度和方向泼溅 (splats) ,从而产生了更优越的视觉保真度。
背景: 动态的挑战
要理解为什么需要 SplatFlow,我们需要先看看标准 3D 高斯泼溅 (3DGS) 的局限性。
3DGS 不像网格或神经网络权重那样表示场景,而是将其表示为数百万个显式的 3D “泼溅 (splats) ”——具有位置、颜色、不透明度和旋转的椭球体。为了渲染图像,这些泼溅被投影到相机平面上。这种方法速度极快,并且可以为静态场景生成高质量图像。
当场景随时间变化时,问题就出现了。如果一辆车在街上行驶,标准的 3DGS 模型会感到困惑。它接收到相互冲突的信息: “在时间 \(t=1\),这个坐标是一条空荡荡的马路。在时间 \(t=2\),这个坐标是一辆红色的汽车。”优化过程试图平均这些矛盾,导致出现被称为“鬼影 (ghosting) ”的模糊、半透明伪影。
现有方法及其缺陷
研究人员尝试了两种主要方法来解决这个问题:
- 对象级监督: 像 StreetGaussian 这样的方法使用跟踪的 3D 边界框。它们将背景和汽车视为完全不同的重建任务。虽然有效,但这依赖于外部跟踪器或人工标签,容易出错且昂贵。
- 隐式变形: 像 *PVG (周期性振动高斯) * 这样的方法试图在没有框的情况下隐式地学习时间属性。然而,仅仅为了渲染损失进行优化通常不足以理解复杂的运动,导致在对比图像中看到的模糊结果。
SplatFlow 走了一条不同的路: 它利用数据本身的几何形状 (特别是激光雷达 LiDAR) 来学习物体如何移动,创建一个引导高斯泼溅随时间移动的流场 。
SplatFlow 方法论
SplatFlow 的核心创新是将 4D 高斯泼溅与神经运动流场 (NMFF) 无缝集成。该框架基于一个简单而强大的前提: 如果我们能预测空间中每个点在每个时刻的 3D 运动矢量 (流) ,我们就可以简单地沿着该流将动态高斯“滑动”到任何给定时间戳的正确位置。
让我们分解一下这个流程。

该流程 (图 2) 包含三个主要阶段:
- 分解: 使用 LiDAR 数据和 NMFF 将世界分离为“静态”和“动态”点。
- 表示: 用标准的 3D 高斯建模静态世界,用随时间变化的 4D 高斯建模动态世界。
- 优化: 使用光流蒸馏和渲染损失来细化场景。
1. 神经运动流场 (NMFF)
NMFF 是驱动这个系统的引擎。它是一组模拟场景时间运动的隐式函数 (多层感知机 MLPs) 。具体来说,对于时间 \(t_1\) 的 3D 空间中的任意点 \((x, y, z)\),NMFF 预测其位移 \((\Delta x, \Delta y, \Delta z)\) 和旋转变化 \(\Delta R\) 以达到时间 \(t_2\)。

但是,网络如何在没有标签的情况下学习这种运动呢?作者巧妙地利用了 LiDAR 点云 。 LiDAR 提供了随时间变化的精确深度信息。通过分析连续的 LiDAR 扫描,系统可以自我监督运动学习。
研究人员使用双向倒角距离 (Chamfer Distance) 损失来预训练 NMFF。本质上,网络试图移动时间 \(t\) 的扫描点以匹配时间 \(t+1\) 的扫描几何形状,反之亦然。

如果一个点的移动可以仅由自车 (记录数据的车辆) 的运动来解释,它就被归类为静态。如果一个点需要额外的运动矢量来匹配下一帧,它就是动态的。

上面的可视化展示了运行中的 NMFF。系统已成功识别出移动物体 (车辆) 并为其分配了运动矢量 (按速度和角度着色) ,这与静态环境截然不同。
2. 4D 高斯表示
一旦场景被分解,SplatFlow 会初始化两组高斯:
- 静态 3D 高斯: 从静态 LiDAR 点初始化。这些代表道路、建筑物和树木。
- 动态 4D 高斯: 从动态点初始化。这些代表汽车、骑行者和行人。
动态高斯之所以是“4D”,是因为它们随时间变化。然而,SplatFlow 并没有为每一帧学习一套全新的参数 (这将是低效的) ,而是使用 NMFF 来随时间传播单一一组高斯。
时间 \(t_1\) 的 4D 高斯由其中心 \(\mu\)、旋转 \(R\)、缩放 \(S\)、不透明度 \(\alpha\) 和颜色 \(c\) 定义:

为了找到该高斯在时间 \(t_2\) 的状态,SplatFlow 向 NMFF 查询运动流:

并将其应用于高斯:

这种方法确保了时间一致性 。 汽车不仅仅是在每一帧中看起来都不同的闪烁形状集合;它是一个沿着流场定义的连续轨迹在空间中移动的连贯物体。
3. 光流蒸馏
虽然 LiDAR 提供了出色的 3D 几何形状,但它是稀疏的。它可能打在车顶上,但错过了保险杠。为了填补空白并确保视觉外观流畅,SplatFlow 将目光投向了 2D 领域。
作者使用“蒸馏”将 2D 基础模型中的知识转移到他们的 3D 表示中。他们使用预训练的光流网络 (SEA-RAFT) 从 2D 相机图像生成伪真实流图 (pseudo-ground-truth flow maps) 。
在训练期间,SplatFlow 通过将高斯的 3D 运动投影到 2D 图像平面上来渲染其自己的预测光流。

然后,它使用 Alpha 混合计算像素的累积流,类似于渲染颜色的方式:

如果模型渲染的光流与基础模型预测的流不匹配,模型就会受到惩罚。这有效地教会了 4D 高斯在 LiDAR 数据可能稀疏或嘈杂的区域如何正确移动。
4. 优化和渲染
最终的渲染过程涉及结合静态和动态高斯。对于任何目标视点和时间戳,模型会:
- 使用 NMFF 将动态高斯扭曲到正确的时间。
- 将它们与静态高斯结合。
- 光栅化场景以生成 RGB 图像和深度图。

总损失函数结合了图像重建质量 (L1 和 SSIM) 、深度一致性、流一致性和正则化。

实验与结果
研究人员在具有挑战性的 Waymo 开放数据集和 KITTI 数据集上评估了 SplatFlow,这两个数据集是自动驾驶场景重建的基准。
视觉质量
视觉上的改进是显而易见的。在动态场景中,传统方法受困于运动模糊。SplatFlow 通过显式地建模物体的流,保持了纹理的清晰。

在图 4 中,比较“PVG”和“EmerNeRF”列与“SplatFlow”。竞争对手在移动车辆上显示出明显的模糊,实际上是将它们涂抹在道路上。SplatFlow 保持了车辆的结构完整性,与真实值 (G.T.) 非常匹配。
动态分解
SplatFlow 最令人印象深刻的能力之一是能够干净地将移动的前景与静态背景分离,且无需人工标签。

图 11 展示了这种分解。第一行显示了完整的渲染场景。第二行显示了仅动态对象。注意分解很干净;道路和树木在动态层中几乎完全不存在,而且汽车是完整的,不是碎片化的。
定量指标
视觉效果很好,但数字更能说明保真度。作者使用 PSNR (越高越好) 、SSIM (越高越好) 和 LPIPS (越低越好) 来衡量性能。

在 Waymo 数据集上 (表 1) ,SplatFlow 在图像重建方面达到了 33.64 的 PSNR,明显优于 PVG (32.46) 和 EmerNeRF (28.11)。
当专门关注场景中的动态元素时,结果更具说服力。

表 2 强调,当严格观察动态区域 (移动的汽车) 时,SplatFlow 始终击败 PVG。例如,在 Segment 2259 中,SplatFlow 达到了 31.61 的 PSNR,而 PVG 为 22.55。这个巨大的跳跃表明“鬼影”问题已在很大程度上得到解决。
鲁棒性和效率
研究人员还测试了模型在有限数据下的表现。即使仅在 KITTI 数据集 50% 或 25% 的可用帧上进行训练,SplatFlow 仍保持了高性能,性能下降比竞争方法优雅得多。

此外,这种方法速度很快。因为它在渲染阶段依赖于高斯泼溅而不是繁重的神经网络推理 (在计算流之后) ,所以它实现了实时渲染速度——在 Waymo 上以 1920x1280 分辨率达到约 40 FPS 。
是什么让它起作用? (消融研究)
复杂管道的每一部分都是必要的吗?作者进行了一项消融研究 (图 8) 来找出答案。

- w/o NMFF Prior (无 NMFF 先验) : 移除 LiDAR 预训练会导致明显的模糊。模型不知道从哪里开始优化运动。
- w/o NMFF Optimization (无 NMFF 优化) : 如果不在训练期间细化运动场,细节就会丢失。
- w/o Optical Flow (无光流) : 如果没有蒸馏 2D 流,移动汽车的纹理会变得不那么连贯。
“Full (完整) ”模型 (左上) 是唯一能产生清晰可读车牌和车灯的模型。
深入观察: 流与深度
最后,因为 SplatFlow 对场景的物理特性 (深度和运动) 进行了建模,所以它不仅能渲染 RGB 图像。它可以输出与视觉数据一致的密集深度图和光流场。

在图 15 中,我们看到了渲染的 RGB (上) 、光流 (中) 和深度 (下) 。深度图和流图中清晰的轮廓证实了底层 3D 几何形状是准确的。这对于使用这些仿真来训练其他通常依赖深度和流数据的 AV 感知系统至关重要。
结论与启示
SplatFlow 代表了自动驾驶环境仿真向前迈出的重要一步。通过成功地将神经运动流场与动态高斯泼溅相结合,作者解决了困扰动态场景重建的“鬼影”问题。
主要收获如下:
- 无需标签: 它在无需昂贵 3D 边界框标注的情况下实现了最先进的结果。
- 物理感知: 通过利用 LiDAR 几何和运动流,它确保了时间一致性。
- 实时性: 它保留了高斯泼溅的速度优势,使其适用于闭环仿真。
对于计算机视觉和机器人技术的学生和研究人员来说,SplatFlow 展示了混合方法的威力。它结合了显式几何表示 (高斯) 、隐式神经表示 (NMFF) 和跨模态蒸馏 (LiDAR + 相机 + 2D 流) ,解决了一个单一模态无法独自解决的问题。随着我们迈向更安全的自动驾驶汽车,像 SplatFlow 这样的工具将在创建未来的虚拟试验场中发挥关键作用。
](https://deep-paper.org/en/paper/2411.15482/images/cover.png)