绝!OpenAI 年底上新,单卡 1 分钟生成 3D 点云,text-to 3D 告别高算力消耗时代

2023-11-20

内容一览:继 DALL-E、ChatGPT 之后,OpenAI 再发力,于近日发布 Point·E,可以依据文本提示直接生成 3D 点云。

关键词:OpenAI   3D 点云   Point·E   

OpenAI 年底冲业绩,半个多月前发布的 ChatGPT 广大网友还没玩明白,近日又悄么发布了另一利器--可以依据文本提示,直接生成 3D 点云的 Point·E。

 text-to-3D:用对方法,一个顶俩

3D 建模想必大家都不陌生,近年来,在电影制作、视频游戏、工业设计、VR 及 AR 等领域中,都可以看到 3D 建模的影子。

然而,借助人工智能创建逼真的 3D 图像,仍然是一个耗时耗力的过程,以 Google DreamFusion 为例,给定文本生成 3D 图像通常需要多个 GPU、运行数小时。

给定一个描述,DreamFusion 生成高保真 3D 物体

通常意义上,文本到 3D 合成的方法分为两类:

方法 1:直接在成对的 (text, 3D) 数据或无标签的 3D 数据上训练生成模型。

此类方法虽然可以利用现有的生成模型方法,有效地生成样本,但由于缺乏大规模 3D 数据集,因此很难扩展到复杂的文本提示。

方法 2:利用预先训练好的 text-to-image 模型,优化可区分的 3D 表征。

此类方法通常能够处理复杂多样的文本提示,但每个样本的优化过程都代价高昂。此外,由于缺乏强大的 3D prior,此类方法可能会陷入 local minima(无法与有意义或连贯的 3D 目标一一对应)。

Point·E 结合了 text-to-image 模型以及 image-to-3D 模型,综合以上两种方法的优势,进一步提升了 3D 建模的效率,只需要一个 GPU、一两分钟即可完成文本到 3D 点云的转换。

 原理解析:3 步生成 3D 点云

Point·E 中,text-to-image 模型利用了大型语料库 (text, image pair),使其对复杂的文本提示也能处理得当;image-to-3D 模型则是在一个较小的数据集 (image, 3D pair) 上训练的。

用 Point·E 依据文本提示生成 3D 点云的过程分为三个步骤:

1、依据文本提示,生成一个合成视图 (synthetic view)

2、依据合成视图,生成 coarse point cloud (1024 point)

3、基于低分辨率点云和合成视图,生成 fine point cloud (4096 Point)

Point·E 流程概览

由于数据格式和数据质量对训练结果影响巨大,Point·E 借助 Blender,将所有训练数据都转换为了通用格式。

Blender 支持多种 3D 格式,并配有优化的渲染 engine。Blender 脚本将模型统一为一个 bounding cube,配置一个标准的 lighting 设置,最后使用 Blender 内置的实时渲染 engine 导出 RGBAD 图像。 

"""
Script to run within Blender to render a 3D model as RGBAD images.

Example usage

    blender -b -P blender_script.py -- \
        --input_path ../../examples/example_data/corgi.ply \
        --output_path render_out

Pass `--camera_pose z-circular-elevated` for the rendering used to compute
CLIP R-Precision results.

The output directory will include metadata json files for each rendered view,
as well as a global metadata file for the render. Each image will be saved as
a collection of 16-bit PNG files for each channel (rgbad), as well as a full
grayscale render of the view.
"""

Blender 脚本部分代码

通过运行脚本,将 3D 模型统一渲染为 RGBAD 图像

完整脚本详见:

https://github.com/openai/point-e/blob/main/point_e/evals/scripts/blender_script.py

 过往 text-to-3D AI 横向对比

近两年来,涌现了众多关于 text-to-3D 模型生成的相关探索,Google、NVIDIA 等大厂也纷纷推出了自己的 AI。

我们收集汇总了 3 个 text-to-3D 合成的 AI,供大家横向对比差异。

