ARTICLE DETAIL

资讯详情

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

UniMate Stage 3 关节标注教程:LLM 如何自动清理骨骼名称并选出朝向关节对

UniMate Stage 3 关节标注教程:LLM 如何自动清理骨骼名称并选出朝向关节对 UniMate Stage 3 关节标注教程LLM 如何自动清理骨骼名称并选出朝向关节对【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMateUniMate Stage 3 关节标注Joint Annotation是 UniML3D 数据流水线中承上启下的一步它用大语言模型LLM把杂乱无章的原始骨骼名称清理成统一的人体/生物解剖词表并自动选出定义角色朝向的「朝向关节对」为后续特征提取和模型训练打好地基。对新手来说Stage 3 的价值在于你不需要为几千套不同来源Mixamo、Maya、Blender、Unreal、Truebones、自定义骨骼的骨架逐一手写规则LLM 会自动「看懂」每个骨骼是身体的哪个部位并判断角色朝哪个方向。下面带你完整走一遍这两个任务。一、Stage 3 在数据流水线中的位置整个 UniML3D 流水线由多个阶段组成Stage 3 夹在「导出」与「特征提取」之间负责给每个骨架补上两类文本语义信息项目内容输入Stage 1 导出的joint_names.json{骨架ID: [原始骨骼名, ...]}输出 1clean_joint_names.json清理后的解剖标签输出 2face_joint_names.json朝向关节对所属目录data_process/joint_annotation/完整流水线说明见官方文档 data_process/README.md。两个任务各自都有LLM 版和规则版默认 LLM 模型为deepseek-v4-flash。二、任务一LLM 清理骨骼名称不同 DCC 软件给骨骼起的名字五花八门mixamorig:LeftUpLeg、Bip01_L_Thigh、left_hip_pitch_link……它们其实都指「左大腿」。清理任务的目标就是把它们全部映射到同一套标准解剖词表。核心逻辑封装在 names_clean_llm.py 中标准词表定义在 vocab.py。LLM 会一次性处理整套骨骼便于整体推理并遵守几条关键规则去掉编号与命名空间Spine_02、mixamorig:、Bip01_这些都是噪声最终标签里不保留数字、下划线、点。提取左右把L_、R_、.L、_R等前缀/后缀统一成Left/Right前缀例如mixamorig:LeftUpLeg → Left Thigh。占位兜底无法辨认的名称统一标为Bone绝不凭空编造部位。长度对齐一个输入对应一个输出绝不合并、跳过或重排。这套机制让来自完全不同的骨架共享同一套「部位名字」正是 UniMate 能在任意骨架上生成动作的前提。下面这三例分别来自四足、鸟类与海洋动物骨架展示了清理后的资产三、任务二LLM 选择朝向关节对光有部位标签还不够——模型还需要知道「这个角色面朝哪里」。朝向选择任务会挑选一对骨骼来定义朝向左右对称骨架人、马等选一对水平对称关节如左右大腿、左右肩构成左右横轴。无对称骨架蛇、鱼等选头/尾两个端点构成纵向身体轴并标记body_axis: true。实现见 face_select_llm.py。它的巧妙之处在于先做预筛把几十甚至上百个骨骼拆成 RIGHT / LEFT / HEAD / TAIL 四个小桶再只把这精简候选列表连同「规则版的结果」一起发给 LLM让模型按「左右对称 → 身体轴 → 为空」的顺序决策。规则版的优先级表大腿、肩优先四肢末端靠后在 face_select_rule.py 中定义既当提示也当兜底。输出的face_joint_names.json记录了每套骨架的r_hip、l_hip与来源Stage 4 会据此把骨架朝 Z 方向归一化。四、规则兜底没有 API 也能跑如果你没有配置 LLM 的 API Key每个任务都有纯离线、确定性的规则版可执行无需任何网络调用。而且当某个骨架的 LLM 请求失败或超时它会自动回退到规则结果并把该骨架记入failed_clean_names.txt/failed_face_joints.txt保证流程不中断。场景命令要点名称清理LLMrun_joints_names_clean_llm.sh dataset名称清理规则run_joints_names_clean_rule.sh dataset朝向选择LLMrun_joints_face_select_llm.sh dataset朝向选择规则run_joints_face_select_rule.sh dataset对应脚本见 data_process/scripts/ 目录。此外还有两次精修通道run_joints_names_correct_llm.sh复查每个标签与run_joints_face_correct_llm.sh重试朝向对为空的骨架它们就地修改并保留.bak备份。五、三条命令快速上手以 Objaverse 数据集为例在仓库根目录依次运行bash data_process/scripts/run_joints_names_clean_llm.sh objaverse # → clean_joint_names.json bash data_process/scripts/run_joints_face_select_llm.sh objaverse # → face_joint_names.json python data_process/tools/patch_annotations.py --datasets objaverse # QA 修正 想让自己的 rigged GLB / FBX也能被标注rig_preprocess复用了 Stage 3 的标注代码会在构建前停下来让你核对annotation.json里的标签与朝向对。六、如何可视化验证结果标注结果直接写入cond.npy所以务必在构建前用可视化工具核对run_joints_vis_tpose.sh dataset为每个骨架输出一张 PNG标注每个关节的标签。run_joints_vis_facing.sh dataset对比静息姿态与归一化姿态并生成facing_summary.tsv用COINCIDENT、REST-DEGNERATE、UNRESOLVED等标记标记出可疑的朝向对。看到朝向箭头指向侧面或后方时通常只需换一对更靠根部的对称关节即可修正。小结Stage 3 用「LLM 规则」双保险把骨骼名称标准化和朝向关节对选择两件事自动化是 UniMate 能跨任意骨架生成动作的关键一环。理解并跑通这一步你就掌握了 UniML3D 数据准备中最具「语义理解」色彩的环节。【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表