BONES-SEED时间分段标签实战:用NVIDIA Kimodo时间戳精准切分复杂动作(附代码)

发布时间:2026/10/17 22:14:09
BONES-SEED时间分段标签实战:用NVIDIA Kimodo时间戳精准切分复杂动作(附代码) 数据集机器人具身智能【免费下载链接】seed项目地址https://ai.gitcode.com/hf_mirrors/bones-studio/seed点击查看免费下载BONES-SEEDSkeletal Everyday Embodiment Dataset是一个包含142,220 条标注人体动作的开源动捕数据集面向人形机器人全身控制、文本生成动作等任务。每条动作都附带了 NVIDIA 为 Kimodo 项目制作的时间分段标签temporal segmentation labels通过start_time/end_time时间戳把长动作精确切分成多个语义阶段。本文将带你快速上手如何读取这些标签、如何按时间戳把 BVH / G1 动作轨迹切成可用的动作片段。什么是BONES-SEED时间分段标签Kimodo时间戳3分钟看懂一条动捕动作往往是多阶段的比如开门动作先拧门把手、再推门、最后松手站立。如果整条当成一个样本训练模型很难学会每个阶段的细节。BONES-SEED 的时间分段标签就是为了解决这个问题——由 NVIDIA 在 Kimodo 项目框架下人工制作把每条完整动作切分为若干有意义的语义阶段每个阶段都有精确的秒级时间戳和自然语言描述。标签文件位于 metadata/ 目录文件说明seed_metadata_v002_temporal_labels.jsonl时间分段标签每行一个 JSON 对象seed_metadata_v004.parquet主元数据51 列 × 142,220 行filename列与标签文件对应seed_metadata_v004.csv同一份元数据的 CSV 版本JSONL 的 Schema 非常直观详见 README.md字段类型含义filenamestring动作文件名与主元数据filename列一致num_eventsint分段数量eventsarray按时间顺序排列的分段列表events[].start_timefloat分段起始时间秒events[].end_timefloat分段结束时间秒events[].descriptionstring该阶段的自然语言描述官方示例inside_door_knob_left_side_open_R_002__A512一个开门动作被切成 3 段{ filename: inside_door_knob_left_side_open_R_002__A512, num_events: 3, events: [ {start_time: 0.0, end_time: 1.88, description: A person rotates the door knob with their right hand.}, {start_time: 1.88, end_time: 3.53, description: A person opens the door outward from the inside, holding the knob and then lowers their hand.}, {start_time: 3.53, end_time: 4.83, description: A person is standing idle and slightly moving their right hand.} ] }可以看到4.83 秒的动作被切成了拧把手 → 推门松手 → 站立三个阶段每段都有独立的文字标签——这就是语言条件策略训练所需的动作描述配对数据。获取数据:完整克隆BONES-SEED仓库的步骤使用 Git LFS 克隆即可数据文件较大请预留磁盘空间git lfs install git clone https://link.gitcode.com/i/07781fd2fb37a9d06a1ccf96a705f995克隆完成后动作数据以压缩包形式分发解压到数据集根目录即可完整目录结构见 README.mdtar -xzf soma_uniform.tar.gz tar -xzf soma_proportional.tar.gz tar -xzf g1.tar.gz关键目录速览路径内容soma_uniform/bvh/{date}/{motion_name}.bvhSOMA Uniform 标准骨架 BVH 动作soma_proportional/bvh/{date}/{motion_name}.bvh保留演员体型比例的 BVH 动作g1/csv/{date}/{motion_name}.csvUnitree G1 机器人 MuJoCo 兼容关节角度轨迹soma_shapes/骨架与体型参数含 soma_base_rig/soma_base_skel_minimal.bvh 骨架定义 所有动作统一以120 fps采集这个采样率是后面时间戳换算的关键。快速上手:一步加载temporal标签文件标签是标准 JSONL用几行 Python 就能建好文件名 → 分段的字典示例代码源自 README.mdimport json temporal_labels {} with open(metadata/seed_metadata_v002_temporal_labels.jsonl) as f: for line in f: entry json.loads(line) temporal_labels[entry[filename]] entry[events] # 查看某条动作的分段 events temporal_labels[inside_door_knob_left_side_open_R_002__A512] for event in events: print(f[{event[start_time]:.2f}s - {event[end_time]:.2f}s] {event[description]})输出[0.00s - 1.88s] A person rotates the door knob with their right hand. [1.88s - 3.53s] A person opens the door outward from the inside, holding the knob and then lowers their hand. [3.53s - 4.83s] A person is standing idle and slightly moving their right hand.核心代码:用start_time和end_time切分动作帧拿到秒级时间戳后切分动作只需两步时间换算成帧再截取轨迹。换算关系120 fpsFPS 120 def to_frame_range(event): 把秒级时间区间换算成帧索引 [start, end) start int(round(event[start_time] * FPS)) end int(round(event[end_time] * FPS)) return start, end以 G1 机器人关节轨迹CSV 格式每行一帧为例切出单个语义片段非常简单import pandas as pd def cut_g1_clip(csv_path, event, out_path): df pd.read_csv(csv_path) s, e to_frame_range(event) clip df.iloc[s:e] # 截取该阶段的关节角度 clip.to_csv(out_path, indexFalse) print(f已切出: {event[description][:40]}... 共 {len(clip)} 帧) cut_g1_clip(g1/csv/250101/inside_door_knob_left_side_open_R_002__A512.csv, events[0], clip_rotate_knob.csv)对 BVH 文件soma_uniform/bvh/...同理BVH 分HIERARCHY骨架定义见 soma_base_skel_minimal.bvh和MOTION帧数据两大部分切分时只需保留MOTION段中对应帧区间的数据即可def cut_bvh_motion(bvh_path, start_frame, end_frame, out_path): text open(bvh_path).read() head, motion text.split(MOTION) frames motion.strip().splitlines() sliced \n.join(frames[start_frame:end_frame]) out head MOTION\nFrames: str(end_frame - start_frame) \n sliced open(out_path, w).write(out)⚠️ 一个实用技巧切出的片段若要单独播放通常需把首帧作为新的原点做相对化减去首帧平移/旋转否则角色会跳到原世界坐标位置。新手阶段可先忽略直接用于训练数据没问题。复杂动作切分的3个实战应用场景1️⃣ 语言条件策略训练Kimodo 的原始目标把每个片段作为训练样本片段BVH帧序列 该阶段 description 文本构成配对数据。相比整条动作拧把手片段配上 rotates the door knob语义对齐更精准正是人形机器人 language-to-action 学习最需要的粒度。2️⃣ 动作检索与理解用content_complex_action、content_repeated_action等元数据列seed_metadata_v004.parquet先筛出多阶段动作再结合分段标签做动作识别、风格分类等下游任务。3️⃣ G1 机器人 Sim-to-Real把切出的片段直接喂给 MuJoCog1/csv/下每个片段都是可直接播放的关节角度轨迹可在仿真中逐阶段验证机器人是否能复现拧把手这个单步操作比整条验证更容易定位失败点。常见错误清单:避坑指南坑点说明单位混淆start_time/end_time单位是秒帧数需乘 120不要直接拿它当帧索引文件名对不上标签的filename对应主元数据的filename列不含扩展名而不是move_name左右镜像动作数据集含约 7.1 万条镜像动作is_mirror为 true镜像后左手/右手类描述需留意方向反转切完忘记重采样end_time是闭区间的边界点取帧时用[start, end)半开区间避免相邻片段重复一帧压缩包含解压克隆后soma_uniform等目录是 tar 包忘了tar -xzf会找不到 BVH 文件总结BONES-SEED 的时间分段标签是动作 精确时间戳 自然语言描述三合一的宝贵资产标签文件 seed_metadata_v002_temporal_labels.jsonl 采用简洁的 JSONL 格式events数组里的start_time/end_time就是切分依据换算公式只有一条帧 秒 × 120之后对 BVH 的 MOTION 段或 G1 的 CSV 轨迹按帧截取即可切出的片段可直接用于语言条件策略训练、动作识别和 G1 机器人仿真验证。掌握这套标签读取 → 时间换算 → 轨迹截取的流程你就能把 14 万条复杂动作库变成细粒度、语义清晰的高质量训练样本。赞分享数据集机器人具身智能【免费下载链接】seed项目地址https://ai.gitcode.com/hf_mirrors/bones-studio/seed点击查看免费下载相关推荐Silero VAD语音分割基于时间戳的精确切割Silero VAD语音分割基于时间戳的精确切割 引言语音分割的痛点与解决方案 在语音处理领域准确分割语音片段是许多应用的基础如语音识别、语音唤醒、会议人工智能语音音频时间戳标准化API时间处理的终极指南时间戳标准化API时间处理的终极指南 在API设计领域 时间戳标准化 是确保系统间无缝协作的关键因素。作为HTTP API设计规范的重要组成部分标准化的时API设计教程从混乱到精准Pydantic-AI时间戳标准化实践指南从混乱到精准Pydantic AI时间戳标准化实践指南 在人工智能应用开发中时间戳管理往往是最容易被忽视却又至关重要的环节。Pydantic AI作为一款强人工智能大模型AI AgentAgent 框架工具调用MCP Clients多智能体Agent 记忆AI 评测创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询