清华大学突破性研究:GVGEN技术,7秒内从文字到3D高保真生成
引言:3D模型生成的挑战与机遇
随着计算机图形学的发展,3D模型的生成在各个行业中变得越来越重要,包括视频游戏设计、电影制作以及AR/VR技术等。在3D建模的不同方面中,从文本描述生成3D模型成为一个特别有趣的研究领域,因为它的可访问性和易用性。尽管已经提出了多种方法来处理这一任务,但由于文本的模糊性和文本描述与相应3D资产之间的内在领域差异,这一任务仍然充满挑战。
以前的文本到3D的方法大致可以分为两类:基于优化的生成和基于前馈的生成。基于优化的方法最近变得相当流行,这得益于文本到图像扩散模型的快速发展。这些方法通常通过Score Distillation Sampling(SDS)优化基于文本或图像的3D对象,从2D图像生成模型中提取丰富的知识。尽管取得了令人印象深刻的结果,但基于优化的方法面临着Janus问题,表现为多面或过饱和问题。此外,单个对象的优化可能耗时过长,需要大量的计算工作。相反,基于前馈的方法直接从文本描述生成3D资产,从而避开了Janus问题,并显著加快了生成过程。我们的工作与基于前馈的方法密切相关。然而,使用多视图生成模型的前馈方法通常创建的3D资产分辨率低于多视图图像对应物。此外,直接从文本生成3D对象的模型在使用复杂提示时经常遇到语义上的困难。
与以前的基于前馈的方法不同,我们的方法提出通过直接学习3D表示来生成3D资产。在这项研究中,我们引入了一个创新的、简化的粗到细的生成管道,GVGEN,用于直接从文本描述生成3D高斯体。利用3D高斯体高度表现力和快速渲染的能力,我们的方法不仅取得了有希望的结果,而且保持了快速的文本到3D生成和渲染。如图1所示,我们的方法包括两个阶段:高斯体积拟合和文本到3D生成。在第一阶段,我们引入了高斯体积,这是一种由3D高斯体组成的结构化体积形式。由于优化原始3D高斯体的稀疏和非结构化特性,实现这一点具有挑战性。为了解决这个问题,我们引入了一种新颖的候选池策略,用于修剪和密集化。这种方法允许拟合高质量的高斯体积表示,而不是无序的高斯点,使得生成过程更有利于扩散框架的使用,正如在下一步中所使用的那样。
尽管高斯体积建立了一个与现有扩散管道无缝集成的结构化体积框架,但3D高斯体丰富特征的内在复杂性带来了重大挑战。具体来说,有效捕获大量训练数据的分布变得困难,导致扩散模型难以收敛。为了应对这些挑战,我们将文本到3D生成分为两个步骤:粗略几何生成和高斯属性预测。更具体地说,在第一步中,我们使用扩散模型生成对象的粗略几何体,称为高斯距离场(GDF) - 一个各向同性的表示,概述了每个网格点到最近的高斯点中心的接近度。接下来,生成的GDF与文本输入一起通过基于3D U-Net的模型处理,以预测高斯体积的属性,确保增强控制和模型收敛。
据我们所知,这是第一项直接从文本前馈生成3D高斯体的研究,为快速3D内容创建和应用探索了新途径。我们的主要贡献总结如下:- 我们引入了高斯体积,这是一种由3D高斯体组成的结构化、体积化形式。通过创新的候选池策略进行修剪和克隆,我们适应了固定体积分辨率内的高质量高斯体积拟合。这个框架与现有的生成网络无缝集成,利用3D高斯体的固有优势,实现了显式和高效的表示。- 我们提出了GVGEN,一个高效的文本到3D粗到细生成管道,首先生成几何体积,然后预测详细的3D高斯属性,更好地控制生成资产的多样化几何形状和外观。GVGEN实现了快速的生成速度(约7秒),与基线方法相比,有效地平衡了质量和效率。
论文标题: GVGEN: Text-to-3D Generation with Volumetric Representation
论文链接: https://arxiv.org/pdf/2403.12957.pdf
机构:清华大学,上海交通大学,浙江大学
项目地址: https://GVGEN.github.io
公众号【AI论文解读】后台回复“论文解读” 获取论文PDF!
GVGEN方法概述:直接从文本描述生成3D高斯体
1. 介绍3D高斯体的概念及其在3D建模中的意义
3D高斯体是一种结构化的体积形式,由3D高斯点组成,用于表示和渲染三维场景。在3D建模领域,高斯体因其高表达能力和快速渲染的特性而受到关注。它们不仅能够提供丰富的视觉效果,还能加速文本到3D模型的生成和渲染过程。
2. GVGEN生成流程的两个阶段:高斯体拟合与文本到3D生成
GVGEN方法包含两个主要阶段:首先是高斯体拟合阶段,其次是文本到3D生成阶段。在高斯体拟合阶段,通过一种称为候选池策略的新颖方法,将无序的3D高斯点组织成结构化的高斯体积(GaussianVolume),为后续的生成阶段提供训练数据。在文本到3D生成阶段,首先使用扩散模型从文本描述中生成粗略的几何体积(Gaussian Distance Field,GDF),然后通过3D U-Net模型预测高斯体积的详细属性,从而实现从文本描述到详细3D对象的生成。
高斯体拟合:创新的候选池策略
1. 高斯体的结构化表示和优化
高斯体的结构化表示是通过固定数量的3D高斯点来实现的,这些点在体积中以网格点的形式组织,并通过位置偏移来表达从网格点到高斯中心的微小移动,从而捕捉对象的细节。这种表示方法允许在固定的体积分辨率内进行高质量的高斯体积拟合,同时与现有的生成网络无缝集成,保留了3D高斯的效率优势。
2. 候选池策略的实现与优势
候选池策略(Candidate Pool Strategy)是一种新颖的方法,用于在优化过程中动态地修剪、克隆和分裂高斯点,以提高拟合资产的保真度。通过在候选池中存储被修剪的点,可以在后续的密集化过程中使用这些点,从而允许高斯点在优化过程中适应性地移动,以表示更复杂的对象形状。同时,结果的结构化体积形式保持了其物理意义,展示了适应性和良好定义结构之间的平衡。
文本到3D生成:粗到细的生成流程
1. 高斯距离场(GDF)的生成
在文本到3D生成的粗到细流程中,首先是高斯距离场(Gaussian Distance Field, GDF)的生成。GDF是一个表征对象粗略几何形状的等距表示,它概括了每个网格点到最近高斯点中心的距离。这一步骤通过一个扩散模型来实现,该模型以输入文本为条件,生成GDF,从而创建对象的粗略几何体积。生成的GDF与文本输入一起,通过一个基于3D U-Net的模型进行处理,以预测高斯体积的属性,确保了对生成资产的几何形状和外观的更好控制。
2. 高斯体属性的预测与控制
在生成了GDF之后,下一步是预测高斯体积的属性。这一步骤使用一个基于3D U-Net的重建模型,该模型接受GDF和文本描述作为输入,以预测高斯体积的所有属性。这个过程中,采用了多模态损失函数来平衡全局语义和局部细节,并保持训练过程的稳定性。通过这种方式,从文本描述中生成了具有详细属性的3D对象。
实验结果:定性与定量分析
1. 与现有方法的比较
在与现有方法的比较中,我们的方法在视觉结果和文本条件对齐方面都取得了竞争性的成果。与基于前馈的方法(如Shap-E和VolumeDiffusion)和基于优化的方法(如DreamGaussian)相比,我们的方法在生成合理的几何形状和可信纹理方面表现出色。定量结果方面,我们比较了渲染图像与相应文本之间的CLIP得分,以及这些方法的生成时间。我们的方法在定性和定量方面都展现了竞争力。
2. 生成多样性与视觉效果
GVGEN能够根据相同的提示生成多样化的资产,这不仅使我们的方法与重建方法区分开来,还提高了用户的想象能力。此外,我们还开发了一个基于CLIP图像嵌入的图像到3D模型,并将结果与最近流行的单视图重建模型进行了比较。单视图重建模型在未见区域的形状和纹理方面存在平均模式问题,而GVGEN则生成了合理的外观和几何形状。这些比较强调了我们的GVGEN与重建方法之间的关键区别。
挑战与局限性:GVGEN面临的问题与未来方向
1. 输入文本的多样性与训练数据的局限性:GVGEN在处理与训练数据显著不同的输入文本时性能受限。由于训练数据的规模(约46,000个实例)相对较小,模型在响应广泛的文本输入时产生的输出变化有限。这表明,模型在处理多样化的文本描述时可能无法生成具有精确几何形状和清晰纹理的3D对象。
2. 计算资源与生成效率的权衡: GVGEN的生成效率与3D高斯点的数量密切相关。虽然使用较少的高斯点数(N^3=32,768)时,GVGEN能够提供与原始3D高斯喷涂方法相当的视觉质量,但提高高斯体积分辨率会导致更好的拟合质量,同时也增加了内存使用。因此,如何在保持高效生成的同时提升3D资产的复杂纹理表现,是GVGEN需要解决的问题。
3. 结构化表示与灵活性的平衡: 在高斯体积拟合阶段,GVGEN采用了偏移阈值ϵoffsets来平衡灵活性和维持良定义结构之间的关系。过小的正则化会导致高斯点在体积内变得更加无序,而没有正则化则会使偏移项过于灵活,难以有效学习。因此,选择合适的偏移阈值对于模型的有效学习和生成高质量的结构化3D表示至关重要。
4. 模型架构与数据质量的改进: 未来的工作将集中在改进模型架构和提高数据质量上,以便在大规模场景中应用模型,预计这将提高生成多样性并导致更好的渲染结果。
5. 与优化方法的集成: GVGEN展示了与优化方法(如GSGEN)集成的能力,以进一步细化生成的3D对象。然而,如何更有效地利用这些优化方法来提高文本描述与纹理和几何的一致性,仍然是一个开放的问题。
总结:GVGEN在文本驱动的3D内容创建中的潜力
GVGEN作为一种从文本描述直接生成3D高斯的方法,展现了在文本驱动的3D内容创建中的潜力。通过将无组织的3D高斯点组织成结构化的体积形式,即高斯体积,GVGEN能够通过粗到细的生成管道有效地前馈生成3D高斯。该方法不仅实现了令人鼓舞的结果,而且保持了快速的文本到3D生成和渲染速度。
GVGEN在质量和效率之间取得了平衡,与基线方法相比,在CLIP得分和推理速度方面表现出色。此外,它还能生成与相同提示条件下的多样化资产,从而不仅与重建方法区分开来,还提高了用户的想象能力。
尽管GVGEN在生成3D对象方面取得了鼓舞人心的成果,但它在处理与训练数据域显著不同的输入文本时的性能受限,以及在更具挑战性的场景中生成高质量3D资产的能力有待提高。未来的研究将探索如何在保持高效率的同时,生成更高质量的3D内容。
相关文章:

