拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

UniML3D数据集揭秘:UniMate的13006个文本配对运动序列如何炼成

UniML3D数据集揭秘:UniMate的13006个文本配对运动序列如何炼成

UniML3D数据集揭秘:UniMate的13006个文本配对运动序列如何炼成

【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate

UniML3D 是 UniMate(SIGGRAPH Asia 2026 论文)的官方训练数据集,包含13,006 条文本配对运动序列,覆盖双足、四足、鸟类、海洋生物、昆虫、蛇形与铰接刚体等 7 类骨骼拓扑,并统一校准到同一规范坐标系。本文带你一次看懂:这些序列从何而来、六阶段数据流水线如何把 FBX/GLB 原始资产变成训练用运动片段,以及视觉语言模型(VLM)如何自动为每条运动生成文本描述。

一、三大来源:Mixamo、Truebones 与 Objaverse-XL 混合而成

UniML3D 并非单一数据集,而是三个来源的"大熔炉":

来源特点拓扑覆盖
Mixamo人类动作库(行走、格斗、舞蹈、手势),全部共享同一副人体骨骼双足
Truebones ZOO商业动物动作资产包(犬科、猛禽、爬行动物等),因授权限制仅发布标注文件四足、鸟类、蛇形、海洋生物、昆虫
Objaverse-XL超大规模 3D 资产库中的绑定骨骼子集,含人形、动物与机械物体全部 7 类,多样性最高

⚠️ 小知识:Truebones ZOO 是商业资产包,其运动文件不允许再分发,官方仅发布提示词、元数据与渲染图;其余两个来源可通过 Hugging Face 直接下载。

二、六阶段流水线:从原始资产到训练就绪

完整流程见 data_process/README.md,可概括为一条单向流水线:

下载 → 导出(Blender→NPZ)→ 多视角渲染 → VLM 字幕生成 → 关节标注 → 特征提取(规范化),最后阶段 5"Animate"负责在推理时把生成动作驱动回原始网格。

各阶段的入口脚本都放在 data_process/scripts/ 下,例如:

  • 下载原始数据:run_download.sh
  • 导出骨骼动画:run_export.sh
  • 字幕生成:run_caption_motion.sh
  • 关节标注:run_joints_names_clean_llm.sh
  • 特征提取:run_extract_features.sh

所有阶段默认可断点续跑——重新执行会自动跳过已完成的输出,只重试失败项,非常适合新手小规模复现。

阶段1 · 导出:Blender 无头模式输出标准 NPZ

每条运动被导出为一个 NPZ 文件,含静息姿态、逐帧局部平移/旋转、父关节索引与骨骼名称,并自动剔除不带蒙皮权重的控制/辅助骨骼、统一到 Y-up 坐标系。骨架的"修剪"是资产级原子操作:一条资产的所有运动全部导出完成后才算完成,保证数据一致。

阶段2a · 渲染:EEVEE 四相机多视角

每条运动由 4 个间隔 90° 的固定相机渲染(前/后/左/右,每段上限 200 帧、30 fps),输出v000–v003四组逐帧图像——这正是后续 VLM 字幕的输入。

阶段2b · VLM 自动字幕:每条运动配一句文本

这是"文本配对"的关键一步。默认使用本地 Qwen3.5-9B 视觉模型(也可切换 Gemini/GPT 等 API 后端),模型观察四视角画面后,按严格协议输出一句不超过 12 个词的描述。提示词模板定义在 data_process/vlm_caption/prompts.py,三个数据集共用同一套"观察协议":先确定朝向(从身体几何推断,而非相机方向)、再左右镜像校正、逐帧扫描、最后挑选最具体的动词。

🔑一个精妙设计:所有字幕的主语统一为 "An object"(如"An object flaps its wings and rises."),刻意不出现物种名、类别名、外观与颜色。这样文本编码器就无法从字幕里"偷看"数据集或拓扑标签,模型必须真正学会"文本 → 任意骨骼"的通用映射。

