不到1s生成mesh! 高效文生3D框架AToM
论文题目: AToM: Amortized Text-to-Mesh using 2D Diffusion
论文链接: https://arxiv.org/abs/2402.00867 项目主页: AToM: Amortized Text-to-Mesh using 2D Diffusion
随着AIGC的爆火,生成式人工智能在3D领域也实现了非常显著的效果,但是现有的文生3D模型仍然存在很多局限,例如主流的文生3D方法需要逐文本优化(per-prompt optimization),生成过程非常耗时。此外,这些方法的可扩展性仍有待提高,对于训练分布之外的未见文本(unseen prompt),模型无法生成。
本文介绍一篇来自Snapchat、KAUST和多伦多大学合作完成的工作AToM(Amortized Text-to-Mesh using 2D Diffusion)。AToM是一种可以跨多个文本提示进行优化的三维生成框架,其可以在不到1秒的时间内直接生成高质量的纹理网格,训练成本相比逐文本优化方法至少降低 10 倍,并且具有更好的泛化性能,对未见的文本提升,可以轻松地应对。AToM的关键idea是构建了一种基于triplane的文本到3D模型生成框架,并且设计了一种两阶段Amortized优化策略,这样可以保证模型训练过程的稳定性,同时提高可扩展性。AToM可以灵活的掌握2D扩散模型中的先验,根据用户输入的文本提示在短时间内完成相应3D模型的生成。
本文作者在多个标准评估基准上进行了大量的实验,实验结果表明AToM的精度显著优于目前的SOTA方法ATT3D[1],同时与per-prompt方法相比,AToM展示出了强大的通用能力,下图展示了AToM生成各种三维模型的效果。
01. 引言
生成式人工智能的迅速发展,使得3D模型的构建过程越来越方便直接,设计师们无需进行复杂的手工绘制,而是只输入几个单词就可以创建一个逼真的模型。当前主流的文本到3D模型方法可以在无需三维监督信号的情况下进行训练。但是这种方法需要根据用户输入的每个提示进行优化,这导致了模型无法推广到真实场景中的unseen提示。近期,发表在ICCV2023上的ATT3D方法[1]提出了一种Amortized文本到3D模型生成技术,大幅度地缩减模型的训练时间,但是其仍局限于NeRF格式的输入。直观上分析,将NeRF转换为3D模型是不够精确的。另外更重要的是,由于HyperNets训练不稳定性,基于HyperNets的ATT3D在大规模数据集中表现欠佳,对于不同的提示词,容易生成无法分辨的3D模型。
因此本文引入了一种全新的AToM,直接将Amortized技术应用到文本到三维纹理网络mesh生成中。然而,盲目的将ATT3D方法扩展为Text-to-Mesh形式,也会面临在几何拓扑方面出现偏差的问题,如下图第二列所示。
为此,AToM引入了基于triplane的mesh生成框架以及二阶段Amortized优化策略,以稳定Text-to-Mesh的训练稳定性,增强生成的可扩展性。与ATT3D相比,AToM可以产生质量更好效果更逼真的3D内容,在大数据集上表现更佳。 上图分别展示了本文方法与ATT3D的生成效果对比。
02. 本文方法
2.1 AToM Pipeline
下图展示了本文方法在训练和推理过程中的pipeline,与针对特征提示的主流3D模型生成方法不同,AToM的网络架构由一个文本编码器、一个text-to-triplane网络和一个triplane-to-mesh生成器构成。
2.2 两阶段的Amortized优化
2.2.1 体积优化
2.2.2 网格优化
AToM的第二阶段优化是使用网格光栅化通过高分辨率渲染来优化整个网络。此时作者使用了可微的网格表示,同时使用网格光栅化可以节省内存并提高计算速度,这允许整体框架使用更高分辨率(例如尺寸为例如 512×512)的渲染进行训练。训练损失使用与第一阶段相同的SDS损失,由于SDF和颜色网络已在第一阶段得到了优化,因此第二阶段的主要目标是通过网格表示中的高分辨率渲染来提高几何和纹理的质量。需要指出的是,在这两个优化阶段中,AToMs没有接收任何 3D 数据的监督信号,仅在文本到图像扩散模型的指导下完成训练。
03. 实验效果
本文的实验在多个标准评估基准上进行,包括Pig64、Animal2400, DF27和DF415。评价指标使用与ATT3D方法相同的CLIP-R概率,其可以衡量输入文本与生成3D模型的均匀渲染视图的平均距离。下表展示了本文方法与其他baseline方法的对比结果。
从表中可以观察到,AToM 在 Pig64 的unseen提示上获得了比 ATT3D(64.29%)更高的 CLIP R 概率 75.00%,这表明AToM拥有更强的泛化能力。此外,在Pig64 和 DF27 的训练提示中,AToM 在两个数据集上都超越了其他方法。
AToM框架的一个优点是,其可以轻松推广到模型训练分布之外的插值提示中,而普通的per-prompt方法不具备这种通用性。上图展示了AToM方法在Pig64中的unseen生成效果,AToM 无需进一步优化就可以对unseen提示生成高质量的结果,如上图对角线所示。 在Animal2400 12.5%数据集中,AToM仅在300个文本上训练,便可扩展至2400个文本的生成,下图展现了部分文本的生成效果:
此外,作者在下图中对AToM中的关键模块和操作进行了消融研究,从图中可以观察到,当仅使用单阶段进行训练时,模型的收敛稳定性会受到明显影响,生成的准确率较低,只有7.47%,明显低于 AToM full(81.93%)。这表明,本文所提的两阶段优化策略非常重要,经过第二阶段训练产生的网格具有更高的视觉质量。
04. 总结
本文提出了一种新颖的Amortized文本到3D模型生成框架AToM,AToM可以在没有3D 监督的情况下跨多个文本提示进行网络优化。AToM的训练过程基于三平面的网格生成器,这有助于更稳定的优化和提高对大规模数据集的通用性。此外,作者针对文本到3D网格生成过程,设计了一种两阶段Amortized优化策略,与普通的per-prompt方法相比,AToM 显着减少了训练时间,更重要的是,AToM 表现出很强的通用性,无需进一步优化即可为下游环境中的unseen提示生成高质量的 3D 内容。
参考
[1] Jonathan Lorraine, Kevin Xie, Xiaohui Zeng, Chen-Hsuan Lin, Towaki Takikawa, Nicholas Sharp, Tsung-Yi Lin, Ming Yu Liu, Sanja Fidler, and James Lucas. Att3d: Amortized text-to-3d object synthesis. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 17946–17956, October 2023.
[2] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J. Liu. Exploring the limits of transfer learning with a unified text-to-text transformer. Journal of Machine Learning Research, 21(140):1–67, 2020.
[3] Peng Wang, Lingjie Liu, Yuan Liu, Christian Theobalt, Taku Komura, and Wenping Wang. Neus: Learning neural implicit surfaces by volume rendering for multi-view reconstruction. In Advances in Neural Information Processing Systems (NeurIPS), 2021.
[4] Ben Poole, Ajay Jain, Jonathan T Barron, and Ben Mildenhall. Dreamfusion: Text-to-3d using 2d diffusion. International Conference on Learning Representations (ICLR), 2022.
关于TechBeat人工智能社区
▼
TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。
我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。
期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!
更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区
相关文章:

