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

GET3D:从图像中学习的高质量3D纹理形状的生成模型

【摘要】

本文提出了GET3D,这是一种新的生成模型,能够生成具有任意拓扑结构的高质量3D纹理网格,可以直接被3D渲染引擎使用并在下游应用中立即使用。现有的3D生成模型要么缺乏几何细节,要么生成的网格拓扑受限,通常不支持纹理,或者在生成过程中使用神经渲染器,使得它们在常见的3D软件中难以使用。GET3D能够生成高质量的3D纹理网格,涵盖汽车、椅子、动物、摩托车和人类角色到建筑物等类别,显著优于以往方法。与现有方法相比,GET3D可以直接生成具有复杂拓扑结构的明确定义的3D网格,具有丰富的几何细节和高保真的纹理。

主要贡献:

  1. 生成高质量3D网格:GET3D能够生成具有复杂拓扑结构、丰富几何细节和高保真纹理的3D网格。
  2. 端到端可训练:模型使用2D图像进行训练,利用不同的渲染技术,实现高效的端到端训练。
  3. 灵活适应下游任务:GET3D可以轻松改编以执行其他任务,如基于文本生成3D形状。

方法概述:

  • 几何生成器:使用不同的可微分表面提取方法和可微分渲染技术,直接优化和输出具有任意拓扑的3D网格。
  • 纹理生成器:将纹理表示为纹理场,使用三平面表示法,可以查询表面点以生成颜色。
  • 不同的渲染和损失函数:利用不同的渲染器进行2D图像渲染,通过对抗损失进行训练,同时引入几何正则化项。

实验结果:

  • 性能评估:在ShapeNet、Turbosquid和Renderpeople数据集上进行评估,GET3D在几何细节和纹理质量方面显著优于现有方法。
  • 应用示例
    • 材料生成:通过调整生成模型中的参数,可以生成表面材料,包括反照率、粗糙度和金属度等。
    • 文本引导的3D合成:使用CLIP进行文本引导的3D形状生成,生成的结果能够反映不同光照条件下的复杂反光效果。

总之,GET3D通过创新的生成模型架构,实现了高质量3D纹理网格的生成,为3D内容创建工具的发展提供了新的解决方案。

【数据来源】

论文数据来源总结:

论文标题: GET3D: A Generative Model of High Quality 3D Textured Shapes Learned from Images

主要贡献:

  • 引入了一种新的生成模型GET3D,能够直接生成具有复杂拓扑结构、丰富几何细节和高保真纹理的3D网格。
  • 采用不同可微表面提取方法和可微渲染技术,通过2D图像集合训练模型。
  • 实现了无监督的材料生成,用于模拟视依赖照明效果。

数据集:

  • ShapeNet: 包含超过51000个来自55个不同类别的3D模型,用于基准测试3D生成模型。
  • Turbosquid: 大型3D模型集合,具有高质量的几何和纹理。
  • RenderPeople: 包含现实世界的3D人体模型的数据集。
  • 其他: 包括椅子、汽车、摩托车、动物和房屋等类别的多种3D模型。

数据处理:

  • 对每个形状进行缩放,使其最长边等于特定值(如汽车、摩托车和人的0.9,房子的0.8,椅子和动物的0.7)。
  • 从每个对象的上半球随机采样相机姿态,生成RGB图像和轮廓。
  • 使用不同方法采集3D监督数据,如点云生成和深度帧渲染。

模型训练:

  • 使用官方PyTorch实现的StyleGAN2作为基础。
  • 训练配置包括使用判别器的 minibatch 标准偏差、生成器的指数移动平均、非饱和逻辑损失、R1正则化等。
  • 使用两种不同的鉴别器(一个用于RGB图像,一个用于轮廓)进行训练。
  • 使用Adam优化器进行训练,学习率设定为0.002,批量大小为32,使用8个A100 GPU进行训练。

评价指标:

  • 使用Chamfer距离(dCD)、Light Field距离(dLFD)、覆盖度(COV)、最小匹配距离(MMD)等几何评价指标。
  • 使用Fréchet Inception Distance (FID) 评估纹理和几何质量。
  • 通过比较生成的模型与训练集中的模型,评估生成的模型的多样性。

实验结果:

  • GET3D在多个类别的三维形状生成上显著优于现有方法。
  • 通过添加体积细分,模型能够生成更精细的几何细节。
  • 无监督的材料生成能够生成合理的表面材料属性,支持现实世界的物理渲染。

总结来说,该研究主要使用了ShapeNet、Turbosquid和RenderPeople等3D模型数据集进行训练和验证,通过不同的数据预处理和模型训练技术,实现高质量的3D纹理形状生成。

