# 数据源说明 - Data Sources > 记录所有可用的数据源位置和说明 --- ## 🎯 数据源分类 本项目使用两类数据: 1. **真机数据**:真实机器人操作数据,包含复杂的失败模式 2. **仿真数据**:模拟环境生成的数据,标注更准确但可能不够真实 --- ## 📍 真机数据(Real Robot Data) ### 1. DROID 数据集 **位置**:`/playpen-ssd/dataset/droid_raw/1.0.1/` **说明**: - 大规模多机构机器人操作数据集 - 包含成功和失败案例 - 多种任务类型(300+ 种) **数据源分布**: | 数据源 | 轨迹数 | 比例 | 说明 | |--------|--------|------|------| | AUTOLab | 3,618 | 23.9% | 主要数据源 | | ILIAD | 1,303 | 8.6% | | | IPRL | 1,298 | 8.6% | | | PennPAL | 2,494 | 16.5% | 包含 failure/success 标注 | | CLVR | 433 | 2.9% | | | GuptaLab | 187 | 1.2% | | | 其他 | ~6,824 | ~45% | 多个小型数据源 | | **总计** | **15,157** | **100%** | **Failure 数据** | **任务类型分布(Top 10)**: | 排名 | 任务 | 数量 | |------|------|------| | 1 | Move object into or out of container | 2,699 | | 2 | Move object to a new position | 2,494 | | 3 | Open or close hinged object | 1,103 | | 4 | Hang or unhang object | 891 | | 5 | Move lid on or off of container | 637 | | 6 | Open or close slidable objects | 543 | | 7 | Press button | 489 | | 8 | Use cup to pour | 437 | | 9 | Fold, spread out, or clump object | 398 | | 10 | Use cloth to clean | 312 | **数据格式**: - 视频:MP4 格式,多视角(wrist_image_left, exterior_image_1_left) - 元数据:JSON 格式,包含任务描述、动作序列、相机参数等 **访问方式**: ```python import tensorflow_datasets as tfds ds = tfds.load("droid", data_dir="/playpen-ssd/dataset/", split="train") ``` **子目录结构**: ``` /playpen-ssd/dataset/droid_raw/1.0.1/ ├── AUTOLab/ │ ├── failure/ │ │ ├── 2023-07-07/ │ │ │ └── session_xxx/ │ │ │ ├── recordings/MP4/*.mp4 │ │ │ └── metadata_*.json │ │ └── ... │ └── success/ ├── PennPAL/ ├── ILIAD/ └── ... ``` --- ### 2. 本地处理后的 DROID 数据 **位置**:`./droid_processed/` **说明**: - 从 DROID 数据集提取的失败案例 - 已拼接双视角(wrist + exterior) - 包含元数据 JSON **文件格式**: ``` droid_processed/ ├── episode_000000.mp4 # 视频文件 ├── episode_000000.json # 元数据 ├── episode_000001.mp4 ├── episode_000001.json └── ... ``` **数量**:~20 个 episodes(示例数据) **如何生成**: ```bash python video_process.py ``` --- ## 🎮 仿真数据(Simulation Data) ### 1. 本地 cokecan-50 数据 **位置**:`./data/cokecan-50/` **说明**: - 可乐罐抓取任务的仿真数据 - 按失败类型分类 - 包含完整的奖励标注 **目录结构**: ``` data/cokecan-50/ ├── fall/ # 掉落失败(10 episodes) ├── collision/ # 碰撞失败(10 episodes) ├── grasp/ # 抓取失败(10 episodes) ├── smooth/ # 运动不平滑(10 episodes) └── success/ # 成功案例(10 episodes) ``` **数据格式**: ```json { "joint_poss": [[...], [...], ...], // 关节位置序列 "stages": [0, 0, 1, 1, 2, ...], // 阶段标签(0-5) "rewards": { "reachout": [0.1, 0.2, 0.3, ...], // 接近奖励 "grasp": [0.0, 0.0, 0.8, ...], // 抓取奖励 "collision": [0.0, 0.1, 0.0, ...], // 碰撞惩罚 "fall": [0.0, 0.0, 0.0, ...], // 掉落惩罚 "smooth": [0.9, 0.85, 0.8, ...] // 平滑度 } } ``` **用途**: - 对齐奖励指标定义 - 验证模型在仿真数据上的表现 --- ### 2. fangyu 仿真数据 **位置**: - `/playpen-ssd/yufang/projects/reward/` - `/playpen-ssd/yufang/projects/reward/cokecan-50` **说明**: - 更大规模的仿真数据 - 约 800-900 条轨迹 - 同样是 cokecan 抓取任务 **状态**:⏳ 待整合 **预计用途**: - 扩充仿真数据集 - 与真机数据混合训练 --- ### 3. yangyue Libero 失败数据 **位置**:`/playpen-ssd/dataset/libero_failures/dec_29_2025_v1` **说明**: - Libero 环境的失败案例 - 多种任务类型 - 专门收集的失败模式 **状态**:⏳ 待整合 **预计用途**: - 增加失败模式多样性 - 提高模型对失败的检测能力 --- ## 📊 数据统计对比 | 数据源 | 类型 | 数量 | 标注质量 | 真实性 | 状态 | |--------|------|------|----------|--------|------| | DROID failure | 真机 | 15,157 | 需标注 | 高 | ✅ 可用 | | DROID success | 真机 | 未统计 | 需标注 | 高 | 📋 待统计 | | cokecan-50 本地 | 仿真 | 50 | 精确 | 中 | ✅ 已整理 | | fangyu 仿真 | 仿真 | ~800 | 精确 | 中 | ⏳ 待整合 | | yangyue Libero | 仿真 | 未知 | 精确 | 中 | ⏳ 待整合 | --- ## 🔄 数据处理流程 ### DROID 数据处理 ```mermaid graph LR A[DROID TFDS] --> B[video_process.py] B --> C[droid_processed/*.mp4] C --> D[api_batch_improved.py] D --> E[output/labels_*.jsonl] E --> F[extract_frames_to_images.py] F --> G[data/frames/**/*.jpg] G --> H[convert_to_sft.py] H --> I[data/sft_*.json] I --> J[模型训练] ``` ### 仿真数据处理 ``` 仿真数据(JSON) → 格式转换 → 与真机数据合并 → 模型训练 ``` --- ## 📝 数据使用建议 ### 训练数据混合比例 | 阶段 | 真机:仿真 | 说明 | |------|----------|------| | 初期 | 1:1 | 使用仿真数据快速验证 | | 中期 | 3:1 | 逐步增加真机数据 | | 后期 | 5:1 或纯真机 | 提高真实场景性能 | ### Success vs Failure 比例 | 场景 | Success:Failure | 说明 | |------|----------------|------| | 推荐 | 1:2 | 失败案例更重要 | | 平衡 | 1:1 | 避免类别不平衡 | | 当前 | 约 1:10 | **需要增加 success 数据** | --- ## 🔍 数据质量检查 ### 视频质量 ✅ **已完成**: - 视频帧率统计(见 `data_sta/video_framerate_stats.json`) - 视频时长统计 ❌ **待完成**: - 图像质量评估 - 模糊/曝光异常检测 - 视角覆盖度检查 ### 标注质量 ❌ **待完成**: - 人工 Golden Set 标注 - GPT 标注一致性检查 - 跨标注者一致性 --- ## 💡 数据扩充计划 ### 短期(1-2 周) 1. **DROID 数据扩充** - 从 ~100 条扩展到 2500+ 条 - 使用 balanced 采样策略 - 覆盖主要任务类型 2. **增加 Success 数据** - 从 DROID success 目录采样 - 目标:达到 success:failure = 1:2 ### 中期(1-2 月) 3. **整合 fangyu 仿真数据** - 格式转换和对齐 - 与真机数据混合训练 4. **整合 yangyue Libero 数据** - 适配数据格式 - 增加失败模式多样性 ### 长期(3+ 月) 5. **多数据源混合** - 建立统一数据格式 - 多源数据联合训练 - 跨域泛化能力评估 --- ## 📞 数据访问问题 如遇到数据访问问题,请检查: 1. 路径是否正确(绝对路径) 2. 权限是否足够(读取权限) 3. 数据是否存在(某些数据可能被移动) --- ## 📚 相关文档 - [数据统计分析](./data_sta/failure_statistics.txt) - DROID 失败数据详细统计 - [HuggingFace 数据集指南](./data_sta/README_HF_DATASET.md) - 数据集准备和上传 - [项目概述](./docs/PROJECT_OVERVIEW.md) - 完整项目说明