一、为什么现在的世界模型不够"世界"
虚拟现实和具身 AI 有一个共同痛点:你走进一个虚拟空间,看到一张沙发,想把它换成红色的,或者想让它随着时间慢慢老化——现有的世界模型做不到。它们只能"继续拍下去",不能"改世界"。
PlayerOne(NeurIPS 2025)用全身动作驱动第一人称视角,让你走路、转头、伸手。CaM(SIGGRAPH Asia 2025)用历史帧保持场景一致性,让你在同一空间里漫游。但两者都有一个盲区:
世界本身是被动被决定的,不是被主动定制的。
初始帧定了一切。新进入视野的区域只能"尽量保持一致",你无法指定"这里应该有一盆花,而且它正在凋谢"。
AnchorWorld 想解决这个问题。它让两个事情同时发生:
- 你的身体动作驱动视角 —— 走路、转头、蹲下,第一人称画面跟着你动
- 你指定的锚点定义世界局部状态 —— 3D 空间里的某个位置,放一张图、给一个演化提示,这块区域的状态就按你的意思来,不管你的视角怎么变
二、核心问题:第一人称视角的天然短板
第一人称视频(egocentric)有个结构性缺陷:你的相机长在头上,所以你的身体大部分不在画面里。双手在哪、腿怎么迈、躯干朝哪个方向——模型只能间接推断。
训练数据只有第一人称画面,模型学到的动作-画面映射是稀疏的、弱对齐的。你看到一个视角变化,是走路还是转头?是接近物体还是后退?这些 ambiguity 让动作控制很难精确。
AnchorWorld 的解法:引入第三人称视频(third-person view)作为辅助训练数据。第三人称画面里,全身完整可见,动作和场景交互一目了然。用第三人称数据建立"全身动作 → 画面"的强监督,再用第一人称数据适配到头部视角。
关键是怎么把两种视角统一到一个框架里。论文提出了投影式动作表示(projection-based action representation):把 3D 全身运动序列和相机轨迹结合,让模型学会把同一个 3D 动作投影到不同视角的 2D 画面里。相机参数可以是外部观察视角(第三人称),也可以是头部视角(第一人称)。
先在大规模第三人称视频上预训练,获取动作-投影的通用先验。再把相机参数对齐到头部姿态,用第一人称数据微调。这个顺序很重要:先学"动作怎么变成画面"的通用规律,再适配到"你头上长了个相机"的特殊视角。
三、空间姿态注意力:让动作信号注入生成模型
AnchorWorld 基于 Wan2.2 TI2V 5B(快手可灵的文生视频模型)做基座。这是一个基于流匹配(flow matching)的 DiT 视频生成模型。怎么把动作条件注入进去?
人的动作表示为 SMPL-X 参数化模型的序列:M ∈ ℝ^(f×k×6),f 帧,k 个关节,每个关节 3D 位置 + 3D 轴角旋转。22 个主要身体关节,不含手部(第一人称数据里手部估计不可靠,这是 GigaHands 也承认的问题)。
动作编码器把 M 投影到 latent embedding z_m。相机编码器把相机位姿序列 C 投影到 z_c。视频本身用 VAE 编码到 z_v。
然后做一件巧妙的事:把视频 token、动作 token、相机 token 沿着空间维度拼接,一起送进自注意力层:
T = [z_v; z_m; z_c] ∈ ℝ^(f'×(h·w+k+1)×d)
这意味着:动作和相机信息不是通过额外的 cross-attention 或 adapter 注入,而是直接和视频 token 在同一个 self-attention 空间里交互。模型自己学会"这个动作对应这个画面变化"。
最后用 Truncate 操作把动作和相机 token 扔掉,只保留更新后的视频特征。生成模型本身没有额外参数,动作条件通过 in-context 拼接实现。
四、锚点视角:世界编辑器
这是 AnchorWorld 的命名来源。用户可以在 3D 空间里放置一组锚点视角(anchor views),每个锚点包含三样东西:
| 组件 | 作用 | 注入方式 |
|---|---|---|
| RGB 图像 | 这个位置的局部视觉外观 | in-context conditioning:和视频 latent 沿帧维度拼接 |
| 3D 位姿 | 锚点在统一世界坐标系中的空间位置 | 位姿编码成 embedding,加到视频 token 上 |
| 演化提示 | 这个局部区域随时间怎么变化 | 交叉注意力注入,注意力 mask 限制只影响对应锚点和视频 |
In-Context 锚点图像先验
锚点图像编码成 latent token z_s,和视频 token z_v 沿帧维度拼接:
T_total = [z_v; z_s] ∈ ℝ^((f'+f_s)×h·w×d)
这是一种不修改模型架构的 conditioning 方式。预训练视频模型的权重不动,锚点信息通过拼接 token 的上下文注入。论文用 3D RoPE(旋转位置编码)来区分不同锚点,给它们分配不同的帧轴位置编码,让模型知道"这是第 3 个锚点,不是第 1 个"。
位姿注入:空间关联
每个锚点有自己的 3D 位姿,视频帧也有自己的相机位姿。这些位姿编码成 embedding,broadcast 到空间分辨率,加到视觉 token 上:
T_total = T_total + z_pose
这确保了模型能把锚点图像和正确的空间位置关联。你走开了,锚点还在原地;你走近了,锚点内容按距离和角度正确投影。
演化提示:文本驱动的局部动态变化
每个锚点可以配一个文本描述,比如"这盆花正在慢慢枯萎"。这个提示通过 cross-attention 注入。关键是注意力 mask 的设计:
- 第 j 个文本提示的 key,只能被视频 token 和对应的第 j 个锚点图像 token 看到
- 其他锚点的图像 token 看不到这个提示
这意味着:你可以给不同锚点配不同的演化提示,它们不会互相干扰。"左边的花枯萎"不会污染"右边的桌子保持干净"。这是局部控制的核心机制。
五、四阶段渐进训练:一步一个台阶
AnchorWorld 的训练不是端到端一锅炖,而是分四个阶段,每个阶段在上一阶段稳定的基础上加新能力:
Stage I:第三人称动作预训练
- 用大规模第三人称视频(20 万条单人物动作视频 + 10.1 万条 UE 多机位视频)
- 相机参数是外部观察视角
- 目标:建立"3D 动作 → 2D 画面投影"的通用先验
Stage II:第一人称动作适配
- 用 Ego-Exo4D 和 LEMMA 数据(同步的第三人称+第一人称配对,带全身动作和锚点信息)
- 相机参数对齐到头部姿态
- 目标:把通用动作先验适配到第一人称视角
Stage III:静态锚点定制
- 在静态场景上训练锚点视角的场景一致性
- 目标:学会把锚点图像和位姿正确融入第一人称漫游
Stage IV:动态锚点演化
- 加入带演化描述的动态数据
- 目标:学会文本驱动的局部状态变化
渐进训练的好处:每个新模块建立在稳定的基础上。如果端到端训练,模型可能在学动作控制的同时还要学锚点一致性和动态演化,信号混乱。分阶段让模型先"会走路",再"会看锚点",再"会让世界变化"。
消融实验也验证了这一点:Joint Stage III & IV(跳过渐进)在静态场景指标上全面低于渐进版本,说明动态信号干扰了静态一致性的学习。
六、实验:三个测试集,全方位验证
测试集
| 测试集 | 来源 | 特点 | 评估重点 |
|---|---|---|---|
| Ego Static | 100 条保留序列,同数据源 | 大幅度动作和视角变化 | 动作精度、场景一致性、视频质量 |
| UE CineScene | 100 条 UE 序列,初始帧与锚点无重叠 | 纯旋转运动,大视角变化,无相机内参一致性 | 仅评估旋转精度(RRE)和语义一致性(CLIP-V、GIM) |
| Real-World | 真实场景采集,大视角变化 | 无 ground truth,仅定性评估 | 泛化能力 |
| Ego Dynamic | 100 条保留序列,动态人体活动 | 显著动态变化 | 动态演化、文本对齐、动作精度 |
基线对比
- PlayerOne:NeurIPS 2025,全身动作驱动,但分解为身体部位控制。论文重新在 Wan2.2 上实现,排除手部
- PlayerOne-Scene:PlayerOne + 锚点注入机制(验证锚点设计的增益)
- CaM-UE:Context-as-Memory,在 UE 数据上训练,慢速相机运动
- CaM-Ego:CaM 在论文的第一人称数据上训练
静态场景结果(Ego Static)
| 指标 | PlayerOne | PlayerOne-Scene | CaM-UE | CaM-Ego | Ours |
|---|---|---|---|---|---|
| 匹配像素 Mat.Pix.(K) ↑ | 3961.6 | 4334.8 | 3706.9 | 4379.4 | 4493.4 |
| 语义 CLIP-V ↑ | 0.845 | 0.864 | 0.804 | 0.872 | 0.885 |
| PSNR ↑ | 13.26 | 14.38 | 11.57 | 15.16 | 16.06 |
| SSIM ↑ | 0.459 | 0.500 | 0.448 | 0.554 | 0.578 |
| LPIPS ↓ | 0.596 | 0.545 | 0.686 | 0.515 | 0.470 |
| 绝对位置误差 ATE ↓ | 0.131 | 0.142 | 0.163 | 0.125 | 0.112 |
| 相对旋转误差 RRE ↓ | 3.741 | 3.353 | 3.590 | 3.207 | 3.145 |
| VBench 质量 ↑ | 0.734 | 0.735 | 0.729 | 0.748 | 0.748 |
所有指标全面第一。值得注意的是:
- CaM-Ego(同样数据)在 VBench 上持平,但场景一致性指标(CLIP-V、PSNR、SSIM)明显落后,说明 CaM 的"历史帧检索"机制不如锚点注入的 in-context conditioning 有效
- PlayerOne-Scene 加锚点后大幅提升,但动作精度仍弱于 AnchorWorld,说明投影式动作控制优于部位分解式
UE 泛化场景(初始帧与锚点无重叠)
| 指标 | PlayerOne | PlayerOne-Scene | CaM-UE | CaM-Ego | Ours |
|---|---|---|---|---|---|
| 匹配像素 Mat.Pix.(K) ↑ | 3947.0 | 4413.5 | 4301.1 | 4429.1 | 4555.1 |
| 语义 CLIP-V ↑ | 0.787 | 0.802 | 0.852 | 0.842 | 0.851 |
| 相对旋转误差 RRE ↓ | 2.438 | 2.401 | 1.722 | 2.009 | 1.656 |
| VBench 质量 ↑ | 0.736 | 0.737 | 0.750 | 0.770 | 0.769 |
这里的场景是:初始第一人称画面不包含任何锚点区域,锚点都在视野外。模型必须仅凭锚点图像+位姿+演化提示,在视角转动后正确"生成"这些区域。这是严格的分布外泛化测试。
- 匹配像素和旋转精度仍全面第一,说明模型真正学会了空间位姿关联,不是记忆了初始帧
- CLIP-V 略低于 CaM-UE(CaM-UE 在 UE 数据上训练,有 domain 优势),但差距很小
- CaM-UE 的 RRE 差(1.722 vs 1.656),因为 CaM 只输入视角信息,没有身体动作约束
动态场景(Ego Dynamic)
| 指标 | PlayerOne-Scene | CaM-UE | CaM-Ego | Ours |
|---|---|---|---|---|
| 匹配像素 Mat.Pix.(K) ↑ | 4455.4 | 4466.5 | 4459.0 | 4634.6 |
| 语义 CLIP-V ↑ | 0.864 | 0.856 | 0.871 | 0.899 |
| PSNR ↑ | 14.24 | 12.82 | 14.57 | 16.37 |
| SSIM ↑ | 0.454 | 0.462 | 0.501 | 0.555 |
| LPIPS ↓ | 0.583 | 0.627 | 0.574 | 0.486 |
| 绝对位置误差 ATE ↓ | 0.067 | 0.083 | 0.083 | 0.048 |
| 文本对齐 TA ↑ | 0.449 | 0.115 | 0.385 | 0.717 |
| VBench 质量 ↑ | 0.756 | 0.770 | 0.770 | 0.774 |
动态场景是 AnchorWorld 的核心优势区。文本对齐(VideoAlign-TA)0.717 vs 基线最高 0.449,说明演化提示的局部控制精准到位。CaM-UE 的 TA 只有 0.115,因为它的全局文本提示无法区分不同区域的动态变化。
七、关键能力的定性验证
视野外场景演化(Out-of-Sight Evolution)
论文做了一个精妙测试:锚点里有一个"另一个人从沙发上站起来"的描述,但初始第一人称视角看不到这个区域。模型通过纯动作驱动和锚点信息,在视角转动后正确生成了"这个人先坐着,然后站起来"的时序变化。
这验证了:锚点机制不只是"画面拼贴",模型真正在建模空间-时间联合分布。它知道沙发在那个位置,知道人在那个位置,知道"站起来"是一个时间过程,即使这些信息从未在第一人称初始画面里出现过。
空间姿态感知(Spatial Pose Awareness)
把人体姿态和锚点姿态同时水平翻转,保持锚点图像不变。如果模型不理解空间关系,翻转后应该出现奇怪的画面。结果:当姿态和锚点重叠时,模型正确检索锚点图像细节;不重叠时,生成合理的新内容。这证明模型在3D 空间坐标系里操作,不是在 2D 像素上拼接。
八、消融:什么设计真正重要
| 消融变体 | 关键发现 |
|---|---|
| 去掉 Stage I(第三人称预训练) | 动作精度 RRE 从 3.187 退化到 3.532;静态场景一致性也下降 |
| 去掉头部姿态(只用身体动作) | RRE 退化到 3.806,说明相机视角(头部朝向)是动作控制的关键 |
| Stage I & II 联合训练 | RRE 3.372 vs 渐进 3.187,说明先第三方再第一方的顺序重要 |
| 去掉锚点位姿注入 | 静态场景 PSNR 15.59→15.59(持平),但 SSIM 0.578→0.568,LPIPS 0.470→0.493,说明位姿对感知一致性更敏感 |
| 去掉锚点 3D RoPE | 匹配像素 4493→4395,说明区分不同锚点的位置编码很重要 |
| Stage III & IV 联合训练 | 静态场景匹配像素 4493→4442,动态场景 TA 0.717→0.703,渐进训练优于联合训练 |
核心结论:
- 第三人称预训练是动作控制的基石,没有它第一人称适配是盲人摸象
- 渐进训练不是可选项,是必选项。联合训练会干扰静态一致性学习
- 锚点位姿和3D RoPE是空间一致性的关键,不是可有可无的点缀
九、局限:路还很长
论文在附录里坦诚列了三个局限:
长期探索 — 当前模型能处理的是短时间序列(77 帧,480p)。长时间的开放世界探索(在虚拟城市里走 10 分钟)仍然超出能力范围。模型没有长期记忆,也没有拓扑地图。
开放世界泛化 — 测试集虽然包含 UE 和真实场景,但都是特定 domain 内的分布外。真正从未见过的场景(完全不同的建筑风格、气候、光照)没有验证。锚点机制需要用户提供锚点图像,不能无中生有。
多样化动态场景 — 训练数据里的动态变化主要是人体活动。更复杂的动态(多物体交互、物理碰撞、流体、天气变化)没有覆盖。演化提示是文本描述的,但文本对复杂动态的表达能力有限。
十、为什么这很重要
AnchorWorld 把"世界模型"从一个被动预测器变成了可编辑的交互环境。之前的模型告诉你"如果你走过去,你会看到什么"。AnchorWorld 让你说:"这里应该有一盆花,它正在凋谢,你走开了再回来,它应该更枯萎了。"
三个关键意义:
1. 混合视角训练 解决了第一人称数据稀缺和监督稀疏的问题。用第三人称"教"第一人称,不是简单数据增强,而是利用了两类数据在 3D 动作层面的互补性。全身动作是共享的,视角是投影变换的。
2. 锚点机制 提供了世界状态的局部可控性。这是从"生成视频"到"生成可交互世界"的跨越。文本-图像-位姿的三元组锚点,让用户能在 3D 空间里精确放置"世界状态"。
3. 空间-时间联合建模 在视野外演化实验中得到了验证。模型不是在"拼接图像",而是在维护一个隐式的 3D 场景表示,并基于动作轨迹和锚点约束进行时间演化。
对于 VR/AR 应用,这意味着:设计师可以放置锚点定义场景,用户用身体动作探索,场景按锚点规则演化。对于具身 AI,这意味着机器人可以在仿真环境里训练,环境的状态可以按任务需求精确配置。
清华、华科、港科大、武大、快手可灵团队的联合工作。代码暂未公布,但项目主页已上线演示视频。
参考来源
- Li, Yu, et al. "AnchorWorld: Embodied Egocentric World Simulation with View-based Evolution Customization." arXiv:2606.07326, 2026-06-05
- 项目主页:https://yuli0103.github.io/AnchorWorld/
- 基座模型:Wan2.2 TI2V 5B(快手可灵)
- 训练数据:Ego-Exo4D、LEMMA、MultiCamVideo、内部 20 万单人物视频
- 动作估计:GVHMR(统一 3D 坐标系)
- 对比基线:PlayerOne(NeurIPS 2025)、CaM(SIGGRAPH Asia 2025)
本文由小凯基于公开论文与技术资料整理分析,2026-06-09
#AI生成视频 #论文解读 #计算机视觉 #生成式AI #具身智能 #世界模型 #虚拟现实 #深度学习 #AnchorWorld #小凯
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。