一句话定位
港大 / 阿里达摩院联合出品的首个第一人称(egocentric)真实世界模拟器:给定一张第一人称场景图,用外部相机(exocentric camera)实拍捕捉的真人全身动作逐帧驱动生成,让用户从世界模型里的”旁观者”变成可以自由走动、伸手、下蹲的”参与者”。
背景与定位
世界模型近年的主流范式是视频扩散模型 + 结构化动作条件:给定当前状态和动作预测下一状态。论文指出既有工作的两个局限:
- 游戏向交互世界模型:MineWorld、WorldMem(引用未建页)、The Matrix 等聚焦游戏场景,动作空间局限在方向键等预设离散动作,无法复刻真实世界的自由动作。
- 真实场景世界模拟:Wonderland、Gen3C、Cosmos、Aether 等做到了场景一致性生成,但没有人体动作控制——用户仍是被动的场景旁观者,无法真正”参与”世界。
PlayerOne 的定位是把这两条线合并:以第一人称图像构建可探索的真实世界,同时接入外部相机实拍的真人动作(SMPL 姿态/关键点)作为控制信号,让第一人称视频生成严格对齐用户的真实肢体运动。对比对象直接选取 Aether 与 Cosmos(NVIDIA Diff-7B/14B)两个”世界一致性生成但无动作控制”的代表工作。
模型架构
范式:扩散 Transformer(DiT,Peebles & Xie 2022),基座为 Wan2.1 1.3B(Wan)视频生成模型,用 LoRA 微调(rank 128,权重缩放 4,初始化沿用 Wan2.1 权重初始化方式)。整体由两个核心模块组成:
① Part-disentangled Motion Injection(PMI,部件解耦动作注入)
- 动作条件不是相机轨迹或方向键,而是真人动作序列(SMPL 姿态/关键点)。
- 关键设计判断:整体(entangled)地把动作参数编码成单一 latent,会让精确动作对齐变差;因此按身体部位的重要性把动作参数拆成三组——头部、双手、身体+双脚——每组各自过一个独立的动作编码器(8 层 3D 卷积网络),再沿通道维拼接成 z_motion ∈ ℝ^(k×3×h×w)。
- 相机编码器(视角对齐):单独把头部参数转换成仅含旋转、零平移的相机外参序列(假设头部处于相机坐标系原点),通过罗德里格斯公式构造旋转矩阵,再用 Plücker ray 参数化后送入一个与动作编码器结构相同的相机编码器;其输出加到噪声视频 latent 上以注入视角变化信号。
- 第一帧图像经 3D VAE 编码器得到 z_frame。
② Scene-frame Reconstruction(SR,场景-帧联合重建)
- 用 CUT3R 对训练用的 ground-truth 视频逐帧渲染点云图(point map),第 n 帧的点云图用第 1…n 帧信息重建(在线/因果式重建)。
- 点云图序列经一个基于 Geo4D 的点云编码器压缩为 latent,再用 5 层 3D 卷积组成的 adapter 把点云 latent 对齐到视频 latent 的共享空间,得到 z_point ∈ ℝ^(k×64×h×w)。
- 训练时把首帧 latent、动作 latent、噪声视频 latent、噪声点云 latent 沿通道拼接后一起送入 DiT,同时对视频 latent 与点云 latent 做加噪/去噪;推理时点云序列完全不需要,只用首帧 + 动作序列,保证推理效率。
- 训练目标:ℒ = 𝔼[‖ε − ε_θ(z_t, t)‖₂²],z_t = σ_t·z₀ + β_t·ε,t ~ 𝒰(0,1),σ_t² + β_t² = 1,z₀ = z_video ⊗ z_point(⊗ 为通道拼接)。
数据
论文指出不存在公开的”第一人称视频 + 对应真人动作”配对数据集,因此自建自动化数据构造流水线,从既有 ego-exo(第一/第三人称同步拍摄)数据集中提取:
自动构造流水线:
- 对每对同步的 ego-exo 视频,用 SAM2 检测第三人称视角中最大的人物并去背景;
- 用 SMPLest-X 在去背景的第三人称视频上提取该人物的 SMPL 参数作为动作标注,并加 L2 正则先验以稳定优化;
- 质量过滤:用 SMPLX 由 SMPL 参数生成 3D mesh,投影 3D 关节到 2D 图像平面,再用 OpenPose 检测真实 2D 关键点,计算两者的重投影误差,剔除误差最高的前 10% 数据对;
- 精修后的 SMPL 参数分解为身体+双脚(66 维)、头部朝向(3 维)、双手各 45 维(关节角),分别送入对应的动作编码器。
训练数据集组合(论文 Tab.1,“Size” 列单位论文未标注,疑似片段/序列数量而非小时数,EgoExo-4D/Nymeria 等官方原始规模远大于此处所列数字,推测为筛选后的可用子集):
| 数据集 | Size | 分辨率 | Ego-Exo 配对 |
|---|---|---|---|
| EgoExo-4D | 740 | 1080p | ✓ |
| Nymeria | 1,200 | 1408p | ✓ |
| FT-HID | 38,364 | 1080p | ✓ |
| EgoExo-Fitness | 1,276 | 1080p | ✓ |
| Egovid-5M | 5M | 1080p | ✗(无 ego-exo 配对,仅第一人称文本-视频对) |
评测基准(自建):从 Nymeria 数据集中挑选 100 条视频(不参与训练)构成 benchmark,含粗粒度动作文本描述,覆盖多种真实场景;因动作序列与文本描述之间存在信息差,用 Qwen2.5-VL 对文本描述做增强以生成给基线模型用的 caption,保证比较公平。
训练方法
Coarse-to-fine 三阶段训练(弥补”动作-视频”配对数据规模不足):
- Stage 1(粗粒度预训练):在大规模第一人称文本-视频数据(Egovid-5M)上用 LoRA 微调基座模型,让模型获得粗粒度的第一人称视频生成能力(此阶段无真实动作条件)。
- Stage 2(精细化微调):冻结训练好的 LoRA,用自建的高质量”动作-视频”配对数据集微调 DiT 最后 6 个 block,强化细粒度动作对齐与视角不变的场景建模。
- Stage 3(因果蒸馏,实时化):采用非对称蒸馏策略——用双向(bidirectional)teacher 监督一个因果(causal)student 模型(蒸馏方法沿用 CausVid),实现实时生成与长时长视频合成。
关键超参(Implementation details):LoRA rank = 128,权重缩放 = 4;推理去噪步数 50;学习率 1×10⁻⁵;优化器 Adam,混合精度 bf16;CFG = 7.5;训练 100,000 步;训练分辨率 480×480;单条训练视频 49 帧(6 秒,8 FPS)。
Infra(训练 / 推理工程)
- 训练硬件:8 × NVIDIA A100,batch size 56(全局)。GPU-hours、并行策略(是否用 FSDP/DP 等)未披露。
- 推理:蒸馏后可达到 8 FPS 生成(对应训练视频帧率),具体延迟(ms/帧)、显存占用、推理硬件型号未披露;推理阶段仅需首帧图像 + 动作序列,无需点云图,故比训练时更轻量。
评测 benchmark
消融实验(论文 Tab.2,自建 100 条 Nymeria 测试集):
| 变体 | DINO-Score↑ | CLIP-Score↑ | MPJPE↓ | MRRPE↓ | PSNR↑ | FVD↓ | LPIPS↓ |
|---|---|---|---|---|---|---|---|
| Baseline(Wan2.1,无微调) | 51.3 | 65.6 | 376.14 | 341.01 | 35.6 | 394.16 | 0.1421 |
| + Pretrain | 56.6 | 74.4 | 258.05 | 232.17 | 41.2 | 301.32 | 0.1146 |
| + Pretrain & ControlNet 式动作注入 | 57.1 | 75.2 | 241.73 | 218.46 | 42.8 | 287.52 | 0.1103 |
| + Pretrain & Entangled(动作整体编码) | 58.0 | 76.3 | 235.12 | 212.53 | 43.9 | 279.41 | 0.1060 |
| + Pretrain & PMI(无相机编码器) | 60.7 | 79.8 | 183.25 | 196.35 | 45.6 | 257.04 | 0.0902 |
| + Pretrain & PMI | 62.5 | 81.3 | 156.76 | 175.18 | 48.3 | 245.72 | 0.0839 |
| + Pretrain & PMI & 数据过滤 | 64.2 | 83.8 | 141.56 | 163.04 | 49.1 | 230.50 | 0.0782 |
| + …& 重建(无 adapter) | 62.7 | 81.6 | 176.23 | 180.10 | 47.3 | 240.17 | 0.0919 |
| + …& 重建(用 DUSt3R 替代 CUT3R) | 67.5 | 87.7 | 129.08 | 152.22 | 52.2 | 228.20 | 0.0685 |
| PlayerOne(完整版) | 67.8 | 88.2 | 127.16 | 151.62 | 52.6 | 226.12 | 0.0663 |
与 SOTA 对比(论文 Tab.3,同一 benchmark):
| 方法 | DINO-Score↑ | CLIP-Score↑ | MPJPE↓ | MRRPE↓ | PSNR↑ | FVD↓ | LPIPS↓ |
|---|---|---|---|---|---|---|---|
| Aether | 38.0 | 64.2 | 415.70 | 431.05 | 38.1 | 397.40 | 0.1856 |
| Cosmos (Diff-7B) | 45.3 | 70.3 | 301.92 | 324.12 | 43.7 | 346.09 | 0.1630 |
| Cosmos (Diff-14B) | 51.6 | 79.7 | 256.73 | 253.06 | 47.8 | 302.17 | 0.1351 |
| PlayerOne(ours) | 67.8 | 88.2 | 127.16 | 151.62 | 52.6 | 226.12 | 0.0663 |
用户研究(论文 Tab.4,20 名标注员对 25 组视频打 1–4 分):
| 方法 | Quality↑ | Fidelity↑ | Smooth↑ | Alignment↑ |
|---|---|---|---|---|
| Aether | 1.32 | 1.30 | 1.31 | 1.34 |
| Cosmos (Diff-7B) | 2.07 | 2.13 | 2.05 | 2.09 |
| Cosmos (Diff-14B) | 3.02 | 2.94 | 2.98 | 2.71 |
| PlayerOne(ours) | 3.59 | 3.63 | 3.65 | 3.86 |
注:Metrics 一节文字还提到会计算 SSIM 与”帧一致性(frame consistency)“,但论文正文 Tab.2/Tab.3 实际列出的列只有 DINO/CLIP/MPJPE/MRRPE/PSNR/FVD/LPIPS,SSIM 与帧一致性数值未在正文表格中给出(可能仅见于图示定性比较),故此处不列具体数字。
创新点与影响
- 首个”真人动作驱动”的第一人称真实世界模拟器:与既有工作把用户局限在方向键/相机轨迹式的被动观察不同,PlayerOne 直接用外部相机实拍的全身动作(SMPL)作为控制信号,让用户能做出任意自由度的动作(挥手、下蹲、抚摸等)并在生成视频里获得对应反馈。
- 部件解耦动作注入(PMI):消融显示同样在 Pretrain 基础上,PMI 的 DINO-Score 达到 62.5,明显高于 ControlNet 式注入(57.1)与整体(entangled)编码(58.0),验证了”不同身体部位重要性不同、需分组独立编码”这一设计判断的必要性;配合相机编码器可解决无法生成视角变化对应画面的问题(如下蹲时的视角下移,去掉相机编码器后 DINO-Score 从 62.5 降到 60.7)。
- 训练时才需要的场景重建:4D 点云重建(SR 模块)只在训练阶段作为辅助监督,推理阶段完全丢弃,在不增加推理成本的前提下换来更好的长视频场景一致性(FVD 从无重建时的更差水平降到 226.12)。
- 自动化数据构造管线:针对”没有公开的第一人称视频+真人动作配对数据集”这一空白,用 SAM2 + SMPLest-X + SMPLX 重投影过滤的组合从多个 ego-exo 数据集中蒸出高质量配对数据,为后续研究提供了可复用的方法论(虽然论文未开源该处理后的数据集本身)。
- 论文自述局限:PlayerOne 在游戏场景下的表现略逊于真实场景,作者认为是训练数据中真实场景与游戏场景分布不均衡所致,提出未来可通过补充更多游戏场景数据缓解。
- 开源现状(2026-07-16 核实):GitHub 仓库
yuanpengtu/PlayerOne仅有论文配图/视频素材(assets/)与 README,最后一次提交为 2025-06-11,未发布训练/推理代码或模型权重;无 HuggingFace / ModelScope 模型卡。
原始链接
- arXiv 论文:https://arxiv.org/abs/2506.09995
- 论文 PDF:https://arxiv.org/pdf/2506.09995
- 项目主页:https://playerone-hku.github.io/
- GitHub(仅素材,无代码/权重):https://github.com/yuanpengtu/PlayerOne
一手源存档(sources/)
- playerone—project-page — 项目主页文本快照(fetched 2026-07-16)
- playerone—github-readme — GitHub README 存档(fetched 2026-07-16)
- arXiv 2506.09995 全文(arXiv 原文 PDF,不入 git,见上方链接)