【模型架构】

GET3D 模型架构总结

GET3D (Generative Textured 3D Shapes from Images) 是一种用于生成高保真 3D 纹理网格的生成模型,这些网格可以直接被 3D 渲染引擎消费。GET3D 的主要创新点包括:

  1. 模型架构

    • GET3D 直接生成具有复杂拓扑结构和丰富几何细节的显式纹理 3D 网格。
    • 几何生成器:使用可微分的显式曲面提取方法(DMTet)和可微分渲染技术来生成具有任意拓扑结构的3D网格。
    • 纹理生成器:将纹理表示为纹理场,并使用三平面表示法(Tri-plane Representation)来表示纹理场,从而能够查询表面点的颜色。
  2. 训练过程

    • 生成过程:两部分组成:几何生成器和纹理生成器。几何生成器输出任意拓扑结构的表面网格,纹理生成器生成可以查询的纹理场。
    • 损失函数:使用2D图像和二元判别器的对抗损失进行训练。
    • 不同分辨率的数据集:通过图像分辨率对模型性能进行评估,发现高分辨率图像训练可以改善性能。
    • 体积细分:在需要高分辨率细节时使用体积细分来生成更细腻的几何结构。
  3. 应用场景

    • 材料生成:通过生成表面材料来实现视依赖光照效果。
    • 文本引导合成:通过 CLIP 模型实现文本引导的 3D 合成。

关键技术点

  1. DMTet

    • 使用可微分的显式曲面提取方法,能够生成具有任意拓扑结构和丰富几何细节的3D网格。
  2. 三平面表示法(Tri-plane Representation):

    • 用于纹理场的表示,可以方便地查询表面点的颜色。
  3. 可微分渲染

    • 使用高效的可微分渲染方法从2D图像生成3D几何体,支持对抗训练。
  4. 对抗损失

    • 使用判别器和生成器之间的对抗训练来提高生成质量。
  5. 体积细分

    • 在需要高分辨率细节时使用体积细分方法,以生成更细腻的几何结构。

结论

GET3D 是一种能够生成具有任意拓扑结构的高质量 3D 纹理网格的生成模型,使用仅基于2D图像的监督进行训练。通过实验,证明了在多个类别上比现有方法有显著改进。该工作旨在通过AI促进3D内容创作的普及,但仍存在一些局限性,如仍依赖于2D轮廓和相机分布的已知知识。

【创新点】

论文创新点总结

论文《GET3D: A Generative Model of High Quality 3D Textured Shapes Learned from Images》提出了一种新的三维生成模型GET3D,该模型能够从2D图像中生成高质量的3D纹理网格。以下是该论文的主要创新点:

  1. 直接生成复杂拓扑结构的3D纹理网格

    • GET3D能够直接生成具有复杂拓扑结构、丰富几何细节和高保真度纹理的3D网格。与之前的模型相比,它能够在不依赖于特定几何结构的情况下生成具有任意拓扑的形状。
  2. 融合不同领域的技术

    • GET3D结合了可微分表面建模、可微分渲染以及2D生成对抗网络(GAN)等领域的最新技术,从而实现从2D图像集合中训练生成模型。
    • 该模型利用了一种可微分的显式表面提取方法和可微分渲染技术,使模型能够直接优化和输出带有任意拓扑结构的3D网格。
  3. 端到端可训练性


http://www.kler.cn/a/576870.html

相关文章:

  • Bolt AI 技术浅析(五):实时编辑
  • C++20 DR11:数组 `new` 可以推导出数组大小
  • 常见的 Git 命令
  • Python 远程抓取服务器日志最后 1000行
  • c# 2025/3/8 周六
  • 网络运维学习笔记(DeepSeek优化版) 013网工初级(HCIA-Datacom与CCNA-EI)ACL访问控制列表
  • JAVA Spring Boot @Bean 注解的使用和注意事项
  • 【每日学点HarmonyOS Next知识】Tab切换声明周期、复杂Json组装、scroll最大高度、引用传递报错、Web性能
  • saltstack通过master下发脚本批量修改minion_id,修改为IP
  • 递归专题刷题
  • 大模型工程师学习日记(十五):Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析)
  • Python写一个查星座的小程序,适合初学者练手——字典和if语句练习
  • ARMV8的64位指令
  • cdn取消接口缓存
  • Redis 各数据类型使用场景详解
  • Scaling Laws for Neural Language Models
  • DIY Tomcat:手写一个简易Servlet容器
  • HTTPS安全通信协议原理
  • 什么是 Java 的 Timer?
  • opentitan riscv