vga_nota_dataset
收藏资源简介:
LIBERO-3D 是一个为机器人操作任务设计的数据集,旨在为 openvla/modified_libero_rlds 数据集提供每个训练 episode 的度量深度图和相机位姿(内参 K 和外参 E)。深度和相机位姿直接从 LIBERO MuJoCo 模拟器渲染,并与 RLDS 的 episode 逐帧对齐。该数据集是自包含的:RGB 图像直接复制自源数据集,与深度、相机位姿、本体感知、动作和语言指令整合在一个 HDF5 文件中。数据集包含四个套件:spatial(432 个 episode,52970 帧)、object(454 个 episode,66984 帧)、goal(428 个 episode,52042 帧)和 long(libero_10,379 个 episode,101469 帧),总计 1693 个 episode,273465 帧。每个 episode 包含以下字段:图像(JPEG 编码的 RGB,256×256,两个视角:agentview 和 wrist)、深度图(float16,224×224,以米为单位的 z 深度)、外参(float32,每帧的相机到世界 4×4 矩阵)、内参(float32,每套件固定的 2×3×3 矩阵)、状态(float32,末端执行器位置、方向、夹爪宽度)和动作(float32,位置增量、旋转增量、夹爪控制)。此外,还提供了语言指令缓存(40 条指令的嵌入向量和文本)。该数据集适用于视觉-语言-动作(VLA)模型训练、机器人操作任务中的深度感知与相机位姿估计等场景。
LIBERO-3D is a dataset designed for robot manipulation tasks, aiming to provide metric depth maps and camera poses (intrinsic K and extrinsic E) for each training episode of the openvla/modified_libero_rlds dataset. Depth and camera poses are directly rendered from the LIBERO MuJoCo simulator and aligned frame-by-frame with RLDS episodes. The dataset is self-contained: RGB images are directly copied from the source dataset, integrated with depth, camera poses, proprioception, actions, and language instructions in a single HDF5 file. The dataset contains four suites: spatial (432 episodes, 52970 frames), object (454 episodes, 66984 frames), goal (428 episodes, 52042 frames), and long (libero_10, 379 episodes, 101469 frames), totaling 1693 episodes and 273465 frames. Each episode includes the following fields: images (JPEG-encoded RGB, 256x256, two views: agentview and wrist), depth maps (float16, 224x224, z-depth in meters), extrinsics (float32, camera-to-world 4x4 matrix per frame), intrinsics (float32, fixed 2x3x3 matrix per suite), state (float32, end-effector position, orientation, gripper width), and actions (float32, position delta, rotation delta, gripper control). Additionally, a language instruction cache (embedding vectors and text of 40 instructions) is provided. This dataset is suitable for visual-language-action (VLA) model training, depth perception in robot manipulation tasks, and camera pose estimation.
LIBERO-3D (no-op aligned) 数据集总结
数据集概述
LIBERO-3D 是一个面向机器人学习(VLA)任务的数据集,为 openvla/modified_libero_rlds 数据集的每个训练片段提供了度量深度图和相机位姿(内参矩阵 K 和外参矩阵 E),并与 RLDS 片段逐帧对齐。该数据集是自包含的,RGB 图像直接复制自源数据集,深度和相机参数则通过 LIBERO MuJoCo 模拟器渲染生成。
- 许可证: MIT
- 任务类别: robotics
- 标签: libero, depth, camera-pose, vla, openvla, 3d
数据内容与文件结构
数据集包含以下主要文件:
| 文件 | 大小 | 说明 |
|---|---|---|
libero_3d_no_noops_aligned.hdf5 |
~19 GB | 核心数据集(RGB + 深度 + K + E + 状态 + 动作) |
lang_cache/libero_instructions.npy |
0.24 MB | 40 条指令的嵌入向量,形状 (40, 1536) float32 |
lang_cache/libero_instructions.instructions.json |
2 KB | 40 条指令字符串,与 .npy 行序对应 |
verify_alignment.ipynb |
1.9 MB | 对齐验证的可运行脚本 |
数据字段说明
数据按 4 个套件(spatial | object | goal | long)组织,每个片段以 RLDS 默认读取顺序编号,episode_<i> 与 modified_libero_rlds 中的片段一一对应。相机索引规则:[0] = 正面静态相机(agentview),[1] = 腕部相机(eye-in-hand)。
| 路径 | 形状 | 数据类型 | 说明 |
|---|---|---|---|
<suite>/intrinsics |
(2, 3, 3) |
float32 | 相机内参矩阵 K,每套件所有片段相同。agentview: fx=fy=270.39, cx=cy=111;wrist: fx=fy=145.96 |
<suite>/episode_<i>/image |
(L, 2) |
vlen uint8 | JPEG 编码的 RGB 图像(256×256),[agentview, wrist],直接复制自源数据集 |
<suite>/episode_<i>/depth |
(L, 2, 224, 224) |
float16 | 以米为单位的深度图(z-depth),沿相机光轴方向到每个像素的距离 |
<suite>/episode_<i>/extrinsics |
(L, 2, 4, 4) |
float32 | 逐帧相机到世界的 4×4 位姿矩阵(OpenCV 约定,+Z 指向场景内)。agentview 固定,wrist 随机械臂移动 |
<suite>/episode_<i>/state |
(L, 8) |
float32 | 机器人本体感知:末端位置 (3) + 姿态 (3) + 夹爪 (2) |
<suite>/episode_<i>/action |
(L, 7) |
float32 | 控制指令:Δ位置 (3) + Δ旋转 (3) + 夹爪 (1),与 RLDS 动作完全一致,用于对齐 |
逐片段属性
每个片段的 attrs 记录来源信息:
| 属性 | 类型 | 说明 |
|---|---|---|
language_instruction |
str | 任务文本,如 "pick up the orange juice and place it in the basket" |
source_demo |
str | 源演示,格式为 <task>/demo_<k> |
mode |
str | contig(连续帧窗口)或 subseq(非连续帧) |
orig_demo_len |
int | 原始演示帧数(去除非操作帧之前) |
length |
int | 当前片段帧数(等于 RLDS 片段长度) |
offset_k |
int | 仅 contig 模式:被丢弃的前导帧数,源帧为 orig[k : k+L] |
source_indices |
int32 (L,) |
仅 subseq 模式:使用的原始演示帧索引 |
统计信息
| 套件 | 片段数 | 帧数 |
|---|---|---|
| spatial | 432 | 52,970 |
| object | 454 | 66,984 |
| goal | 428 | 52,042 |
| long (libero_10) | 379 | 101,469 |
| 总计 | 1,693 | 273,465 |
使用约定
- 反投影公式:
world = E @ (z · K⁻¹ · [u, v, 1]) - 方向对齐:深度/K/E 存储在 RLDS-RGB 坐标系中,
depth[y, x]与modified_libero_rlds的image[y, x]完全匹配,无需翻转或旋转(已验证重投影误差为 0) - 分辨率:深度/K/E 为 224×224,RGB 图像为 256×256,若需结合使用需先将 RGB 缩放到 224
构建方法
- 深度获取:在 LIBERO 模拟器中逐帧重放每个演示,通过
set_state设置状态后调用get_real_depth_map获取度量深度,K/E 直接从模拟器读取,为精确地面真值而非估计值。 - 对齐策略:由于
modified_libero_rlds是去除非操作帧的重放且不含模拟器状态,其关节状态存在漂移(约 0.08 rad)无法匹配。记录的action为位精确数据,因此通过动作序列将每个 RLDS 片段匹配到对应演示——1609 个片段为contig模式,84 个为subseq模式,全部 1693 个片段均成功映射。 - 验证结果:1691/1693 个片段的动作位精确(其余 2 个存在约 1e-3 的浮点噪声但不影响深度索引);subseq 对齐无分叉(深度无歧义);被丢弃的帧均为非操作帧(
|action| ≈ 0)。
语言缓存
预计算了指令嵌入,避免训练时加载 1.5B 参数的文本编码器。libero_instructions.npy 形状为 (40, 1536) float32,每行对应一条指令;libero_instructions.instructions.json 以相同行序列出 40 条指令字符串。编码器采用 gte-Qwen2-1.5B-instruct,使用最后有效 token 池化。
来源说明
数据使用 LIBERO 及 robosuite/MuJoCo 渲染生成,并与 openvla/modified_libero_rlds 对齐。