不到1s生成mesh! 高效文生3D框架AToM
论文题目: AToM: Amortized Text-to-Mesh using 2D Diffusion 论文链接: https://arxiv.org/abs/2402.00867 项目主页: AToM: Amortized Text-to-Mesh using 2D Diffusion 随着AIGC的爆火,生成式人工智能在3D领域也实现了非常显著…...
Mac中管理多版本Jdk
1. 首先下载JDK,以jdk8和17为例 2. 打开.zprofile中添加如下内容 #java config export JAVA_8_HOME/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home export JAVA_17_HOME/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home#default java …...

用C语言列出Linux或Unix上的网络适配器
上代码: 1. #include <sys/socket.h> 2. #include <stdio.h> 3. 4. #include <netdb.h> 5. #include <ifaddrs.h> 6. 7. int main() { 8. struct ifaddrs *addresses; 9. if(getifaddrs(&addresses) -1) { 10. printf("…...

单片机学习笔记---LED点阵屏显示图形动画
目录 LED点阵屏显示图形 LED点阵屏显示动画 最后补充 上一节我们讲了点阵屏的工作原理,这节开始代码演示! 前面我们已经说了74HC595模块也提供了8个LED,当我们不使用点阵屏的时候也可以单独使用74HC595,这8个LED可以用来测试7…...

