当前位置: 首页 > article >正文

【论文精读】把一切转成mesh!MeshAnything和MeshAnythingV2论文解析

MeshAnything

效果——高度可控的人造Mesh生成

之前方法的缺点,例如Marching Cubes和Get3D,

  • 面片数过于稠密。生成的Mesh都是面片非常稠密的Mesh,面片数往往是人造Mesh的数百倍,几乎不可能应用于游戏,电影等实际3D工业。
  • 拓扑结构不合理。并且由于它们的面片结构不符合人类直觉,3D建模师很难再对其进行细致的加工。
  • 这一问题没法简单地依靠remesh来解决,在不影响效果的前提下,remesh方法仅仅能够小幅度地减少面片。

在这里插入图片描述

Q:使用marching cube生成 再用Qslim简化应该可以吧?
A:事实上还是达不到“人造mesh”这种高效程度

在这里插入图片描述

原理——将Mesh面片视作token,组成token序列

MeshAnything是一个自回归的transformer(autoregressive transformer),其将Mesh的每个面片视作token,整个Mesh被视作token序列,接着像大语言模型一样,一个token一个token地生成,最终生成出整个Mesh。

MeshAnything运用精妙的condition设计,其将点云作为condition来实现高度可控的人造Mesh生成,具体来说,这个过程包括以下几个步骤:

  1. 从给定的3D资产中采样点云(point clouds)。
  2. 将这些点云编码成特征(features)。
  3. 将这些特征注入到仅解码器的变换器(decoder-only transformer)中,以实现基于形状的网格生成(shape-conditional mesh generation)。

优势——任何源3D数据都能转mesh, 训练难度低

  • 任何源数据都能转。MeshAnything以点云为condition的设计让其可以与诸多3D扫描,3D重建,3D生成的方法结合。这些种类繁多的方法最终得到的3D表示虽然多样,但总能从中采样到点云,从而输入到MeshAnything中转为人造Mesh,帮助这些能输出3D模型的工作运用到实际3D工业中。
  • 训练难度低。另外,这种设计还大大降低了MeshAnything的训练难度,提高了效果。因为点云提供了精细的3D形状信息,MeshAnything不需要去学习复杂的3D形状分布,只需要学习如何搭建出符合给定点云的人造Mesh。

MeshAnything文章解析

简而言之,MeshAnything 是一种模型,它使用形状条件的自回归Transformer和抗噪解码器,将自动生成的3D资产转换为艺术家创作的网格(AM),从而提高3D行业的效率和质量。

问题

  1. 任务:网格提取
    ◦ 本文旨在解决3D行业中从自动生成的3D资产中提取网格的问题。
  2. 当前困难和挑战:
    ◦ 现有方法以重建的方式提取具有过密面的3D网格,导致存储、渲染和模拟效率低下。
    ◦ 以前的方法没有考虑形状特征和拓扑质量,导致将生成的结果集成到3D行业流程中时面临挑战。
  3. 研究动机:
    ◦ 研究的动机是将自动生成的3D资产转换为模仿人类艺术家创建的形状和拓扑质量的艺术家创建网格(AM)。
    ◦ 通过将网格提取公式化为生成问题,本文旨在提高效率,降低人工成本,并促进游戏、电影和元宇宙等行业的进步。

方法

本文提出以下方法:

  1. 形状条件下的 AM 生成:该方法将网格提取视为一个生成问题,生成与指定形状对齐的艺术家创作网格 (AM)。通过将网格提取公式化为生成问题,该方法旨在模仿人类艺术家进行网格提取,并生成具有高效拓扑结构的 AM。
  2. MeshAnything:该模型包含一个用于学习网格词汇的 VQ-VAE 和一个用于形状条件自回归网格生成的形状条件解码器专用 Transformer。MeshAnything 将自动生成的 3D 资产转换为 AM,在保持与先前方法相当的精度的情况下,提高了存储、渲染和模拟效率。

实验

