引言:从图像生成到视频生成

视频生成比图像生成多了一个时间维度,这意味着模型不仅要理解"画面里有什么",还要理解"画面怎么随时间变化"。对自动驾驶来说,这正是世界模型的核心——预测未来几秒内驾驶场景的演变。

本文从表征学习出发,系统梳理视频生成模型的四个核心组件:离散潜在表征(VQVAE/VQGAN)扩散去噪骨干时序建模机制,以及驾驶专用的条件控制


🧱 VQVAE:离散潜在表征

为什么需要离散表征?

连续潜在空间(如标准 VAE)存在两个问题:一是后验坍缩(token 不利用),二是难以与自回归 Transformer 结合。VQVAE(Vector Quantized VAE)通过引入离散编码本解决了这些问题。

VQVAE 核心架构

VQVAE 包含三个部分:

组件功能实现方式
编码器 $E$将图像 x 映射为连续特征图 $\hat{z} = E(x)$CNN / ViT
量化器 $Q$将每个特征向量匹配到编码本中最接近的条目最近邻查找
解码器 $D$从量化后的离散编码重建图像CNN / ViT

量化过程

$$z_q = \arg\min_{z_k \in \mathcal{Z}} \| \hat{z}_i - z_k \|_2$$

其中 $\mathcal{Z} = {z_1, z_2, …, z_K}$ 是大小为 K 的可学习编码本。每个空间位置的特征向量被替换为编码本中最近的条目,得到一个离散 token 网格(如 16×16 个 token),每个 token 是编码本的索引。

训练损失

VQVAE 的损失函数由三部分构成:

$$\mathcal{L} = \|x - D(z_q)\|^2 + \|\text{sg}[E(x)] - z_q\|^2 + \beta \|E(x) - \text{sg}[z_q]\|^2$$
  • 重建损失:确保解码后的图像与原始图像接近
  • 编码本损失:让编码本向量靠近编码器输出(sg = stop gradient)
  • 承诺损失:让编码器输出靠近编码本向量($\beta$ 通常取 0.25)

VQGAN:引入感知损失与对抗训练

VQGAN 在 VQVAE 基础上做了三项关键改进:

  1. 感知损失(Perceptual Loss):用预训练 VGG 网络的中间层特征计算 L2 距离,取代逐像素 MSE,使重建结果在视觉上更锐利
  2. 对抗损失(GAN Loss):引入 PatchGAN 判别器,让解码器生成更逼真的纹理
  3. Transformer 先验:在量化后的离散 token 上训练一个自回归 Transformer 来建模先验分布 $p(z_q)$

核心公式——感知损失:

$$\mathcal{L}_{perceptual} = \sum_l \| \phi_l(x) - \phi_l(\hat{x}) \|_2^2$$

其中 $\phi_l$ 是 VGG 网络第 l 层的特征图。

编码本学习的关键问题:编码本大小 K 是超参数。K 太小会导致表征能力不足,K 太大则很多条目从不被使用(编码本坍缩)。改进方案包括 EMA 更新(指数移动平均)和 编码本重置(重新初始化长期不用的条目)。

从图像到视频的扩展

VQVAE 的视频版通过引入3D 卷积时序 Transformer 在编码器中建模时序信息。每个视频片段被编码为 $T \times H \times W$ 的离散 token 网格,时间维度也被离散化。


🌊 扩散模型:从像素到潜在空间

像素空间扩散的瓶颈

直接在像素空间做扩散(如原始 DDPM)有三个问题:

  • 计算量巨大:256×256×3 = 196,608 维,视频更是 T 倍
  • 冗余建模:模型浪费大量容量在建模像素级纹理噪声上
  • 采样慢:像素空间去噪需要上百步

潜在扩散模型(LDM)

LDM(Latent Diffusion Model,即 Stable Diffusion 的基础)的洞察是:在压缩的潜在空间做扩散。核心流程:

  1. 预训练 VAE:将图像压缩到潜在空间 $z = E(x)$,通常 $z$ 的空间尺寸是 $x$ 的 1/8 ~ 1/4
  2. 潜在空间扩散:在 $z$ 上执行正向加噪和逆向去噪
  3. 解码:用 VAE 解码器 $D$ 将去噪后的 $\hat{z}$ 映射回像素

关键优势

  • 计算量减少 5~10 倍
  • 模型专注于学习语义层面的生成,而非像素噪声
  • 可与多种条件控制结合(文本、深度图、分割图等)

视频 LDM 的特殊设计

从图像 LDM 扩展到视频 LDM 需要额外处理时间维度:

组件图像 LDM视频 LDM
输入单帧潜变量 $z \in \mathbb{R}^{c \times h \times w}$多帧潜变量 $z \in \mathbb{R}^{T \times c \times h \times w}$
去噪骨干2D U-Net时空 U-Net(3D conv + temporal attention)
VAE2D VAE因果 VAE 或 3D VAE
条件注入单帧条件时序条件(前帧、动作序列)

🏗️ DiT:扩散 Transformer

从 U-Net 到 Transformer