Git分支常用指令
目录 1 git branch 2 git branch xx 3 git checkout xx 4 git checkout -b xx 5 git branch -d xx 6 git branch -D xx 7 git merge xx(含快进模式和冲突解决的讲解) 注意git-log: 1 git branch 作用:查看分支 示例: 2 git branch xx 作用&a…...
3.3 Binance_interface APP U本位合约行情-实时行情
Binance_interface APP U本位合约行情-实时行情 Github地址PyTed量化交易研究院 量化交易研究群(VX) py_ted目录 Binance_interface APP U本位合约行情-实时行情1. APP U本位合约行情-实时行情函数总览2. 模型实例化3. 获取一个产品的最优挂单 get_bookTicker4. 获取全部产品…...
机器学习——流形学习
流形学习是一种在机器学习领域中用于理解和分析数据的技术。它的核心思想是,尽管我们通常将数据表示为高维空间中的向量,但实际上数据可能具有较低维度的内在结构,这种结构被称为流形。流形学习的目标是发现并利用数据的这种潜在结构…...

离线数仓(一)【数仓概念、需求架构】
前言 今天开始学习数仓的内容,之前花费一年半的时间已经学完了 Hadoop、Hive、Zookeeper、Spark、HBase、Flume、Sqoop、Kafka、Flink 等基础组件。把学过的内容用到实践这是最重要的,相信会有很大的收获。 1、数据仓库概念 1.1、概念 数据仓库&#x…...

物联网测试:2024 年的最佳实践和挑战
据 Transforma Insights 称,到 2030 年,全球广泛使用的物联网 (IoT) 设备预计将增加近一倍,从 151 亿台增至 290 亿台。这些设备以及智能汽车、智能手机等广泛应用于各种官僚机构。 健康视频监视器、闹钟以及咖啡机和冰箱等最受欢迎的家用电器…...

蓝桥杯Web应用开发-CSS3 新特性
CSS3 新特性 专栏持续更新中 在前面我们已经学习了元素选择器、id 选择器和类选择器,我们可以通过标签名、id 名、类名给指定元素设置样式。 现在我们继续选择器之旅,学习 CSS3 中新增的三类选择器,分别是: • 属性选择器 • 子…...
MongoDB聚合:$unionWith
$unionWith聚合阶段执行两个集合的合并,将两个集合的管道结果合并到一个结果集传送到下一个阶段。合并后的结果文档的顺序是不确定的。 语法 { $unionWith: { coll: "<collection>", pipeline: [ <stage1>, ... ] } }要包含集合的所有文档不…...

人工智能三子棋-人机对弈-人人对弈,谁会是最终赢家?
✅作者简介:大家好我是原始豌豆,感谢支持。 🆔本文由 原始豌豆 原创 CSDN首发🐒 如需转载还请通知⚠ 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:C语言项目实践…...

【leetcode热题100】反转链表 II
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1: 输入:head [1,2,3,4,5], left 2, right 4 输出:[1,4,3,2…...

谷歌 DeepMind 联合斯坦福推出了主从式遥操作双臂机器人系统增强版ALOHA 2
谷歌 DeepMind 联合斯坦福推出了 ALOHA 的增强版本 ——ALOHA 2。与一代相比,ALOHA 2 具有更强的性能、人体工程学设计和稳健性,且成本还不到 20 万元人民币。并且,为了加速大规模双手操作的研究,ALOHA 2 相关的所有硬件设计全部开…...

金融行业专题|证券超融合架构转型与场景探索合集(2023版)
更新内容 更新 SmartX 超融合在证券行业的覆盖范围、部署规模与应用场景。新增操作系统信创转型、Nutanix 国产化替代、网络与安全等场景实践。更多超融合金融核心生产业务场景实践,欢迎阅读文末电子书。 在金融行业如火如荼的数字化转型大潮中,传统架…...

【C语言】C的整理记录
前言 该笔记是建立在已经系统学习过C语言的基础上,笔者对C语言的知识和注意事项进行整理记录,便于后期查阅,反复琢磨。C语言是一种面向过程的编程语言。 原想在此阐述一下C语言的作用,然而发觉这些是编程语言所共通的作用&#…...

C/C++模板初阶
目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int&…...

linux系统下vscode portable版本的c++/Cmake环境搭建001
linux系统下vscode portable版本的Cmake环境搭建 vscode portable 安装安装基本工具安装 build-essential安装 CMake final script code安装插件CMake Tools & cmakeC/C Extension Pack Testsettings,jsonCMakeLists.txt调试和运行工具 CG 目的:希望在获得一个新…...

【QT+QGIS跨平台编译】之三十一:【FreeXL+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
文章目录 一、FreeXL介绍二、文件下载三、文件分析四、pro文件五、编译实践一、FreeXL介绍 【FreeXL跨平台编译】:Windows环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台编译】:Linux环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...