ARTICLE DETAIL

资讯详情

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

UniML3D文本标注体系揭秘:UniMate如何用VLM生成与动作对齐的运动描述

UniML3D文本标注体系揭秘:UniMate如何用VLM生成与动作对齐的运动描述 UniML3D文本标注体系揭秘UniMate如何用VLM生成与动作对齐的运动描述【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMateUniMate 是 SIGGRAPH Asia 2026 的论文项目「One Unified Model to Animate Diverse Skeletons」其配套数据集UniML3D包含 13,006 条文本-动作配对序列。这套数据的关键在于每一条 3D 骨骼动画都由VLM视觉语言模型观看多视角渲染视频后生成一句与动作严格对齐的运动描述。本文带你完整拆解 UniMate 的文本标注体系——从多视角渲染、提示词设计、三大后端到标注清洗与文本嵌入注入训练的全链路。为什么动作标注必须与动作对齐UniMate 是一个文本驱动的通用骨骼动画生成模型给定一个骨骼资产和一句英文描述例如 a dog walks forward at a steady pace模型直接生成对应动作。这要求训练数据中的每一条文本标注都满足三个条件描述的是动作本身肢体如何运动而非外观、道具或场景方向与左右必须准确向右转身不能写反风格统一让文本编码器学到一致的语义词。UniMate 在 data_process/ 目录中用一条可复现的流水线来解决这些问题标注环节位于整条流水线的Stage 2bCaption阶段阶段做什么产物Stage 2a · Render4 台相机 90° 间隔渲染每条动作render/dataset/clip/v00{0..3}/Stage 2b · CaptionVLM 观看渲染帧生成描述motion_captions.json、category_groups.jsonStage 4 · Extract归一化训练片段携带标注dataset/features/dataset/captions.jsonVLM 看到的输入4 视角同步帧Stage 2arender_mixamo.py、render_objaverse.py 等用 EEVEE 从 4 台固定相机v000–v003方位角 0°/90°/180°/270°渲染每条动作的前 200 帧。注意一个巧妙设计相机标签不携带朝向信息——任何一台相机可能正对着主体的正前方、背面或侧面。这样迫使 VLM 必须从身体本身判断朝向而不是偷懒依赖画面方位这正是方向标注准确性的第一道保障。三套提示词 一个统一模板让标注跨数据集一致核心提示词定义在 data_process/vlm_caption/prompts.py 中。它没有为三个数据集各写一套自由发挥的提示词而是用一个共享脚手架相机输入说明 → 观察协议 → 核心规则 → 风格示例拼装每个数据集只替换真正不同的部分角色设定、朝向判断线索、词汇表、示例。这套脚手架里有几个值得学习的细节统一主语所有数据集的描述都以 An object 开头见 prompts.py#L21-L25。三个数据集会混合成一份数据训练如果主语各写各的a person / a dog / a robot文本编码器就会学到数据集标签这个免费捷径破坏跨拓扑的泛化能力观察协议5 步流程——先定朝向ESTABLISH HEADING、再定左右镜像规则、扫全部帧、分类动作位移/原地旋转/纯关节运动/静止、最后选最具体的动词格式硬约束一句话、少于 12 个词、只描述一个主导动作循环动作如走路只描述一次方向不确定时宁可省略也不猜prompts.py#L66-L86。三个数据集提示词mixamo/objaverse/truebones的差异也很说明问题数据集朝向判断线索特有约束Mixamo人形无脸人偶脚尖/膝盖/胸廓凸起判断道具不渲染只能写 as if holding somethingObjaverse混合头部/脊背/喙/头尾/主位移轴按优先级禁止出现类别词dog、robot…只允许解剖词Truebones动物头/鼻/眼/喙 → 脊背方向 → 头尾即使参考标签提到物种也严禁写进描述对于 Mixamo 和 Truebones官方目录名如 Jab Cross会作为hint附带给 VLM但明确声明这是提示而非真值——描述以画面为准参考标签只用于消歧见 caption_motion.py#L82-L115 中的load_hints。三大 VLM 后端本地 Qwen 到云端 API 一键切换批量标注入口是 caption_motion.py配套脚本 run_caption_motion.sh 支持按MODEL环境变量自动路由后端路由逻辑在 backends.py#L51-L66后端典型模型特点qwen默认本地Qwen/Qwen3.5-9B原生视频输入路径2 帧时间 patching视觉 token 减半--multi-gpu多卡分片geminiAPIgemini-3-flash-preview支持 thinking 深度与媒体分辨率控制openaiAPIgpt-5-mini并发 worker 扩展工程细节同样讲究本地模型遇到 CUDA OOM 会自动减半帧数重试API 后端用指数退避抖动做重试被拒答/截断/空响应都会重新采样每 20 条增量落盘失败清单写入motion_captions_failed.txt重跑只补失败项——整条流水线断点续传。分类体系给每个骨骼打上身体构型标签除了动作描述Stage 2b 还有第二条 VLM 标注线身体构型分类。classify_category.py 让模型综合 T-pose 四视图、动作首帧、骨骼事实关节数、标签直方图如 Wing x8和已有描述把每个资产归入 8 类之一bipedal双足、quadrupedal四足、insectoid节肢、avian鸟类、marine水生、serpentine蛇形、articulated_rigid刚性机构见 classify_category.py#L79-L83外加一个uncertain兜底桶。分类采用3 票多数表决平票或低置信度一律落入uncertain交人工复核而不是静默错分提示词里还内置了决策优先级机械体 → 节肢 → 鸟类 → 水生 → 蛇形 → 四足 → 双足和大量易错案例企鹅是双足、蜜蜂是节肢而非鸟类、四足机器人是 quadrupedal……。质量清洗道具词重写与规则补丁一个隐蔽的污染源是道具词渲染里只有身体但 VLM 可能被 Rifle Run 之类的目录名带偏写出 aims a rifle。caption_rewrite_llm.py 用一份道具名词表PROP_WORDS 词表筛出可疑描述再交给纯文本 LLM 改写成只描述身体的版本aims a rifle → extends one arm forward as if aiming并校验无道具词、主语保留、短句、单句后才产出补丁 JSON。所有人工/规则修正最终由 patch_annotations.py 统一应用骨盆命名统一、无根轨迹的 walks forward 改写成 walks in place、语法修正等保证在干净数据上重跑流水线也能得到一致结果。从 captions.json 到训练文本如何进入模型清洗后的标注在 Stage 4 随训练片段落到dataset/features/dataset/captions.json。训练侧使用google/flan-t5-base文本编码器并可通过 precompute_text_emb.py 一次性预编码为caption_emb_cache.npz描述按 token 序列缓存供 cross-attention 变体使用adaLN 变体则在数据加载时取均值池化。采样时用户输入的 prompt 走同一编码路径conditioning.py 中的create_sample_condition会把测试用例的文本替换进参考片段的描述保证训练与推理的文本语义完全一致。快速上手标注环节怎么跑# 2a. 多视角渲染4 台相机 T-pose 网格 bash data_process/scripts/run_render_motion.sh objaverse --multi-worker 8 bash data_process/scripts/run_render_tpose.sh objaverse # 2b. VLM 生成动作描述默认本地 Qwen3.5-9B bash data_process/scripts/run_caption_motion.sh objaverse --multi-gpu bash data_process/scripts/run_caption_category.sh objaverse # 道具词重写补丁 人工修正 python data_process/vlm_caption/caption_rewrite_llm.py \ --captions dataset/export/objaverse/motion_captions.json \ --output patch_dir/objaverse_captions.json python data_process/tools/patch_annotations.py --dry_run关键文件导航模块路径数据流水线总览data_process/README.mdVLM 批量标注data_process/vlm_caption/caption_motion.py提示词脚手架data_process/vlm_caption/prompts.py三大后端适配data_process/vlm_caption/backends.py身体构型分类data_process/vlm_caption/classify_category.py道具词重写data_process/vlm_caption/caption_rewrite_llm.pyQA 补丁工具data_process/tools/patch_annotations.py文本嵌入预计算unimate/tools/precompute_text_emb.py 一句话总结UniML3D 的文本标注不是一次让 GPT 写个 caption的简单调用而是渲染视角设计 提示词协议 多后端容错 多轮清洗共同构成的工程体系——这正是 13,006 条动作描述能够与骨骼运动严格对齐、并支撑跨拓扑文本驱动动画的关键。【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表