2023 年,DiT(Diffusion Transformer)证明了用 Transformer 替换 U-Net 作为扩散骨干可以取得更好的扩展效果。核心设计:

  1. Patchify:将潜在变量 $z$ 切分为 patch,映射为 token 序列
  2. Transformer Blocks:标准 ViT 结构,但增加了时间步和条件的注入
  3. Patch Unpatchify:将 token 序列重排回潜在特征图

DiT 的条件注入方式

DiT 有四种条件注入方案:

方案方法效果
In Conditioning将条件向量拼接到输入 token最弱
Cross-Attention条件作为 cross-attention 的 KV中等
Adaptive Layer Norm (AdaLN)用条件回归 $\gamma, \beta$ 参数调制 LN
AdaLN-Zero残差连接前的缩放也由条件预测最强(默认方案)

AdaLN-Zero 的公式:

$$h' = \gamma_c(t) \cdot \text{LN}(h) + \beta_c(t), \quad h_{out} = h + \alpha_c(t) \cdot \text{FFN}(h')$$

其中 $\gamma_c, \beta_c, \alpha_c$ 都由条件 embedding 经 MLP 预测。

Scaling Law

DiT 最引人注目的发现是扩散 Transformer 遵循清晰的 scaling law

  • 增大模型参数量(从 0.3B 到 3B)持续提升生成质量(FID 下降)
  • 增大训练计算量(更多步数、更大 batch)也持续提升
  • 没有明显的饱和趋势

这使得 DiT 成为 Sora、OpenSora、MagicDrive 等视频生成模型的首选骨干。


⏳ 因果性在视频生成中的重要性

因果 VAE(CausalVAE)

视频生成中有一个关键约束:当前帧只能依赖过去帧,不能依赖未来帧。标准 3D VAE 使用双向卷积,会导致"信息泄露"——未来帧的信息流入当前帧的重建。

CausalVAE(DriveDreamer 中使用)通过两项设计保证因果性:

  1. 因果卷积:只在时间维度上使用单向卷积(只看过去帧),等价于对卷积核施加因果掩码
  2. 时序后验坍缩:强迫后验分布 $q(z_t|x_{\le t})$ 只依赖到当前时刻为止的观测

CausalVAE 的核心区别:

特性标准 VAECausalVAE
编码器感受野双向(前后帧)单向(仅过去帧)
时序重建任意帧可参考未来逐帧因果重建
适用场景离线处理(视频压缩)在线预测(世界模型)

时序建模机制

视频生成模型中时序建模的三种主流方式:

1. 3D 卷积

在 2D 卷积核上增加时间维度,同时建模空间和时间。通常使用 $(T \times 3 \times 3)$ 或 $(3 \times 3 \times 3)$ 的卷积核。

优点:简单直接、参数共享 缺点:计算量随 T 线性增长、时序感受野受限

2. 时序注意力(Temporal Attention)

对空间特征保持 2D 卷积,额外在时间维度上做 self-attention:

