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内容创造开辟了新的可能,有望在游戏、电影及元宇宙等领域引发生产效率的革命。未来的研究可进一步探索提高模型稳定性和扩大适用范围的方法。

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

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

相关文章

二进制部署Prometheus

在监控里面Prometheus现在用的还是比较多的,一般我们都是在Kubernetes环境里面部署,然后监控咱们的容器化环境,今天给大家分享一些不一样的,使用二进制的方式在机器上直接部署,并且监控机器上的进程。 说到监控大家通常…

普陀食材配送沪鑫餐饮专业化、标准化、现代化新篇章

在上海普陀这片繁华的土地上,企事业单位如繁星点点,它们不仅推动了区域经济的飞速发展,更在员工福利待遇上不断追求卓越。其中,食材配送作为后勤管理的重要环节,正迎来专业化、标准化、现代化的新篇章。 提及普陀食材配…

短视频开源项目MoneyPrinterTurbo:AI副业搞起来,视频制作更轻松!

目录 引言一、MoneyPrinterTurbo简介二、MoneyPrinterTurbo的核心功能三、MoneyPrinterTurbo的未来发展四、MoneyPrinterTurbo与AI副业五、部署实践1、克隆代码2、创建虚拟环境3、安装依赖4、安装好 ImageMagick5、端口映射6、启动Web界面7、模型配置8、填写主题9、视频生成10、…

OpenSSL 生成 RSA 公钥和私钥

sudo apt-get update sudo apt-get install openssl、 生成私钥 openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048 提取公钥 openssl rsa -pubout -in private.pem -out public.pem cat public.pem 将文件导出就行

使用事件日志识别常见 Windows 错误

事件查看器,一个标准的诊断工具,嵌入在Windows操作系统,记录了所有的系统事件,该日志捕获有关硬件问题、软件中断和整体系统行为的详细信息。通过分析这些日志,管理员可以查明系统错误和运行时错误的根本原因。了解如何…

达索系统 PLM:引领创新的数字化解决方案

在当今竞争激烈的商业环境中,企业需要不断提升创新能力和运营效率,以应对快速变化的市场需求。产品生命周期管理(PLM)系统作为一种综合性的数字化解决方案,正逐渐成为企业实现可持续发展的关键。而达索系统的 PLM 则以…

OpenCV--图像的运算

图像的运算 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像的运算 """# 读取图片 cat1 cv2.imread(./img/cat.jpeg) cat2 cv2.imread(./img/cat.jpeg)""" 加减乘除 """ # 加法(有点杂交的感觉)…

MySQL的字符集与排序规则

在MySQL数据库中,字符集(Character Set)和排序规则(Collation)是两个至关重要的概念,它们共同决定了数据库中字符数据的存储、比较和排序方式。对于涉及多语言、国际化或特殊字符处理的应用来说&#xff0c…

56岁张卫健前任貌突然回春大进化?自曝婚礼前夕流产

现年56岁的江欣燕于1985年以18岁之龄参加第4届新秀歌唱大赛入行,曾拍过多部无线经典电视剧,包括《娱乐插班生》、《同事三分亲》及《女人俱乐部》等。现时甚少作幕前演出的江欣燕日前在社交平台上载分享了新短片,当中更以Deep V上阵&#xff…

大数据集群搭建基础:Hadoop完全分布式搭建学习指南!!

Hadoop完全分布式搭建学习指南 Hadoop版本:Hadoop2.X JDK版本:JDK1.8一、准备工作 设置主机名和IP 在三台CentOS 7.4机器上分别设置主机名和IP: node1: 192.168.14.10node2: 192.168.14.20node3: 192.168.14.30 修改主机名(以nod…

从 0 打造私有知识库 RAG Benchmark 完整实践

背景介绍 最近从 0 构建了一个大模型知识库 RAG 服务的自动化 Benchmark 评估服务,可以基于私有知识库对 RAG 服务进行批量自动化测试与评估。本文是对这个过程的详细记录。 本文实际构建的是医疗行业知识库,基于高质量的医学指南和专家共识进行构建。…

前端从视频文件提取画面帧

extractFramesFromVideo方法提取画面帧 // 设定一个异步函数,输入参数为: // videoUrl(需要提取画面帧的视频的URL) // fps(每秒帧率,默认为25帧) async function extractFramesFromVideo(vide…

Linux中MySQL的相关配置及命令(Ubuntu22.04)

安装 MySQL apt install mysql-server apt install mysql-client相关配置文件 默认配置文件地址: /etc/mysql/mysql.conf.d 基础配置如下 # 基础配置 [mysqld] # # * Basic Settings # user mysql pid-file /var/run/mysqld/mysqld.pid socket /var/run/mysqld/mysqld.…

uni-app地图组件控制

uni.createMapContext(mapId,this) 创建并返回 map 上下文 mapContext 对象。在自定义组件下&#xff0c;第二个参数传入组件实例this&#xff0c;以操作组件内 <map> 组件。 注意&#xff1a;uni.createMapContext(mapId, this) app-nvue 平台 2.2.5 支持 uni.create…

DataWorks Copilot:大模型时代数据开发的新范式

导读 DataWorks 是阿里云一站式智能化数据开发与治理平台&#xff0c;支持搭配MaxCompute/Hologres/AnalyticDB/StarRocks/EMR/CDH 等大数据引擎&#xff0c;为企业构建数据仓库、数据湖以及湖仓一体&#xff08;Lakehouse&#xff09;现代数据架构提供数据平台产品解决方案。…

推荐一款功能强大的显示器!

最近在写项目开发文档&#xff0c;经常需要几个界面来回切换&#xff0c;真的深刻感受到了一台外接显示器对一名程序员来说有多重要了&#xff0c;画功能流程图的时候嫌弃自己的笔记本屏幕不够大&#xff0c;看代码的时候又在想要是有个旋转屏就好了&#xff0c;来回切换界面的…

C实时导航

导航算法怎么改成实时的&#xff1f; 将导航算法改为实时运行需要考虑几个关键因素&#xff0c;包括数据源的实时性、算法的计算效率、以及与外部硬件&#xff08;如传感器、执行器等&#xff09;的实时交互。由于MATLAB不是用于实时系统的首选工具&#xff08;尽管它有一些实时…

【JavaScript复习二】选择结构if和Switch(1)

### []( )2、单分支条件分支语句if (条件表达式) { // 条件为真时&#xff0c;做的事情 } else { // 条件为假时&#xff0c;做的事情 } ### []( )2,、多分支的 if 语句if (条件表达式1) { // 条件1为真时&#xff0c;做的事情} else if (条件表达式2) { // 条件1不满足&…

使用Selenium进行Web自动化:详细操作指南

使用Selenium进行Web自动化:详细操作指南 引言 Selenium是一个广泛使用的开源工具,用于自动化Web浏览器的操作。无论你是进行自动化测试,还是需要抓取网页数据,Selenium都是一个非常有用的工具。本文将详细介绍Selenium的一些常见用法,包括输入框设置值、文件上传、单选…

java基础·小白入门(四)

目录 异常处理基本概念处理过程 Java泛型与容器类泛型容器类 异常处理 基本概念 异常&#xff08;exception&#xff09;&#xff1a;是指在硬件和操作系统正常时&#xff0c;程序遇到的运行错误。如数组下标越界、除数为0、用户输入非法、打开一个不存在的文件、网络连接中断…