DiffSplat: Repurposing Image Diffusion Models for Scalable Gaussian Splat Generation¶
Abstract¶
- 本文提出 DiffSplat,一种新颖的 3D 生成框架,通过驯服大规模文本到图像扩散模型来原生生成 3D 高斯溅射
- 与以往 3D 生成模型不同,DiffSplat 有效利用了网络规模的 2D 先验,同时在统一模型中保持 3D 一致性
- 提出轻量级重建模型即时生成多视图高斯溅射网格,用于可扩展的数据集管理
- 引入 3D 渲染损失配合常规扩散损失,促进任意视角的 3D 一致性
- 与图像扩散模型的兼容性使得众多图像生成技术可以无缝适配到 3D 领域
- 在文本和图像条件生成任务及下游应用中表现优异
Introduction¶
从单张图像或文本生成 3D 内容是一个长期存在的挑战,在游戏设计、数字艺术、人类虚拟形象和虚拟现实等领域有着广泛的应用。
现有方法的局限性¶
-
原生 3D 方法:直接在 3D 数据集上训练条件 3D 生成网络,使用 Diffusion Loss
- 受限于监督规模,无法利用丰富的预训练 2D 模型先验
-
基于渲染的方法:用 2D 监督和可微渲染技术训练 3D 生成网络,使用 Rendering Loss
- 虽保证 3D 一致性,但受限于数据质量和训练效率
-
基于重建的方法:从预训练 2D 扩散模型生成的多视图图像重建隐式 3D 表示
- 两阶段流程在上游 2D 多视图扩散模型生成的图像质量差或不一致时会失败
贡献¶
- 提出一种新颖的 3D 生成框架,展现多视图一致性并有效利用大规模图像数据集的生成先验
- 采用 3DGS 作为 3D 内容表示,平衡渲染效率和质量
- 将 3D 对象表示为一组结构化的溅射 2D 网格,可在 0.1 秒内从多视图图像快速回归,促进可扩展和高质量的 3D 数据集管理
- 通过微调图像扩散模型直接生成高斯溅射属性,有效利用 2D 扩散先验并保持 3D 一致性
- 大量预训练图像扩散模型及相关技术可适配到提出的模型中,建立 3D 内容创建与图像生成社区的桥梁
Related Work¶
原生 3D 生成模型¶
- 显式表示:基于体素和点云的方法易于获取但视觉质量较差
- 隐式表示:如隐式函数、triplane 和 3DGS 提供更真实的外观,但通常难以访问且需要时间密集的预处理
- 局限性:无法利用预训练 2D 模型,在 3D 数据集质量、规模和从头训练 3D 网络的效率方面面临挑战
基于渲染的 3D 生成模型¶
- 方法:通过可微渲染技术,仅使用 2D 监督训练 3D 生成模型,在缺乏真实清洁 3D 数据的情况下对从损坏的隐式 3D 表示渲染的图像进行去噪
- 代表工作:
- HoloDiffusion 和 HoloFusion:提出自举潜在扩散策略
- Viewset Diffusion 和 GIBR:同时对多视图图像去噪
- DMV3D:扩展到近 100 万个对象的高度多样化数据集
- 局限性:计算密集,训练成本高昂(128 A100 GPU 7 天),且无法利用 2D 生成先验
基于重建的 3D 生成模型¶
- 大重建模型(LRM):前馈 Transformer 编码器可从单张图像重建 triplane 场
- 方法:利用冻结的图像扩散模型生成多视图图像,配合可泛化的 3D 重建模型
- 代表工作:
- Instant3D:从 2×2 网格中的姿态图像生成 triplane 特征
- 其他方法将渲染表示从 triplane 替换为 FlexiCubes 或 VolSDF 以直接提取网格
- 一些方法从像素、可学习 token 或潜在特征生成高斯属性
- 局限性:将多视图扩散模型视为独立的即插即用模块,3D 生成作为两阶段过程,可能因生成图像的 3D 不一致性而崩溃
Method¶
数据管理:结构化溅射重建¶
受可泛化 3DGS 重建技术启发,使用一组结构化多视图高斯溅射网格来表示 3D 对象。
重建模型¶
- 输入:\(V_{in}\) 个姿态图像 \(\in \mathbb{R}^{3 \times H \times W}\)
- 输出:小型网络 \(F_\theta\) 在 0.1 秒内回归逐像素溅射
- 训练损失:渲染损失 \(L_{render}\),包含 MSE 损失、LPIPS 感知损失和掩码损失
高斯原语参数化¶
每个高斯原语 \(g_i \in \mathbb{R}^{12}\) 包含:
- RGB 颜色 \(c \in \mathbb{R}^3\)
- 位置 \(x \in \mathbb{R}^3\):由深度 \(d\)、相机内参 \(K\) 和外参 \((R, t)\) 确定
- 尺度 \(s \in \mathbb{R}^3\)
- 旋转四元数 \(r \in \mathbb{R}^4\)
- 不透明度 \(o \in \mathbb{R}\)
数值范围限制:为使所有高斯溅射属性的数值限制在 \([0,1]\),以便于基于扩散的生成:
- 尺度线性插值:
- 深度相对于图像平面:
几何引导:除多视图 RGB 图像外,还纳入坐标图和法线图作为辅助几何引导,仅用于增强重建质量,生成阶段不需要。
Splat 潜变量¶
VAE 微调策略¶
- 目标:将高斯溅射网格编码到图像扩散潜在空间
- 方法:将预训练输入和输出卷积权重的列和行分别复制 4 倍,以匹配高斯溅射网格 \(G_i \in \mathbb{R}^{12 \times H \times W}\) 的特征维度
- 训练损失:同时使用重建损失和渲染损失
其中 \(\tilde{G}_i := D_{\phi_d}(E_{\phi_e}(G_i))\) 是通过 VAE 编码器 \(E_{\phi_e}\) 和解码器 \(D_{\phi_d}\) 自动编码的 \(G_i\)。
重要性:渲染损失 \(L_{render}\) 对高质量 Splat 潜变量自动编码至关重要,确保 VAE 由真实数据集监督而不是受限于轻量级重建模型。
DiffSplat 生成模型¶
模型架构¶
对于多视图 Splat 潜变量 \(z = \{z_i\}_{i=1}^{V_{in}}\),探索两种多视图生成方式:
-
视图拼接(View-concat):
- 将 \(V_{in}\) 个 Splat 潜变量沿视图维度拼接为 \(\mathbb{R}^{V_{in} \times d \times h \times w}\)
- 在自注意力模块中重塑为 \(\mathbb{R}^{(V_{in} \cdot h \cdot w) \times d}\) 作为整体序列处理
-
空间拼接(Spatial-concat):
- 将 Splat 潜变量组织成 \(r \times c\) 网格,形状为 \(\mathbb{R}^{d \times (r \cdot h) \times (c \cdot w)}\),其中 \(V_{in} \equiv r \times c\)
相机姿态编码:将 Plücker 嵌入沿特征维度与各自的 Splat 潜变量拼接,实现相对相机姿态的密集编码。
条件设计:
- 文本条件:使用文本编码器
- 图像条件:
- View-concat:原始 VAE 编码的输入图像沿视图维度拼接,添加密集二进制掩码区分图像和 Splat 潜变量
- Spatial-concat:输入图像填充空白背景形成 \(r \times c\) 网格,然后在图像 VAE 编码后沿特征维度拼接
训练目标¶
扩散损失 \(L_{diff}\):标准去噪损失
其中 \(\tilde{z} := \text{AddNoise}(z, \epsilon, t)\) 是在随机采样噪声水平 \(t\) 处损坏的 Splat 潜变量。
渲染损失 \(L_{render}\):促进 3D 一致性
- 识别 Splat 潜变量在扩散过程中被处理,可从任意视角高效渲染
- 将去噪的 Splat 潜变量解码回高斯溅射属性,并从随机 \(V\) 个视角渲染
- 使用真实多视图图像监督
最终训练目标:
特殊情况:
- 设置 \(\lambda_{diff} = 0\):DiffSplat 变为基于渲染的模型,去噪 Splat 潜变量而非像素
- 设置 \(\lambda_{render} = 0\):DiffSplat 变为"伪"原生 3D 模型,将 Splat 潜变量视为伪真实 3D 表示
Experiments¶
实验设置¶
- 训练数据集:G-Objaverse(Objaverse 的高质量子集),包含约 265K 个 3D 对象的 38 个不同视角图像
- 文本条件评估:
- T3Bench 的 300 个文本提示(描述单个物体、带环境的单个物体和多个物体)
- 评估指标:CLIP 相似度、CLIP R-Precision、ImageReward
- 重建和图像条件评估:
- GSO 数据集的 300 个未见对象
- 评估指标:PSNR、SSIM、LPIPS
- 分辨率:所有实验在 256×256 分辨率下进行
文本条件生成¶
基线方法¶
- 原生 3D 方法:GVGEN、LN3Diff、DIRECT-3D、3DTopia
- 基于重建的方法:LGM + 多视图扩散模型、GRM + 多视图扩散模型
结果¶
- DiffSplat 在所有指标上表现最佳,尤其是复杂提示
- 原生 3D 方法由于从头训练的文本-3D 配对有限,难以匹配文本提示
- 基于重建的方法受多视图扩散不一致性影响,特别是对于带环境或其他物体的场景
图像条件生成¶
基线方法¶
- 原生 3D 方法:3DTopia-XL、LN3Diff
- 基于重建的方法:
- 基于 3DGS:LGM、GRM、LaRa
- 基于 FlexiCubes:CRM、InstantMesh
结果¶
- DiffSplat 在 GSO 数据集上性能最优
- 生成的 3D 内容与输入图像准确对齐,同时保持强几何保真度
可控生成应用¶
- ControlNet 集成:可轻松适配到 DiffSplat 以实现可控生成
- 控制格式:法线图、深度图、Canny 边缘
- 效果:生成多样化且高质量的 3D 资产,准确响应不同控制输入,同时忠实反映文本条件
- 文本引导重建:支持从单视图模糊图像进行文本引导重建
消融研究¶
Splat 潜变量重建¶
-
重建输入:
- 坐标图提供最有效的几何引导,明确指示高斯原语位置
- 法线图也有帮助但效果次之
- 尽管参数少得多(42M),但在几何引导下,轻量级重建模型可即时提供高质量高斯溅射网格
-
自动编码策略:
- 冻结原始图像 VAE 或其编码器导致性能不佳
- 渲染损失在自动编码中起关键作用,确保 VAE 由真实数据集监督
- SD3 (d=16) 比 SD1.5 和 SDXL (d=4) 性能更好
DiffSplat 3D 生成¶
-
多视图方式:
- 两种方式在文本条件生成中产生相似结果
- View-concat 在单图像条件生成中表现更好,因为条件图像潜变量和Splat 潜变量之间有密集注意力
- 推荐 View-concat 方式,因其在适应不同数量视点和条件方面更灵活
-
训练目标:
- 仅使用扩散损失 (\(\lambda_{render} = 0\)) 可表现良好
- 3D 渲染损失 \(L_{render}\) 进一步提升生成内容的美学质量和几何结构
- 感知损失贡献美学吸引力和纹理细节
- 掩码损失实现更少的半透明伪影
- 仅使用渲染损失 (\(\lambda_{diff} = 0\)) 也能产生合理结果,但训练过程不稳定且收敛慢
-
基础文本到图像扩散模型:
- 研究了 SD1.5、SDXL、PixArt-α、PixArt-Σ 和 SD3
- 随着基础模型的进步,DiffSplat 在文本和图像条件任务中持续受益
- 表明提出的方法有效利用预训练模型的先验
解释Splat 潜变量¶
- 高斯溅射属性网格类似于自然图像,反映 3D 对象的色调和边缘属性
- 从图像 VAE 解码的Splat 潜变量可解释为"特殊风格"中的原始对象或在"特殊环境光"下照明
- 图像扩散模型本质上被微调以学习这种特殊风格,表明输入潜变量是Splat 潜变量
Limitations¶
- 网格转换:将 3DGS 表示转换为高质量网格仍是未解决的问题
- 扩展性:同时从更多视点生成Splat 潜变量、增加监督分辨率以及集成基于物理的材质属性可进一步增强生成高斯原语的质量
- 未充分探索:许多为图像扩散模型开发的先进技术可在提出的框架内用于 3D 生成,但仍未充分探索,如个性化、少步蒸馏和反馈学习
- 数据源:仅利用渲染的多视图数据集,未充分利用可扩展性潜力,大规模真实世界视频数据集可进一步释放 DiffSplat 的能力
Conclusion¶
DiffSplat 提出了一种新颖的基于扩散的 3D 生成框架,通过有效利用网络规模的 2D 先验,同时在统一模型中保持 3D 一致性。通过微调各种大型文本到图像扩散模型,直接生成 3D 高斯溅射属性,同时使用扩散损失和 3D 渲染损失。DiffSplat 受益于图像社区的快速发展,促进了图像生成先进技术向 3D 领域的集成,为利用丰富的 2D 先验和仅多视图监督的 3D 内容创建提供了新的解决方案。