MeshAnything:艺术家级别的自回归3D网格生成

MeshAnything: Artist-Created Mesh Generation with Autoregressive Transformers

📜 文献卡

MeshAnything: Artist-Created Mesh Generation with Autoregressive Transformers
作者: Yiwen Chen; Tong He; Di Huang; Weicai Ye; Sijin Chen; Jiaxiang Tang; Xin Chen; Zhongang Cai; Lei Yang; Gang Yu; Guosheng Lin; Chi Zhang
DOI: 10.48550/arXiv.2406.10163
摘要: Recently, 3D assets created via reconstruction and generation have matched the quality of manually crafted assets, highlighting their potential for replacement. However, this potential is largely unrealized because these assets always need to be converted to meshes for 3D industry applications, and the meshes produced by current mesh extraction methods are significantly inferior to Artist-Created Meshes (AMs), i.e., meshes created by human artists. Specifically, current mesh extraction methods rely on dense faces and ignore geometric features, leading to inefficiencies, complicated post-processing, and lower representation quality. To address these issues, we introduce MeshAnything, a model that treats mesh extraction as a generation problem, producing AMs aligned with specified shapes. By converting 3D assets in any 3D representation into AMs, MeshAnything can be integrated with various 3D asset production methods, thereby enhancing their application across the 3D industry. The architecture of MeshAnything comprises a VQ-VAE and a shape-conditioned decoder-only transformer. We first learn a mesh vocabulary using the VQ-VAE, then train the shape-conditioned decoder-only transformer on this vocabulary for shape-conditioned autoregressive mesh generation. Our extensive experiments show that our method generates AMs with hundreds of times fewer faces, significantly improving storage, rendering, and simulation efficiencies, while achieving precision comparable to previous methods.
github(Pytorch): [buaacyw/MeshAnything:https://github.com/buaacyw/meshanything

MeshAnything

⚙️ 内容

近期,由重建和生成创建的3D 资产已经达到了手工制作资产的质量水平,凸显了它们在替代领域的潜力。然而,这一潜力并未得到充分实现,因为这些资产总是需要转换为网格以用于3D 行业应用,而当前的网格提取方法产生的网格明显劣于由人类艺术家创作的网格(AMs)。特别是,当前的网格提取方法依赖于密集的面,并忽略了几何特征,导致低效、复杂的后处理以及较低的表示质量。为了解决这些问题,研究人员提出了 MeshAnything。

MeshAnything 将3D模型的网格提取视为生成问题,旨在产出与指定形状对齐的艺术家创作网格(Artist-Created Meshes, AMs)。这项技术可以将任意3D表示形式的资产转化为AMs,从而与多种3D资源生产流程相结合,增强其在3D行业中的应用。MeshAnything的核心架构包括一个VQ-VAE和一个形状条件解码器,该解码器是一个仅有的自回归变压器,首先通过VQ-VAE学习网格词汇,然后在此基础上训练形状条件解码器进行自回归网格生成。

💡 创新点
  1. 网格生成新视角:首次将网格提取视为生成任务,模拟人类艺术家的网格提取过程,生成具有高效拓扑结构的AMs。

  2. 减少面数显著提升效率:生成的AMs相比传统方法能减少数百倍的面数,极大地提高了存储、渲染和模拟的效率,同时保持与先前方法相当的精确度。

  3. 形状条件解码:提出形状条件的自回归网格生成方法,仅需学习如何为已知形状构建高效拓扑,简化学习过程。

  4. 广泛适用性:适用于任何3D表示形式,能与不同的3D资产生产方法集成,提高3D行业的应用范围

🧩 不足
  1. 面数限制:MeshAnything无法生成超过最大面数限制的网格,因此对于大型场景或特别复杂的对象处理能力有限。受计算资源限制,MeshAnything 是在少于 800 个面的网格上训练的,无法生成超过 800 个面的网格。

  2. 形状质量:输入网格的形状应足够锋利;否则,仅用 800 张面孔来表示它将具有挑战性。因此,由于形状质量不足,前馈图像到 3D 方法通常会产生不良结果。我们建议使用 3D 重建、扫描和基于 sds 的方法(如 DreamCraft3D)的结果作为 MeshAnything 的输入。

  3. 稳定性问题:由于其生成性质,相比于确定性方法如Marching Cubes,MeshAnything在稳定性上略显不足。

🔁实验卡

💧 数据

数据准备
  1. 数据来源与选择:MeshAnything的训练数据来源于两个主要的数据集:Objaverse和ShapeNet。Objaverse因其包含大量无类别限制的AMs而被选中,这使得MeshAnything能够处理一般形状。另一方面,ShapeNet虽然局限于特定类别,但提供了高质量的数据。结合这两个数据集,研究确保了模型的广泛适用性。

  2. 数据过滤:为了保证数据质量,研究者从两个数据集中过滤掉了面数超过800的网格,并通过人工检查移除了低质量的网格。最终,数据集包含了51k个来自Objaverse和5k个来自ShapeNet的网格。

  3. 数据划分:从总数据集中随机抽取10%作为评估数据集,剩余的90%用于训练。这样的划分确保了模型的泛化能力能够得到有效评估。

👩🏻‍💻 方法

数据处理与增强
  1. 预处理:所有网格的面按照最低顶点索引排序,然后是下一个最低,以此类推。顶点则按z-y-x坐标升序排列,其中z轴代表垂直方向。每个面内的索引进行重排,确保最低索引优先。这一步骤有助于模型学习一致的表示。

  2. 数据增强:在训练过程中,研究团队应用了实时的缩放、平移和旋转增强,将每个网格标准化到[-0.5, 0.5]的单位边界框内。这样的增强策略增加了模型的鲁棒性,使其能够更好地泛化到未见过的数据。

🔬 实验

实现细节
  1. 网络架构:MeshAnything的架构结合了VQ-VAE和自回归变压器。VQ-VAE的编码器和解码器基于BERT架构,而自回归部分选择了OPT-350M模型。使用了残差向量量化技术,深度为3,代码本大小为8,192个条目。

  2. 点云编码器:点云的编码由一个预训练的点云编码器完成,该编码器基于Objaverse数据集训练,能输出一个固定长度的257个令牌序列,其中包括256个携带形状信息的令牌和1个含有形状语义信息的头令牌。每组点云采样4096个点。

  3. 训练策略:模型使用交叉熵损失进行训练。在推理阶段,输入点云令牌序列到变压器中,要求生成后续序列,然后通过噪声抵抗解码器重构网格。每个序列在点云令牌后添加一个开始令牌(),在网格令牌后添加一个结束令牌()。

📜 结论

  • 实验表明,MeshAnything能够有效从各种3D表示中生成AMs,并且在集成到不同3D资产生产流程时,能适应多样化的条件进行网格生成。定量实验通过计算Chamfer距离、Edge Chamfer距离、法线一致性等指标来评估网格质量,结果显示MeshAnything不仅能生成与艺术家作品相媲美的网格,而且在某些情况下以更少的面数超越了地面真值。
  • 噪声抵抗解码器的消融实验验证了其有效性,提高了模型在有噪声情况下的性能。

🤔 总结卡


MeshAnything是一项突破性的研究,它通过创新地将网格提取视为一个生成问题,成功地缩小了自动生产与手工创建3D资产之间的差距。该模型不仅提升了网格的拓扑效率,降低了存储和处理成本,还通过灵活的兼容性为3D行业带来了广泛的应用潜力。尽管存在一些局限性,如对复杂对象处理的局限和稳定性问题,但MeshAnything无疑为3D内容创造开辟了新的可能,有望在游戏、电影及元宇宙等领域引发生产效率的革命。未来的研究可进一步探索提高模型稳定性和扩大适用范围的方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

酒店设施和维修管理后台系统

摘 要 随着旅游业的快速发展和酒店行业的蓬勃增长,酒店行业成为了现代社会中不可或缺的一部分。酒店作为提供住宿、餐饮和其他服务的场所,需要保证设施的正常运行和及时维修,以提供良好的客户体验和满足客户需求。然而传统的手动管理方式往往…

「6.25更新日志」JVS·智能BI、逻辑引擎(服务编排)功能更新说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架,主要解决企业信息化项目交付难、实施效率低、开发成本高的问题,采用微服务配置化的方式,提供了 低代码数据分析物联网的核心能力产品,并构建了协同办公、企业常用的管理工具等&am…

React的路由(ReactRouter)-路由导航跳转

1.第一步 // createBrowserRouter路由 RouterProvider组件 import {createBrowserRouter,RouterProvider} from react-router-dom // 创建router实例对象&#xff0c;并配置路由对应关系 const routercreateBrowserRouter([{path:/login,element:<div>我是登录页</di…

【ARM】内存属性Memory Attributes (MemAttr)

目录 1. EWA 2. Device 3. Cacheable 4. Allocate 5. 内存属性的传播 6. 事务属性组合 7. Memory Type 内存属性Memory Attributes (MemAttr) 包含Early Write Acknowledgment (EWA), Device, Cacheable, 以及Allocate。 1. EWA EWA&#xff0c;Early Write Acknowledg…

Jenkins 创建流水线任务

Jenkins是一个流行的持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff09;工具。 Jenkins 创建任务 选择“流水线”类型&#xff0c;该类型的优点是定制化程度非常高 &#xff08;可选&#xff09;添加“参数化构建” 配置仓库选项(ssh连接、分支)和凭据…

一本好的电子画册应这样做,你做对了吗?

​一本好的电子画册&#xff0c;不仅要有吸引人的图文&#xff0c;还可能包括视频、音频等多媒体元素&#xff0c;为读者提供全方位的阅读体验。连贯性是指画册的整体设计风格、内容布局要协调一致&#xff0c;让读者在阅读过程中感受到流畅和自然。创新性则要求创作者在内容呈…

甲骨文(Oracle)云AI专家级证书免费获取攻略

这次分享的是甲骨文云(Oracle)2024年最新最热门的AI专家级证书&#xff0c;活动截止日期7/31。 考试为闭卷监考形式&#xff0c;但小李哥已经把题库准备好&#xff0c;分享给大家。 甲骨文Oracle☁️云计算凭借其Oracle原生产品(数据库、ERP等)在云计算市场中具有一定地位。目前…

Linux:系统引导过程与服务控制

目录 一、linux 系统引导过程 1.1、引导过程总览 1.2、系统初始化进程 &#xff08;centos 6和7 的区别&#xff09; 1.2.1、centos 6 的引导过程 init 进程 1.2.2、centos 7(systemd进程) 二、MBR、GRUB菜单、忘记密码故障修复 2.1、修复MBR扇区故障 模拟故障 重启…

代码随想录-Day41

46. 携带研究材料&#xff08;第六期模拟笔试&#xff09; 题目描述 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xff0c;但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实…

Git->git pull 和 git pull --rebase的详解

Git拉取代码的坑 格式&#xff1a;git xx指令 origin/远程仓库分支名称假如本地仓库和远程仓库都是空的 本地仓库向远程仓库提交一个文件 git commit -a -m "local first commit"&#xff1a;-a暂存修改文件到暂存区&#xff0c;准备本地提交。-m表示提交信息git pu…

2023: 芒种集•序言

2023: 芒种集•序言 2023: 芒种集•序言 从西南旅游回来&#xff0c;一直忙着整理游记“2024&#xff1a;追寻红色足迹”&#xff0c;之后又应初建平索要刘桂蓉遗作“我们一起走过”&#xff0c;于是把“别了&#xff0c;老屋”和诗作“二月”一并合编&#xff0c;把我写的悼念…

重大进展!微信支付收款码全场景接入银联网络

据中国银联6月19日消息&#xff0c;近日&#xff0c;银联网络迎来微信支付收款码场景的全面接入&#xff0c;推动条码支付互联互通取得新进展&#xff0c;为境内外广大消费者提供更多支付选择、更好支付体验。 2024年6月&#xff0c;伴随微信支付经营收款码的开放&#xff0c;微…

Chatopera 云服务实现类海尔服务智能客服的功能点比较 | Chatopera

在上一篇文章中&#xff0c;我分享了《智能客服体验分析&#xff0c;使用小程序海尔服务完成电器报修》。如果使用 Chatopera 云服务实现一个类似的应用&#xff0c;如何做呢&#xff1f;借助 Chatopera 云服务 可以实现一个智能客服&#xff0c;那么和现在的海尔服务小程序会有…

pd17虚拟机安装包:Parallels Desktop 17 激活版

Parallels Desktop 17 是一款功能强大的虚拟机软件&#xff0c;可以在 Mac 计算机上运行 Windows、Linux 和其他操作系统。使用 Parallels Desktop&#xff0c;您可以创建虚拟机并在其中安装各种操作系统&#xff0c;从而能够在同一台计算机上同时运行多个操作系统。 该软件具…

【Python datetime模块精讲】:时间旅行者的日志,精准操控日期与时间

文章目录 前言一、datetime模块简介二、常用类和方法三、date类四、time类五、datetime类六、timedelta类七、常用的函数和属性八、代码及其演示 前言 Python的datetime模块提供了日期和时间的类&#xff0c;用于处理日期和时间的算术运算。这个模块包括date、time、datetime和…

给前端小白的11个建议(少走弯路)

作为一个编程4年的的前端工程师&#xff0c;一路走来踩过许多坑。希望我的经验能让你少踩些坑&#xff0c;在编程的路上走的更顺些&#xff01; 1. 禁用var声明 只使用const或let声明变量。并且首选const&#xff0c;当一个变量需要重新赋值时&#xff0c;才使用let。并且在创…

【C++】final关键字 | 避免派生、重写

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

wps linux node.js 加载项开发,和离线部署方案

环境准备 windwos 安装node.js 安装VSCode 安装wps linux 安装node.js 安装VSCode 安装wps 通过npm 安装wpsjs SDK 使用npm安装wpsjs npm install -g wpsjs 创建一个项目 wpsjs create WPS-Addin-PPT 创建项目会让你选择2个东西&#xff1a; 1&#xff1a;选择你的文…

Qt小项目 | 实现迅雷设置界面

文章目录 一、手写代码实现迅雷设置界面 一、手写代码实现迅雷设置界面 使用Qt控件&#xff08;如&#xff1a;QListWidget与QScrollArea等&#xff09;与布局实现腾讯会议登陆界面。设置界面除基本设置界面外&#xff0c;其他界面都是以图片的形式嵌入到项目中并没有手写代码。…

SonarQube集成Jenkins平台搭建

SonarQube平台搭建 一、项目搭建的必要条件 SonarQube 8.9.10 previous LTS 依据公司现有服务目前的Jdk版本1.8&#xff0c;需要选择一个适用的长期支持版本&#xff0c;我在这里选用的是SonarQube 8.9.10 previous LTS。下载地址&#xff1a;Download Previous SonarQube Ver…