遇见数据集

vlabench_primitive_etc

收藏
Hugging Face2026-06-25 更新2026-06-26 收录
官方服务:

资源简介:

VLABench Primitive ETC数据集是VLABench基准测试项目的组成部分,专门设计用于语言条件机器人操作和长时程推理任务的大规模评估。该数据集包含两个独立且自包含的子集:primitive和primitive_track2。核心数据由PNG格式的图像组成,以未压缩的tar/WebDataset风格分片存储,以优化存储和访问效率。每个子集都配有JSON格式的标注文件,通常分为训练集(jsons_train_final)和测试集(jsons_test_final)。通过index.jsonl文件提供详细的图像索引,包括图像ID、来源、原始路径、分片信息、分片内路径和文件大小。该数据集适用于机器人学、具身人工智能、视觉-语言模型以及语言条件操作等研究领域。使用时需根据具体子集定位索引和标注文件,以确保数据匹配。

The VLABench Primitive ETC dataset is part of the VLABench benchmarking project, designed to provide large-scale evaluation data for language-conditioned robot manipulation and long-horizon reasoning tasks. It consists of two independent and self-contained subsets: primitive and primitive_track2. The core data comprises PNG-format images stored in uncompressed tar/WebDataset-style shards to avoid storage and access overhead from numerous small files. Each subset includes corresponding JSON-format annotation files, typically organized as training sets (jsons_train_final) and test sets (jsons_test_final). The dataset provides detailed image indexing via an index.jsonl file, recording each images ID, source, original path, shard location, member path within the shard, and file size. It is suitable for research in robotics, embodied AI, vision-language models, and language-conditioned manipulation. Users must locate index and annotation files based on the specific subset (primitive or primitive_track2) to ensure correct data-annotation matching.

创建时间:
2026-06-25
原始信息汇总

VLABench Primitive ETC 数据集概述

许可协议: MIT

标签: robotics, etc, vision-language, embodied-ai, vlabench, language-conditioned-manipulation

论文: arxiv 2412.18194

来源链接:

  • 项目页面: https://vlabench.github.io/
  • 论文: https://arxiv.org/abs/2412.18194
  • 代码: https://github.com/OpenMOSS/VLABench
  • 原始数据集: https://huggingface.co/datasets/VLABench/raw_primitive_datasets

数据集结构与内容

该数据集包含两个独立的部分,彼此互不合并:

  1. primitive/
  2. primitive_track2/

每个部分都是自包含的,在其对应目录下存储了各自的注释、PNG tar 分片、索引、预览和清单。

目录布局

vlabench_primitive_etc/ README.md manifest.json make_shards.log verify_shards.log

primitive/ annotations/ jsons_train_final/ jsons_test_final/ data/ shard_000000.tar shard_000001.tar ... previews/ preview_0000.png preview_0000.json ... index.jsonl manifest.json

primitive_track2/ annotations/ jsons_train_final/ jsons_test_final/ data/ shard_000000.tar shard_000001.tar ... previews/ preview_0000.png preview_0000.json ... index.jsonl manifest.json

scripts/ make_shards.py verify_shards.py

  • 如果某个源部分不包含 jsons_test_final/,则该部分的目录下不会出现该文件夹。

关键设计

  • PNG 图片存储方式: 图片以未压缩的 tar/WebDataset 风格分片(.tar 文件)存储,而非海量的独立 PNG 文件,这有助于规避 Hugging Face 仓库的提交速率限制,并减少小文件带来的开销。

索引格式

每个部分拥有自己的 index.jsonl 文件。文件中每一行描述该部分 tar 分片中的一张 PNG 图片,格式如下:

json {"id":0,"source":"primitive","original_path":"select_mahjong/episode_xxx/cam_0.png","shard":"data/shard_000000.tar","member":"select_mahjong/episode_xxx/cam_0.png","size":123456}