DreamFields

发布机构:Google

发布时间:2021 年 12 月

项目地址:https://ajayj.com/dreamfields

DreamFields 结合了神经渲染 (neural rendering) 与多模态图像及文本表征,仅依据文本描述,就可以可以在没有 3D 监督的情况下,生成各种各样 3D 物体的形状和颜色。

DreamFields 从 4 个视角分别渲染的示例

DreamFields 生成 3D 物体的过程中,借鉴了在大型文本图像数据集上预训练过的 image-text model,并对源自多视角的 Neural Radiance Field 进行了优化,这使得预训练 CLIP 模型渲染的图像,在目标文本下取得了良好的效果。

DreamFusion

发布机构:Google

发布时间:2022 年 9 月

项目地址:https://dreamfusion3d.github.io/

DreamFusion 可以借助预训练 2D text-to-image diffusion model,实现 text-to-3D synthesis。

DreamFusion 引入了一个基于概率分布蒸馏 (probability density distillation) 的 loss,使 2D diffusion model 能够作为参数图像生成器 (parametric image generator) 优化的 prior。

输入文本提示
a DSLR photo of a peacock on a surfboard
DreamFusion 生成 3D 物体

通过在与 DeepDream 类似的程序中应用该 loss,Dreamfusion 优化了一个随机初始化的 3D 模型(一个 Neural Radiance Field 或者 NeRF),通过梯度下降法使其从随机角度的 2D 渲染达到一个相对较低的 loss。

Dreamfusion 不需要 3D 训练数据,也无需修改 image diffusion model,证明了预训练 image diffusion model 作为 prior 的有效性。

Magic3D

发布机构:NVIDIA

发布时间:2022 年 11 月

项目地址:deepimagination.cc/Magic3D/

Magic3D 是一个 text-to-3D 内容的创建工具,可用于创建高质量的 3D mesh model。利用 image conditioning 技术以及基于文本提示的编辑方法,Magic3D 提供了控制 3D 合成的新方法,为各种创意应用开辟了新的途径。

Magic3D 结构概述
以 coarse-to-fine 的方式
依据输入的文本提示,生成高分辨率的 3D 内容

过程包括两个阶段:

阶段 1:使用低分辨率的 diffusion prior 获得一个 coarse model,并用 hash grid 和 sparse acceleration structure 进行加速。

阶段 2:使用从粗略神经表征 (coarse neural representation) 初始化的 textured mesh model,通过高效的可微分渲染器与高分辨率的 latent diffusion 模型交互进行优化。

 技术进步仍需突破局限

text-to 3D 的 AI 陆续面世,但基于文本生成 3D 合成尚处于早期发展阶段,业内还没有一套公认的 Benchmark,能用来更公正地评估相关任务。

Point·E 对于 fast text-to 3D 合成而言,具有重大意义,它极大提升了处理效率,降低了算力消耗。

但不可否认,Point·E 仍然具有一定的局限性,比如 pipeline 需要合成渲染,生成的 3D 点云分辨率较低,不足以捕捉细粒度的形状或纹理等。

