文本生成高精准3D模型,北京智源AI研究院等出品—3D-GPT

北京智源AI研究院、牛津大学、澳大利亚国立大学联合发布了一项研究—3D-GPT,通过文本问答方式就能创建高精准3D模型。

据悉,3D-GPT使用了大语言模型的多任务推理能力,通过任务调度代理、概念化代理和建模代理三大模块,简化了3D建模的开发流程实现技术民主化。

但3D-GPT与现有的文本生成3D模型方法大有不同,生成过程是可以操控函数进行3D建模,而不是常规的3D神经元表征,同时可与Blender(开源三维软件)实现无缝集成。这极大提升了模型的灵活性和准确性。

论文地址:https://arxiv.org/abs/2310.12945

Github(即将发布):https://github.com/Chuny1/3DGPT

在这里插入图片描述

随着Meta提出元宇宙概念后,全球对高保真的3D内容需求激增。然而,传统的3D建模流程效率低下,设计师需要从基本形状逐步打造模型,再进行着色、细节处理等工作十分繁琐,而3D-GPT技术框架可有效解决这一痛点。

从论文介绍来看,主要由任务调度代理、概念化代理和建模代理三大块组成。任务调度代理扮演总指挥的角色,根据文本语言指令确定需要调用的建模函数,会查询所有可用函数的文档,选择最合适的对象。

概念化代理用于丰富语言描述的细节,为后续建模做准备。以树木生成为例,用户提供的文字可能仅是“碧绿的树林”,但建模需要更精确的参数如树枝长度、树叶类型等。而概念化代理就会自动补充这些细节,输出丰富的描述以指导建模。

在这里插入图片描述

建模代理则需要解析概念化代理输出的语言描述,转换为具体的代码和参数,调用相应函数实现建模。

以天空渲染为例,输入文字可能是“湛蓝的天空”,建模代理就需要推断出太阳强度、云层密度等参数,并写出调用天空渲染函数的代码,最终输出逼真的3D天空。

建模工具

3D-GPT使用了InfiniGen作为基于Python-Blender的过程化生成器。为让大语言模型能够高效利用InfiniGen,研究人员为每个函数Fj提供了提示,包括:

(1)函数文档Dj:详细解释输入参数Pj以及函数的目的和功能。

(2)易读代码Cj:提供容易理解的重构函数代码。

(3)所需信息Ij:概述推理函数参数所需的具体信息,协助理解函数的上下文和先决条件。

(4)使用示例Ej:提供示例演示如何从文本描述中推理参数Pj,以及如何调用函数。

这些资源使大语言模型可以利用其规划、推理和工具使用的核心能力,根据语言指令高效地利用InfiniGen进行3D生成。

在建模工具搭建好之后,3D-GPT采用了一个多代理协作框架,来处理3D建模流程。
在这里插入图片描述

任务调度代理

任务调度代理在规划过程中发挥关键作用。通过用户指令查询函数文档,然后选择所需的函数进行执行。

选择函数后,概念化代理进行推理以丰富用户提供的文本描述。最后,建模代理推断每个选定函数的参数,并生成Python代码,调用Blender API接口,促进相应3D内容的创建。

在这里插入图片描述

任务调度代理与系统的对话示例如下:

系统:你是根据用户指令选择合适函数的高效规划者。将被提供以下函数:<(F名称j,F用法j)>。以下是如何根据用户指令选择函数的几个示例:<E任务调度j>。

