当前位置: 首页 > article >正文

GaussianDreamer: Fast Generation from Text to 3D Gaussians——点云论文阅读(11)

此内容是论文总结,重点看思路!!

文章概述

本文提出了一种快速从文本生成3D资产的新方法,通过结合3D高斯点表示、3D扩散模型和2D扩散模型的优势,实现了高效生成。该方法利用3D扩散模型生成初始几何,通过噪声点扩展和颜色扰动丰富细节,并使用2D扩散模型优化生成质量。相比现有方法,它不仅生成速度快(单GPU训练仅需15分钟),且生成资产具有更高的几何一致性和细节质量,同时支持实时渲染,为文本生成3D技术提供了更高效的解决方案。

方法特点与创新

  1. 结合2D和3D扩散模型:通过3D扩散模型提供几何一致性,2D扩散模型提升细节质量。

  2. 高效表示:采用3D高斯点表示,具有简单结构和快速渲染能力。

  3. 高效优化:通过SDS损失实现快速收敛,仅需少量训练时间即可生成高质量的3D资产。

  4. 增强步骤:引入噪声点扩展和颜色扰动,显著提升初始点云的细节。

主要方法

GaussianDreamer通过结合3D扩散模型和2D扩散模型的优势,利用3D高斯点表示实现从文本到3D的高效生成。具体方法包括两个阶段:初始化优化

1. 初始化(Initialization with 3D Diffusion Model Priors)

初始化阶段的目标是生成初始的3D高斯点云,作为后续优化的基础。其过程如下:

1.1 使用3D扩散模型生成粗略几何
  • 根据输入文本提示,使用3D扩散模型(如Shap-E或Point-E)生成粗糙的3D资产。

  • Shap-E:基于隐式表示(如SDF)生成纹理化的三角网格。

  • Point-E:直接生成稀疏点云。

  • 将生成的3D资产(如三角网格)转换为点云,包括每个点的位置和颜色。

1.2 噪声点扩展(Noisy Point Growing)
  • 目的:增强点云密度以捕捉更多细节。

  • 过程

  1. 计算原始点云的包围盒。

  2. 在包围盒中随机生成额外的点云。

  3. 使用KDTree算法筛选与原始点云位置相近的点。

  4. 合并新生成的点与原始点云。

1.3 颜色扰动(Color Perturbation)
  • 目的:增强点云的视觉表现力。

  • 过程:对新增点的颜色进行扰动,使其颜色接近原始点,并随机加入轻微变化。

1.4 初始化3D高斯点(3D Gaussian Initialization)
  • 根据增强后的点云初始化3D高斯点:

  • 位置(μ):直接取点云位置。

  • 颜色(c):取点云颜色。

  • 透明度(α):统一初始化为0.1。

  • 协方差(Σ):计算最近两点之间的距离以设置协方差。


2. 优化(Optimization with the 2D Diffusion Model)

优化阶段旨在通过2D扩散模型进一步优化3D高斯点的几何细节和外观质量。其过程如下:

2.1 渲染图像
  • 利用3D高斯点的渲染方法(3D Gaussian Splatting)将点云渲染为2D图像。

  • 渲染方法通过光线投射累积高斯点的颜色和透明度,生成每个像素的颜色。

2.2 使用SDS损失优化
  • SDS(Score Distillation Sampling)损失

  • 利用预训练的2D扩散模型,计算渲染图像与扩散模型生成的目标图像之间的噪声差异。

  • 根据差异计算梯度,优化高斯点的参数(位置、颜色、协方差和透明度)。

  • 更新过程

  • 每次迭代使用2D扩散模型生成目标图像,并通过SDS损失更新3D高斯点。


3. 渲染与实时性能

  • 优化后的3D高斯点无需转换为网格结构,直接通过高斯点渲染实现实时可视化。

  • 生成过程在单块GPU上仅需15分钟,显著提升了效率。

GaussianDreamer 框架的整体流程

1. 初始化阶段(Initialization with 3D Diffusion Model Priors)

1.1 文本到3D点云生成
  • 输入:文本提示(如 "A fox")。

  • 模型

  • 使用 3D 扩散模型(例如 Text-to-3D 或 Text-to-Motion 模型)。

  • 根据文本生成初始点云,点云包含点的位置和颜色信息。