关于 text-to 3D 合成的未来,你怎么看?未来的发展趋势又会怎样?欢迎评论区留言讨论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绝!OpenAI 年底上新,单卡 1 分钟生成 3D 点云,text-to 3D 告别高算力消耗时代 的相关文章

  • 无法加速像素修改的 BufferedImages

    很长一段时间 1 2个月 我一直在试图找到这个特定问题的答案 我无法让我的图像硬件加速 我一直在网上搜索 创建了自己的方法 用键盘敲击我的头 仍然感到疼痛 但没有成功 尽管我讨厌 Java SDK 以外的库 但我尝试了 LWJGL 和 JO
  • 矩形相交

    是否有任何已知的方法来计算两个矩形之间的相交矩形 我的意思是 如果矩形 A 由 x1 y2 x2 y2 定义 B 由 x3 y3 x4 y4 定义 那么如何计算相交矩形 C x5 y5 x6 y6 的坐标 Thanks 相交多边形的一般问题
  • 使用 Scenform 将 SceneView 加载到片段中后出现黑屏

    我正在开发一个项目 该项目将在一个片段中包含 3D 模型查看器 为了做到这一点 我决定使用 sceneform 在尝试在我的选项卡片段中显示 SceneView 后 我遇到了 SceneView 的问题 一切都是根据示例和 scenefor
  • Python openAL 3D 声音

    我刚刚开始使用 python 正在制作音频操作程序 我正在尝试在我的 python 应用程序中使用 openAL 实现 3D 声音 但我只能让它工作 这是我的 3D 声音代码 from openal loaders import load
  • 如何旋转 3D 散点图

    下面的代码使用 scatterplot3d 函数来运行高度 重量和体积的 3D 散点图 其中点是 1 6 之间的类值 角度目前为 45 度 我知道我可以通过改变角度来倾斜绘图 我应该使用什么代码将绘图向左或向右旋转 以便我可以提供绘图的多个
  • 使用 glFrustum 进行离轴投影

    我正在尝试使用 OpenGL 对场景进行离轴投影 并且我阅读了该文档罗伯特 库伊马的离轴投影 http csc lsu edu kooima pdfs gen perspective pdf现在对实际需要做什么有了更好的了解 但仍然有一些部
  • CSS3“曲面”3D 变换/透视帮助

    我正在尝试为我的网站创建一种有观点的人群 它实际上是一个充满平面图像的 ul 我想创建一种 弯曲 的感觉 就像圆形的人群一样 它向内并且向内明显变小 并向末端弯曲 海报圈的例子是我能找到的最接近的http www webkit org bl
  • SceneKit 修改 3D 对象并导出文件

    在我的应用程序中 我使用 SceneKit Framework 在 SCNView 中显示 3D 对象 并导出修改后的文件 并进行一些小的更改 如颜色 温度等 但在将其导出到文档文件夹后 我得到了原始文件 在这里我可以显示 3D 对象并对其
  • 如何计算逆运动学[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想知道如何使用逆运动学计算旋转角度 我计划将其用于实时 3D 动画 有人知道一些详细介绍具体解决方案的好文献吗 以下资源调查了逆运动学问题的一些流行
  • Blender 与 Unity [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将球体上的 3d 点转换为 UV 坐标

    我在球体上有一个 3d 点 想要将其转换为球体纹理上的 UV 点 有人可以指出正确的方向吗 我可以采用纯数学解决方案 Edit 我目前有这个 它不会返回正确的 UV 坐标 p 是球体上的 3d 点 mesh position 是球体的位置
  • 在 Unity 3D 中使用触摸输入在地形上移动相机

    我是 Unity 新手 我正在尝试弄清楚如何使用触摸输入在地图 地形上移动相机 摄像机将以 90 0 0 的旋转角度俯视地形 地形位于第 8 层 我用键盘移动它没有问题 现在我尝试移动到触摸 如果你想在 iOS 上保持预期的使用情况 那就非
  • 编写每个三角形/面具有纯色的 GLSL 片段着色器的方法

    我有顶点和三角形数据 其中包含每个数据的颜色triangle 面 不是每个顶点 即单个顶点由多个面共享 每个面可能具有不同的颜色 我应该如何在 GLSL 中解决这个问题以获得每个的纯色分配face正在渲染 通过平均顶点相邻多边形的颜色来计算
  • 如何在 Three.js 中从三角面获取多边形?

    我在网上查了一下是否有人遇到同样的问题 我正在使用 Three js 我有一个 3DObject 其中可能包含孔 面是三角形的 假设我想从上面看到它 我的目标是获得一个代表顶面周长的多边形 这对我来说意味着不再有三角面 而只有 1 个多边形
  • 如何在 OpenCV 中绘制图像的 3D 直方图

    更新 我找到更多例子 我现在可以做到 我可以在 3d 中绘制多个直方图吗 https stackoverflow com questions 35210337 can i plot several histograms in 3d 我知道这
  • 3D 空间:使用鼠标指针沿着对象指向的方向

    给定相机面向的方向的 3D 向量以及 3D 空间中 3D 对象的方位 方向向量 如何计算鼠标指针在屏幕上必须遵循的 2 维斜率 以便在视觉上沿着所述物体的方向移动 基本上 我希望能够单击箭头并通过拖动它来使其前后移动 但前提是鼠标指针沿着箭
  • 从 NumPy 数组中的数据绘制 3D 图像

    我有一个 NumPy 数组中的数据文件 我想查看 3D 图像 我正在分享一个示例 我可以在其中查看大小为 100 100 的 2D 图像 这是 xy 平面上 z 0 处的切片 import numpy as np from matplotl
  • 在 Three.js 中将贝塞尔曲线转换为平面道路

    我试图根据之前计算得到的一些贝塞尔曲线在 Three js 中绘制一条弯曲的道路 问题是我找不到转换曲线序列的方法 一条从上一条曲线的末尾开始 到一个曲面 我有一个 3D 场景 其中有一些汽车 一条用飞机创建的道路 并且绘制了即将到来的道路
  • 自动适合衣服的算法?

    想象一下 客户要求您设计一款软件 以满足一些相当粗略的规格 如下所示 1 它将面向时尚行业营销 2 用户将是 设计衣服和东西 的人 可能有一个特定的术语 但我没有想到 3 由于各种原因 能够快速制作原型设计并查看它们在模型上的外观会很有用
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而

随机推荐

  • 【CV with Pytorch】第 7 章 :图像异常检测

    机器学习的研究使我们进入了研究各种模式和行为的过程 它使我们能够构建可以研究封闭环境的模型 预测能力通常遵循模型训练过程 这是我们在训练模型时需要经常问的一个重要问题 还有另一个问题需要回答 多少数据足以帮助模型理解分布 以便我们有一个好的
  • 恢复误删除的数据库数据-Oracle

    Oracle数据误删快速恢复 文章目录 1 创建测试数据 2 数据未提交 rollback回滚 3 数据已提交 3 1 通过scn恢复数据 3 2 通过时间恢复数据 1 创建测试数据 第一步创建测试表 create table cctest
  • 区域生长法快速入门,不带种子点的选取

    这里实现的区域生长法 是最原始的区域生长法 基本原理是判断像素点的强度值是和种子点的强度值差是否小于阈值 如果小于阈值则被标记 实现过程中利用了栈的先进后出的思想 将8邻域中符合生长要求的点压入栈 然后依次取出 然后在取出的点的基础上对8邻
  • QT信号和槽以结构体为参数传递复杂数据

    QT 的信号和槽机制能十分方便的用来传输数据 但是如果数据种类比较多 分类比较多的时候 就需要更好地更高效的来传递数据的方法 以结构体作为参数是个很不错的选择 这几天写的程序正好需要以结构体来作为参数 但是网上搜的资料很少 讲的也不详细 我
  • chatgpt赋能python:用Python对图片进行分类

    用Python对图片进行分类 在如今的数字时代 图片分类是一个越来越常见的任务 特别是在搜索引擎优化中 图片分类可以让搜索引擎更容易地找到特定类型的图片 并在相关的搜索中以更高的排名显示它们 在本文中 我们将介绍如何使用Python来分类图
  • 理解java反射机制

    Java反射机制 java反射机制是各种框架的基础 因为有了反射 可以实现类的动态加载 只有类在运行期间用到时才加载到内存中 实现动态编程 对于反射机制的理解 主要需要理解类加载的过程 这是非常重要的一点 通过java视频教程整理文档如下
  • 10分钟带你了解轻量级插件框架x3py

    写在前面 由于本人目前主要从事的是Windows客户端开发方面的工作 所以本文介绍x3py的侧重点也是从客户端程序开发者方面叙述的 本文主要参考整理自x3py的官方Wiki 修正了一些官方示例中的错误 有兴趣的同学可以直接阅读原文 设计目的
  • React 定时刷新接口

    通过 useEffect 在页面加载时调用 getNodeDetailList 列表接口 useEffect gt getNodeDetailList change 然后通过 setInterval 来进行定时刷新 useEffect gt
  • vue.cli3.0移动端px和rpx的转换

    1 安装插件 npm i postcss plugin px2rem save dev 2 创建vue config js module exports lintOnSave true css loaderOptions postcss p
  • 微信小程序面试题大全

    1 简述微信小程序的相关文件类型 WXML 搭建页面的结构 WXSS 页面样式文件 js 逻辑处理 网络请求 json 配置当前页面标题和引入组件等 app js 可以在里边监听生命周期函数 声明全局变量 app json 小程序的全局配置
  • 【干货】Chrome插件(扩展)开发全攻略(不点进来看看你肯定后悔)<转>

    干货 Chrome插件 扩展 开发全攻略 不点进来看看你肯定后悔 写在前面 我花了将近一个多月的时间断断续续写下这篇博文 并精心写下完整demo 写博客的辛苦大家懂的 所以转载务必保留出处 本文所有涉及到的大部分代码均在这个demo里面 h
  • 解密Qt安装目录的结构

    了解 Qt 安装目录的结构虽然不是编程必须的 但是它能练就我们的内功 让我们对 Qt 的编程环境了如指掌 Windows 和 Linux 下 Qt 安装目录的结构非常相似 我们以 Windows 为例进行讲解 Linux 不再赘述 Qt 整
  • Odoo文档——安装

    Odoo文档 安装 下载和安装 下载地址 https www odoo com zh CN page download 安装文档地址 https www odoo com documentation 12 0 setup install h
  • Minio有了这篇文章,比SDK要好入门多了

    想学minio 看小编这边文章可以解决你很多问题 一 安装minio 1 1 创建文件夹 并在指定文件夹中下载minio文件 1 2 赋予minio文件执行权限 1 3 启动minio 1 4 修改环境变量 1 5 指定端口启动minio服
  • Windows下celery正确接收任务,但是没有执行任务

    先说解决方案 Windows下运行celery的命令是这个celery A djangoProject1 worker concurrency 4 loglevel INFO P threads 也就是说要指定是多线程的 Linux下运行c
  • 【深度学习与计算机视觉】2、线性 SVM 与 Softmax 分类器

    文章目录 2 线性SVM与Softmax分类器 2 1 得分函数 score function 2 1 1 线性分类器 2 1 2 理解线性分类器 2 2 损失函数 2 2 1 多类别支持向量机损失 Multiclass SVM loss
  • 一道文件上传题checkln

    这是一道文件上传题 做起来感到毫无头绪 看来提示 user ini 才知道怎么回事 user ini究竟是个什么东东 自 PHP 5 3 0 起 PHP 支持基于每个目录的 htaccess 风格的 INI 文件 此类文件仅被 CGI Fa
  • 计算机视觉parsing_parsenet.pth文件下载

    计算机视觉parsing parsenet pth文件下载 链接 https pan baidu com s 1gW3gLZ cPNHPawe0U5299w pwd ufd0 提取码 ufd0
  • vue打包后不使用服务器直接访问方法

    根据官网打包执行npm run build 后dist文件夹打开的index html 是空白 需要开启http服务器才能访问 以下是解决办法 1 找到config文件夹下的index文件 修改成 2 找到build文件夹下的until文件
  • 绝!OpenAI 年底上新,单卡 1 分钟生成 3D 点云,text-to 3D 告别高算力消耗时代

    内容一览 继 DALL E ChatGPT 之后 OpenAI 再发力 于近日发布 Point E 可以依据文本提示直接生成 3D 点云 关键词 OpenAI 3D 点云 Point E OpenAI 年底冲业绩 半个多月前发布的 Chat