【3DV 进阶-11】Trellis.2 数据处理与训练流程图

本文介绍 Trellis.2 数据处理与训练流程图。

复制代码
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│                           TRELLIS.2 数据处理与训练流程图                                          │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘

                              ┌─────────────────────┐
                              │   原始3D资产下载     │
                              │   (download.py)      │
                              │  glb/fbx/obj/...    │
                              └──────────┬──────────┘
                                         │
              ┌──────────────────────────┼──────────────────────────┐
              │                          │                          │
              ▼                          ▼                          ▼
   ┌─────────────────────┐   ┌─────────────────────┐    ┌─────────────────────┐
   │  导出白模网格        │   │  导出PBR纹理        │    │  渲染多视角图像      │
   │  (dump_mesh.py)     │   │  (dump_pbr.py)      │    │  (render_cond.py)   │
   │                     │   │                     │    │                     │
   │  mesh_dumps/*.pkl   │   │  pbr_dumps/*.pkl    │    │  rendered_cond/     │
   │  (vertices+faces)   │   │  (BaseColor,Metal   │    │  (16张多视角图像)    │
   │                     │   │   Roughness,Alpha)  │    │                     │
   └──────────┬──────────┘   └──────────┬──────────┘    └──────────┬──────────┘
              │                          │                          │
              ▼                          ▼                          │
   ┌─────────────────────┐   ┌─────────────────────┐               │
   │  形状体素化          │   │  PBR体素化          │               │
   │  (dual_grid.py)     │   │  (voxelize_pbr.py)  │               │
   │                     │   │                     │               │
   │  dual_grid_256/     │   │  voxel_pbr_256/     │               │
   │  dual_grid_512/     │   │  voxel_pbr_512/     │               │
   │  dual_grid_1024/    │   │  voxel_pbr_1024/    │               │
   │  (O-Voxels格式)     │   │  (O-Voxels格式)     │               │
   └──────────┬──────────┘   └──────────┬──────────┘               │
              │                          │                          │
              │     ┌────────────────────┘                          │
              │     │                                               │
              ▼     ▼                                               │
   ╔═══════════════════════════════════════════╗                   │
   ║          SC-VAE 训练 (第一阶段)            ║                   │
   ╠═══════════════════════════════════════════╣                   │
   ║                                           ║                   │
   ║  ┌─────────────────────────────────────┐  ║                   │
   ║  │  Shape VAE                          │  ║                   │
   ║  │  配置: shape_vae_next_dc_f16c32     │  ║                   │
   ║  │  数据: FlexiDualGridDataset         │  ║                   │
   ║  │  输入: dual_grid_* (O-Voxels)       │  ║                   │
   ║  │  输出: Shape Encoder + Decoder      │  ║                   │
   ║  └─────────────────────────────────────┘  ║                   │
   ║                                           ║                   │
   ║  ┌─────────────────────────────────────┐  ║                   │
   ║  │  Texture VAE                        │  ║                   │
   ║  │  配置: tex_vae_next_dc_f16c32       │  ║                   │
   ║  │  数据: SparseVoxelPbrDataset        │  ║                   │
   ║  │  输入: voxel_pbr_* (O-Voxels+PBR)   │  ║                   │
   ║  │  输出: Texture Encoder + Decoder    │  ║                   │
   ║  └─────────────────────────────────────┘  ║                   │
   ║                                           ║                   │
   ╚═══════════════════════════════════════════╝                   │
              │                                                     │
              │ (使用训练好的Encoder)                               │
              ▼                                                     │
   ┌─────────────────────────────────────────────────┐             │
   │              编码潜在表示 (Latents)              │             │
   ├─────────────────────────────────────────────────┤             │
   │                                                 │             │
   │  encode_shape_latent.py → shape_latent_*/      │             │
   │  encode_pbr_latent.py   → pbr_latent_*/        │             │
   │  encode_ss_latent.py    → ss_latent_*/         │             │
   │                                                 │             │
   └──────────────────────────┬──────────────────────┘             │
                              │                                     │
                              └────────────────┬────────────────────┘
                                               │
                                               ▼
              ╔═══════════════════════════════════════════════════════════════════╗
              ║                 Flow Model 训练 (第二阶段)                         ║
              ╠═══════════════════════════════════════════════════════════════════╣
              ║                                                                   ║
              ║  ┌─────────────────────────────────────────────────────────────┐  ║
              ║  │  1. SS Flow (稀疏结构生成器)                                 │  ║
              ║  │     配置: ss_flow_img_dit_1_3B_64_bf16                      │  ║
              ║  │     数据: ImageConditionedSparseStructureLatent            │  ║
              ║  │     输入: ss_latent + rendered_cond (图像条件)              │  ║
              ║  │     功能: 从图像生成稀疏结构                                │  ║
              ║  └─────────────────────────────────────────────────────────────┘  ║
              ║                                                                   ║
              ║  ┌─────────────────────────────────────────────────────────────┐  ║
              ║  │  2. Shape SLAT Flow (形状生成器)                            │  ║
              ║  │     配置: slat_flow_img2shape_dit_1_3B_512_bf16            │  ║
              ║  │     数据: ImageConditionedSLatShape                        │  ║
              ║  │     输入: shape_latent + rendered_cond (图像条件)          │  ║
              ║  │     功能: 从图像生成形状潜在表示                           │  ║
              ║  └─────────────────────────────────────────────────────────────┘  ║
              ║                                                                   ║
              ║  ┌─────────────────────────────────────────────────────────────┐  ║
              ║  │  3. Texture SLAT Flow (纹理生成器)                          │  ║
              ║  │     配置: slat_flow_imgshape2tex_dit_1_3B_512_bf16         │  ║
              ║  │     数据: ImageConditionedSLatPbr                          │  ║
              ║  │     输入: pbr_latent + shape_latent + rendered_cond        │  ║
              ║  │     功能: 基于形状+图像生成纹理潜在表示                    │  ║
              ║  └─────────────────────────────────────────────────────────────┘  ║
              ║                                                                   ║
              ╚═══════════════════════════════════════════════════════════════════╝


┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                        数据依赖总结                                               │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                                  │
│   训练阶段                    │  需要的数据                        │  数据处理脚本               │
│  ─────────────────────────────┼────────────────────────────────────┼───────────────────────────  │
│   Shape VAE                  │  dual_grid_*                       │  Step 4-5                   │
│   Texture VAE                │  voxel_pbr_* + dual_grid_*         │  Step 4-5                   │
│   SS Flow                    │  ss_latent + rendered_cond         │  Step 6-7                   │
│   Shape SLAT Flow            │  shape_latent + rendered_cond      │  Step 6-7                   │
│   Texture SLAT Flow          │  pbr_latent + shape_latent + cond  │  Step 6-7                   │
│                                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘

总结

数据处理共7步,训练分2个阶段:

数据处理流程

  1. 步骤1:安装依赖

    初始化环境并安装必要依赖:

    . ./data_toolkit/setup.sh

  2. 步骤2:初始化元数据

    加载数据集元数据(训练集:ObjaverseXL, ABO, HSSD, TexVerse;测试集:SketchfabPicked, Toys4k)

  3. 步骤3:下载数据

    下载3D资产到本地存储,支持多节点分布式下载

  4. 步骤4:处理网格和PBR纹理

    标准化3D资产:

    • 导出网格(dump_mesh.py
    • 导出PBR纹理(dump_pbr.py
    • 获取资产统计信息(asset_stats.py)
  5. 步骤5:转换为O-Voxels

    将处理后的网格和纹理转换为O-Voxels格式:

    • dual_grid.py:生成形状的O-Voxels
    • voxelize_pbr.py:生成PBR纹理的O-Voxels
    • 支持多分辨率(如 256, 512, 1024)
      此时数据集可用于 SC-VAE 训练
  6. 步骤6:编码潜在表示(Latents)

    为训练第一阶段生成器,将稀疏结构编码为潜在表示:

    • 编码形状潜在表示(encode_shape_latent.py
    • 编码PBR潜在表示(encode_pbr_latent.py
    • 更新元数据
    • 编码稀疏结构(SS)潜在表示(encode_ss_latent.py
  7. 步骤7:渲染图像条件

    为训练图像条件生成器,渲染多视角图像(默认每个资产16个视角

阶段一:SC-VAE 训练(需要 Step 1-5 的数据)

  • Shape VAE:学习形状的压缩表示,输入 O-Voxels 形状
  • Texture VAE:学习纹理的压缩表示,输入 O-Voxels + PBR

阶段二:Flow Model 训练(需要 Step 6-7 的数据)

用训练好的 VAE Encoder 编码数据后:

  • SS Flow:从图像生成稀疏结构(低分辨率骨架)
  • Shape SLAT Flow:从图像生成高分辨率形状
  • Texture SLAT Flow:基于形状+图像生成纹理
相关推荐
老师用之于民1 小时前
【DAY20】数据结构基础:(算法)排序、折半查找的函数实现
数据结构·算法·排序算法
新加坡内哥谈技术1 小时前
把数据中心送上太空毫无意义
人工智能
极速learner1 小时前
Dan Koe大神的AI使用思路分析:视频解读
人工智能
一起养小猫2 小时前
Flutter for OpenHarmony 进阶:推箱子游戏算法与关卡设计深度解析
算法·flutter·游戏
怪兽毕设2 小时前
基于Django的洗衣服务平台设计与实现
后端·python·django·洗衣服务平台
乾元2 小时前
下一代检测:基于自编码器(Autoencoder)的异常流量检测
运维·网络·人工智能·深度学习·安全·安全架构
民乐团扒谱机2 小时前
【微实验】Zhang-Suen 快速并行细化算法与MATLAB实现
人工智能·学习·算法·计算机视觉·数学建模·matlab
愚公搬代码2 小时前
【愚公系列】《AI短视频创作一本通》012-AI 短视频分镜头设计(AI绘画提示词入门)
人工智能·ai作画·音视频
iAkuya2 小时前
(leetcode)力扣100 60单词搜索(回溯)
算法·leetcode·职场和发展