- 数据集
- 人工智能
【免费下载链接】object-permanence
object-permanence 是一个基于Blender 批量生成训练视频的程序化生成器数据集项目:它用 150 个手工设计的认知任务,每个任务生成10000 条视频续写样本,共产出 150 万条(214 GB)训练语料,用于训练具备"物体恒存性(object permanence)"的世界模型。本文带你理解它的设计原理与数据组织方式。
🧠 先认识一下这个项目
物体恒存性是认知科学里的经典概念:一个球滚到箱子后面消失了,婴儿也知道"球还在"。视频模型(也叫世界模型 world model)是否具备这种"看不见时依然认为物体存在"的能力?
object-permanence 项目给出的答案是:用数据教出来。它的核心做法是:
- 设计150 个认知任务(如 ball_behind_box_stack_task.tar、three_cup_shell_game_task.tar 这类"杯子盖球"经典场景),分成六大认知类别
- 为每个任务编写一个Blender 程序化生成器(procedural generator)
- 每个生成器随机化场景参数,批量渲染出10000+ 条训练样本
关键信息速览(来自 README.md):
| 属性 | 数值 |
|---|---|
| 任务数 | 150个,分六大认知类别 |
| 样本总量 | 1,500,000条(每任务 10000 条) |
| 打包方式 | 150 个 tar 包,一个任务一个包(每个 0.7–4.1 GB) |
| 总大小 | 214 GB |
| 视频规格 | 1280 × 720,24 fps |
| 片段长度 | 60 帧输入 → 60 帧目标(2.5 s → 2.5 s) |
| 每条样本文件数 | 5 个文件 |
🔧 程序化生成器的设计原理
这是整个项目最精华的部分,可以拆成三个核心思想。
固定认知结构,随机"干扰参数"
程序化生成的难点在于:既要样本千变万化,又不能改变任务要考察的"认知点"。
object-permanence 的解法是分离两类参数:
- 认知结构参数(固定):任务逻辑本身。比如"小球滚过屏幕后方"这个遮挡任务里,球必须从一侧消失、从另一侧出现,遮挡关系始终成立
- 干扰参数(nuisance parameters,随机化):球速快慢、光照方向、摄像机角度、物体尺寸与颜色等"无关变量"
生成器每次渲染时,只重掷"随机骰子"(速度、光照、机位等),而任务的核心认知逻辑原样保留。这样就做到了:
同一个任务,渲染 10000 次,得到 10000 条"长得都不一样,但考的是同一个能力"的视频样本。
这正是"程序化生成器"区别于"手工拍 10000 条视频"的关键——人力只花在设计任务上,量级交给程序。
每个任务 = 一个 Blender 生成器
train/ 目录下的 150 个 tar 包,一一对应 150 个生成器,任务名直接写在文件名里:
- 遮挡类:pivoting_occluder_task.tar(旋转遮挡板)、theater_curtain_task.tar(舞台幕布)
- 容器类:cabinet_task.tar(柜子)、sliding_lid_box_task.tar(滑动盖盒子)
- 碰撞与运动类:ball_strikes_pendulum_task.tar(撞摆锤)、headon_velocity_exchange_task.tar(正碰速度交换)
- 记忆/追踪类:four_cup_three_swaps_task.tar(四杯三换)、moving_tray_task.tar(移动托盘)
从命名就能看出设计思路:每个任务都指向一种具体的认知能力——遮挡追踪、因果碰撞、身份追踪、计数等。
渲染输出:视频 + 真值标注一次到位
每条样本不是"一段裸视频",而是 5 个文件一组的完整训练单元(以cabinet_0000为例,见 README.md 的目录说明):
| 文件 | 作用 |
|---|---|
input_video.mp4 | 60 帧上下文视频(2.5 秒),即"题目" |
target_video.mp4 | 60 帧目标续写视频,即"标准答案" |
prompt.txt | 场景文字描述,统一以 "Continue this scene as a short video." 开头 |
trajectory.npz | 全部 120 帧的真值物理轨迹(物体位姿) |
metadata.json | 该样本的随机参数、来源信息、视频切分方式 |
其中trajectory.npz体现了程序化生成的另一个优势:因为视频是"算"出来的而不是"拍"的,每一帧每个物体在哪里都有精确真值,可做轨迹一致性校验、可监督训练,这是实拍数据给不了的。
📦 1.5M 数据是怎么打包交付的
数据集按"一个任务一个 tar"的方式组织,展开后的结构(见 README.md):
train/ └── shard1/ └── cabinet_task/ ├── cabinet_0000/ # 5 个文件一组 ├── cabinet_0001/ └── …(共 10000 个样本目录)几个值得注意的工程细节:
- 分片渲染(sharding):
shard1对应生成器 G01–G30,shard5对应 G121–G150,说明渲染是按 5 个分片并行分发的——150 万个视频不可能在一台机器上串行渲完 - 完整性校验:train/checksums.txt 为每个 tar 记录了 sha256 哈希与文件数(每包 50000 个文件,即 10000 样本 × 5 文件),下载后可直接校验,文件头部还附了一键校验命令
- 样本可溯源:
metadata.json记录了每条样本的随机参数与 provenance(来源),任何一条"奇怪样本"都能定位到是哪个生成器、哪组参数产生的
🚀 上手路径:三步用上这批数据
- 下载:从项目的训练语料仓库获取你需要的任务 tar(不必一次拉满 214 GB,先挑一两个任务如 train/top_rail_screen_task.tar 试跑即可)
- 校验:对照 train/checksums.txt 执行文件头部注释给出的
sha256sum -c流程确认完整性 - 加载训练:按
input_video.mp4→target_video.mp4构造"续写预测"任务,prompt.txt作为文本提示,trajectory.npz可用于真值比对或评估
📄 许可与引用须知
- 数据采用CC BY-NC 4.0协议:仅限非商业用途,商用需联系版权方授权
- 项目同时发布了配套的 300 题评测集(exam)、14 个视频模型的评测结果,以及 16B 参数的世界模型 PWM-WROP——该模型在盲测 Elo 对抗中位列第三、续写类模型第一,从侧面验证了这套程序化训练数据的有效性
- 引用可参考 README.md 中的 BibTeX
总结
object-permanence 展示了一套可复用的程序化训练视频生成范式,其设计精髓可归纳为三点:
- 任务驱动:150 个任务各自锁定一种认知能力,数据为"考察点"服务
- 结构固定 + 参数随机:认知逻辑不变,速度/光照/机位等无限重掷,单任务稳定产出 10000 条样本
- 真值内建:轨迹、参数、元数据与视频同批生成,天然带标注、可校验、可溯源
这套"用 Blender 批量生成训练视频"的思路,对任何想为世界模型、视频预测模型构造大规模合成数据的团队,都有一份完整的参考答案。
- 数据集
- 人工智能
【免费下载链接】object-permanence
相关推荐
如何用object-permanence数据微调你的视频生成模型:从数据加载到训练的实战指南
如何用object permanence数据微调你的视频生成模型:从数据加载到训练的实战指南 🎬 object permanence 是由 WROP 团队发布
数据集人工智能终极指南:如何使用OpCore-Simplify实现Hackintosh EFI配置自动化
终极指南:如何使用OpCore Simplify实现Hackintosh EFI配置自动化 你是否曾经为Hackintosh的EFI配置而头疼?繁琐的ACPI补
开发工具CLI十条蛍LoRA批量处理:自动化生成工作流设计
十条蛍LoRA批量处理:自动化生成工作流设计 痛点:手动处理海量LoRA模型的效率困境 你是否曾经面对数百个LoRA(Low Rank Adaptation)模
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考