字段含义:

  • id:该部分内基于零的图片 ID。
  • source:来源部分,值为 primitiveprimitive_track2
  • original_path:相对于该部分原始源根目录的路径。
  • shard:相对于该部分目录的 tar 分片路径。
  • member:tar 分片内部的成员路径。
  • size:原始 PNG 文件的字节大小。

注释

注释也按部分分离,存放在以下目录中:

  • primitive/annotations/jsons_train_final/
  • primitive/annotations/jsons_test_final/
  • primitive_track2/annotations/jsons_train_final/
  • primitive_track2/annotations/jsons_test_final/

注释中的原始图片路径需要根据对应部分的 index.jsonl 进行解析。例如,primitive/annotations/ 下的注释应使用 primitive/index.jsonl


使用示例

以下提供两个 Python 代码片段示例,说明如何读取图片以及如何解析注释中的图片路径。

从一个部分读取一张 PNG 图片

python import io import json import tarfile from pathlib import Path

from PIL import Image

dataset_root = Path("/path/to/vlabench_primitive_etc") part = "primitive" # 或 "primitive_track2" part_root = dataset_root / part

with (part_root / "index.jsonl").open("r", encoding="utf-8") as f: record = json.loads(next(f))

with tarfile.open(part_root / record["shard"], "r") as tar: fileobj = tar.extractfile(record["member"]) image = Image.open(io.BytesIO(fileobj.read())) image.load()

print(part, record["original_path"], image.size)

解析注释中的图片路径

python import io import json import tarfile from pathlib import Path

from PIL import Image

dataset_root = Path("/path/to/vlabench_primitive_etc") part = "primitive" part_root = dataset_root / part

index = {} with (part_root / "index.jsonl").open("r", encoding="utf-8") as f: for line in f: item = json.loads(line) index[item["original_path"]] = item

annotation_file = part_root / "annotations/jsons_train_final/trajectory/trajectory_all_train.json" with annotation_file.open("r", encoding="utf-8") as f: samples = json.load(f)

image_path = samples[0]["image"][0] if image_path.startswith(part + "/"): image_path = image_path[len(part) + 1:]

record = index[image_path] with tarfile.open(part_root / record["shard"], "r") as tar: image_bytes = tar.extractfile(record["member"]).read() image = Image.open(io.BytesIO(image_bytes)) image.load()

