本文是对 ECCV 2024 Oral 文章
Pyramid Diffusion for Fine 3D Large Scene Generation
的介绍。代码已经开源。
-
代码链接:
https://github.com/yuhengliu02/pyramid-discrete-diffusion
-
论文链接:
https://arxiv.org/abs/2311.12085
-
项目官网:
https://yuheng.ink/project-page/pyramid-discrete-diffusion/
使用提出的Pyramid Discrete Diffusion方法生成的无限场景的Demo视频。
Introduction
3D场景生成旨在模拟我们现实世界环境的三维复杂性,从而能够帮助我们更好地理解物理世界。这项技术在自动驾驶,虚拟现实,具身智能中都发挥着至关重要的作用。然而,由于3D场景本身的庞大规模以及缺乏大规模的3D场景数据集,想要生成高质量的3D场景仍然极具挑战性。
尽管生成式扩散模型在生成2D图像或者小型3D物体上也有不错的效果,但是将扩散模型直接应用于3D场景的生成并非易事,特别是3D的户外场景。一方面扩散模型会占用大量资源,并且需要很长的训练时间,另一方面,扩散模型需要大量的训练数据,但目前还十分缺少高质量的3D户外场景数据,这就导致扩散模型难以生成大规模和具备复杂细节的3D户外场景。
为了解决这些问题,现有的工作主要都集中于有条件的扩散模型生成,借助像场景图,2D语义图这样的附加条件对生成式模型进行指导。但是这种条件指导的方式可能会限制了生成式扩散模型的泛化能力。因此,受到图像超分辨率中广泛使用的“粗到细”(Coarse-to-Fine)的启发,作者引入了金字塔离散扩散模型(PDD),这个框架可以在不依赖外部指导条件的情况下逐步生成大规模且精细化的3D户外场景。
Method
作者首先生成小规模的3D场景,并且在这个的基础上逐步增加场景的分辨率及细节。
在每个规模层次上,作者都会单独训练适用于当前规模的扩散模型,而这个模型会使用前一规模生成的场景作为条件(除了第一个生成的场景,第一个生成的场景使用噪声作为模型的输入)来生成更大规模的3D场景。
这种分阶段且多尺度的生成过程将一个具有困难和挑战性的无条件场景生成任务分解为了几个更易于管理的条件生成任务。此外,在最高分辨率的生成中,作者还采用了一种场景细分的技术,将大场景划分为多个较小的子场景,并且使用共享扩散模型进行合成。
这个技术解决了3D户外场景体积庞大而导致的模型过大的问题。并且这种多尺度的生成框架还能够实现跨数据集的转移应用,即在模拟数据集(例如CarlaSC)上预训练好的模型可以直接在现实中采集的数据集(例如SemanticKITTI)上直接进行微调,从而在减少训练资源和时间的基础上还实现了在新数据集上的高质量生成。
最后,作者还进一步提出了一种基于PDD框架的扩展,该拓展可以用于无限3D户外场景的生成。
PDD在创新性方面主要做出了以下贡献:
-
提出了一个新的适用于3D户外场景生成的金字塔扩散模型,实现了3D户外场景生成的粗到细的策略。
-
对PDD进行了广泛的实验,证明了在与现有方法相当的计算资源下,该方法能够生成更高质量的3D场景,此外,还引入了新的度量标准,从多个方面评估3D户外场景的生成质量。
-
展现了PDD方法更广泛的应用:能够从合成数据集生成到真实世界数据的场景生成;可以通过拓展PDD来支持无限场景的生成。
根据上图所示,PDD主要分为两个模块:
-
金字塔离散扩散模型
:PDD扩展了标准的离散扩散模型(Discrete Diffusion Model)以此适应3D数据;
-
场景细分
:提出了场景细分方法来进一步降低内存需求。并且展示了PDD在特定场景中的两个
实际应用
。
金字塔离散扩散模型
作者提出了金字塔离散扩散模型(PDD), 它在多个尺度(或分辨率)上运行不同的扩散过程。给定3D场景数据
, 其中
分别表示场景的维度,
表示one-hot标签的大小。
文章定义了一个包含不同尺度
对3D金字塔合集。即
, 其中较大的
表示更大的场景尺度。形式上, 设
表示
的维度, 且
对
都保持不变。
文章中注意到, 这样的金字塔可以通过对
应用不同的下采样操作(例如池化函数)获得。
对于金字塔中的每个尺度, 作者构建了一个由
参数化的条件离散扩散模型, 对于
的第
个模型, 其定义为:
其中
和
与
的尺寸相同,
是一个尺度自适应函数 (SAF), 用于将
上采样到
的大小。例如,SAF可以是依赖于数据的三线性插值函数。此外, 作者将第一个模型
作为原始的非条件模型。
在训练过程中, PDD分别在给定数据集中学习了不同尺度的
个去噪模型。由于
本质上是
的有损压缩版本, 模型训练可以看作是学习恢复粗略场景的细节。在推理过程中, 首先执行去噪模型
, 然后从
到
依次执行其余的 PDD模型, 通过采样:
其中
是
的去噪结果。
除了生成高质量的场景外,PDD还具有两个优点:
-
由于扩散模型相互独立,PDD中的模型可以并行训练,这使得训练过程中计算资源分配更加灵活。
-
由于其多阶段生成过程,PDD适合从中间过程开始恢复任意粗粒度的场景,从而扩展了该方法的多样性。
场景细分
为了解决生成大规模3D户外场景时的内存限制问题, 作者提出了场景细分方法。文章中将一个3D场景
沿
轴分割为
个具有重叠部分的子场景, 即
。
以四个子场景为例, 设
表示一个子场景, 其中
表示重叠比例, 第
层金字塔中的共享扩散模型用于重建
的每个子场景。
随后,子场景通过投票融合算法合并为一个完整的场景,以确保3D场景的连续性。
在训练过程中,为了确保在生成子场景时能够感知整个场景的上下文信息,作者通过将其它子场景的重叠区域作为条件进行模型训练。在推理过程中,整个场景以自回归的方式生成。即:
其中
是在第
个场景之前生成的子场景的索引,
是
和
之间的二元掩码, 用于表示
上的重叠区域(值为 1 )和非重叠区域(值为 0 )。场景细分模块可以减少模型参数, 因为扩散模型可以在四个子场景之间共享。
实际应用
除了作为生成模型的主要功能之外,作者还为PDD引入了两个新的应用。首先,
跨数据集迁移
旨在将一个在源数据集上训练的模型适配到目标数据集。由于输入尺度的灵活性,PDD可以通过在新数据集中重新训练或微调较小尺度的模型,同时保留较大尺度的模型来实现这一目标。利用PDD的策略提高了在不同数据集之间迁移3D场景生成模型的效率。
其次,
无限场景生成
在自动驾驶和城市建模等需要大规模3D场景的领域中具有重要意义。PDD可以扩展其场景细分技术。通过使用先前生成场景的边缘作为条件,它可以迭代生成更大的场景,理论上可以没有规模限制。
Experiments
评估标准
由于用于2D生成的指标(例如FID)无法直接应用于3D户外场景,文章中引入并实现了三种评估生成3D场景质量的指标。
首先,作者通过生成场景上的语义分割结果来评估模型在是否能够生成语义一致的场景方面的效果。具体来说,文章实现了基于Voxel的SparseUNet和基于Points的PointNet++架构来执行分割任务。并且通过计算
mIoU
和
MAs
作为评估指标。
另外,作者提出了F3D,一种基于FID在3D中进行改进的评估指标,这个指标使用了带有3D CNN架构的预训练自编码器。文章中计算了在特征域(feature domain)中生成场景和真实场景之间的Fréchet距离。