跳转至

Stereo World Model: Camera-Guided Stereo Video Generation

会议: CVPR 2026
论文: CVF Open Access
代码: 无(项目页 https://sunyangtian.github.io/StereoWorld-web/)
领域: 视频生成 / 世界模型 / 立体视觉
关键词: 立体世界模型、相机条件、相机帧 RoPE、极线注意力、双目视频生成

一句话总结

StereoWorld 把预训练的单目视频扩散模型改造成「相机条件的双目世界模型」,靠一个不动原 RoPE、只在 token 上扩维注入相机位姿的「统一相机帧 RoPE」,加一个利用极线先验把 4D 注意力拆成「视内 3D 注意力 + 横向行注意力」的高效立体注意力,端到端直接生成左右视图一致的立体视频,比「单目生成再后处理转立体」的强 baseline 快 3 倍、视点一致性再涨约 5%。

研究背景与动机

领域现状:当下的生成式世界模型(给定动作/相机轨迹预测未来观测)几乎都建立在单目视频表示上,靠大规模视频扩散先验,在可控视频合成上已经很强。也有一支 RGB-D 世界模型给视频额外配一个深度通道来引入几何。

现有痛点:单目观测有根本的几何缺陷——深度是隐式的、尺度是模糊的、几何一致性只能「推断」而不能「观测」,长时相机轨迹下 3D 误差会累积,导致它在需要精确几何的场景(具身智能、导航)里不可靠。RGB-D 这条路看似补了深度,但预测的深度是场景相关的、仍然尺度模糊,要靠各种 ad-hoc 归一化,跨域不稳定,而且预测深度本身就带噪。

核心矛盾:世界模型既想要视频扩散先验带来的高保真外观,又想要可靠且带尺度的几何;但单目缺几何、RGB-D 的几何(显式深度)又脏又不稳。问题根子在于:几何信号不该靠「事后再估深度」拼出来,而应该从观测里直接拿到

本文目标:造一个把几何「锚」在双目观测里、而不是从单目运动里推深度的世界模型,要求生成的立体视频(i)时序平滑且严格跟随给定相机运动,(ii)每一帧左右视图一致;同时还得兼容各种内参、外参和基线(baseline)。

切入角度:立体视觉是很多生物系统的主导感知机制,双目本身就提供了对 3D 结构直接、鲁棒的几何线索。作者据此主张:让模型在 RGB 模态内同时学外观和双目几何,几何由视差(disparity)天然地 ground 住,既不用产出/稳定显式深度图(避开 RGB-D 的麻烦),又能保留视频扩散的强先验。

核心 idea:用「在 token 上扩维注入相机 RoPE(不改原 RoPE)+ 用极线先验把立体注意力降维」这两招,把单目视频扩散模型微调成端到端的相机条件立体世界模型。

方法详解

整体框架

给定一对校正过的立体图像 \((I_\text{left}, I_\text{right})\)、基线 \(b\)、场景文本提示 \(c\),以及一条相机轨迹动作 \(\{cam_t\}=\{(K_t, T_t)\}\)(内参 \(K\)、外参 \(T\)\(t=1\dots N\)),StereoWorld 要生成一段跟随该相机运动、且逐帧左右一致的立体视频。

它建立在一个预训练的潜空间视频扩散模型上(3D VAE + DiT,rectified flow 去噪)——这是脚手架,提供时空先验和视觉保真。在它之上 StereoWorld 加了两块真正的贡献:(a)统一相机帧 RoPE,把骨干的潜 token 空间扩维,并注入相机感知的旋转位置编码,让模型能在「时间 × 左右视图」上联合推理,同时最小化对预训练先验的扰动;(b)立体感知注意力,把跨视图融合拆成「视内 3D 注意力 + 横向行注意力」,在算力和极线对齐精度之间取得平衡。左右视图用同一个 VAE 以「视点无关」的方式编码成 \(\{z_\text{left}, z_\text{right}\}\),整条 DiT 在这两个 latent 上以立体注意力块(重复 \(N\) 次)去噪,最后 VAE 解码回像素得到立体视频。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入:立体图对 + 文本 + 相机轨迹 {Kt,Tt}"] --> B["3D VAE 编码<br/>左右视图→视点无关 latent z_l,z_r"]
    B --> C["统一相机帧 RoPE<br/>token 扩维注入相机位姿<br/>Copy Init 不改原 RoPE"]
    C --> D["立体感知注意力 × N<br/>Attn3D 视内 + Attn_row 横向行"]
    D --> E["rectified flow 去噪 + VAE 解码"]
    E --> F["输出:左右一致的立体视频<br/>→ VR/具身/长视频蒸馏"]

关键设计

1. 统一相机帧 RoPE:在 token 上扩维注入相机,而不是去改原来的 RoPE

痛点很具体:要把相机条件(含不同基线的立体相机、动态相机运动)灌进预训练 DiT,但又不能砸坏它的先验。老办法把 Plücker 射线图拼到输入通道上,编的是绝对坐标,对参考帧选择敏感、把视点和场景布局纠缠在一起,跨基线/位姿泛化差;后来的 GTA/PRoPE 改用相对相机位姿(把式 (3) 里的相对旋转 \(R_{\Delta t,\Delta x,\Delta y}\) 换成相机相对旋转 \(R^{\Delta cam}_{\Delta t,\Delta x,\Delta y}\),其中 \(R^{cam_j}=\mathrm{diag}(I_{d/8}\otimes P_j,\ R_{t,x,y})\)\(P_j=\mathrm{diag}(K_j,1)T_j\)),泛化更好。但问题是:直接照 PRoPE 那样重参数化原 RoPE,会严重扰乱预训练模型——因为 DiT 的注意力权重、归一化统计、token 基底都是和原 RoPE 频率、轴划分协同适配好的,一动就崩。

作者的做法是不动原编码、只扩 token 维度。把自注意力的特征维从 \(d\) 扩到 \(d+d_c\),新增的 \(d_c\) 维专门承载相机 RoPE:\(\tilde q_{(t,x,y)}=[q_{(t,x,y)};\,q^{cam}_{(t,x,y)}]\in\mathbb{R}^{d+d_c}\),对应的旋转矩阵也扩成块对角 \(\tilde R^{cam_t}_{t,x,y}(d+d_c)=\mathrm{diag}\big(R_{\Delta t,\Delta x,\Delta y}(d),\ I_{d_c/4}\otimes P_t\big)\),最终统一相机帧 RoPE 为 \(\tilde R^{\Delta cam}_{\Delta t,\Delta x,\Delta y}=\tilde R^{cam_1}(\tilde R^{cam_2})^\top\)。关键在于:前 \(d\times d\) 块和式 (3) 一模一样,完全对齐预训练先验,新增的 \(d_c\times d_c\) 块是一条「正交、相机条件」的旁路通道。新通道的初始化作者比了两种——Zero Init(新权重置零,初始输出等同原模型,但相机信号难激活、训练慢、相机精度低)和 Copy Init(用时序注意力权重初始化新子空间,因为相机和时序嵌入都作用在帧级别,给了个好起点又几乎不动原行为)。这个「扩维而非重参数化」正是它和 PRoPE 的本质区别,实测训练更稳、收敛更快。

2. 立体感知注意力:用极线先验把 4D 注意力拆成「视内 3D + 横向行」

痛点是算力。有了统一相机帧表示后,最朴素的立体生成器会把左右 token 沿序列维拼起来做全 4D 联合注意力\(f^{in}\in\mathbb{R}^{b\times 2f\times h\times w\times c}\)),同时耦合空间、时间、视点;但注意力开销随 token 数平方增长,对视频合成来说算不动。