清华大学突破性研究:GVGEN技术,7秒内从文字到3D高保真生成
引言:3D模型生成的挑战与机遇 随着计算机图形学的发展,3D模型的生成在各个行业中变得越来越重要,包括视频游戏设计、电影制作以及AR/VR技术等。在3D建模的不同方面中,从文本描述生成3D模型成为一个特别有趣的研究领域,…...

软件测试要学习的基础知识——黑盒测试
概述 黑盒测试也叫功能测试,通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试,只检查程序功能是否按照需求规格…...

如何用Airtest脚本连接无线Android设备?
之前我们已经详细介绍过如何用AirtestIDE无线连接Android设备,它的关键点在于,需要先 adb connect 一次,才能点击 connect 按钮无线连接上该设备: 但是有很多同学,在使用纯Airtest脚本的形式连接无线设备时,…...
c语言函数大全(C开头)
c语言函数大全(C开头) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 函数名…...

初始Redis关联和非关联
基础篇Redis 3.初始Redis 3.1.2.关联和非关联 传统数据库的表与表之间往往存在关联,例如外键: 而非关系型数据库不存在关联关系,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合: {id: 1,name: "张三…...

Redis 更新开源许可证 - 不再支持云供应商提供商业化的 Redis
原文:Rowan Trollope - 2024.03.20 未来的 Redis 版本将继续在 RSALv2 和 SSPLv1 双许可证下提供源代码的免费和宽松使用;这些版本将整合先前仅在 Redis Stack 中可用的高级数据类型和处理引擎。 从今天开始,所有未来的 Redis 版本都将以开…...
生产者Producer往BufferQueue中写数据的过程
In normal operation, the producer calls dequeueBuffer() to get an empty buffer, fills it with data, then calls queueBuffer() to make it available to the consumer 代码如下: // XXX: Tests that fork a process to hold the BufferQueue must run bef…...
使用 Vite 和 Bun 构建前端
虽然 Vite 目前可以与 Bun 配合使用,但它尚未进行大量优化,也未调整以使用 Bun 的打包器、模块解析器或转译器。 Vite 可以与 Bun 完美兼容。从 Vite 的模板开始使用吧。 bun create vite my-app ✔ Select a framework: › React ✔ Select a variant:…...

如何设置IDEA远程连接服务器开发环境并结合cpolar实现ssh远程开发
文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境,并结合Cpolar内网穿透工具实现无公网远程连接…...

【项目管理后台】Vue3+Ts+Sass实战框架搭建二
Vue3TsSass搭建 git cz的配置mock 数据配置viteMockServe 建立mock/user.ts文件夹测试一下mock是否配置成功 axios二次封装解决env报错问题,ImportMeta”上不存在属性“env” 统一管理相关接口新建api/index.js 路由的配置建立router/index.ts将路由进行集中封装&am…...

制作一个RISC-V的操作系统六-bootstrap program(risv 引导程序)
文章目录 硬件基本概念qemu-virt地址映射系统引导CSRmachine模式下的csr对应的csr指令csrrwcsrrs mhartid引导程序做的事情判断当前hart是不是第一个hart初始化栈跳转到c语言的…...
haproxy和keepalived的区别与联系
HAProxy(High Availability Proxy) 是一个开源的、高效且可靠的解决方案,主要用于负载均衡。它工作在应用层(第七层),支持多种协议,如HTTP、HTTPS、FTP等。HAProxy通过健康检查机制持续监控后…...

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度
作者:周静、吴宇奇、泮圣伟 在应用开发测试验证通过后、进行生产发布前,为了降低新版本发布带来的风险,期望能够先部署到灰度环境,用小部分业务流量进行全链路灰度验证,验证通过后再全量发布生产。本文主要介绍如何通…...
pta L1-004 计算摄氏温度
L1-004 计算摄氏温度 分数 5 全屏浏览 切换布局 作者 陈建海 单位 浙江大学 给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C5(F−32)/9。题目保证输入与输出均在整型范围内。 输入格式: 输入在一行中给出一个华氏…...

毕业论文降重(gpt+完美降重指令),sci论文降重gpt指令——超级好用,重复率低于4%
1. 降重方法:gpt降重指令 2. gpt网站 https://yiyan.baidu.com/ https://chat.openai.com/ 3. 降重指令——非常好用!!sci论文,本硕大论文都可使用! 请帮我把下面句子重新组织,通过调整句子逻辑࿰…...

Qt 多元素控件
Qt开发 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别 以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件. QTableView 自身不持有数据. 使用QTableView 的 …...
LeetCode热题Hot100-两数相加
一刷一刷 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不…...

Selenium 自动化 —— 浏览器窗口操作
更多内容请关注我的专栏: 入门和 Hello World 实例使用WebDriverManager自动下载驱动Selenium IDE录制、回放、导出Java源码 当用 Selenium 打开浏览器后,我们就可以通过 Selenium 对浏览器做各种操作,就像我们日常用鼠标和键盘操作浏览器一…...

二、Kubernetes(k8s)中部署项目wordpress(php博客项目,数据库mysql)
前期准备 1、关机顺序 2、开机顺序 (1)、k8s-ha1、k8s-ha2 (2)、master01、master02、master03 (3)、node01、node02 一、集群服务对外提供访问,需要通过Ingress代理发布域名 mast01上传 ingress-nginx.yaml node01、node02 上传 ingress-nginx.tar 、kube-webh…...
linux系统Kubernetes工具Service暴露服务
Service ServiceService创建service页面请求测试pod内部请求测试端口解析kube-proxy 使用ipvs 意义pod和Service的关系常用类型ClusterIpNodePortLoadBalancernode内网部署应用,外网访问不到 Service 服务基于ip端口的虚拟主机,定义一组pod的访问规则 Se…...

关于datetime获取时间的问题
import datetime print(datetime.now())如果用上述代码,会报错: 以下才是正确代码: from datetime import datetime print(datetime.now()) 结果: 如果想格式化时间,使用代码: from datetime import da…...

如何从浏览器中导出网站证书
以导出 GitHub 证书为例,点击 小锁 点击 导出 注意:这里需要根据你想要证书格式手动加上后缀名,我的是加 .crt 双击文件打开...

如何轻松、安全地管理密码(新手指南)
很多人会为所有账户使用相同、易记的密码,而且常常多年不换。虽然这样方便记忆,但安全性非常低。 您可能听说过一些大型网站的信息泄露事件,同样的风险也可能存在于您的WordPress网站中。如果有不法分子获取了访问权限,您的网站和…...
SQL Server 日期时间类型全解析:从精确存储到灵活转换
SQL Server 日期时间类型全解析:从精确存储到灵活转换 一、引言:日期时间处理的核心挑战 在数据管理中,日期时间类型是最常用却最容易出错的数据类型之一。不同业务场景对时间精度、时区感知、存储效率的需求差异极大: 金融交易…...

构建 MCP 服务器:第 2 部分 — 使用资源模板扩展资源
该图像是使用 AI 图像创建程序创建的。 这个故事是在多位人工智能助手的帮助下写成的。 这是构建MCP 服务器教程(共四部分)的第二部分。在第一部分中,我们使用基本资源创建了第一个 MCP 服务器。现在,我们将使用资源模板扩展服务…...
接口不是json的内容能用Jsonpath获取吗,如果不能,我们选用什么方法处理呢?
JsonPath 是一种专门用于查询和提取 JSON 数据的查询语言(类似 XPath 用于 XML)。以下是详细解答: JsonPath 的应用场景 API 响应处理:从 REST API 返回的 JSON 数据中提取特定字段。配置文件解析:读取 J…...

什么是DevOps智能平台的核心功能?
在数字化转型的浪潮中,DevOps智能平台已成为企业提升研发效能、加速产品迭代的核心工具。然而,许多人对“DevOps智能平台”的理解仍停留在“自动化工具链”的表层概念。今天,我们从一个真实场景切入:假设你是某互联网公司的技术负…...
AndroidR车机TextToSpeech音频焦点异常问题分析
一、引言 文章《Android车机之TextToSpeech》介绍了TextToSpeech的使用,当前较多座舱系统语音服务都接入了原生TextToSpeech接口调用。 我司自研语音TTS服务,也接入了此TTS接口调用,对外提供TextToSpeech能力,播报时由客户端Client自行管理音频焦点,播报前申请音频焦点,…...
Go 为何天生适合云原生?
当前我们正处在 AI 时代,但是在基础架构领域,仍然处在云原生时代。云原生仍然是当前时代的风口之一。作为一个 Go 开发者,职业进阶的下一站就是学习云原生技术。作为 Go 开发者学习云原生技术有得天独厚的优势,这是因为 Go 天生适…...

几何引擎对比:OpenCasCade、ACIS、Parasolid和CGM
概述 从技术架构与行业实践来看,OpenCasCade 凭借开源生态与轻量化设计形成差异化竞争力,尤其适合预算敏感、需定制开发或依赖开源工具链的场景;而 ACIS、Parasolid 等商业内核则通过工业级精度优化与主流 CAD 深度绑定占据大型企业市场&…...