该论文在 Objaverse 和 ShapeNet 数据集上进行了实验。

  • 实验步骤:数据选择
    • 关键词:数据选择
    • 详细描述:论文选择了 Objaverse 和 ShapeNet 数据集,因为它们具有互补的特性,并过滤掉了面数超过 800 的网格,以及手动过滤掉了低质量的网格。最终数据集包含来自 Objaverse 的 51k 个网格和来自 ShapeNet 的 5k 个网格。
  • 实验步骤:数据处理和增强
    • 关键词:数据处理和增强
    • 详细描述:论文对网格中的面和顶点进行了排序,并应用了动态缩放、平移和旋转增强,并将每个网格归一化为从 -0.5 到 0.5 的单位边界框,以便在训练期间进行数据处理和增强。
  • 实验步骤:定性实验
    • 关键词:定性实验
    • 详细描述:论文展示了 MeshAnything 从各种 3D 表示生成 AM 的定性结果,展示了在各种条件下有效的网格生成,并证明了该模型能够生成与人类艺术家创建的网格相当或超越的网格。
  • 实验步骤:定量实验
    • 关键词:定量实验
    • 详细描述:论文将 MeshAnything 与 Marching Cubes 和 Remesh 方法进行了比较,使用 Chamfer 距离、边缘 Chamfer 距离、法线一致性、网格顶点数、网格面数以及估计顶点和面与真实值的比率等指标评估网格质量。结果表明,MeshAnything 在拓扑效率和网格质量方面优于其他方法。
  • 实验步骤:对抗噪声条件解码器的消融实验
    • 关键词:对抗噪声条件解码器的消融实验
    • 详细描述:论文进行了消融实验,以验证 MeshAnything 中抗噪声解码器的有效性,比较了有和没有形状条件和抗噪声解码器的重建结果。结果表明,形状条件和抗噪声解码器提高了网格重建性能。

这些实验步骤和结果突出了 MeshAnything 在 Objaverse 和 ShapeNet 数据集上的全面评估和验证。

**MeshAnything V2

相比第一代有何提升?

可生成面数增加,因为mesh token的表达效率提高了2倍。

MeshAnything V2在V1版本的基础上大幅度提高了性能,并将最大可生成面数800提升到了1600。

其主要提升来源于其新提出的Adjacent Mesh Tokenization(AMT)算法。

相比之前的Mesh tokenization方法,AMT平均只需要一半长度的token sequence即可表达同一个Mesh

由于transformer的计算是n^2复杂度,一半长度的token sequence意味着降低了4倍的attention计算量。并且AMT得到的token sequence更加紧凑,结构更好,更有利于transformer的学习。

AMT是通过尽可能地仅仅用一个vertex来表达一个一个面片来实现上述进步的
在这里插入图片描述

推荐阅读

MeshAnything V2重磅开源!30秒生成建模师级的3D Mesh!-CSDN博客


http://www.kler.cn/news/359030.html

相关文章:

  • 使用centos8在docker环境下编译ceph reef并使用s3cmd与awscli测试
  • 【某农业大学计算机网络实验报告】实验五 TCP 运输连接管理
  • RFC2616 超文本传输协议 HTTP/1.1
  • 修改pq_default.ini禁用降噪,解决S905X3电视盒硬解视频画质模糊、严重涂抹得像油画、水彩画的问题
  • 冲击美团!已成功 OC
  • 重磅!望繁信科技与德勤中国签署战略合作协议
  • OneThink ThinkCMS think.cms
  • 如何基于 Python 快速搭建 QQ 开放平台 QQ 群官方机器人详细教程(更新中)
  • C语言[数组作函数参数]
  • 论文《Text2SQL is Not Enough: Unifying AI and Databases with TAG》
  • Java AI赋能MJ绘画系统开启创意绘图新纪元
  • Spring AI Alibaba 接入国产大模型通义千问
  • C:浅谈数组指针的声明
  • CODESYS面向对象编程:方法/动作/属性的使用
  • MyBatis 动态 SQL 详解
  • Mac通过键盘选取内容
  • 京东云主机和云服务器有啥区别?轻量云主机就是轻量应用服务器吗?
  • 编写Python 自动化安装openGauss 数据库方法和代码 (2)
  • Lua条件语句
  • MongoDB Shell的使用