作者的观察是:在校正过的立体对里,极线是水平对齐的——也就是左右视图的对应点一定落在同一条扫描线(同一行)上。于是把 4D 注意力分解成两支:(a)视内 3D 注意力 \(\text{Attn}_{3D}\),每个视图各自做空间-时间注意力;(b)横向行注意力 \(\text{Attn}_{row}\),跨视图只在「同一时刻、同一水平行」上的 token 之间算注意力。最终输出把两支相加:\(f^{out}=\text{Attn}_{3D}(f^{in})+\text{Attn}_{row}(f^{in})\)。这样整体复杂度从 \(O((2fhw)^2)\) 降到 \(O(2(fhw)^2)+fh(2w)^2)\)。之所以有效:立体匹配在几何上本就只发生在水平极线上,全 4D 注意力里绝大多数跨视图 token 对是冗余的;只保留同行的跨视图交互,既抓住了视差对齐的对应关系,又把跨视图那一项的开销从「整张图 × 整张图」砍到「单行 × 单行」。消融里它把 FLOPs/FPS 改善约 50%,视觉质量几乎不掉、视点一致性甚至略升。

损失函数 / 训练策略

基于视频生成模型 Wan2.2-TI2V-5B 实现,在表 1 的混合数据集上训练。每个视频片段 49 帧,裁剪缩放到 \(480\times640\)。用 AdamW 训练 20k 步,batch size 24,24 张 NVIDIA H20 GPU,学习率 1e-4。去噪遵循 rectified flow 形式。值得强调的是:全程不用任何深度监督,几何信号完全来自双目图像本身。