$$z_{t,i} = \text{Attention}(z_{t,i}, \{z_{t',i}\}_{t'=1}^T)$$

每个空间位置 i 独立地对 T 帧做注意力。相比 3D 卷积的优势:

  • 可建模任意长度的时序依赖
  • 参数量不随时序长度增长

3. 因果注意力(Causal Attention)

标准自注意力可以看到所有帧(包括未来帧),这违反因果性。因果注意力通过注意力掩码强制当前 token 只能关注自身及之前的 token:

$$\text{Attention}(Q_t, K_{\le t}, V_{\le t})$$

这是自回归视频生成和 causal VAE 的标准组件,也是 DriveDreamerADriver-I 的核心设计。

三种时序建模对比

方法计算复杂度时序感受野因果性代表工作
3D 卷积$\mathcal{O}(T \cdot H \cdot W)$局部(kernel 大小)✅ 可设计Video LDM
时序注意力$\mathcal{O}(T^2)$全局❌ 需掩码Sora, OpenSora
因果注意力$\mathcal{O}(T^2)$全局(仅过去)✅ 天然DriveDreamer

📊 视频生成质量评估指标

FID(Fréchet Inception Distance)

衡量生成图像与真实图像在 Inception 特征空间的分布距离:

$$\text{FID} = \|\mu_r - \mu_g\|^2 + \text{Tr}(\Sigma_r + \Sigma_g - 2(\Sigma_r \Sigma_g)^{1/2})$$

FID 越低越好。但 FID 对视频只有单帧评估能力,不衡量时序一致性。

FVD(Fréchet Video Distance)

FID 的视频版本,用 3D 卷积网络(如 I3D)提取时空特征后计算 Fréchet 距离:

$$\text{FVD} = \|\mu_r - \mu_g\|^2 + \text{Tr}(\Sigma_r + \Sigma_g - 2(\Sigma_r \Sigma_g)^{1/2})$$

与 FID 的区别:

  • 特征提取器从 2D Inception 换成了 3D I3D(在 Kinetics 上预训练)
  • 输入从单帧变为 16 帧视频片段
  • 同时评估视觉质量和时序一致性

FVD 的局限性

  • I3D 在驾驶场景上未做微调,特征可能不敏感于驾驶语义错误
  • 16 帧(约 0.5s)的窗口太短,无法评估长程一致性
  • 计算成本远高于 FID

CLIP Score

用 CLIP 模型计算生成视频帧与条件文本/图像之间的余弦相似度:

$$\text{CLIP Score} = \cos(E_{text}(c), E_{img}(x_{gen}))$$

衡量生成视频与条件之间的语义对齐程度。在驾驶场景中,用于评估生成场景是否符合给出的文本描述(如"夜间城市道路")。

驾驶场景的特殊指标

指标衡量内容计算方法
mAP@3D3D 检测精度在生成帧上运行 3D 检测器
Traj Acc轨迹预测准确度预测的车辆轨迹与 GT 的位移误差
Consistency时序一致性相邻帧光流误差 / 像素跟踪一致性
Control Acc条件跟随准确度生成场景是否满足输入控制条件

🚗 驾驶场景多相机视频生成

多相机挑战

驾驶场景通常有 4~6 个环视相机。多相机视频生成面临独特的挑战:

  1. 跨相机一致性:同一物体在不同相机的成像必须 3D 一致
  2. 相机参数精确控制:生成画面必须与相机内外参完全对齐
  3. 时序跨相机一致性:物体在时间 + 跨相机维度都需一致

MagicDrive

MagicDrive 是首个实现精确 3D 几何控制的多相机视频生成方法:

  • 3D 条件注入:将 3D bounding box、路面标记、相机参数投影到 BEV 空间
  • 跨注意力控制:用 BEV 特征作为 cross-attention 的条件
  • DiT 骨干:每个相机独立处理,但共享 BEV 特征实现跨相机一致性

DriveDreamer

DriveDreamer 专注于可控的驾驶视频生成

  • 结构化条件:用 HDMap + 3D bbox 序列精确控制场景布局
  • CausalVAE:因果编码保证时序预测的因果性
  • 两阶段训练:先学静态场景先验,再学动态物体行为

Vista

Vista 是来自 Wayve 的驾驶世界模型,特点在于:

  • 动作条件:以自车动作(油门、转向)为条件生成未来帧
  • 闭环推理:可根据自车决策实时生成反应性场景
  • 不确定性建模:对同一动作预测多种可能的未来(多模态)

三种方法对比

方法条件类型骨干架构特有模块是否开环
MagicDrive3D bbox + 相机参数DiTBEV 跨注意力
DriveDreamerHDMap + 3D bboxLDM + CausalVAECausalVAE, 结构化条件部分
Vista动作 + 历史帧DiT不确定性头可闭环

技术前沿

当前视频生成模型在自动驾驶中的应用正在快速发展:

  • 从开环到闭环:传统方法根据给定条件生成固定视频(开环),新趋势是让生成结果依赖自车动作(闭环),实现真正的世界模型
  • 从单模态到多模态:对同一输入预测多种可能的未来(如 Vista 的不确定性建模),服务于下游规划的安全性评估
  • 从多步采样到一步生成:一致性模型和整流流(Rectified Flow)正将推理步数从 50 步压缩到 1~4 步,为实时推理铺路

VQGAN + Diffusion 的常见流程

将 VQGAN 与扩散模型结合的标准管线:

  1. 预训练 VQGAN:在驾驶视频数据上训练 VQGAN,获得高效离散编码本
  2. 编码压缩:视频帧经 VQGAN 编码器压缩为离散 token 网格,降低扩散模型的输入维度
  3. 潜在空间扩散:在 VQGAN 的潜在特征图(而非原始像素)上训练扩散模型
  4. 解码重建:扩散生成的潜在特征经 VQGAN 解码器还原为像素级视频帧

相比直接在像素空间做扩散,这种方案将计算复杂度降低约 4-8 倍,同时因 VQGAN 的离散编码对高频纹理的保留能力更好,生成质量在相同计算预算下更高。Stable Video Diffusion 和 DriveDreamer 都采用了类似的 VAE 编码 + LDM 的二级设计


💭 个人思考

视频生成模型的技术栈已经非常清晰:VQVAE/VQGAN 提供高效的表征压缩,扩散模型提供高质量的生成能力,DiT 提供可扩展的骨干网络,CausalVAE 提供时序因果保证。四个组件拼在一起,就构成了现代视频生成的基本框架。

但有两个深层问题依然未被很好解决:

  1. 长程视频生成的误差累积:无论用 3D conv 还是 temporal attention,预测 5 秒后的视频质量都会明显下降。根本原因在于时序模型实际上是在做递归预测,每一步的小误差都被逐步放大。分层预测(先预测关键帧再插帧)和全局约束可能是出路。

  2. 生成视频的物理准确性问题:当前的评估指标(FVD、CLIP Score)只关注视觉质量和语义对齐,不关心物理合理性。生成的车辆可能违反运动学约束、行人可能闪烁消失。在驾驶场景中,物理正确性比视觉逼真度更重要——一个 FVD 很好但车辆会穿墙的视频生成模型,对自动驾驶没有价值。

我判断未来 1-2 年的方向是:视频生成模型将越来越多地融入几何约束和运动学先验,从"看起来像"进化到"物理上对"。