用户:我的指令是:

  • 任务调度代理:根据指令

  • ,我们确定了需要用于3D建模的函数子列表ˆF。
  • 概念化代理

    描述可能不会明确提供建模所需的详细外观描述。为缓解这一问题,引入了概念化代理,它与任务调度代理协作以增强用户提供的文本描述(Li)。对于每个函数Fj,它会将用户输入文本和相应的函数专属信息进行丰富,生成详细的外观描述Lij。

    系统与概念化代理对话格式如下:

    系统:你是专业作家,擅长描述对象的外观,特别是大型场景。给定描述

  • ,请提供以下信息所需的详细描述。
  • 对于描述中未提及的术语,请发挥想象力,以确保它们与文本描述一致。概念化代理:根据

  • 和请求的信息,扩展后的描述是:。
  • 建模代理

    在概念化之后,3D建模处理目标是将详细的人类语言转换为机器可理解的语言。

    在技术框架中,建模代理通过操作程序建模库中的函数来创建逼真的3D模型。对于每个函数Fj和用户指令Li,任务调度代理从概念化代理获得增强上下文 cLij。

    对于每个函数Fj,我们都有代码Cj,函数文档Dj和一个用法示例Ej。建模代理利用这些信息选择适当的函数并推断出相应的参数。

    在这里插入图片描述

    随后,建模代理生成准确调用所选函数的Python代码(例如,在循环中调用它,而不是调用它),并使用适当的数据类型正确传递推断的参数给函数。

    建模代理遵循以下对话模式:

    系统:你是一位优秀的3D设计师,能够将长文本描述转换为参数,并且擅长理解Python函数来操纵3D内容。给定文本描述,我们有以下函数代码和函数文档。

    以下是一个关于如何调用函数以使场景符合描述的示例:<E建模j>。理解函数,并通过调用函数建模符合文本描述的3D场景。

    建模代理:根据描述,将使用以下函数,并采用各自的参数值。

    Blender渲染:建模代理最终提供带有推断参数的Python函数调用,这些调用用于Blender节点控制和渲染,从而产生最终的3D网格和RGB结果。

    测试数据

    研究人员进行了大量实验,结果表明3D-GPT可以根据不同语言描述生成符合要求的3D场景和对象。具体表现如下:

    3D-GPT可以根据简要描述生成较大的3D场景,场景内容与描述基本一致。对于单一对象,3D-GPT可以准确捕捉其关键外观特征,实现精细的形状、曲线和属性控制。

    3D-GPT能够正确理解工具的功能,获取必要知识,并将其用于精确控制。即使参数与视觉外观无直接关系,也能准确推理参数值。在多步语言指令的场景中,3D-GPT能够充分理解每一步指令,并对场景进行准确修改。

    本文素材来源3D-GPT论文,如有侵权请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/137722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ | 继承和多态

目录 继承 继承的概念及用法 继承的作用域 向上转型和向下转型 继承过程中的默认生成函数 菱形继承及其解决方案 - 虚继承 虚继承的原理 - 虚基类表 继承和组合 多态 虚函数 多态的定义及使用 纯虚函数与抽象类 多态的原理 小点补充 虚表的位置 父类指针new一个…

django 批量 serializers listserializers

Django drf 序列化器 序列化器 扩展serializers的有用性是我们想要解决的问题。但是&#xff0c;这不是一个微不足道的问题&#xff0c;而是需要一些严肃的设计工作。— Russell Keith-Magee, Django用户组 序列化器允许把像查询集和模型实例这样的复杂数据转换为可以轻松渲染…

conda修改虚拟环境名称

conda 修改虚拟环境名称 conda 不能直接更改名称&#xff0c;但是可以通过克隆环境解决 新建环境&#xff08;克隆旧环境&#xff09; conda create --name 新环境名 --clone 旧环境名 删除原环境 conda remove --name 旧环境名 --all 查看现有环境 conda env list conda i…

Spring boot 整合grpc 运用

文章目录 GRPC基础概念&#xff1a;Protocol Buffers&#xff1a;proto 基础语法&#xff1a;调用类型&#xff1a; Spring boot 整合 grpc项目结构&#xff1a;整合代码&#xff1a;父 pomproto 模块服务端&#xff1a;客户端&#xff1a;实际调用&#xff1a; 原生集成 GRPC基…

SDN和NFV笔记

目录 SDN SDN的引入 SDN的概念 SDN网络部署的方式 SDN架构 OpenFlow SDN与传统网络的区别 SDN的应用 SDN的优点 NFV NFV的概念&#xff1a; NFV的架构&#xff1a; NFV相比于传统物理网元&#xff1a; NFV与SDN的关系 NFV与SDN的相似点 NFV与SDN的不同 SDN SD…

CVE-2023-25194 Kafka JNDI 注入分析

Apache Kafka Clients Jndi Injection 漏洞描述 Apache Kafka 是一个分布式数据流处理平台&#xff0c;可以实时发布、订阅、存储和处理数据流。Kafka Connect 是一种用于在 kafka 和其他系统之间可扩展、可靠的流式传输数据的工具。攻击者可以利用基于 SASL JAAS 配置和 SASL …

计算机毕业设计 基于Web的视频及游戏管理平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

OSG交互:选中场景模型并高亮显示

1、目的 可以在osg视图中选中指定模型实体,并高亮显示。共分为两种,一种鼠标点选,一种框选。 2、鼠标点选 2.1 功能说明 生成两组对象,一组cow对象可以被选中,另一组robot不能被选中;点击cow对象被选中高亮,点击robot被选中不高亮;点击空白处,弹出“select nothing!…

【Git】Git的GUI图形化工具ssh协议IDEA集成Git

一、GIT的GUI图形化工具 1、介绍 Git自带的GUI工具&#xff0c;主界面中各个按钮的意思基本与界面文字一致&#xff0c;与git的命令差别不大。在了解自己所做的操作情况下&#xff0c;各个功能点开看下就知道是怎么操作的。即使不了解&#xff0c;只要不做push操作&#xff0c;…