搜集汇总
数据集介绍
vlabench_primitive_etc 数据集图片
构建方式
该数据集以独立且自包含的方式组织了两个不同的子集:primitive与primitive_track2。每个子集在其顶层目录下完整存放了对应的注释文件、PNG图像的tar分片、索引文件、预览数据以及清单。为避免HuggingFace平台的提交速率限制并减少大量小文件带来的存储开销,PNG图像采用WebDataset风格的未压缩tar分片格式存储,而非散落成千上万个独立文件。两个子集各自拥有独立的index.jsonl索引文件,每条记录描述了分片中单张PNG的标识、来源、原始路径、所在分片、成员路径及文件大小。注释则分别存放于各子集的annotations目录下的jsons_train_final与jsons_test_final中,解析时需对应匹配各自子集的索引进行图像路径检索。
特点
该数据集最大的特点是其模块化的双部分设计,使得用户可以直接下载、检查或使用其中一个部分,而无需担心另一部分的注释或图像索引被混淆。每个子集内部均保持自包含,注释与图像索引的解析逻辑清晰对映,降低了使用的认知负担。此外,采用tar分片打包策略,相比大量零散小文件,显著提升了数据存储与传输效率,尤其适合需要完整下载或流式读取大规模图像数据的场景。数据集还提供了详尽的清单文件、分片制作与校验日志脚本,便于用户验证数据的完整性与一致性,增强了数据质量的可追溯性。
使用方法
使用该数据集时,首先需确定所使用的子集部分(primitive或primitive_track2),然后通过对应子集的index.jsonl文件检索目标图像在特定tar分片中的存储信息。读取图像时,可以利用Python的tarfile库从指定分片中提取对应成员的字节流,再通过PIL.Image进行加载。对于注释文件中的图像路径,需将其与所在子集的索引进行映射:若路径以子集名开头,则去除该前缀后作为original_path查询索引,进而定位图像。数据集同时提供了将完整发布目录上传至HuggingFace的命令示例以及基于WebDataset的流式读取思路,方便大规模训练流程的集成。
背景与挑战
背景概述
VLABench Primitive ETC数据集由张世铎、徐浙等研究人员于2024年创建,依托于VLABench项目(https://vlabench.github.io/),其核心研究问题聚焦于语言条件化的机器人操作任务,旨在推动具身智能体在复杂长时推理场景下的感知与决策能力。该数据集作为VLABench基准测试的重要组成部分,为多模态视觉语言模型与机器人操控的交叉领域提供了标准化评估资源。通过精细化的原始操作子任务划分,VLABench在强化学习与模仿学习的范式下,为探究机器人如何理解自然语言指令并执行精细操作开辟了新路径,对具身人工智能领域的实证研究产生了深远影响,促进了从仿真环境到真实世界泛化能力的量化分析。
当前挑战
该数据集所解决的领域问题极具挑战性:首先是机器人操作任务中语言指令与视觉观察的跨模态对齐难题,要求模型在长时程任务中保持对复杂语义的持久记忆与时空推理能力;其次是原始操作动作的多样性导致数据集构建面临标注一致性风险,不同操作轨迹间存在细微差异,需通过严格的元数据索引与分片存储策略加以保证。在构建过程中,海量PNG图像的小文件存储与传输成为瓶颈,团队采用WebDataset风格的tar分片方案有效规避了HuggingFace仓库的提交速率限制,但由此带来的数据校验与跨分片索引解析增加了系统复杂度,而primitive与primitive_track2两部分的独立存储虽提升了模块性,却对用户端的数据合并与混合使用构成了额外的加载负担。
常用场景
经典使用场景
VLABench Primitive ETC 数据集在具身智能与语言条件机器人操控领域中被广泛用作基准测试平台。该数据集通过提供大量带有精细注释的原始操控图像及其对应的语义索引,支持研究者训练和评估语言引导下的机器人基本动作执行能力。其经典使用方式包括利用数据集中的多视角图像和轨迹标注,构建从自然语言指令到机器人操控动作的映射模型,尤其适用于需要长期推理的任务场景。此外,该数据集的‘primitive’与‘primitive_track2’两部分设计允许研究者分别或联合使用,以测试模型在不同操控难度与任务复杂度下的泛化性能。
解决学术问题
该数据集致力于解决语言条件机器人操控中基础动作理解与泛化能力不足的学术难题。在以往研究中,机器人往往难以将抽象的语言指令准确映射到具体的操控原语,且缺乏大规模、精细标注的数据支撑。VLABench Primitive ETC 通过提供海量带有索引和注释的操控图像,使得研究者能够系统性地探索语言与动作之间的对齐关系。此举推动了长期推理任务在机器人学中的可量化研究,并为多模态学习、语义理解与动作规划等交叉领域提供了可靠的数据基石,显著提升了模型在未见任务上的零样本或小样本泛化能力。
衍生相关工作
自 VLABench Primitive ETC 数据集发布以来,已衍生出众多经典研究工作。一方面,多个团队基于该数据集的图像索引与注释格式,开发了面向长期规划的语言条件强化学习算法,显著提升了机器人跨任务迁移的效果。另一方面,该数据集的开放性和标准化结构促进了多模态模型在机器人操控领域的对比研究,例如结合视觉语言模型(VLM)进行端到端的动作解码。此外,数据集中‘primitive’与‘primitive_track2’的分治设计激发了学者对于任务分解与层级化操控策略的探索,相关成果在具身智能顶级会议与期刊上屡见不鲜。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务