1.2 噪声点扩展与颜色扰动
  • 目标:提高点云的几何细节和视觉表现。

  • 方法

  • 噪声点扩展:在点云包围盒中生成额外的点,增加密度。

  • 颜色扰动:对新点的颜色进行随机扰动,增强视觉细节。

1.3 3D高斯点初始化
  • 将增强后的点云转换为 3D 高斯点:

  • 位置:使用点云位置。

  • 颜色:使用扰动后的颜色。

  • 透明度和协方差:根据点云分布进行初始化。


2. 优化阶段(Optimization with the 2D Diffusion Model)

2.1 渲染2D图像
  • 使用 3D 高斯点通过 3D Gaussian Splatting 渲染2D图像。
2.2 优化3D高斯点
  • 利用 2D扩散模型 提高生成的细节和一致性。

  • 具体方法:

  • SDS损失(Score Distillation Sampling)

    • 比较渲染图像与扩散模型生成图像的噪声差异。

    • 根据差异计算梯度,优化 3D 高斯点的参数(如位置、颜色、透明度等)。


3. 结果渲染(Final 3D Gaussian Splatting)

  • 输出:经过优化的 3D 高斯点直接渲染为高质量3D结果(如狐狸的逼真3D模型)。

  • 时间成本

  • 7秒:生成初始点云。

  • 15分钟:完成所有优化,生成最终的高质量3D模型。

噪声点扩展(Noisy Point Growing)和颜色扰动(Color Perturbation) 的过程

图中关键内容

  1. 左侧(Before Grow&Pertb.)
  • 初始生成的点云(Generated Point Clouds pm​)用橙色圆点表示。

  • 点云分布稀疏,难以捕捉精细的几何和表面特征。

  • 黑色虚线框表示点云的包围盒(BBox),其大小由点云的边界决定。

  1. 右侧(After Grow&Pertb.)
  • 添加了新的点云(Growing Point Clouds pr​),用红色圆点表示。

  • 新增点云均匀分布在包围盒内部,增强了点云密度。

  • 这些新增点的颜色经过扰动,变得更加多样化,提升了视觉效果。


Grow&Pertb. 过程

  1. 噪声点扩展(Noisy Point Growing)
  • 目标:在点云稀疏区域生成更多点,提高几何细节。

  • 方法

    • 在包围盒(BBox)内随机采样点。

    • 通过 KDTree 筛选与原始点云距离较近的点,仅保留这些点以保持几何一致性。

  1. 颜色扰动(Color Perturbation)
  • 目标:增强新增点的视觉表现,使其颜色接近原始点云但带有随机变化。

  • 方法

    • 对新增点赋予接近于邻近原始点颜色的值,并加入随机扰动(如随机加减一定范围的值)。

GaussianDreamer 与其他方法(DreamFusion、Magic3D、Fantasia3D 和 ProlificDreamer)在文本到3D生成任务上的定性对比(Qualitative Comparisons)

1. 方法和时间比较

每种方法的名称和训练时间列在顶部:

  • DreamFusion:6小时(在 TPUv4 上测量)。

  • Magic3D:5.3小时(在 A100 上测量)。

  • Fantasia3D:6小时(在 RTX 3090 上测量)。

  • ProlificDreamer:数小时(具体时间未标注,但显著更慢)。

  • GaussianDreamer(Ours):15分钟(在 RTX 3090 上测量)。

结论:GaussianDreamer 的训练时间明显少于其他方法,仅需15分钟完成训练。


2. 文本提示及生成结果对比

每行展示了一组示例的文本提示和对应生成结果:

示例 1:一盘堆满巧克力饼干的盘子
  • DreamFusion、Magic3D 和 Fantasia3D

  • 生成结果未完整表现“盘子”的部分,巧克力饼干直接浮于空中或不在盘子上。

  • 细节丰富度一般。

  • ProlificDreamer

  • 饼干与盘子表现较好,但颜色和细节较其他方法更加突出。

  • 训练时间极长。

  • GaussianDreamer

  • 生成的饼干和盘子细节丰富,盘子纹理清晰且造型真实。

  • 效果优于 DreamFusion 和 Magic3D,接近 ProlificDreamer,但训练时间显著减少。

