解读:AI生成未来

论文链接:https://arxiv.org/pdf/2503.03751
git链接:https://research.nvidia.com/labs/toronto-ai/GEN3C/
亮点直击
提出了GEN3C,一种具有精确相机控制的世界一致性视频生成模型。 通过对输入图像或先前生成的视频帧的深度估计进行反投影,构建了一个以点云表示的3D缓存。借助用户提供的相机轨迹,渲染3D缓存,并将渲染出的视频用作视频模型的条件输入。 对模型在不同输入条件下的视频生成任务进行了广泛评估,从单一图像到稀疏和密集的多视图输入。该模型很好地泛化到动态场景,展示了精确控制视点、生成3D一致的高保真视频以及填补3D缓存中被遮挡或缺失区域的能力。 探索了显式3D缓存所支持的应用,如对象移除和场景编辑,证明本方法是将视频生成模型应用于生产和仿真环境的一个台阶。
传统的视频生成模型在生成逼真视频时往往忽略3D信息,导致出现不一致现象,如物体突然出现或消失。此外,相机控制不够精确,因为相机参数只是作为输入,网络需要推断视频如何依赖于相机姿态。
GEN3C通过3D缓存进行引导,利用从种子图像或先前生成帧的深度估计获得的点云。在生成下一帧时,GEN3C基于3D缓存的2D渲染和用户提供的新相机轨迹进行条件生成。这样,模型不必记住之前生成的内容或从相机姿态推断图像结构。
核心思路是利用3D指导信息来进行视频生成,从而实现精确的相机控制并提高视频帧间的一致性。为此,首先从输入图像或预生成的视频帧构建一个3D缓存。然后,利用用户提供的相机姿态将3D缓存渲染到相机平面上。尽管这些渲染并不完美,但为视频生成模型提供了关于需要生成的视觉内容的强条件。本文的视频生成模型会相应地进行微调,以生成与期望相机姿态精确对齐的3D一致性视频。下图3提供了方法的概览。
选择一个适用于不同应用且能推广到不同场景的合适3D缓存是我们设计中的主要考虑因素。最近,深度估计在各种领域(如室内、室外或自动驾驶场景)取得了显著进展。因此,选择从RGB图像的深度估计中反投影的彩色点云作为我们3D缓存的基本元素。
具体来说,维护一个时空3D缓存。对于从相机视点 在时间 看到的RGB图像,通过反投影该RGB图像的深度估计来创建一个点云 。将相机视图的数量记为 ,时间维度的长度记为 ;因此,本文的3D缓存是一个 的点云数组。
我们根据具体的下游应用来构建时空3D缓存。对于单图像到视频的生成,仅为给定图像创建一个缓存元素( ),并沿时间维度复 制 次以生成长度为 的视频。对于静态的新视角合成(NVS),为用户提供的每个 个图像创建一个缓存元素,并沿时间维度复 制 次。这样我们可以实现稀疏视图和密集视图的新视角合成。对于动态的新视角合成(NVS),从用户提供或由其他视频模型生成的每个初始视频(长度为 )构建缓存。然后, 等于时间同步视频的数量,可以实现单视图和多视图的动态新视角合成。对于这些不同的应用,我们假设相机姿态是与图像或视频一起提供的。如果没有,使用DROID-SLAM来估计相机姿态。可选地,我们构建的3D缓存可以被编辑或模拟,例如,通过移除或添加对象;在下文中提供了定性结果。
点云可以沿任意相机轨迹轻松高效地渲染,类似于Gaussian Splats。这样的渲染函数 将 映射到一个元组: , 其中 是从新相机 看到的RGB图像。 mask 识别出遮挡消失,标记在渲染点云时未覆盖的像素。这样, mask 识别出图像 中需要填充的区域。对于用户提供的新相机姿态序列 ,我们渲染所有缓存元素 并获得 个视频:
其中 。将渲染的图像 和 mask 沿时间维度进行拼接,对于相机视图 ,我们将图像和 mask 的结果视频分别表示为 和 。
在使用本文的3D缓存渲染结果对视频扩散模型进行条件化时,主要挑战在于3D缓存可能在不同相机视点之间不一致,这可能是由于深度预测不完善或光照不一致造成的。因此,模型需要聚合信息(如果)以进行一致的预测。我们在设计此模块时的关键原则是尽量减少引入额外的可训练参数:由于预训练的视频扩散模型已经在大量互联网数据上训练过,任何新参数可能无法很好地泛化。
具体来说,修改了图像到视频扩散模型的前向计算过程,记为 。首先使用冻结的VAE编码器 对渲染的视频 进行编码,以获得隐空间视频 ,并根据 mask 屏蔽掉3D缓存未覆盖的区域。在训练过程中,将屏蔽后的隐空间变量与目标视频 在隐空间中的噪声版本 沿通道维度连接,并将其输入到视频扩散模型中。为了融合来自多个视点的信息,将每个视点分别输入到扩散模型的第一层,记为In-Layer,并对所有视点应用最大池化以获得最终的特征图。总结如下:
其中, 表示元素级乘法, 是通过对 进行最小池化(minpooling)下采样得到的,其大小为 ,以便与隐空间维度对齐。得到的特征图 在经过视频扩散模型的进一步处理后,该模型经过微调以生成与来自3D缓存的渲染结果一致的视频。
讨论。 上述策略是一种通用机制,用于聚合来自多个视图的信息并将其注入到视频扩散模型中。我们将其与表现出不同特性的替代方案进行比较,如下图4所示。
在同时进行的研究工作中提出的显式融合方法 [30, 70],直接在3D空间中融合点云。虽然这种方法简单,但它严重依赖于深度对齐,当多个视点之间存在不一致时会引入伪影。此外,将视图相关的光照信息注入这样的融合缓存中也并非易事。基于这些原因,我们更倾向于让模型自行处理视图信息的聚合。
另一种方法,称之为“concat”,是将渲染缓存的所有隐空间变量在通道维度上进行连接。尽管这种方法在经验上效果良好,但它需要通过一个常数限制模型所能支持的视点数量,并对视点施加顺序限制。相反,我们更喜欢一种置换不变的融合操作,从而形成本文的基于池化的策略。
另一个关键设计选择是将 mask 信息纳入模型。最初尝试将 mask 通道与隐空间变量连接。然而,连接操作引入了额外的模型参数,这些参数现在需要进行训练,因此在 mask 通道未在任何大规模训练数据中表示时可能无法很好地泛化。相反,通过元素级乘法直接将 mask 值应用于隐空间变量,从而保持模型架构不变。
以3D缓存的渲染结果作为条件信号 ,我们对修改后的视频扩散模型 进行微调。具体来说,首先创建3D缓存渲染 与对应的RGB真实视频 的配对,这些视频沿着本文的训练数据中的新相机轨迹。然后,我用本文的融合策略和方程(1)中的去噪评分匹配目标函数微调视频扩散模型,其中目标 为 ,遵循预训练的图像到视频扩散模型的实践。还使用CLIP模型对第一帧进行编码,作为额外的条件。有关用于微调的配对数据创建的详细信息。
在推理过程中,用高斯噪声初始化隐空间代码 ,并使用修改后的视频扩散模型 迭代去噪这个隐空间代码,该模型以本文的3D缓存渲染结果为条件。最终的RGB视频通过在去噪后的隐空间代码上运行预训练的VAE解码器 获得。在一块A100 NVIDIA GPU上生成一个14帧的视频大约需要30秒。
自回归推理和3D缓存更新. 许多应用需要生成长视频,但视频越长,现有模型就越容易出现不一致。为了生成长而一致的视频,我们提出逐步更新本文的3D缓存。我们首先将长视频分成长度为 的重叠片段,两个连续片段之间有一帧重叠。然后,自回归地渲染3D缓存并生成每个片段的帧。为了使预测在时间上保持一致,使用先前生成的片段更新3D缓存:对于每个生成的片段中的帧,使用深度估计器估计其像素级深度。由于帧的相机姿态是已知的(用户提供),可以通过最小化重投影误差将深度估计与现有的3D缓存对齐。
在本节中,介绍训练GEN3C的实验设置,并通过几个下游任务展示其多功能性,包括单图像到视频生成、双视图新视角合成(NVS)、用于驾驶模拟的新视角合成和单目动态新视角合成,并提供了消融研究。
训练GEN3C的一个关键挑战是缺乏多视图、动态、真实世界的视频数据,这些数据提供了新相机轨迹的3D缓存和真实视频的配对。我们利用静态的真实世界视频帮助模型推理空间一致性,并使用合成的多视图动态视频帮助实现时间一致性。
数据集。 我们选择了三个真实世界视频数据集:RE10K、DL3DV、Waymo开放数据集(WOD),以及一个合成数据集Kubric4D 。RE10K包含74,766个视频片段,捕捉了室内和室外的真实房地产场景。使用DROID-SLAM估计相机参数,并使用DAV2预测每帧深度。深度预测与DROID-SLAM的场景比例对齐。DL3DV包含10,000个真实世界场景的视频。我们按照与RE10K相同的协议对这些片段进行标注。WOD是一个包含1000个场景的真实世界驾驶数据集,每个场景有200帧。使用DAV2预测深度,并将其与LiDAR点云的比例刚性对齐。对于Kubric4D,使用GCD生成的3000个包含多物体动态的场景。该数据集以点云序列的格式存在,我们为期望的相机轨迹渲染RGB-D视频。
配对数据整理。 对于真实世界视频,训练模型使用同一序列中的过去或未来帧预测当前帧。通过这种方式,我们有效地模拟视点变化,使模型能够外推到未见过的视点,并根据观察生成一致的视频。具体来说,对于RE10K和DL3DV,从视频片段中随机选择等间隔的 帧来创建本文的3D缓存。真实视频由包含所选 帧之一的 个连续帧组成。对于WOD,为每个三个相机随机采样一个时间同步的 帧序列来创建本文的3D缓存(在这种情况下, )。真实视频仅从前置相机中采样。使用所有三个相机创建3D缓存,因为这使模型能够学习解决跨相机的不一致问题,例如深度预测、相机ISP等。对于Kubric,从 相机轨迹渲染每个动态场景以生成多视图动态视频用于创建3D缓存。然后,在不同的相机轨迹上渲染一个额外的视频作为真实视频。虽然我们选择最大 为4进行训练,但它是灵活的,可以是任意数量。
GEN3C 可以轻松应用于从单个图像生成视频/场景。首先预测给定图像的深度,然后创建3D缓存,并将其渲染为2D视频,输入到训练好的视频扩散模型中,以生成精确遵循给定相机轨迹的视频。
评估和基准。 将 GEN3C 与四个基准进行比较,包括 GenWarp、MotionCtrl、CameraCtrl和 NVS-Solver 。为了与 GenWarp和 NVS-Solver进行公平比较,使用相同的深度估计器获取像素级深度,并通过全局平移和缩放使用场景比例进行刚性对齐。CameraCtrl是最相关的工作,通过使用相同的数据集、训练协议和视频扩散模型来重现它,并用相机轨迹的 Plücker 嵌入替换我们3D缓存中的渲染视频。在两个数据集上评估所有方法:RE10K,用于域内测试;Tanks and Temples (T-&-T),用于域外测试以评估泛化能力。为了确保全面评估,为 RE10K 和 T-&-T 各采样100个测试序列。遵循之前的工作 [8, 42, 70],报告像素对齐指标,即 PSNR 和 SSIM,以及感知指标,即 LPIPS。进一步报告 TSED 分数 以评估预测的3D一致性。
结果。 定量结果见下表1。本文的方法在域外和域内测试中均优于所有基准,展示了从单个图像生成逼真视频的强大能力。值得注意的是,基于 Plücker 嵌入的方法,例如 CameraCtrl,在泛化到域外数据时表现不佳,因为这些数据具有不同的场景布局和相机轨迹。由于本文的3D缓存中对3D内容的显式建模,本文的模型仅遭受了小幅度的性能下降。在下图5中提供了与两个最强基准的定性比较。本文的方法的预测精确地遵循了真实的相机轨迹,并捕捉到了细粒度的细节,例如椅子腿或字母单词。特别是,CameraCtrl [16] 无法精确跟随相机运动,因为仅从 Plücker 嵌入推理场景布局是困难的。
进一步将 GEN3C 应用于一个具有挑战性的稀疏视角新视图合成设置中,其中仅提供两个视角,并从这两个视角生成新视图。与前文类似,我们首先为每个视角预测深度,创建 3D 缓存,并使用相机轨迹将其渲染成两个视频,这些视频被输入并由 GEN3C 融合以生成输出视频。请注意,在推理过程中,本文的模型不仅限于两个视角,可以应用于任意数量的视角。我们在补充材料中提供了定性结果。
评估和基准。 将本文的方法与两个稀疏视图重建的代表性工作进行比较:PixelSplat和 MVSplat。在此任务中,评估模型的插值和外推能力。具体来说,随机从视频中选择两个输入帧。对于插值,我们选择输入帧之间的目标视图;对于外推,选择超出两个输入帧范围的目标视图。从 RE10K和 T-&-T中各抽取 40 个测试序列,并报告 PSNR、SSIM 和 LPIPS。
结果。 在下表 2 中提供了定量结果,并在下图 6 中展示了定性结果。本文的方法优于所有基准,尤其是在从提供的两个视图进行外推时,即使两个视图之间的重叠很小,也能生成逼真的新视图,这得益于预训练视频生成模型的强大先验。
沿着与捕获视频不同的新轨迹模拟真实世界的驾驶场景是训练自动驾驶车辆的基石。GEN3C 可以应用于此任务。
评估和基准。 将 GEN3C 与两个代表性的场景重建方法进行比较:Nerfacto和 3DGS。为了公平比较,从验证集中筛选出 18 个静态场景。为了进行评估,我们通过从前置摄像机的原始轨迹水平偏移并改变偏移量来创建新轨迹。由于没有新轨迹的真实数据,报告 FID作为评估指标。
结果。 如下表 3 所示,本文的方法在驾驶场景中获得了显著更好的 FID 分数。这是因为重建方法难以从驾驶场景中稀疏观察到的视图中恢复场景结构。因此,当渲染摄像机偏离原始轨迹时,渲染质量显著下降,如下图 7 所示。
3D 编辑。 本文的显式 3D 缓存天然适合 3D 编辑。如下图 8 所示,我们可以移除 3D 汽车,修改汽车的轨迹,并使用 GEN3C 生成合理的驾驶场景重新模拟视频。
在给定动态场景的单目视频的情况下,GEN3C 能够沿着新的相机轨迹“重新渲染”该视频。
评估和基准。 在 GCD发布的 Kubric 数据集的 20 个保留测试场景上进行评估,并与 GCD 进行比较。使用在 Kubric 数据集上训练的公开发布的检查点。由于 GCD 仅在 256x384 分辨率下训练,我们将其预测结果上采样到与我们方法相同的分辨率以进行公平比较。
结果。 在下表 4 中提供了定量结果,补充材料中提供了定性结果。本文的方法在保持输入视频中的物体细节和动态方面表现出色,并且能够通过 3D 缓存精确地与用户指定的新相机运动对齐。
领域外结果。 进一步在由 Sora和 MovieGen生成的动态视频上对 GEN3C 进行了定性评估,并在下图 9 中提供了结果。GEN3C 生成了保留 3D 内容并与新相机运动对齐的逼真视频。完整结果请参见补充视频。
从两个方面对本文的方法进行了消融研究:首先是不同的点云融合策略,其次是对深度估计噪声的鲁棒性。实验设置遵循前文中的描述。
不同的融合策略。 选择两个输入视图并预测这两个视图之间的插值。本文的融合策略与从两个视图显式融合点云的方法进行比较,这类似于并行研究 ReconX和 ViewCrafter中提出的方法。下图 10 中提供了定性示例,并在下表 6 中进行了定量比较。即使深度估计未对齐且光照不同,本文的方法也能在两个不相连的视图之间平滑过渡,而显式点云融合在未对齐区域会出现严重的伪影。
对深度估计噪声的鲁棒性。 由于本文的模型利用现成的深度估计器来创建 3D 缓存,我们需要了解深度估计误差的影响。在给定深度估计的情况下,添加了从高斯分布 采样的噪声,其中 和 分别表示深度的 95 和 5 百分位数, 是噪声比率。我们改变噪声比率并评估生成新视图的能力。如下表 5 所示,当噪声量较小时,性能下降可以忽略不计,即使在噪声比率较大(30%)时,本文的模型仍能表现良好。
进一步将 Stable Video Diffusion 模型替换为更先进的视频扩散模型 Cos mos,该模型在视频生成中表现出色。我们遵循与之前相同的微调协议。具体而言,我们选择 Cos mos1.0 Diffusion7B Video2World1 作为基础模型,并将噪声隐空间变量与由 Cos mos 分词器编码的渲染帧的嵌入进行拼接。该模型在 RE10K和 DL3DV数据集上进行了 10,000 步的微调,批大小为 64。
在下图 11 中提供了定性比较,并在本文的网站上展示了更多结果。极端新视图合成的结果如下图 12 所示。
当利用更强大的视频扩散模型时,GEN3C 能够在极端相机视角变化的情况下生成质量更高的视频。这突出了我们方法的一个关键优势:能够利用不断发展的预训练视频模型,以最少的数据需求实现广泛的泛化能力。
GEN3C,这是一种具有精确相机控制的连续视频生成模型。通过从种子图像或先前生成的视频构建 3D 缓存来实现这一目标。然后,根据用户提供的相机轨迹将缓存渲染成 2D 视频,以强烈地条件化本文的视频生成,从而实现比以往方法更精确的相机控制。本文的结果在稀疏视角的新视图合成方面也达到了SOTA水平,即使在驾驶场景和单目动态新视图合成等具有挑战性的环境中也是如此。
限制。 生成具有动态内容的视频时,GEN3C 依赖于预生成的视频来提供对象的运动。生成这样的视频本身就是一个挑战。一个有前景的扩展是将文本条件化纳入视频生成模型的训练中,以提示运动。
[1] GEN3C: 3D-Informed World-Consistent Video Generation with Precise Camera Control