阶段3 · 关节标注:统一骨骼命名与朝向

不同资产库的骨骼命名五花八门(thigh_l、Upper Leg.001……)。该阶段做两件事,均有"LLM 版"和"纯规则版"双实现:

  1. 名称清洗:把原始骨骼名映射到规范解剖学词汇,输出clean_joint_names.json——这是跨资产库共享同一关节嵌入的前提;
  2. 朝向选择:为每副骨骼挑出定义"前进方向"的对称关节对(蛇形骨骼则用头尾轴),输出face_joint_names.json。

LLM 失败或超时的骨骼会自动回退到规则方法,并记录在failed_*.txt中供二次精修,还有配套的可视化脚本(run_joints_vis_tpose.sh、run_joints_vis_facing.sh)方便人工抽查。

阶段4 · 特征提取:规范化 + 质量过滤

这是把"原始素材"变成"13006 条精挑细选训练片段"的一步,实现在 data_process/feature_extraction/extract_features.py。每类资产先按 T-pose 做四步规范化:

朝向对齐(面向 +Z)→ XZ 平面居中 → 直径缩放到统一尺度 → 接地(贴合地面)

然后执行一系列质量闸门,不合格片段会被自动剔除并记录在filtered_clips.json:

过滤器默认阈值作用
关节数范围5–100(Objaverse 为 4–180)骨架过小/过大的类型直接跳过
静止帧裁剪位移 < 1e-5 计为静止去掉开头/结尾的静止段
低活跃过滤关节活跃度 < 0.02剔除几乎不动的"假动作"
跳变过滤单帧位移 ≥ 0.2 个身长且 ≥ 8 倍中位数剔除拼接错误的断裂运动
最短长度裁剪后 < 8 帧过短片段丢弃
帧率必须 30 fps保证特征尺度一致

此外,Mixamo 的 65 关节骨架会被精简到内置的22 关节人体核心;长运动可按滑动窗口切成 200 帧的重叠片段(APPLY_CLIP=1)。最终每条片段输出为含全局关节位置、局部旋转四元数与根朝向的 NPZ,并写出每类资产的拓扑条件文件cond.npy(父索引、图距离、深度、拉普拉斯特征等)——这正是模型实现"任意拓扑通用"的数据基础。

三、拿到数据:两种复现路径

  1. 直接下载:官方在 Hugging Face(Linzhan/UniML3D)发布了阶段 1–3 的全部产出(运动 NPZ、字幕、标注),只需跑一遍阶段 4 即可得到训练片段;
  2. 从零复现:按 Quick Start 顺序执行导出 → 渲染 → 字幕 → 关节标注 → 特征提取五个脚本(见 data_process/README.md),全流程自包含、可并行(--multi-worker/--multi-gpu)、可断点续跑。

得到的dataset/features/<dataset>/目录即可配合 configs/uniml3d_60frames_graph_adaln.json 等配置,用 flow matching 训练 UniMate,最终支持文本驱动运动生成、运动插值、文本编辑与运动扩展四种能力。

四、总结:13006 是怎么算出来的?

📌 一句话总结:UniML3D =Mixamo 人体动作 + Truebones 动物动作 + Objaverse-XL 多样化资产,经过"Blender 导出 → 四视角渲染 → VLM 生成拓扑无关短字幕 → 骨骼命名/朝向标注 → 规范化与多重质量过滤"的完整流水线,最终沉淀为 13,006 条统一坐标系的文本配对运动序列——这也是 UniMate 无需针对任何单一骨骼重新训练、即可"一句话驱动任意骨架动起来"的底气所在。

延伸阅读

  • 数据流水线全解:data_process/README.md
  • 字幕提示词工程:data_process/vlm_caption/prompts.py
  • 身体构型分类器:data_process/vlm_caption/classify_category.py
  • 训练配置说明:README.md

【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表