前置知识: 计算机视觉

世界模型与视频扩散

00:00
7 min Advanced

世界模型从过去帧预测未来帧。视频扩散使预测看起来真实。两者组合是2026年机器人规划和自动驾驶的基础。

世界模型与视频扩散

世界模型从过去帧预测未来帧。视频扩散使预测看起来真实。两者组合是2026年机器人规划和自动驾驶的基础。

类型: 学习 语言: Python 前置知识: Phase 4 Lesson 10 (Diffusion), Phase 4 Lesson 12 (视频理解) 时间: 约45分钟

学习目标

  • 区分世界模型(学习动态)和视频扩散(学习外观),并解释为什么两者都需要
  • 解释NVIDIA Cosmos、GAIA-1和UniSim的架构
  • 理解世界模型在机器人规划、自动驾驶和游戏中的应用
  • 使用Cosmos或Sora进行条件视频生成

问题所在

自动驾驶汽车需要预测其他车辆和行人未来几秒的行为。机器人需要预测动作的后果。游戏需要预测玩家行动后的世界状态。这些都是世界模型问题:给定当前观察和动作,预测未来观察。

传统世界模型(Ha & Schmidhuber, 2018)学习环境的压缩表示并预测未来状态,但生成的视频模糊、低分辨率。视频扩散模型生成高保真视频但缺乏精确的物理一致性。

2026年的突破是组合两者:世界模型提供物理上合理的动态预测,视频扩散提供照片级真实的渲染。NVIDIA Cosmos(2025)是这种组合的第一个大规模生产系统。

核心概念

世界模型 vs 视频扩散

世界模型:
  输入: 过去帧 + 动作
  输出: 未来帧(低分辨率,物理一致)
  优点: 精确的物理动态,快速推理
  缺点: 视觉质量低

视频扩散:
  输入: 文本/图像条件 + 噪声
  输出: 视频(高分辨率,照片级真实)
  优点: 高保真视觉质量
  缺点: 物理不一致,慢推理

组合(Cosmos风格):
  世界模型预测未来状态 -> 视频扩散渲染高保真帧

NVIDIA Cosmos

Cosmos(NVIDIA, 2025)是物理AI的世界基础模型:

  1. 世界基础模型 — 在数百万小时驾驶和机器人视频上预训练
  2. 条件生成 — 给定过去帧+动作令牌,预测未来帧
  3. 物理先验 — 学习重力、碰撞、遮挡等物理规律
  4. 多分辨率 — 从128x128预览到1080p高保真

Cosmos用于自动驾驶数据增强、机器人策略训练和游戏环境生成。

GAIA-1

GAIA-1(Wayve, 2023)是自动驾驶的世界模型:

  • 自回归Transformer预测未来token
  • 离散化视频、动作和文本为统一token序列
  • 支持动作条件生成:给定转向和油门,预测未来场景

UniSim

UniSim(Waymo, 2023)是自动驾驶模拟器:

  • 从单帧生成3D一致的街景视频
  • 支持相机移动、物体编辑和天气变化
  • 用于安全关键场景测试

视频扩散架构

视频扩散扩展图像扩散到时间维度:

  • 3D U-Net — 在(T, H, W)上操作3D卷积
  • 时空Transformer — 分离式时空注意力(如TimeSformer)
  • 时间一致性 — 帧间注意力确保时间连贯

Sora(OpenAI, 2024)使用时空patch + DiT架构,将视频视为时空token序列。

条件视频生成

世界模型需要条件生成——给定特定输入生成特定输出:

  • 动作条件 — 给定转向角,预测车辆轨迹
  • 文本条件 — 给定描述,生成匹配视频
  • 图像条件 — 给定起始帧,生成后续帧
  • 布局条件 — 给定边界框序列,生成匹配视频

构建它

步骤1:简单帧预测

import torch
import torch.nn as nn

class SimpleFramePredictor(nn.Module):
    def __init__(self, in_channels=3, hidden=64):
        super().__init__()
        self.encoder = nn.Sequential(
            nn.Conv2d(in_channels * 2, hidden, 4, 2, 1), nn.ReLU(),
            nn.Conv2d(hidden, hidden * 2, 4, 2, 1), nn.ReLU(),
            nn.Conv2d(hidden * 2, hidden * 4, 4, 2, 1), nn.ReLU(),
        )
        self.decoder = nn.Sequential(
            nn.ConvTranspose2d(hidden * 4, hidden * 2, 2, 2), nn.ReLU(),
            nn.ConvTranspose2d(hidden * 2, hidden, 2, 2), nn.ReLU(),
            nn.ConvTranspose2d(hidden, in_channels, 2, 2), nn.Sigmoid(),
        )

    def forward(self, frame_t, frame_t1):
        x = torch.cat([frame_t, frame_t1], dim=1)
        h = self.encoder(x)
        return self.decoder(h)

步骤2:使用视频扩散生成

from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-video-diffusion-img2vid-xt")
pipe.to("cuda")

from PIL import Image
image = Image.open("input_frame.png")
frames = pipe(image, num_frames=25).frames[0]

使用它

2026年世界模型选择:

  • NVIDIA Cosmos — 物理AI世界模型,自动驾驶和机器人
  • Sora — OpenAI,通用视频生成
  • Stable Video Diffusion — 开源图像到视频
  • CogVideoX — 开文本到视频

发布它

本课产出:

  • outputs/prompt-world-model-picker.md应用选择世界模型方案
  • outputs/skill-video-consistency-checker.md检查生成视频的时间一致性。

练习

  1. (简单) 训练预测器,从帧t预测帧t+1。可视化预测误差随预测步数的变化
  2. (中等) 使用SVD从起始生成视频。比较不同运动条件下的时间一致性。
  3. (困难) 实现动作条件视频生成:给定动作序列生成匹配的视频片段

关键术语

术语们怎么说实际含义
世界模型预测未来”从当前观察和动作预测未来观察的模型
视频扩散”视频生成扩展图像扩散到时间的视频生成模型
条件生成控制输出”给定特定输入(动作、文本图像生成匹配视频
时间一致性”帧间连贯”生成视频帧之间的视觉和语义连贯性
物理先验物理规律”世界模型学到的重力、碰撞等物理规律
Cosmos”NVIDIA世界模型”NVIDIA的物理AI世界基础模型

延伸阅读

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式