实验关键数据

评测集由 435 张立体图构成,采样自 FoundationStereo、UnrealStereo4K、TartanAir 测试集(合成)和 Middlebury(真实),覆盖室内外、多种纹理和基线。指标涵盖视觉质量(FID/FVD/CLIP-T/CLIP-F)、相机精度(RotErr/TransErr)、左右视图同步(Mat. Pix. 匹配像素、FVD-V、CLIP-V)和速度(FPS)。

主实验

所有 baseline 都是「SOTA 相机可控视频生成 + 事后转立体」:RGB-D 模型直接用预测深度 warp 出另一视图,RGB 模型先用 DepthCrafter 估深度再 warp(都靠 StereoCrafter 做 warp-inpainting)。

方法 模态 FID↘ FVD↘ RotErr↘ TransErr↘ Mat.Pix.(K)↗ CLIP-V↗ FPS↗
Voyager RGBD 226.97 170.37 1.34 0.25 4.26 91.41 0.03
DeepVerse RGBD 191.32 176.72 1.51 0.16 4.48 93.86 0.35
Aether RGBD 185.72 152.97 1.50 0.13 4.35 93.71 0.11
SEVA RGB 195.70 170.92 1.09 0.51 4.49 94.73 0.10
ViewCrafter RGB 211.89 185.76 1.24 0.20 4.49 93.51 0.13
Ours Monocular RGB 126.83 96.87 1.36 0.14
Ours Stereo RGB 111.36 83.04 1.01 0.11 4.56 97.50 0.49

本文在视觉质量(FID 111 vs 次优 126,FVD 83 vs 97)、相机精度、视图同步(CLIP-V 97.50 vs 94.73)上全面领先,FPS 0.49 也明显高于绝大多数多阶段 baseline(论文称相对 SOTA 转立体方案约 3× 加速、视点一致性约 +5%)。VBench 上同样最优(Aesthetic 44.27、Imaging 66.51)。

消融实验

相机注入策略(表 4,TartanAir):

配置 FID↘ FVD↘ RotErr↘ TransErr↘ 说明
Plücker Ray 142.46 130.39 1.52 0.21 绝对坐标,泛化差
PRoPE 144.45 128.32 1.33 0.18 重参数化原 RoPE
Ours Zero Init 131.07 96.62 1.81 0.24 保先验但相机难激活
Ours Copy Init 122.41 93.17 1.16 0.15 用时序权重初始化

注意力方案(表 5):

配置 CLIP-T↗ CLIP-V↗ FLOPs(×10¹⁰)↘ FPS↗ 说明
4D Attn 25.74 97.55 3.11 0.34 全联合注意力
Stereo Attn 25.43 97.05 / 96.63 1.56 0.49 极线分解

⚠️ 表 5 原文 CLIP-V 列同时出现 97.05 与 96.63 两个数值(排版含两栏),以原文为准。

