ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

UniMate代码结构导读:12个核心目录如何组织成一个完整系统

UniMate代码结构导读:12个核心目录如何组织成一个完整系统 UniMate代码结构导读12个核心目录如何组织成一个完整系统【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMateUniMate 是 SIGGRAPH Asia 2026 的统一骨骼动画模型给定任意一个绑定好骨骼的 3D 资产和一句文字提示就能实时生成该骨骼的运动——无需为每种骨架重新训练。本文带你用一篇文章读懂 UniMate 的代码结构从数据工厂 data_process/ 到训练推理核心 unimate/看清12 个核心目录如何拼成一个文本 → 动画的完整系统新手也能快速定位自己要找的模块。️ 全景三大子系统12个目录各就各位UniMate 的仓库可以拆成三个子系统每个子系统由若干目录支撑子系统目录一句话职责 数据工厂data_process/原始资产 → 训练特征导出、渲染、标注、特征提取 模型核心unimate/去噪网络、训练循环、数据加载、推理入口⚙️ 运行层configs/、scripts/、assets/训练配置、一键启动脚本、示例资产与图片展开来看12 个核心目录是这样分工的#目录层级角色1unimate/核心包训练与推理的全部 Python 代码2unimate/models/核心包去噪器、扩散/流匹配调度、文本编码器3unimate/dataset/核心包多数据集混合加载、拓扑增强、归一化4unimate/training/核心包训练主循环、EMA、指标追踪5unimate/inference/核心包采样入口与三大应用任务6unimate/configs/核心包配置 JSON 的 schema 定义7unimate/utils/核心包旋转转换、拓扑、可视化等工具函数8unimate/tools/核心包文本嵌入预计算等辅助工具9data_process/数据工厂6 阶段数据流水线 自有资产预处理10configs/运行层8 份开箱即用的训练配置11scripts/运行层训练/采样/动画化一键脚本12assets/运行层可推理的示例资产与项目图片理解了这张表你就掌握了整棵目录树的主干。下面按数据 → 模型 → 推理的顺序逐个拆解。 数据工厂data_process/ 如何把原始资产喂给模型UniMate 的训练数据来自UniML3D 数据集——13,769 条带文本的运动片段、覆盖 7,430 种骨骼拓扑人形、四足、鸟类、海洋、昆虫、蛇形……。这些数据的生产线就是 data_process/目录流水线阶段做什么motion_export/1 · 导出用 Blender 把 FBX/GLB 转成统一 NPZ 运动数据motion_rendering/2a · 渲染四机位多视角渲染供视觉大模型看vlm_caption/2b · 描述VLM 生成文本描述与身体结构分类joint_annotation/3 · 关节标注LLM 规则把杂乱骨骼名映射到统一解剖词汇feature_extraction/4 · 特征提取归一化姿态、过滤坏片段、生成拓扑条件cond.npymesh_animation/5 · 动画化把生成的运动驱动回网格输出 GLB/FBX其中最值得新手了解的是 rig_preprocess/它把上面 1、3、4 阶段的代码复用起来让你把自己的一只机器人、老鹰或鲨鱼资产转成模型可直接驱动的目录cond.npy 规范姿态 GLB 预览图并在生成前停下來让你审查关节标签。仓库里 assets/examples/ 下的 Unitree Go2、老鹰、鲨鱼三个资产就是这么处理的可直接用于推理。 训练时其实不需要跑完整流水线UniML3D 已发布处理好的特征data_process更适合用自己的数据微调或动画化自有资产两条路径。 模型核心unimate/models/ 的四层结构unimate/models/ 按去噪器 → 调度器 → 编码器分层是理解 UniMate 架构的关键denoiser/去噪主干网络。两个正交维度——注意力方式full全序列 vsgraph空间/时间解耦× 文本注入方式adalnvscross_attn——组合出四个变体graph_adaln.py、full_cross_attn.py 等由 factory.py 按配置一键构建diffusion/经典 DDPM 高斯扩散调度与损失flow/流匹配传输路径与 ODE 积分器当前所有配置默认走这条路training.diff_model flowtext_encoder/默认google/flan-t5-base文本编码器把提示词变成条件向量。 数据加载与训练unimate/dataset/ unimate/training/unimate/dataset/解决骨架大小参差不齐的问题mixture/ 把多个数据集混成一个 Mixture 数据源augmentations.py 在训练时随机加关节、删末端、池化链、扰动骨长让模型见到比数据更多的拓扑conditioning.py 保证推理时看到的条件格式与训练完全一致。unimate/training/则是一个精简的训练框架train.py 是accelerate launch -m unimate.training.train的入口trainer.py 封装单步逻辑flow matching 损失 测地线旋转损失 速度平滑损失ema.py 维护推理时实际加载的 EMA 权重副本。 推理入口unimate/inference/ 一套权重四种玩法unimate/inference/ 里sample.py 是总入口--asset 资产引用 --prompt An object walks forward.就能采样骨骼既可以引用数据集truebones:Horse也可以指向rig_preprocess产出的自有资产目录。更妙的是同一个模型不做任何额外训练还能完成三个替换式采样任务部分运动固定为已知信号只去噪剩余部分motion_inbetweening.py固定关键帧生成中间过渡motion_editing.py固定选定关节按新提示重生成其余运动motion_expansion.py把多个提示词串接成一段长运动。generate.py 里的ClassifierFreeSampleModel则负责训练-推理共享的 classifier-free guidance 插值。⚙️ 运行层configs/、scripts/、assets/ 三件套configs/——一行命令的训练配方。8 份 JSON 对应 4 种数据组合 × 2 种模型变体命名规则{dataset}_{frames}frames_{attention}_{text_cond}.json。推荐配置 uniml3d_60frames_graph_adaln.json 定义了10 层 graphadaln 去噪器、60 帧窗口、最多 70 关节、logit-normal 流匹配采样等全部超参。scripts/——可执行的一键入口。run_train.sh 自动选显存最空闲的 GPU 并启动训练run_sample_motion_text.sh 及其 edit / inbetween / expand 三个兄弟脚本分别驱动上文四种推理玩法。assets/——能直接跑的例子。examples/ 里放着三条经rig_preprocess处理的自有资产示例各自附带动作与预览图 辅助目录unimate/configs/、unimate/utils/、unimate/tools/最后三个小而美的目录unimate/configs/schema.py 用 dataclass 定义了配置 JSON 的完整结构读它等于读全项目的配置字典unimate/utils/ 收纳四元数旋转转换rotation_conversions.py、拓扑工具topology_utils.py、文本嵌入缓存text_emb_cache.py等底层函数unimate/tools/precompute_text_emb.py 可在训练前把全部描述词与关节名嵌入缓存到磁盘显著加速加载。✅ 总结一张数据流串起 12 个目录回头看整个系统是一条清晰的流水线每个目录都是其中一个环节原始 FBX/GLB ──(data_process/)──▶ features cond.npy ──(configs/ scripts/)──▶ 启动训练 ──(unimate/dataset models training/)──▶ 训练好的 checkpoint ──(unimate/inference/)──▶ .npy 运动 ──(mesh_animation assets/)──▶ 可驱动的动画 GLB/FBX新手阅读建议的路径先读 README.md 跑通一次推理再顺着 data_process/README.md 看懂数据格式最后深入 unimate/models/factory.py 和 unimate/inference/sample.py 两个枢纽文件——它们分别决定了模型怎么被构建、样本怎么被生成把 12 个目录串成了一张网。【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表