示例 2:带茅草屋顶的可爱乡村小屋
  • DreamFusion

  • 小屋结构简单,颜色平淡,茅草屋顶缺乏细节。

  • Magic3D 和 Fantasia3D

  • 小屋屋顶的茅草纹理略显模糊,未充分体现细节。

  • ProlificDreamer

  • 小屋整体更逼真,细节表现良好,但时间成本较高。

  • GaussianDreamer

  • 生成的小屋结构完整,屋顶茅草纹理清晰,整体视觉表现最为丰富,同时训练时间远低于 ProlificDreamer。

3. 总结

  • 效率:GaussianDreamer 训练时间仅为15分钟,比其他方法显著更快。

  • 效果

  • 与 DreamFusion、Magic3D 和 Fantasia3D 相比,GaussianDreamer 的生成细节更丰富,物体更符合文本提示。

  • 与 ProlificDreamer 相比,GaussianDreamer 在生成质量上接近或略有优势,但训练速度快了数倍。

  • 适用性:GaussianDreamer 的高效率和高质量表现使其更适合时间有限的实际应用场景。

GaussianDreamer 生成的多个样本

这张图通过展示多个生成样本,证明了 GaussianDreamer 的以下能力:

  1. 生成质量高:结果具有丰富的细节和准确的几何结构。

  2. 风格灵活:能够根据文本提示生成写实或风格化的3D模型。

  3. 几何一致性强:不同视角下的模型保持一致性。

GaussianDreamer 与其他方法(DreamFusion、DreamAvatar、DreamWaltz 和 AvatarVerse)在生成特定角色模型(如蜘蛛侠和星战风暴兵)上的定性对比

这张图通过展示蜘蛛侠和风暴兵的生成结果,证明了 GaussianDreamer 的以下优势:

  1. 高效率:在大幅减少训练时间的情况下,生成质量不输甚至优于耗时更长的方法。

  2. 高质量生成:在几何一致性、细节表现和多视角准确性上表现出色。

  3. 应用潜力:其快速生成的能力和高质量模型非常适合角色建模等实际应用场景。

GaussianDreamer 在不同动作姿势下生成3D角色的效果

总结

  • 关键能力

  • GaussianDreamer 能够结合 SMPL 提供的动作初始化,生成具有指定动作的高质量角色。

  • 模型不仅能够生成符合文本提示的动作,还能细化角色的外观和服装细节。

  • 潜在应用

  • 角色建模、游戏动画和动态虚拟角色的快速生成。


http://www.kler.cn/a/403471.html

相关文章:

  • Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找
  • 实时数据研发 | Flink技术栈
  • Android上运行Opencv(TODO)
  • 操作系统——揭开盖子
  • Parker派克防爆电机在实际应用中的安全性能如何保证?
  • 集成金蝶云星空数据至MySQL的完整案例解析
  • S5700交换机堆叠问题定位指导(Guidelines for locating Switch Stacking Issues)
  • PostgreSQL常用时间函数与时间计算提取示例说明
  • 基于Matlab的变压器仿真模型的建模方法(6):单相三绕组变压器的拉氏变换数学模型和仿真模型
  • 实验四:构建园区网(OSPF 动态路由)
  • 力扣—136.只出现一次的数字
  • 从壹开始解读Yolov11【源码研读系列】——Data.build.py:YOLO用于训练Train + 验证Val的无限数据集加载器DataLoader搭建
  • 【青牛科技】 GC1288散热风扇驱动芯片的理想替代者可替代LA6588 / 三洋
  • 嵌入式Linux的RTC读写操作应用
  • kotlin 协程 job的cancel与cancelAndJoin区别
  • Linux(命令格式详细+字符集 图片+大白话)
  • java-图算法
  • 【SpringMVC原理分析】
  • k8s-NetworkPolicy
  • [游戏开发][Unity]Unity3D中的基本概念及关键组件解析
  • 【从零开始的LeetCode-算法】3354. 使数组元素等于零
  • 大数据实验4-HBase
  • 基于redis完成延迟队列
  • 蓝桥杯某C语言算法题解决方案(质因数分解)
  • 使用Cursor和Claude AI打造你的第一个App
  • c++调用 c# dll 通过 clr (详细避坑)