关键发现

  • Copy Init 是相机注入的关键:相比 Zero Init,用时序注意力权重初始化新相机子空间,相机精度(RotErr 1.16 vs 1.81)和视觉质量同时变好——因为相机条件和时序条件都作用在帧级,时序权重是天然的好起点。
  • 极线分解几乎零代价提速:Stereo Attn 把 FLOPs 从 3.11 砍到 1.56、FPS 从 0.34 提到 0.49(约 50% 提升),而视觉质量只微降、视图一致性基本持平——印证了「跨视图交互本就集中在水平极线上」的几何先验是对的。
  • 端到端避免了误差累积:转立体 baseline 依赖深度估计+warp+inpaint,在细节区(如铁丝网)易错且色调不一致;本文先生成立体对再估视差,视差图明显更干净、且不会把 RGB 纹理串进深度。
  • 无深度监督也能拿到尺度几何:模型只用双目信号训练,却能从生成结果里直接恢复 metric-scale 深度。

亮点与洞察

  • 「扩维 vs 重参数化」是注入条件的通用思路:要给预训练大模型加新条件又不想砸坏先验,与其改原编码,不如开一条正交旁路通道、把原通道原封不动留给先验——这个 trick 可迁移到任何「微调时怕破坏 RoPE/位置编码」的场景。
  • 把领域几何先验直接写进注意力稀疏模式:极线水平对齐这条立体几何硬约束,被翻译成「跨视图只在同一行算注意力」,是用结构先验换算力的范例,比让模型自己从全 4D 里学出来高效得多。
  • 绕开显式深度,用 RGB+视差闭环拿几何:不产出脏的深度图、只生成立体对再估视差,把「世界模型该不该显式建几何」这个问题给了一个优雅答案——几何可以隐含在双目一致性里。

局限与展望

  • 依赖校正过的立体输入:横向行注意力的高效性建立在「极线水平对齐」上,未校正/任意位姿的双目输入需要先校正,否则该先验失效。
  • 几何由双目隐式 ground,未直接监督:好处是省深度标注,但代价是几何精度上限取决于生成的左右一致性,论文未给出生成视差与真值深度的量化误差对比,metric 深度的绝对精度还需进一步验证。
  • 代码未开源(仅项目页),部分关键细节(长视频蒸馏、FLOPs 计算)放在补充材料,复现门槛较高。
  • 长时交互合成靠蒸馏成 4 步因果模型 + KV cache 把 0.49 FPS 提到 5.6 FPS、生成 10 秒立体视频,但这是单独的蒸馏环节,质量-速度权衡未在正文充分展开。

相关工作与启发

  • vs 单目转立体(StereoCrafter / StereoDiffusion / SVG): 它们先估深度再 warp+inpaint,是非端到端的多阶段管线,依赖深度质量、易在细节处误差累积;本文端到端直接生成立体对,左右一致性和速度都更好。
  • vs RGB-D 世界模型(Voyager / DeepVerse / Aether): 它们显式产出深度通道,但深度尺度模糊、跨域不稳、纹理易串进深度;本文不产显式深度,用双目视差 ground 几何,拿到的是更干净、带尺度的几何。
  • vs 相对相机位姿编码(PRoPE / GTA): 同样追求相对、可泛化的相机条件,但 PRoPE 重参数化原 RoPE 会破坏预训练先验;本文改成 token 扩维注入,前 \(d\) 维完全保留先验,训练更稳、收敛更快(表 4 印证)。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首个端到端相机条件立体世界模型,「扩维注入 RoPE + 极线分解注意力」两招都很有针对性
  • 实验充分度: ⭐⭐⭐⭐ 主结果+两组消融+三类应用齐全,但缺生成视差对真值深度的量化精度,且无 metric 深度误差表
  • 写作质量: ⭐⭐⭐⭐ 动机链条清晰、公式完整;个别表格排版有歧义(表 5 CLIP-V 双值)
  • 价值: ⭐⭐⭐⭐⭐ 直接打通 VR/AR 双目渲染与具身 metric 几何,无需深度估计与 inpaint 管线,落地价值高