Java,多线程,线程的两种创建方式

首先是多线程的一些相关概念&#xff1a; 相关概念&#xff1a; 程序&#xff08;program&#xff09;&#xff1a;为完成特定任务&#xff0c;用某种语言编写的一组指令的集合。即指一段静态&#xff08;指不在执行中&#xff09;的代码。 进程&#xff08;process&#xf…

中国电信终端产业联盟5G Inside行业子联盟正式成立!宏电股份作为副理事单位受邀加入

11月9日&#xff0c;中国电信于广州召开“2023中国电信终端生态合作暨中国电信终端产业联盟&#xff08;以下简称CTTA&#xff09;第十四次会员大会”&#xff0c;联盟成员齐聚现场。作为CTTA大会的一个重要环节&#xff0c;中国电信终端产业联盟5G Inside行业子联盟正式成立&a…

[PyTorch][chapter 61][强化学习-免模型学习 off-policy]

前言&#xff1a; 蒙特卡罗的学习基本流程&#xff1a; Policy Evaluation : 生成动作-状态轨迹,完成价值函数的估计。 Policy Improvement: 通过价值函数估计来优化policy。 同策略&#xff08;one-policy&#xff09;&#xff1a;产生 采样轨迹的策略 和要改…

美国材料与试验协会ASTM发布新版玩具安全标准 ASTM F963-23

美国材料与试验协会ASTM发布新版玩具安全标准 ASTM F963-23 2023年10月13日&#xff0c;美国材料与试验协会&#xff08;ASTM&#xff09;发布了新版玩具安全标准ASTM F963-23 ​根据CPSIA的规定&#xff0c;当ASTM将ASTM F963的拟定修订意见通知CPSC时&#xff0c;若CPSC认为…

实战leetcode(二)

Practice makes perfect&#xff01; 实战一&#xff1a; 这里我们运用快慢指针的思想&#xff0c;我们的slow和fast都指向第一个节点&#xff0c;我们的快指针一次走两步&#xff0c;慢指针一次走一步&#xff0c;当我们的fast指针走到尾的时候&#xff0c;我们的慢指针正好…

使用Nginx和Spring Gateway为SkyWalking的增加登录认证功能

文章目录 1、使用Nginx增加认证。2、使用Spring Gateway增加认证 SkyWalking的可视化后台是没有用户认证功能的&#xff0c;默认下所有知道地址的用户都能访问&#xff0c;官网是建议通过网关增加认证。 本文介绍通过Nginx和Spring Gateway两种方式 1、使用Nginx增加认证。 生…

切换数据库的临时表空间为temp1 / 切换数据库的undo表空间为 undotbs01

目录 ​编辑 一、切换临时表空间 1、登录数据库 2、查询默认临时表空间 3、创建临时表空间temp1&#xff08;我们的目标表空间&#xff09; 4、修改默认temp表空间 5、查询用户默认临时表空间 6、命令总结&#xff1a; 二、切换数据库的undo表空间 1、查询默认undo表…

Wix使用velo添加Google ads tag并在form表单提交时向谷歌发送事件

往head里加代码时&#xff0c;不能看谷歌的代码&#xff0c;要看wix的代码&#xff0c;不然必定踩坑 https://support.wix.com/en/article/tracking-google-ads-conversions-using-wix-custom-code 这里的代码才对&#xff0c;因为wix搞了个velo&#xff0c;这个velo很傻x&am…

RK3399平台开发系列讲解(内存篇)free 命令查看内存占用情况介绍

🚀返回专栏总目录 文章目录 一、free的使用二、free的内容📢free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 一、free的使用 -b  以 Byte 为单位显示内存使用情况。-k  以 KB 为单位显示内存使用情况。…

ARM 基础学习记录 / ARM 裸机编程

汇编程序调用 C 程序详情 在 C 程序和 ARM 汇编程序之间相互调用时必须遵守 ATPCS 规则&#xff0c;其是基于 ARM 指令集和 THUMB 指令集过程调用的规范&#xff0c;规定了调用函数如何传递参数&#xff0c;被调用函数如何获取参数&#xff0c;以何种方式传递函数返回值。 寄存…

ARM 基础学习记录 / 异常与GIC介绍

GIC概念 念课本&#xff08;以下内容都是针对"通用中断控制器&#xff08;GIC&#xff09;"而言&#xff0c;直接摘录的&#xff0c;有的地方可能不符人类的理解方式&#xff09;&#xff1a; 通用中断控制器&#xff08;GIC&#xff09;架构提供了严格的规范&…