题目:DrivingDiffusion:具有潜在扩散模型的布局引导多视图驾驶场景视频生成
随着基于强大且统一的鸟瞰图(BEV)表示的自动驾驶的日益普及,迫切需要具有准确标注的高质量、大规模多视图视频数据。然而,由于昂贵的采集和标注成本,如此大规模的多视图数据很难获得。为了缓解这个问题,我们提出了一个时空一致的扩散框架 DrivingDiffusion,以生成由 3D 布局控制的逼真的多视图视频。在给定 3D 布局的情况下合成多视图视频时存在三个挑战:如何保持 1) 跨视图一致性和 2) 跨帧一致性? 3)如何保证生成实例的质量?我们的 DrivingDiffusion 通过级联多视图单帧图像生成步骤、多个摄像机共享的单视图视频生成步骤以及可以处理长视频生成的后处理来解决这个问题。在多视点模型中,通过相邻摄像机之间的信息交换来保证多视点图像的一致性。在时间模型中,我们主要从第一帧的多视图图像中查询后续帧生成中需要注意的信息。我们还引入了本地提示,以有效提高生成实例的质量。在后处理中,我们通过采用时间滑动窗口算法进一步增强后续帧的跨视图一致性并延长视频长度。在没有任何额外成本的情况下,我们的模型可以在复杂的城市场景中生成大规模逼真的多摄像头驾驶视频,为下游驾驶任务提供动力。该代码将公开。
几十年来,自动驾驶引起了工业界和学术界的广泛关注。众所周知的鸟瞰图(BEV)是一种自然而直接的候选视图,可以作为统一的表示。 BEV 感知以多视图图像作为输入,并为下游任务学习统一的 BEV 表示,例如 3D 对象检测 [14,17,38]、分割 [4,10,22]、跟踪 [11,42,43] 或轨迹预测[5,12,16]。高质量和大规模的多视图视频数据对于学习多种感知任务的强大 BEV 表示至关重要。然而,由于标签成本难以承受,高质量的数据通常很难获得。因此,迫切需要生成符合真实分布并保证与3D标签和图像高度一致的多视角时间一致视频数据。(本文的目的是生成多视角时间一致视频数据,然后作为鸟瞰图的输入)
我们解决复杂城市场景中多视图视频数据生成的新任务。生成的数据由自我汽车周围的 3D 布局控制。图 1 显示了我们从 3D 布局到多视图连续帧的生成结果。先前或同时进行的工作解决了类似的任务,例如布局到图像生成 [2, 44]、单视图驱动视频生成 [1]。与我们最相关的任务是从 BEV 布局生成多视图城市场景图像,即 BEVGen [31] 中提出的 BEV 分割掩模。与这些数据生成任务相比,我们的任务更复杂(即多视图vs单视图、多帧vs单帧、复杂的城市场景vs简单的道路场景)、更可控(即具有3D布局) ,并具有更广泛的应用。例如,它可以作为 BEV 检测模型的一种数据增强。通过控制3D布局,我们可以获得大量的多视图视频用于模型训练。另一个应用是编辑视频中的特定对象来模拟一些罕见的场景,例如碰撞。这有助于模拟器提高驾驶系统的安全性。
多视图视频数据生成任务面临三个主要挑战。首先,我们应该保持不同相机生成的多视图图像的跨视图一致性。例如,同一帧中的多视图图像应该看起来像是在同一物理位置拍摄的。其次,应保持跨帧(或时间)一致性以产生视觉上连贯的视频。视频帧应该在时间上对齐。第三,对于视频中生成的实例(即车辆和行人)的质量保证具有重要意义。实例是感知任务的直接主体。
我们提出了一种多阶段方案 DrivingDiffusion,用于在复杂的城市场景中生成由人工 3D 布局控制的多视图视频。它基于广泛使用的图像合成扩散模型。3D 布局用作扩散模型的附加控制信息。DrivingDiffusion包含多视图单帧图像生成模型、多个相机共享的单视图时间模型以及后处理,其中包括专门设计用于增强后续生成帧的一致性的多视图模型和扩展的滑动窗口处理视频。在多视图模型中,我们提出了跨视图注意力模块来确保多视图图像的一致性。通过在不同相机视图之间添加几何约束来实现额外的一致性损失。我们还引入了局部提示来指导整个图像与局部实例之间的关系,从而有效提高实例生成的质量。在单视图时间模型中,我们提出了一种关键帧控制器,利用多视图视频序列的第一帧作为控制条件以确保跨帧一致性。为了避免需要为每个摄像机训练单独的视频生成模型,我们在网络中的每个摄像机之前嵌入基于统计的光流。在后处理中,我们训练的“微调”多视图模型以后续生成帧和第一帧为条件,进一步增强后续多视图一致性。最后,我们在滑动窗口中使用新的关键帧来延长视频长度。
本文贡献如下:
(1)我们解决了复杂城市场景中3D布局生成多视图视频数据的新问题。
(2)我们提出了一种生成模型DrivingDiffusion,以确保生成视频的跨视图、跨帧一致性和实例质量。
(3) 我们在 nuScenes 数据集上实现了最先进的视频合成性能。
在本节中,我们首先简要描述我们的方法所基于的the denoising diffusion probabilistic model(DDPM)和the latent diffusion model(LDM),这可以在第 3.1 节中找到。随后,我们介绍了 DrivingDiffusion 的流程:交叉视图模型、时间模型和后处理,包括训练和推理策略,这将在 3.2 节中讨论。我们还分别在第 3.3 节和第 3.4 节中介绍了增强视频中跨视图和跨帧一致性的方法,以及用于提高实例生成质量的本地提示设计。我们的方法概述如图 2 所示。
潜在扩散模型(LDM)[26]是一种扩散模型,它模拟图像潜在空间的分布,最近在图像合成中表现出了卓越的性能。 LDM 由两个模型组成:自动编码器和扩散模型。
自动编码器学习使用编码器 E 和解码器 D 来压缩和重建图像。
Latent diffusion model对自编码器编码的图像的潜在空间表示进行传统的diffusion过程。
用于图像合成的流行扩散模型通常利用 U-Net 架构进行去噪,这需要两轮空间下采样,然后是上采样。它由多层 2D 卷积残差和注意力块组成,包含自注意力、交叉注意力和前馈网络。空间自注意力评估特征图中像素之间的相互依赖性,而交叉注意力则考虑像素和条件输入(例如文本)之间的对齐。在生成视频时,通常使用拉长的 1 × 3 × 3 卷积核作为视频输入,以保留单帧预训练扩散模型的参数并将其扩展到新的维度。在我们的多视图和时间模型中,我们分别引入了视图和时间的附加维度。与VDM[8]类似,我们将2D卷积层扩展为具有1×3×3内核的伪3D卷积层,并在每个transformer块中集成时间自聚焦层以促进跨维度信息交换。此外,我们还集成了多个模块,例如3D布局控制器、关键帧控制器、跨视图/跨帧一致性模块和本地提示引导模块,以提高实例生成质量。图 2 概述了我们提出的 DrivingDiffusion。我们的实验结果表明,该技术可以生成与 3D 布局精确对齐的多视图视频,同时展现与真实世界数据相当的数据质量。
为了确保自动汽车周围物理空间中的目标实例位置与生成的图像之间的准确映射,我们使用相机的参数将道路结构和每个实例投影到 3D 布局图像上。值得一提的是,我们结合了道路结构信息、目标类别以及每个像素对应的目标实例 ID,并将这些信息编码为 RGB 值。接下来,上述输入被输入到类似 ResNet 的 3D 布局控制器中,以对应于不同级别的特征的不同分辨率(即 64 × 64、32 × 32、16 × 16、8 × 8)对 U-Net 模型进行编码。我们通过残差连接将不同分辨率下的附加控制信息注入到 U-Net 模型的每一层中,如图 2 所示。这种控制机制的优点是它能够影响扩散模型各种感受野,而不引入太多参数(即 ControlNet [41] 的可训练副本)。
对于多视图单帧模型,我们采用所有视图的 3D 布局作为输入,以及场景的文本描述,以生成高度对齐的多视图图像。在这一阶段,我们只使用了一个 3D 布局控制器。
对于时间单视角模型,我们输入单视角所有视频帧的3D布局、视频序列的第一帧图像以及相机对应的光流先验。输出是来自单个视点的时间一致的视频。具体来说,我们模型中添加的维度从多个视图更改为多个框架。此外,我们还包括一个关键帧控制器,它利用多视图视频序列的第一帧作为生成一致视频的控制条件。为了避免需要为每个摄像机训练单独的视频生成模型,每个摄像机视图的统计光流趋势以固定值作为先验并编码为token,以与时间嵌入相同的方式输入到模型中。
在我们的时间模型中,我们将初始时刻的多视图图像作为关键帧。这是因为,在短时间内,我们假设每个视图后续帧所需的大部分信息都可以在初始时刻的多视图图像中找到。但当时间间隔过长时,仍有可能因遮挡等因素导致视频后续帧的多个视图不一致。为了处理长序列视频,我们在跨视图和时间模型之后训练微调模型,以增强后续帧的一致性。具体来说,微调模型利用了跨视图模型的现有结构和参数,除了用于输入由时间模型生成的帧的额外控制器之外。在训练中,finetune模型使用时间模型通过数据集中的原始多视图图像生成的大量时间后续帧作为输入,并以数据集中对应的原始图像作为真值。在推理过程中,模型输入生成视频后续帧的多视图图像,并输出微调后的图像。由于这只是提高生成质量的工程工作,因此我们将其视为长视频生成任务后处理的一部分。
最后,我们将后续多视图图像的某个时刻作为新的关键帧,再次进行时间推理。利用滑动窗口的思想来延长视频长度。
我们引入多阶段推理策略来生成多视图长视频,如图3所示: 1)我们首先采用多视图模型来生成视频序列的第一帧全景图像。 2)然后我们使用每个视角生成的图像作为时间模型的输入,从而允许每个相应视点的并行序列生成。 3)对于后续帧,我们也采用finetune模型进行并行推理。 4)识别新的关键帧后扩展视频,就像滑动窗口算法一样。最后我们获得了整个合成的多视图视频。
如3.2节所述,3D布局的输入为模型提供了每个目标的位置、类别和实例信息,在一定程度上有助于增强局部多视图和时间一致性。然而,仅此不足以确保全局一致性,特别是在静态场景中。为了解决这个问题,我们提出了一种有效的注意力机制,强调跨视图和跨帧交互,并引入几何约束来监督生成的结果。
图4的右侧部分显示了一致性模块生效的范围:(1)多视图中的相邻视图,(2)多帧中的当前帧和第一/前一帧。
对于跨视图模型,我们假设每个视角应主要关注其相邻的左右视角。
我们使用预训练的网络 F 来监督生成结果的一致性,该网络可以执行图像匹配和回归相对姿势。在训练过程中,我们固定F的参数并使用实际的相对位姿作为ground truth。对于跨视图模型,我们监督相邻帧之间的姿势,对于时间模型,我们按时间顺序监督相邻帧。
为了提高实例的生成质量,我们提出了local prompt模块。我们可以参考图2的d)。首先,我们预先存储类别k和类别名称对应的文本Tk,并对类别嵌入进行编码Fk = phi(Tk),其中phi是CLIP[23]编码器。我们利用投影 3D 布局的最小周围矩形区域作为每个类别 k 的掩模 Mk。然后以与全局提示相同的方式使用潜在表示计算 z 和类别文本编码 Ek 来计算交叉注意力,使用 Mk 作为注意力的掩码。图 4 的左侧部分说明了全局提示和本地提示如何相互协作。
我们在训练期间没有采用固定数字编码,因为我们假设局部提示和全局提示的概念是一致的,唯一的区别是它们各自的范围。因此,我们的本地提示复制了与全局提示相同的结构和参数,使其能够充分利用预先训练的扩散模型的参数,该模型已经包含了对我们目标类的理解。