写在前面 & 笔者的个人理解
最新重建方面的工作是真多啊,基本上大家都在卷仿真重建。今天分享MMLab最新的工作,提出了FreeSim。一种用于自动驾驶的相机仿真方法。FreeSim强调从记录的自车轨迹之外的视角进行高质量渲染。由于这些视角的训练数据不可用,以前的方法具有不可接受的退化。为了解决这种数据稀缺问题,我们首先提出了一种具有匹配数据构建策略的生成增强模型。所得到的模型可以在略微偏离记录轨迹的视角中生成高质量的图像,前提是该视角的渲染质量下降。然后,我们提出了一种渐进式重建策略,该策略从略微偏离轨迹的视角开始,逐渐将未记录视图的生成图像添加到重建过程中,并逐渐远离。通过这种渐进式生成重建管道,FreeSim支持在超过3米的大偏差下进行高质量的非轨迹视图合成。
总结来说,本文的主要贡献如下:
- 为了解决自由视角相机仿真中的数据稀缺问题,我们将具有挑战性的姿势条件视图生成任务重新表述为生成图像增强任务,并提出了一个匹配的数据构建管道用于模型训练。
- 提出了一种渐进式重建策略,将生成和重建部分无缝结合,避免了在大视角变化下严重的图像退化。
- FreeSim在自由视角渲染中比现有的基于重建的方法具有显著的优势,更接近现实和实用的仿真器。
相关工作回顾
驾驶场景中基于重建的相机仿真。神经辐射场(NeRF)和3D高斯散斑(3DGS)是最流行的重建方法。3DGS利用3D高斯的显式表示和基于光栅化的渲染方法,实现了更快的渲染和训练。这两种方法都可以在给定从不同相机视角拍摄的一些3D场景的少量图像的情况下实现高质量、逼真的新颖视图合成(NVS)。后来的NeRF工作和3DGS工作将这两种方法扩展到了驾驶场景。然而,在驾驶场景中,所有图像都是沿着记录的轨迹拍摄的。由于对这些偏离轨迹的视角缺乏监督,这些方法无法从记录轨迹之外的视角渲染高保真图像。
驾驶场景中的非轨迹视图合成。基于扩散的生成方法在2D图像和视频生成方面取得了显著成功。受这些技术的启发,一些街道场景重建方法采用扩散模型来合成偏离轨迹的视图,解决了未记录轨迹中缺失视图的挑战。例如,SGD使用基于参考图像和目标视图的深度图的扩散过程生成新视图。然而,它主要局限于仅通过旋转变化来合成相机视图,并且可能难以进行大的空间平移。FreeVS使用目标视图的伪图像作为扩散模型的先验。然而,这张伪图像来自激光雷达点云,这限制了模型生成激光雷达无法到达的区域的能力。除了扩散模型外,UniSim还采用了基于GAN的监督来增强非轨迹视图中的照片真实感。然而,与最先进的扩散模型相比,GAN在很大程度上偏离了视角的情况下限制了照片真实感。AutoPlat利用3D车辆形状模板的对称先验作为约束,以提高视角偏差后的质量。
方法
FreeSim是一种生成重建混合方法,如图2所示。在这里,我们分别从生成和重建两个方面简要介绍了概述。
生成部分。将位姿条件视图生成任务转化为生成图像增强任务。该公式避免了直接使用多视图外参变换作为条件,这在单程驾驶轨迹中是不可用的。为了训练生成模型,我们首先提出了一种数据构建策略来创建训练数据。
重建部分。可以预期,如果渲染因大的视角变化而严重退化,生成模型可能难以生成高质量的结果。因此,我们提出了一种渐进式重建策略,该策略将生成的视角逐步添加到训练图像集中进行重建,从最接近记录轨迹的视角开始,逐渐远离记录轨迹。
raining Data Construction for Generation
我们任务中的数据稀缺。最近,在利用扩散模型生成多视图图像方面取得了令人印象深刻的进展。然而,他们的范式和我们的任务之间存在本质区别。这些多视图生成模型使用NVS数据集中的多视图样本进行训练,如Objaverse、RealEstate10k、CO3D、DL3DV和MVImgNet。相比之下,我们的任务中记录的轨迹之外的地面实况图像是不可用的,因为车辆不能同时沿着多个轨迹行驶。这种数据稀缺是我们的核心挑战,也是我们提出的方法的基本动机。
我们需要什么样的训练数据?为了应对数据稀缺的挑战,我们没有训练模型直接从姿态转换中生成偏离轨道的视图。相反,我们将视图生成任务表述为图像增强任务。具体来说,给定从记录的视图重建的辐射场,我们可以在略微偏离的视角(例如,横向偏移半米)中获得降级的渲染。尽管劣化图像的质量可能较低,但它们在生成高质量图像之前起着很强的作用。这种公式使我们能够根据记录的视图创建训练对(低质量和高质量的对),避开了偏离轨道GT的无法实现的要求。我们将在下面介绍创建此类训练对的方法。
Preparing Degraded Renderings
我们需要解决两个问题来获得适当的降级渲染。(1) 如何高效地重建众多场景以获得足够的数据。(2) 如何缩小记录的视角(用于训练)和未记录的视角的退化模式(用于推理)之间的差距。对于第一个问题,我们提出了分段高斯重建。对于第二个问题,我们采用外推渲染和高斯扰动技术。
分段高斯重建。我们重建Waymo开放数据集(WOD)以获得退化的渲染图像。然而,作为驾驶场景中最大的数据集之一,它包含1150个块级场景。重建完整的数据集非常昂贵。为了提高效率,我们将每个完整轨迹分解为几个小子段,并为每个子段重建一个小尺度分段高斯场,如图3所示。由于其小规模,分段高斯场需要更少的高斯基元并快速收敛。我们提出了几种技术来匹配小尺度的分段高斯场,并使重建更便宜。(1) 我们将原始图像大小调整到一半。(2) 我们采用1k迭代计划,学习率更高。(3) 高斯基元的最大数量设置为1M。由于我们的目标是获得降级的渲染,因此我们不需要高质量的重建,并且可以安全地采用这些技术。由于其简单性,我们使用开创性的驱动重建方法PVG作为重建工具。由于基于高斯的PVG和我们的技术的效率,我们可以在不到2分钟的时间内重建一个子片段。使用8个GPU,整个WOD重建大约需要40个小时,比全段重建实现了大约6倍的加速。
除了效率之外,分段高斯重建还可以更好地仿真退化模式,如下所示。
外推渲染的退化模式。传统的NVS方法以插值方式对测试视图进行采样。与它们不同,对于每个子片段,我们将片段中的最后几帧作为测试视图,这是一种推断的方式。我们采用这种设计是因为我们的目标视图,即偏离轨道的视图,本质上也是外推视图。如果我们以侧视摄像头为例,我们的设计有一个更直观的解释。就运动模式而言,侧视摄像头沿向前移动轨迹的移动几乎相当于前置摄像头的横向偏移。
为了增加数据多样性,我们通过向分段高斯场中的高斯基元添加噪声来进一步创建降级渲染。视角偏差后一个非常典型的退化模式是图4所示的“物体重影”。这种模式是由那些深度不准确的高斯基元引起的,这些基元在视角偏差后被光栅化到错误的图像位置。为了仿真重影,我们在场景中随机采样一小部分高斯基元,并将它们沿水平方向(即图像空间中的宽度方向)移动相同的随机距离。因此,受扰动的高斯基元在光栅化后会产生重影。此外,在视角偏差之后,图元相对于相机的相对旋转也会发生变化。因此,我们进一步在高斯基元在其规范坐标系中的旋转中添加了轻微的噪声,以更好地仿真退化的渲染
Structure of Generative Model
采用Stable Diffusion (SD) v1.5作为生成模型。
重建
在完成生成模型的训练后,我们继续进行重建部分。
高斯场初始化。由于生成模型基于退化渲染,我们使用PVG中的标准程序进行预重建,以提供相对较好的初始状态。之后,偏离轨迹的视角按如下方式加入游戏。
渐进式视角扩展。虽然生成模型可以增强退化的渲染,但可以预料,如果渲染在很大程度上偏离的视角中完全破坏,生成的质量可能会不足。为了避免这个问题,我们建议从小的视角偏差到大的视角偏差,逐步纳入偏离轨道的视角。有各种顺序可以逐步合并偏离轨迹的视角,这里我们采用横向轨迹偏移,如图2所示。这种类似车道变换的横向换档是最常见但也是最具挑战性的仿真要求。具体来说,对于第一次更新,我们以预定义的步长横向移动轨迹中的所有视角,并在移动的视角中生成新的图像。然后将生成的图像添加到训练集中。每次更新训练集后,我们冻结训练集并优化高斯场,直到它几乎收敛。之后,我们再次移动上次更新的轨迹,并重复生成重建过程。这种渐进的方式确保了新添加的视角的渲染总是略有下降,生成模型可以很容易地恢复它们。
后增强以减轻滚动快门失真和生成随机性。在重建过程中,有两个问题降低了最终的重建质量:众所周知的滚动快门失真和生成随机性。驾驶场景中的相机在录制过程中通常以不可忽略的速度移动,导致捕获图像中的滚动快门失真。因此,3DGS和NeRF中的标准针孔相机模型也会使底层3D结构失真。在我们的例子中,这个问题变得更糟,因为我们纳入了比单轨迹重建更多的视角。在这种情况下,适合每个(扭曲的)视图的底层3D结构甚至可能不存在。此外,生成模型不可避免地引入了随机性,例如稍微改变细节纹理,导致多个视角之间的不一致。
实验结果
结论
本文所提出的FreeSim是一种生成-重建混合方法,能够合成与记录的驾驶轨迹有很大偏差的高质量视图。然而,我们的方法仍然有几个局限性。
FreeSim无法完美处理滚动快门失真和生成部分的随机性,导致草等细节丰富的区域模糊。虽然我们可以通过后增强来提高质量,但由于多步去噪,它会降低效率。
训练数据仅由PVG创建,PVG是一种基于高斯的方法。因此,我们的生成模型不能很好地推广到基于NeRF的方法。尽管在数据构建中进一步采用NeRF可以弥补这一局限性,但由于NeRF的效率相对较低,它可能会减缓数据构建的进程。
我们未来的工作包括采用视频生成模型,使场景可编辑,并改进原生3DGS rasterizer来处理滚动快门问题。