谷歌重磅发布CAT3D:一分钟搞定任意数量视图到3D场景重建
论文链接:https://arxiv.org/pdf/2405.10314
项目链接:https://cat3d.github.io/
3D重建的进步使得高质量的3D捕捉成为可能,但需要用户收集数百到数千张图像来创建一个3D场景。本文提出了CAT3D,一种通过多视点扩散模型模拟这种现实世界捕捉过程的方法,可以在3D中创建任何东西。给定任意数量的输入图像和一组目标新视点,本文的模型生成高度一致的场景新视图。这些生成的视图可以作为输入,用于稳健的3D重建技术,从而生成可以实时从任何视点渲染的3D representation。CAT3D可以在短至一分钟内创建完整的3D场景,并且在单图像和少视点3D场景创建方面优于现有方法。
我们先来一起看下建模效果吧
介绍
对3D内容的需求比以往任何时候都高,因为它对于实现游戏、视觉效果和可穿戴混合现实设备的实时交互至关重要。尽管需求很高,高质量的3D内容仍然相对稀缺。与可以轻松用消费级摄影设备捕捉的2D图像和视频不同,创建3D内容需要复杂的专业工具以及大量的时间和精力投入。
幸运的是,最近在摄影测量技术方面的进展大大提高了从2D图像创建3D资产的可行性。方法如NeRF、Instant-NGP和Gaussian Splatting允许任何人通过拍摄真实场景的照片并优化该场景的底层3D几何和外观表示来创建3D内容。生成的3D representation可以从任何视角渲染,类似于传统的3D资产。然而,不幸的是,创建详细场景仍然需要一个劳动密集的过程,需要捕捉数百到数千张照片。对场景覆盖不足的捕捉可能导致一个不适定的优化问题,通常会导致错误的几何和外观,并在从新视角渲染恢复的3D模型时产生不合理的图像。
将这种要求从密集的多视角捕捉减少到较少的输入,例如单张图像或文本,将使3D内容创建更加便捷。先前的研究已经针对不同的输入设置开发了专门的解决方案,例如针对稀疏视角重建的几何规则化技术,训练从单张图像创建3D对象的前馈模型,或在优化过程中使用图像条件或文本条件的生成先验——但这些专门方法各自都存在质量、效率和通用性方面的限制。
本文集中研究限制已建立的3D重建方法在观测受限环境中使用的基本问题:监督视图数量不足。与其为不同的输入情况设计专门的解决方案,一种共享的解决方案是简单地创建更多的观测 —— 将不太受约束的、不确定的3D创建问题转化为完全约束、完全观测的3D重建环境。通过这种方式,本文将一个困难的病态重建问题重新表述为一个生成问题:给定任意数量的输入图像,生成一组一致的新颖3D场景观测。最新的视频生成模型在应对这一挑战方面显示出希望,因为它们展示了合成具有合理3D结构的视频片段的能力。然而,这些模型通常采样成本高,难以控制,并且仅限于平滑且短的相机轨迹。
本文的系统CAT3D则通过专门为新视图合成训练的多视图扩散模型实现这一目标。给定任意数量的输入视图和任意指定的新视点,本文的模型通过高效的并行采样策略生成多个3D一致的图像。随后,这些生成的图像通过一个强大的3D重建pipeline,生成一个可以从任何视点以交互速度渲染的3D representation。
本文展示了CAT3D模型能够在不到一分钟的时间内,从任意数量的捕获或合成输入视图生成任意对象或场景的逼真效果。在各种输入设置中评估了本文的工作,范围从稀疏的多视图捕获到单个捕获图像,甚至仅仅是一个文本提示(通过使用文本到图像模型从该提示生成一个输入图像)。在可测量任务(如多视图捕获案例)中,CAT3D在多个基准测试中优于之前的工作,并且速度比之前的最先进方法快一个数量级。对于经验性能难以衡量的任务(如文本到3D和单图像到3D),CAT3D在所有设置中都与之前的工作相比表现良好。
相关工作
从有限的观测中创建完整的3D场景需要3D生成技术,例如在未见区域中创建内容,本文的工作建立在不断增长的3D生成模型研究领域上。由于3D数据集相对稀缺,3D生成的许多研究集中在转移从2D图像空间先验知识中学到的知识,因为2D数据是丰富的。
本文的扩散模型建立在最近的视频和多视图扩散模型的发展之上, 这些模型可以生成高度一致的新视图。本文展示了将这些模型与3D重建配对(类似于[17, 58])可以实现高效且高质量的3D创建。
2D先验。 给定有限的信息,例如文本,预训练的文本到图像模型可以为文本到3D生成提供强大的生成先验。然而,将这些基于图像的先验知识提炼成一个连贯的3D模型,目前需要一种迭代提炼的方法。DreamFusion引入了评分提炼采样(SDS)来从文本提示中合成3D对象(如NeRFs)。这一领域的研究旨在改进提炼策略,替换其他3D representation,并摊销优化过程。使用基于文本的先验进行单图像到3D生成也显示出希望,但需要在图像观测与附加约束之间进行复杂的平衡。结合单目深度模型或修复模型等先验对于创建3D场景非常有用,但往往会导致较差的全局几何。
基于摄像机条件的2D先验。 虽然文本到图像模型在生成视觉上吸引人的图像方面表现出色,但它们在图像姿态的精确控制方面存在不足,因此需要耗时的3D蒸馏过程来鼓励3D模型符合2D先验。为了克服这一限制,一些方法通过显式图像和姿态条件来训练或微调生成模型。这些模型为给定文本和/或输入图像提供了更强的先验,表明物体或场景应该是什么样子,但它们也独立地建模所有输出视图。在新视图的外观几乎没有不确定性的情况下,独立地推理生成的视图对于高效的3D重建是足够的。但在存在一些不确定性的情况下,这些顶尖方法仍然需要昂贵的3D蒸馏来解决不同新视图之间的不一致性。
多视图先验。 建模多个视图之间的相关性可以提供更强的先验,使得3D内容在部分观测下保持一致性。像MVDream、ImageDream、Zero123++、ConsistNet、SyncDreamer和ViewDiff等方法通过微调文本到图像模型来同时生成多个视图。CAT3D在架构上类似于ImageDream,其中多视图依赖性通过类似视频扩散模型的架构和3D自注意力机制来捕捉。基于这种更强的先验,这些论文还展示了更高质量和更高效的3D提取。
视频先验。 视频扩散模型在生成逼真视频方面展示了惊人的能力,并被认为能够隐式推理3D。然而,出于多种原因,使用现成的视频扩散模型进行3D生成仍然具有挑战性。目前的模型缺乏精确的相机控制,限制了生成的片段只能包含平滑且短暂的相机轨迹,并且难以生成只有相机运动而没有场景动态的视频。
一些研究提出通过微调视频扩散模型来解决这些挑战,以实现相机控制或多视图生成。例如,AnimateDiff使用固定类型的相机运动微调了一个视频扩散模型,而MotionCtrl则基于任意指定的相机轨迹对模型进行了条件化。ViVid-1-to-3结合了一个新的视图合成模型和一个视频扩散模型,用于生成平滑的轨迹。SVD-MV、IM-3D和SV3D进一步探索了利用相机控制或多视图视频扩散模型进行3D生成。然而,它们的相机轨迹仅限于围绕中心内容的轨道。这些方法主要关注3D对象生成,而不适用于3D场景、少视图3D重建或上下文中的对象(即未被遮蔽或从图像背景中分离的对象)。
前馈方法。 另一条研究方向是学习前馈模型,这些模型以少量视图作为输入,直接输出3D representation,而无需针对每个实例进行优化过程。这些方法可以高效地生成3D representation(在几秒钟内),但其质量通常比基于图像空间先验的方法差。
方法
CAT3D 是一种两步法的3D创建方法:首先,本文使用多视图扩散模型生成与一个或多个输入视图一致的大量新视图;其次,本文在生成的视图上运行一个稳健的3D重建pipeline(见下图3)。下面本文将描述本文的多视图扩散模型、本文生成大量几乎一致的新视图的方法,以及这些生成的视图如何在3D重建pipeline中使用。
多视图扩散模型
本文训练了一个多视图扩散模型,该模型以单个或多个3D场景视图作为输入,并根据其相机姿态生成多个输出图像(其中“a view”是图像和相机姿态的配对)。具体来说,给定包含个条件视图的 张图像 及其对应的相机参数 ,该模型学习捕捉N个目标图像 的联合分布,假设其 N 个目标相机参数 也已给定:
模型架构。 本文的模型架构类似于视频潜在扩散模型(LDMs),但每个图像使用相机姿态embedding而不是时间embedding。给定一组条件和目标图像,模型通过图像变分自动编码器将每个图像编码为潜在表示。然后,训练一个扩散模型以估计在给定条件信号下的潜在表示的联合分布。本文从一个用于文本到图像生成的LDM模型初始化,该模型类似于[62]在网络规模图像数据上训练的LDM,输入图像分辨率为512×512×3,潜在表示的形状为64×64×8。如同在视频扩散模型中常见的做法[49, 10, 11],本文的模型主要骨干仍然是预训练的2D扩散模型,但增加了连接多个输入图像潜在表示的层。
如同[43],本文使用3D自注意力(在空间上是2D,在图像间是1D)代替简单的跨图像1D自注意力。本文在原始LDM的每个2D残差块之后直接膨胀现有的2D自注意力层,以连接潜在表示与3D自注意力层,同时继承预训练模型的参数,增加的模型参数量极少。本文发现,通过3D自注意力层对输入视图进行条件化可以消除之前状态最先进模型在少视图重建中使用的PixelNeRF和CLIP图像embedding的需求,例如ReconFusion。本文使用FlashAttention 进行快速训练和采样,并微调潜在扩散模型的所有权重。
与之前的工作类似,本文发现从预训练的图像扩散模型到捕捉更高维度数据的多视图扩散模型时,将噪声调度向高噪声水平转移是重要的。具体来说,遵循与[67]类似的逻辑,本文将信噪比的对数按log(N)偏移,其中N是目标图像的数量。在训练中,目标图像的潜在表示被噪声扰动,而条件图像的潜在表示保持干净,并且扩散损失仅在目标图像上定义。一个二进制 mask 沿通道维度连接到潜在表示,以表示条件图像和目标图像。为了处理多个3D生成设置,本文训练了一个单一的多功能模型,可以建模总共8个条件和目标视图(N + M = 8),并在训练期间随机选择条件视图数量N为1或3,分别对应7个和5个目标视图。
摄像机条件。 为了根据摄像机姿态进行条件,本文使用了一种摄像机光线表示(“光线图”),其高度和宽度与潜在表示相同,并在每个空间位置编码光线的起点和方向。光线是相对于第一个条件图像的摄像机姿态计算的,因此本文的姿态表示对3D世界坐标的刚性变换是不变的。每个图像的光线图按通道连接到相应图像的潜在表示上。
产生新颖的观点
给定一组输入视图,本文的目标是生成大量一致的视图,以全面覆盖场景并实现精确的3D重建。 为此,本文需要决定要采样的摄像机姿态集,并设计一种采样策略,该策略可以使用在少量视图上训练的多视图扩散模型生成更大的一组一致视图。
摄像机轨迹。 与轨道摄像机轨迹在3D对象重建中可以有效相比,3D场景重建的挑战在于完全覆盖一个场景所需的视角可能复杂且依赖于场景内容。本文通过实验发现,为不同类型的场景设计合理的摄像机轨迹对于实现引人注目的少视角3D重建至关重要。摄像机路径必须足够彻底和密集,以完全约束重建问题,但也不能穿过场景中的物体或从不寻常的角度查看场景内容。总之,本文基于场景特征探索了四种类型的摄像机路径:
- 围绕中心场景的不同规模和高度的轨道路径
- 不同规模和偏移的前向圆路径
- 不同偏移的样条路径
- 沿着圆柱路径的螺旋轨迹,进入和离开场景
生成大量合成视图。 在将本文的多视图扩散模型应用于新视角合成时的一个挑战是,它是用有限的小集合输入和输出视图进行训练的——总共只有8个视图。为了增加输出视图的总数,本文将目标视点聚类成较小的组,并在给定条件视图的情况下独立生成每个组。本文将摄像机位置接近的目标视图分组,因为这些视图通常是最具依赖性的。对于单图像条件,本文采用自回归采样策略,首先生成一组覆盖场景的7个锚点视图(类似于[41],并使用[69]中的贪心初始化选择),然后在给定观察到的和锚点视图的情况下并行生成剩余的视图组。这使本文能够高效地生成大量合成视图,同时仍然保持锚点视图之间的长距离一致性和相邻视图之间的局部相似性。对于单图像设置,本文生成80个视图,而对于少视角设置,本文使用480-960个视图。
将较大集的输入视图和非正方形图像进行条件化。 为了扩展本文可以进行条件化的视图数量,本文选择最近的M个视图作为条件集,如[7]所述。本文尝试通过在采样过程中简单地增加多视图扩散架构的序列长度,但发现最近视图条件化和分组采样策略效果更好。 为了处理宽高比较大的图像,本文将从正方形裁剪的输入视图中提取的正方形样本与从填充为正方形的输入视图中裁剪的宽样本结合起来。
鲁棒的3D重建
本文的多视图扩散模型生成了一组高质量的合成视图,这些视图在一定程度上相互一致。然而,生成的视图通常并不是完全三维一致的。事实上,即使是当前最先进的视频扩散模型,生成完全三维一致的图像仍然是一个非常具有挑战性的问题。由于三维重建方法设计时是以照片(按定义是完全一致的)作为输入的,本文修改了标准的NeRF训练过程,以提高其对不一致输入视图的鲁棒性。
本文基于 Zip-NeRF 构建,其训练过程最小化了摄影重建损失、畸变损失、层间损失和归一化的 L2 权重正则化器的总和。本文另外在渲染图像和输入图像之间加入了感知损失(LPIPS)。与摄影重建损失相比,LPIPS 强调渲染图像和观察图像之间的高级语义相似性,同时忽略低级高频细节中的潜在不一致性。由于生成的视图越接近观察到的视图,其不确定性越小,因此一致性更高,本文根据生成视图与最近观察到的视图之间的距离对其损失进行加权。这种加权在训练开始时是均匀的,并逐渐退化为一种加权函数,对靠近观察视图的重建损失进行更强烈的惩罚。
实验
本文在四个具有相机姿态标注的数据集上训练了CAT3D核心的多视图扩散模型:Objaverse、CO3D、RealEstate10k和 MVImgNet。然后,本文在少视图重建任务和单图像到3D任务上评估了CAT3D,展示了相较于之前工作的定性和定量改进。导致CAT3D设计选择的消融实验和进一步讨论在本节中进行。
少视图 3D 重建
本文首先在五个真实世界的基准数据集上评估CAT3D在少视图3D重建任务中的表现。其中,CO3D和 RealEstate10K是分布内数据集,其训练集的一部分用于本文的训练集(本文使用它们的测试集进行评估),而 DTU、LLFF 和 mip-NeRF 360 数据集是分布外数据集,不在训练数据集中。本文在3视图、6视图和9视图重建任务上测试了CAT3D,使用与 [7] 相同的训练和评估集划分。在下表1中,本文与无学习先验的密集视图NeRF重建的最新方法(Zip-NeRF)以及大量利用生成先验的方法(如 ZeroNVS和 ReconFusion )进行了比较。
本文发现,CAT3D在几乎所有设置中都达到了最先进的性能,同时将生成时间从1小时(对于ZeroNVS和ReconFusion)减少到几分钟。CAT3D在更具挑战性的数据集(如CO3D和mip-NeRF 360)上以更大的优势超越了基线方法,从而展示了其在重建大型和高度详细场景中的价值。下图4显示了定性比较。在未观测区域,CAT3D能够生成合理的纹理内容,同时保留输入视图的几何和外观,而之前的工作往往会产生模糊的细节和过度平滑的背景。
单幅图像转 3D
CAT3D支持从单个输入视图高效生成多样的3D内容。在这种欠约束的情况下进行评估非常具有挑战性,因为有许多与单个视图一致的3D场景,例如不同尺度的场景。因此,本文将单图像评估集中在定性比较(下图5)和使用CLIP 进行的定量语义评估(下表2)上。
在场景方面,CAT3D生成的高分辨率结果比ZeroNVS和RealmDreamer更好,对于场景和物体,本文都能更好地保留输入图像的细节。在包含分割对象的图像中,本文的几何表现通常不如ImageDream和DreamCraft3D等现有方法,但保持了竞争力的CLIP得分。与这些在3D蒸馏中迭代利用生成先验的方法相比,CAT3D的生成速度快了一个数量级以上。尽管已有针对物体的更快生成方法被提出,但它们的分辨率结果显著低于其迭代对手,因此未被纳入此次比较。IM-3D在分割对象上表现更好,且运行时间相似,但无法处理场景或上下文中的物体。
消融实验
CAT3D的核心是一种多视图扩散模型,该模型经过训练能够生成一致的新视图。本文考虑了几种不同的模型变体,并评估了它们在域内和域外数据集上的样本质量以及少视图3D重建性能。本文还比较了3D重建中的重要设计选择。本文的消融研究结果参考下表3和图6中报告,并总结如下。总体而言,本文发现视频扩散架构结合3D自注意力(时空)和相机姿态的射线图embedding,当与鲁棒的重建损失结合时,能够生成足够一致的视图以恢复3D representation。
在图像和姿态的处理方面, 之前的工作使用了PixelNeRF的特征图条件化来处理多个输入视图。本文发现,在条件视频扩散架构中,用基于注意力的条件化替换PixelNeRF,并使用每个图像的相机姿态embedding,可以改进样本和3D重建,同时减少模型复杂性和参数数量。本文发现,将相机姿态embedding为低维向量(如[36]所述)在域内样本上效果很好,但与射线图条件化相比,泛化性能较差(详见前文)。
增加视图数量。 本文发现,联合建模多个输出视图(即5个或7个视图,而不是1个视图)可以改进样本指标——即使是评估每个输出图像质量的独立指标也有所改进。联合建模多个输出视图能够生成更一致的视图,从而也改进了3D重建的效果。
注意力层。 本文发现3D自注意力(时空)是至关重要的,因为它相对于因子化的2D自注意力(仅空间)和1D自注意力(仅时间)表现出更好的性能。虽然在最精细的特征图(64 × 64)中使用3D自注意力的模型可以产生最高保真度的图像,但它们在训练和采样过程中会产生显著的计算开销,而保真度的提升相对较小。因此,本文决定仅在尺寸为32 × 32及更小的特征图中使用3D自注意力。
多视图扩散模型训练。 从预训练的文本到图像潜在扩散模型进行初始化,提高了在域外样本上的表现。本文尝试对多视图扩散模型进行微调,使其适应特定数量的输入和输出视图的多个变体,但发现一个单一模型在8帧图像上联合训练,并使用1或3个条件视图,就足以实现准确的单图像和少视图3D重建。
3D重建。 LPIPS损失对于实现高质量的纹理和几何形状至关重要,这与[17, 7]中的发现一致。在Mip-NeRF 360上,将生成的视图数量从80(单椭圆轨道)增加到720(九个轨道)改善了中央物体的几何形状,但有时会引入背景模糊,这可能是由于生成内容的不一致性所致。
讨论
本文介绍了CAT3D,一种从任意数量的输入图像生成3D内容的统一方法。 CAT3D利用多视图扩散模型生成高度一致的3D场景新视图,然后将这些视图输入到3D多视图重建pipeline中。CAT3D将生成先验与3D提取解耦,从而实现高效、简单且高质量的3D生成。
尽管CAT3D在多个任务上产生了引人注目的结果并优于之前的工作,但它也存在一些限制。由于本文的训练数据集对同一场景的视图具有大致恒定的相机内参,训练模型无法很好地处理由不同内参的多台相机捕获的测试案例。CAT3D的生成质量依赖于基础文本到图像模型的表达能力,对于基础模型分布之外的场景内容,其表现较差。本文的多视图扩散模型支持的输出视图数量仍然相对较少,因此当本文从模型生成大量样本时,并非所有视图都能在3D上保持一致。最后,CAT3D使用手动构建的相机轨迹来全面覆盖场景,这对于大规模开放式3D环境可能难以设计。
未来工作中有几个方向值得探索以改进CAT3D。多视图扩散模型可能会受益于从预训练的视频扩散模型进行初始化,如[10, 17]所观察到的。通过扩展模型处理的条件视图和目标视图数量,可以进一步提高样本的一致性。自动确定不同场景所需的相机轨迹可以增加系统的灵活性。
本文转自 AI生成未来 ,作者:Ruiqi Gao等