对应:Drive-WM 精读。本页依据论文 §3–5、附录 B–D,以及 ConvNeXt、CLIP、Latent Diffusion、CVT、FID/FVD 原始论文。解释和教学例子不等于实验环境运行证据;本次没有执行模型。
先明确整套方法的角色
规划器先提出轨迹;Drive-WM 根据当前场景与候选动作生成未来多相机视频;外部感知模型从生成视频中预测道路和车辆;奖励规则选候选。世界模型还可单独接布局、文本等条件做生成。
“生成损失的目标来自自动加噪”不等于整套系统无需标签。条件图、预训练模型、候选规划器、评价真值是不同的信息来源,必须分别分析。
1.1 它们都是相机方向,不是两种不同传感器
六路相机沿车身周围排列,论文例子分成两组:
- 参考组:F 前视、BL 左后视、BR 右后视。
- 中间/拼接组:FL 左前视、B 后视、FR 右前视。
它们交错排列,选这一组的动机是先生成一组不要求严格重叠对齐的参考视频,再用它们约束相邻中间视角。不是“前视天然比侧视更可靠”,换一套相机布置可以有不同分组。
1.2 实际顺序
- 联合生成 F、BL、BR 的未来视频。
- 为 FL 提供 F 与 BL 的视频作条件,并提供 FL 自己的先前上下文。
- 为 B 提供 BL 与 BR;为 FR 提供 BR 与 F。
- 模型生成三个中间视角,得到完整六路视频。
这里的“参考”在推理第二阶段是第一阶段已经生成的未来,不是偷看了真实未来。 训练则利用数据中同步相邻视角作为条件,教模型预测目标视角;附录 B.2 描述每次随机选一个中间视角、配两个邻居训练。
1.3 为什么叫 stitched,却不是直接粘贴?
比如生成 FL 时,F 提供前方道路内容,BL 提供左侧道路/车身经过的内容,但这两张图的拍摄方向不同。把它们裁两半贴在一起,不会自然得到 FL 相机的透视关系。
模型必须结合邻居内容与当前条件,重新生成目标视角,包括透视、遮挡和可见区域。stitched 是“受两侧参考约束的中间视图”的形象命名,不是全景拼接算法。第一阶段生成的是视频,约束也随视频时间变化。
数学关系为:
p ( x r , x s ∣ x p r e , c ) = p ( x r ∣ x p r e , c ) p ( x s ∣ x r , x p r e , c ) p(x_r,x_s\mid x_{pre},c)=p(x_r\mid x_{pre},c)\,p(x_s\mid x_r,x_{pre},c) p(xr,xs∣xpre,c)=p(xr∣xpre,c)p(xs∣xr,xpre,c)
这是在原文式 (4)基础上显式加条件 c c c 的教学写法。先知道参考组 x r x_r xr,再生成中间组 x s x_s xs。联合生成提供跨视角交流,分解生成提供依赖顺序;二者仍不保证严格三维一致。
2. ConvNet 和 ConvNeXt 是什么?为什么要图像编码?
ConvNet/CNN 是卷积神经网络这一大类;本论文具体使用 ConvNeXt,不是一个叫“ConvNet”的特定编码器。
2.1 卷积的直观过程
卷积用可学习的小窗口扫描图像,提取局部特征。低层可能响应边缘、颜色与纹理;层层组合后形成更大范围的模式。网络训练出这些特征,不是人工逐个写出“汽车检测规则”。
典型编码流程可以写成:
RGB 图像 [3,H,W]
→ 卷积、下采样和残差块
→ 特征图 [D,h,w]
→ 把空间网格展开
→ 特征序列 [h×w,D]
→ 按需要映射到统一宽度 d
下采样减少空间位置,增加每个位置可包含的上下文。编码并不等于输出“这里有3辆车”的最终检测结果;这里输出的是供生成网络读取的内部特征。
2.2 ConvNeXt 的结构直觉
ConvNeXt 是现代化卷积骨干:分阶段下采样,包含较大卷积核的 depthwise convolution、通道混合、归一化、非线性与残差连接。
- depthwise 卷积:先让各通道分别提取空间邻域模式。
- 通道混合:用线性/逐点投影让不同类型特征组合。
- 残差连接:把输入加回变换结果,帮助深网络训练。
经典 ConvNeXt block 可概括为“7×7 depthwise → LayerNorm → 通道扩展 → GELU → 通道压回 → 残差”。这是原始 ConvNeXt 的结构背景,不代表已核对 Drive-WM 具体采用哪种尺寸/变体、每层维度或全部冻结策略。
2.3 Drive-WM 中两个“图像编码器”别混了
| 编码器 | 输入 | 输出用途 |
|---|---|---|
| VAE encoder | 要学习生成的真实视频帧 | 得到扩散用 latent;训练时加噪 |
| ConvNeXt 条件编码器 | 当前图、参考图、布局图等条件 | 得到可供 cross-attention 读取的条件特征 |
一个是“生成内容所在的压缩空间”,另一个是“画画时读的参考资料”。即使都接收图像,也不是同一条支路。
来源:Drive-WM §3.3、A ConvNet for the 2020s,CVPR 2022。
3. 3D box、HD map、BEV segmentation 是什么?怎样喂进去?
| 信息 | 白话含义 | 原文采用的条件表达 |
|---|---|---|
| 3D box | 用有位置、尺寸、朝向的三维盒子包住车辆等物体 | 通过相机标定投影八个角点/框结构到相机画面,用颜色区分类别 |
| HD map | 包含车道、边界、人行横道等精细静态元素的地图 | 把矢量线投影到相机画面,用颜色表示类型 |
| BEV segmentation | 从鸟瞰角度标记每个地面格子的语义类别 | 按 CVT 的数据处理流程制作鸟瞰语义 mask,再编码 |
BEV mask 本身是鸟瞰图,不能把三类输入一律说成“全都投影到相机画面”。 原文明确投影的是框与 HD map;BEV 分割也作为二维条件表示输入。
投影可直观写成“世界/自车坐标中的点 → 相机坐标 → 相机内参得到像素”,需要相机内外参及正确坐标变换。这里是解释为何能把三维框画到照片上,不能据此认为论文用 ConvNeXt 直接解析原始三维框数组。
这些条件图再经 ConvNeXt 编成布局序列 l l l。它们是“告诉生成器应该画什么在哪里”的条件,不是最终 RGB,也不是此时由去噪网络直接输出的检测标签。
在另一个环节,模型生成视频后,还会运行检测器/地图预测器用于奖励或评估。要区分:
- 生成前布局:作为输入约束画面。
- 生成后感知:检查生成画面实际表达出什么。
来源:§3.3、附录 C.1。
4. 所以它究竟有没有监督?
你的判断方向是对的:不能把论文整套实验描述成完全无标注学习。 但需要区分下面几层:
- 扩散损失:用真实视频自动加噪,目标是已知噪声,不需要人逐像素写噪声标签。
- 条件信息:布局实验使用框、地图、BEV mask 等结构信息;它们可能来自人工标注、已有地图或处理流程,不是模型无中生有得到的。
- 候选规划器:VAD 本身涉及专家轨迹与相关感知监督。
- 外部模型:BEVFormer、MapTR、CVT 也有各自预训练和监督来源。
- 指标真值:计算布局一致性、轨迹误差等仍要参考相应真值。
4.1 两种实验不能混用
| 设置 | 未来信息给多少 | 实际问题 |
|---|---|---|
| layout-based | 给每个目标帧的布局,例如逐帧框和地图 | 给定场景结构,能否生成符合它的视频? |
| action-based | 给当前图像 i 0 i_0 i0、当前布局 l 0 l_0 l0、文本 e 0 e_0 e0 与未来动作序列 a t a_t at | 已知现在与计划,模型预测未来环境会怎样? |
原文动作模式式 (5):
c t = [ i 0 , l 0 , e 0 , a t ] c_t=[i_0,l_0,e_0,a_t] ct=[i0,l0,e0,at]
因此,“规划预测时必须提前知道未来所有车辆框”不是正确理解。不过当前布局仍是输入条件,论文没有因此自动证明在没有任何结构化信息时同样有效。
这些条件是可组合的接口,不表示所有模型变体每次必须同时提供框、HD map、BEV mask 三者完整集合。具体缺哪项、性能如何,需看相应模型设定和消融。
来源:§3.3、§5.1 Model variants、§5.2、附录 C.1。
5. CLIP 文本编码器是什么原理?
CLIP = Contrastive Language–Image Pretraining,对比语言–图像预训练。 它通过图文配对学会让相关图片和文字在特征空间相近。
5.1 训练 CLIP 时
一批有 N 对图文:汽车照片/汽车描述、猫照片/猫描述……分别经过图像编码器和文本 Transformer,得到特征,再计算全部 N×N 图文相似度。
训练鼓励正确配对的相似度较高,错误配对较低。这是对比学习;文本来自配对数据,也是一种自然语言监督。它不是让文本编码器自己把文字画成图,也不是用每个词去查固定图片。
5.2 Drive-WM 使用时
只需要预训练 CLIP 的文本侧,将“相机方向+天气+光照”的描述变成上下文化的文本特征序列 e ∈ R m × d e\in\mathbb R^{m\times d} e∈Rm×d,供去噪网络读取。
例如“front view, rainy night”应让网络读到前视、雨天、夜间等语义。文字提供语义,不提供精确的每辆车三维位置。 精确布局由其他条件承担。
原始 CLIP 的图文对比目标通常利用汇总特征;生成模型中可读取文本 Transformer 的逐 token 隐藏状态。不要把“CLIP 能输出整体检索向量”误解为“Drive-WM 只能收到一个数或一个词”。论文未在主文逐项给出所用 CLIP 变体、token 数与全部冻结细节,本页不补造。
来源:CLIP 原论文,ICML 2021。概念入口:CLIP。
6.1 动作是候选轨迹的位移
原文接 VAD 时定义:
a t = ( Δ x t , Δ y t ) = ( x t + 1 − x t , y t + 1 − y t ) a_t=(\Delta x_t,\Delta y_t)=(x_{t+1}-x_t,y_{t+1}-y_t) at=(Δxt,Δyt)=(xt+1−xt,yt+1−yt)
它是自车相邻位置之间的二维变化,不是直接的油门和刹车。若轨迹点为 ( 0 , 0 ) , ( 1 , 0 ) , ( 2 , 0.2 ) (0,0),(1,0),(2,0.2) (0,0),(1,0),(2,0.2),则前两步位移为 ( 1 , 0 ) , ( 1 , 0.2 ) (1,0),(1,0.2) (1,0),(1,0.2);此处数字仅用于示例。
动作经 **MLP(多层感知机)**变成特征。MLP 就是几层线性变换加非线性激活;网络学习“这些位移数字怎样影响未来视觉变化”。论文规定输出 a t ∈ R 2 × d a_t\in\mathbb R^{2\times d} at∈R2×d;两个数字被表示为统一宽度的条件向量。未交代所有隐藏层和精确实现时,不要凭这个维度反推唯一的网络。
这个编码器不是选动作的人,它只是翻译已给定的动作。
6.2 “现有规划器”不是都用一个算法
一般可以分为两种思路,以下为概念背景:
- 模块化规划:感知/预测得到道路与障碍 → 提候选轨迹或求解优化问题 → 按碰撞、路线进度、平滑性等选方案 → 控制器跟踪。
- 学习式规划:从传感器与导航条件学习输出路点,可有感知中间任务,也可直接预测;常用记录驾驶轨迹作为监督。
Drive-WM 实验具体用 VAD,而非泛指所有规划器。VAD 将道路和交通参与者运动表示成向量,学习输出自车轨迹;论文向预训练 VAD 分别给“直行、左转、右转”命令,得到候选,再用世界模型重评分。
这里的三种候选不是对整段动作空间的穷举,也不是保证三条里必有安全解。轨迹最后还需车辆控制器转换为可执行控制。
来源:VAD,ICCV 2023、Drive-WM §4.1/§5.4。
7. 不同条件怎样融合?cross-attention 在哪?
设:图像特征 i 0 ∈ R n × d i_0\in\mathbb R^{n\times d} i0∈Rn×d、布局特征 l 0 ∈ R k × d l_0\in\mathbb R^{k\times d} l0∈Rk×d、文本特征 e 0 ∈ R m × d e_0\in\mathbb R^{m\times d} e0∈Rm×d、动作特征 a t ∈ R 2 × d a_t\in\mathbb R^{2\times d} at∈R2×d。
c t = concat ( i 0 , l 0 , e 0 , a t ) ∈ R ( n + k + m + 2 ) × d c_t=\operatorname{concat}(i_0,l_0,e_0,a_t)\in\mathbb R^{(n+k+m+2)\times d} ct=concat(i0,l0,e0,at)∈R(n+k+m+2)×d
“统一”指宽度都是 d,长度可以不同;沿序列长度拼接,不是把原始 png、中文字符串和数字文件直接粘在一起。
cross-attention 可概括为:
Q = W Q h , K = W K c t , V = W V c t , Attn ( Q , K , V ) = softmax ( Q K T d k ) V Q=W_Qh,\quad K=W_Kc_t,\quad V=W_Vc_t,\qquad \operatorname{Attn}(Q,K,V)=\operatorname{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Q=WQh,K=WKct,V=WVct,Attn(Q,K,V)=softmax(dkQKT)V
h h h 是当前去噪视觉特征。query 来自“正在画的东西”,key/value 来自“参考资料”;相似度决定每个位置该读哪些条件。空间、时间、视角 self-attention 则是在视觉特征内部交流,两者分工不同。
8. Stable Diffusion 工作原理与 Drive-WM 改动
Stable Diffusion 是基于潜空间扩散的生成模型。原始 Latent Diffusion/SD 设计把主要去噪计算放到图像压缩表示里,降低像素空间上的生成成本。
8.1 三个核心部件
- VAE 编码/解码器:图像 ↔ 连续 latent。
- 文本编码器:文字 → 条件特征;经典 SD 使用 CLIP 文本 Transformer。
- UNet 去噪器:读取带噪 latent、噪声步与条件,预测噪声等训练目标。
8.2 训练与生成不是同一个过程
训练知道干净图像与加入的噪声。生成时则从随机 latent 出发,多次让网络预测、由采样器更新,逐渐得到干净 latent,再解码。推理不是先拿到真实未来再去噪;历史图和条件只用于约束生成。
反向采样不是不加区别地“每次减掉整个预测噪声”,需要按噪声日程与 DDIM 等算法计算。去噪的几十次迭代是计算步骤,不是驾驶时间。
8.3 Drive-WM 在哪里不同?
从 Stable Diffusion 检查点初始化;先适配条件图像生成,再加入时间层与多视角层,使网络处理多帧、多相机;再加参考/中间视角分解。论文报告生成使用 DDIM 50 步、CFG=5。
SD 是基础生成骨干,不会仅因加载它就具备驾驶物理、六视角一致或规划能力,这些要靠新增结构、驾驶数据训练和评价。
来源:High-Resolution Image Synthesis with Latent Diffusion Models,CVPR 2022、Drive-WM §3.1/附录 B.1。
9. reward 具体怎么设计?
对每条候选轨迹生成的未来视频,运行外部感知模型:
- BEVFormer:预测三维物体框等信息。
- MapTR:预测在线地图元素。
然后用规则计算两类奖励:
| 奖励 | 论文给出的设计因素 | 作用 |
|---|---|---|
| R m a p R_{map} Rmap | 与路沿距离、车道中心线一致性 | 避免出路界或不合理横向偏离 |
| R o b j e c t R_{object} Robject | 与其他交通参与者的纵向、横向距离 | 评价潜在碰撞风险 |
R = R m a p ⋅ R o b j e c t , W ∗ = arg max W ∈ C R ( W ) R=R_{map}\cdot R_{object},\qquad W^*=\arg\max_{W\in\mathcal C}R(W) R=Rmap⋅Robject,W∗=argW∈CmaxR(W)
C \mathcal C C 是候选集合。奖励看的是生成场景中的驾驶后果,不是画面美观程度;它也不是扩散训练损失。
论文交代了因素和相乘规则,但没有在此完整写出各距离如何归一化、所有阈值、跨时间怎样精确汇总。不得把自编的指数函数、线性权重或安全阈值当成原方法。
教学例子,非原始输出:若两项已标准化为“越大越好”,候选 A 为 0.9×0.2=0.18,候选 B 为 0.7×0.8=0.56,就选 B。这只解释乘积的直觉,不表示论文用这组数或保证该分数是安全概率。
GPT-4V 仅在附录展示积水等定性评价,不是主表全部结果的默认评分器。CVT 也不是主规划 reward 的计算网络。
来源:§4.2、Table 4、附录 A.5。误差可能由生成、检测、地图估计和评分规则共同引入。
10. 什么叫基于树的规划?
节点是当前或预测状态,边是一段候选动作/轨迹,分叉表示不同选择。 在每个节点向前试几条方案,评估后决定保留或执行哪条,再继续推演,就形成树。
上图只是树结构教学示意,不表示论文特定场景必选左转。Drive-WM 的流程是 VAD 提候选 → 世界模型预测 → 奖励选择 → 可以重复扩展。原文没有完整规定通用 MCTS 的访问次数/UCB、固定树深、全局回溯或所有分支的搜索预算,不能擅自称它实现了那些算法。
- 树结构描述候选如何组织。
- 搜索规则决定扩展谁、保留谁、如何累计价值。
- 世界模型负责预测边后面的状态。
- reward负责评价预测结果。
不是“树”自动给了安全保证,也不保证找到全局最优。有限候选没有安全方案,重评分也无法凭空创造一条。
模型内 rollout 不等于环境闭环:后者还需实际执行动作、得到被动作改变的新观测继续决策。论文主定量是 nuScenes 开环,不是 CARLA/实车闭环成绩。
11.1 共同框架:比较两批数据的特征分布
- 准备真实样本集合与生成样本集合。
- 用固定预训练网络提特征。
- 分别计算特征均值 μ \mu μ 和协方差 Σ \Sigma Σ。
- 用 Fréchet 距离衡量两组统计量的差别,越低越接近。
D = ∥ μ r − μ g ∥ 2 2 + Tr ( Σ r + Σ g − 2 ( Σ r 1 / 2 Σ g Σ r 1 / 2 ) 1 / 2 ) D=\|\mu_r-\mu_g\|_2^2+ \operatorname{Tr}\!\left(\Sigma_r+\Sigma_g-2(\Sigma_r^{1/2}\Sigma_g\Sigma_r^{1/2})^{1/2}\right) D=∥μr−μg∥22+Tr(Σr+Σg−2(Σr1/2ΣgΣr1/2)1/2)
这里 r/g 表示真实/生成,矩阵迹 Tr 是对角线求和。均值描述总体特征中心,协方差描述变化幅度及关联。采用高斯近似的特征统计距离,并不涵盖数据分布全部细节。
11.2 两者差在哪?
| 指标 | 全称 | 输入与常用原始特征网络 | 主要观察 |
|---|---|---|---|
| FID | Fréchet Inception Distance | 单张图片;Inception-v3 池化特征 | 外观/语义分布是否接近真实图片 |
| FVD | Fréchet Video Distance | 整段视频;I3D 视频网络特征 | 同时包含时序与外观信息的分布差异 |
FVD 不是逐帧 FID 再平均。 把同一组帧打乱顺序,逐帧 FID 可以不变,而视频特征可能变化。这是说明时序敏感性的教学例子,不是任何顺序打乱都保证 FVD 必定升高。
11.3 Drive-WM 用多少样本?
附录 D.1:150 个验证场景,六视角拆开,得到 900 段视频,每段 40 帧,沿用 VideoLDM 流程并链接 TATS 的 UCF FVD 代码。训练窗口 T=8 与评估 40 帧是不同设置。
论文没有充分列出全部 FID 取帧、条件帧是否纳入、FVD 实际 checkpoint/取层与截取细节,本页不将通用默认实现冒充其逐项复现实验配置。原始 FVD 方法使用 I3D/Kinetics 特征;不同实现仍需对齐模型、分辨率、长度与样本数。
11.4 为什么越低也不证明驾驶更安全?
FID/FVD 比的是一批视频的分布,不是逐个判断“这条候选轨迹下前车到底会在哪”。生成很多漂亮常见场景,仍可能漏掉一辆危险的小车;更不能据此判断控制执行可靠。
六视角拆成独立视频做 FID/FVD,不能单独测出相邻相机是否描述同一辆车。因此作者又使用 KPM 关键点匹配指标,专门衡量跨视角重叠内容。
来源:FID 原论文、FVD 原论文、Drive-WM 附录 D。
12. CVT 是什么算法?在这里干什么?
这里 CVT = Cross-View Transformer,对应 Cross-view Transformers for real-time Map-view Semantic Segmentation;不是另一篇同缩写的 Convolutional Vision Transformer。
12.1 任务:多相机照片 → 鸟瞰语义图
例如输出一个网格,分别标出哪里有车、哪里是可行驶区域。流程是:
多相机图像 → CNN 图像特征
相机标定 → 与视线方向、相机位置有关的编码
鸟瞰网格 query → 跨相机 cross-attention 读取图像特征
→ 聚合成 BEV 特征 → 解码成语义 mask
相机标定描述镜头投影与相机安装位置/方向。CVT 利用这些几何编码,让某个 BEV 网格能学习去读取合适相机区域;不是将所有图片硬摊平,也不需要先显式预测每个像素深度再重建点云。
概念上,BEV query 问“我代表的地面位置是什么”,相机图像提供 key/value,注意力加权汇入有用内容;具体几何位置编码是它区别于无几何图像混合的重要部分。
12.2 在 Drive-WM 中的两个相关位置
- 数据准备:按 CVT 的流程构建 BEV segmentation 条件 mask,不等于所有 mask 都来自先运行 CVT 网络预测。
- 可控性评价:将生成图像送入预训练 CVT,预测前景/背景语义,与目标布局比较 mIoU,看模型是否真的按条件画出了车与道路。
它不承担 Drive-WM 的扩散生成,也不是主规划 reward(主 reward 使用 BEVFormer、MapTR)。
来源:CVT 原论文 §3、Drive-WM §5.1–5.2、附录 C.1。
13. 完整生成—评价流程图
下图以动作条件下的规划应用为主线。布局条件生成可将逐帧真实/指定布局替换为条件输入;不能将这两种模式的未来信息量混为一谈。
这是原文组件的教学整合图,不是其代码逐函数调用图。图中的 latent、解码和多轮采样在高层合并表示;参考视频在第二阶段作为图像条件被编码。FID/FVD、CVT/mIoU、KPM 是离线评价支路,不参与主 reward 选择。
14. 回答这次疑问时最重要的核对表
| 疑问 | 应记住的区别 |
|---|---|
| 参考与拼接关系 | 先生成一组方向,再条件生成两侧中间方向;不是照片粘贴 |
| 图像编码 | 条件 ConvNeXt 与扩散 latent 的 VAE 是两条支路 |
| 是否有监督 | 自动加噪目标不等于整套条件/规划/感知无标签 |
| 是否偷看未来 | layout 模式可给未来布局;action 模式用当前布局加未来动作 |
| CLIP | 图文对比预训练;本文读其文本特征 |
| 动作 MLP | 编码候选位移,不负责自己选出动作 |
| Stable Diffusion | latent 中学去噪,多轮采样后解码;Drive-WM 加时间/视角结构 |
| reward | 生成后感知几何规则相乘,不是 FID/FVD 或 CVT mIoU |
| 树规划 | 多候选未来分支的组织与选择;不自动等同于 MCTS |
| FID/FVD | 图像/视频特征分布差异,不是实际碰撞安全性 |
| CVT | 多相机到BEV语义分割;在本论文里主要用于可控性评估 |
原始来源导航
- Drive-WM 全文:§3.2–3.3、§4、§5.1–5.4、附录 B.2/C.1/D.1。
- ConvNeXt,CVPR 2022。
- CLIP,ICML 2021。
- Latent Diffusion,CVPR 2022。
- VAD,ICCV 2023。
- CVT,CVPR 2022。
- FID,NeurIPS 2017。
- FVD。
15. 追问:是不是 VAE 是 Q,ConvNeXt 等是 K/V?
两条支路的方向理解接近,但模块本身不是 Q/K/V。 对本文的条件 cross-attention:
- VAE 在训练时将真实视频编码成干净 latent,随后加噪。UNet 处理带噪 latent,得到当前层视觉特征 h h h,再投影成 Q Q Q。
- ConvNeXt、CLIP、动作 MLP 分别输出图像/布局、文本、动作条件,组成 c c c,再经两个不同投影得到 K K K 和 V V V。
采用 token 为行的记法:
Q = h W Q , K = c W K , V = c W V Q=hW_Q,\qquad K=cW_K,\qquad V=cW_V Q=hWQ,K=cWK,V=cWV
与第7节列向量写法属于同一计算的不同记号约定。K、V 来自同一条件序列,但投影矩阵不同,不能理解成 K=V。
不是先用 VAE 做完 attention,再去运行条件编码器。 两条分支提供特征,条件特征供 UNet 多层 cross-attention 读取;视觉特征随层和去噪步变化。推理时没有真实未来图给 VAE 编码,通常从噪声 latent 生成,最后用 VAE decoder 还原画面。
另外,时间/视角 self-attention 的 Q/K/V 都来自相应视觉特征;上述两路来源专指读取外部条件的 cross-attention。
来源:Drive-WM §3.3;原始 Latent Diffusion CrossAttention 实现中的 q=to_q(x)、k=to_k(context)、v=to_v(context)。这是原理对照,不声称已运行 Drive-WM 源码。
16. 追问:VAE 编码图像,为什么生成又从噪声开始?
VAE 建立“图像与压缩表示之间怎样转换”,扩散模型学习“怎样在这个表示空间中生成合理样本”。 两者学习的任务不同,生成时也不要求先有目标图像。
16.1 先学好表示空间,再学这个空间中的生成规律
第一部分是自编码器:
x → E V A E z c l e a n → D V A E x ^ x\xrightarrow{E_{VAE}}z_{clean}\xrightarrow{D_{VAE}}\hat x xEVAEzcleanDVAEx^
它学习如何压缩并重建图像。对于 Stable Diffusion 这类方法,通常先获得可用自编码器,再用它提供的 latent 训练扩散;不是每次去噪都从零重新训练 VAE。
第二部分是 latent 上的扩散生成。VAE 负责定义压缩接口,UNet 和采样器负责生成可被 decoder 解读的 latent。
16.2 训练:知道答案,把它弄脏,学习如何处理
对真实训练图像编码,再在其 latent 中人工加入噪声:
z τ = α τ z c l e a n + σ τ ϵ , ϵ ∼ N ( 0 , I ) z_{\tau}=\alpha_{\tau}z_{clean}+\sigma_{\tau}\epsilon, \quad\epsilon\sim\mathcal N(0,I) zτ=ατzclean+στϵ,ϵ∼N(0,I)
去噪网络接收 z τ z_\tau zτ、噪声级别 τ \tau τ 和条件 c c c,训练预测已知噪声 ϵ \epsilon ϵ。不同训练样本会遇到不同噪声强度,网络因而学习多个强度下的去噪方向。
训练可以随机选一个 τ \tau τ,直接构造这一级别的加噪数据,不必每次完整运行从干净到纯噪声的全部步骤。损失也不是要求 UNet 完美猜出每一个高噪声样本的随机噪声;其最优统计预测与相应生成采样过程配合,学习条件数据分布。
16.3 生成:不知道目标图像,先在相同空间取随机初值
噪声很强时, α τ \alpha_\tau ατ 很小,图像信息几乎被淹没, z τ z_\tau zτ 接近高斯噪声。于是可以用同形状的高斯随机张量作为反向生成的起点,逐步采样到合理 latent,再解码:
z n o i s e ⟶ ⋯ ⟶ z ^ c l e a n → D V A E x ^ z_{noise}\longrightarrow \cdots\longrightarrow\hat z_{clean} \xrightarrow{D_{VAE}}\hat x znoise⟶⋯⟶z^cleanDVAEx^
高斯是已知、容易采样的起点分布。“噪声”只是随机初始化的数值张量,不是先生成一张噪声图片再必须送进 VAE encoder。
举标准 SD v1 的尺寸例子,非 Drive-WM 实测配置:512×512 RGB 图片可压成 4×64×64 latent。生成时直接随机建立 4×64×64 的张量,然后在这个尺寸的空间中去噪,最后解码为图片。相同形状只是兼容接口,不代表任意随机张量已经含有正确图像结构;那部分由扩散模型逐步形成。
训练与生成使用同一套学到的去噪能力;图中并列是对照两个阶段,不表示同时运行两条路径。经典 SD 的去噪网络通常预测噪声,采样器再按日程更新状态,不是每次简单减去完整噪声估计。
16.4 到了几乎纯噪声,原图信息都没了,为什么还能画?
因为任务是生成与数据和条件相容的新样本,不是在完全丢失信息后唯一恢复那张训练原图。
生成规律来自训练后的参数;具体要求来自条件;随机初值提供多样性。同样的当前图像和动作条件,换不同随机种子可以得到不同合理未来。真实未来的唯一答案并没有暗藏在初始噪声里。
16.5 结合 Drive-WM 的两类图像
| 图像/特征 | 训练时 | 生成时 |
|---|---|---|
| 待预测的真实未来视频 | 已有,VAE 编码后用于加噪训练 | 未知,不存在可供编码的真实未来 |
| 当前图像、参考视角、布局等条件 | 编码后帮助网络学习条件预测 | 编码后引导生成;参考未来由前阶段模型生成 |
| 输出视频 | 可用于分析训练重建/预测 | 从生成 latent 经 VAE decoder 得到 |
训练:图像 → latent → 加噪 → 学去噪。生成:latent 噪声 → 逐步生成干净 latent → 图像。 编码器负责把训练答案搬进生成模型的工作空间,解码器负责把生成结果搬回可观看的图像空间。
普通 VAE 也可以从其先验采样并解码;这不等于 Stable Diffusion 必须直接随机取一个 latent 就结束。SD 额外学习了强大的条件扩散分布,并在解码前用它生成 latent。
来源:Latent Diffusion 原论文、Stable Diffusion v1 官方架构说明。
17.1 DDIM:决定如何从当前噪声级别走向更干净的级别
Denoising Diffusion Implicit Models,去噪扩散隐式模型。在当前讨论里主要把它理解为一种扩散采样方法:UNet 负责预测噪声,DDIM 根据预测、当前噪声步和采样日程更新 latent。
当前带噪 latent + 当前噪声步 + 条件
→ UNet预测噪声
→ DDIM采样器计算下一噪声步的latent
→ 重复直到干净latent
→ VAE解码
训练时学习不同噪声等级的去噪能力,推理可选择较稀疏的噪声时间步。例如假设原日程有1000级,可选其中50级进行采样;这是教学例子,不表示Drive-WM正文已确认原训练日程恰好1000级。
不能理解成“不算中间步就白送加速且质量完全不变”。DDIM 定义了兼容这种采样的更新方式,步数与质量存在权衡。它可以复用按相容目标训练的去噪网络,不是推理时再训练一个新的网络。
**随机性参数 η \eta η**控制更新中新增噪声的大小。常见 η = 0 \eta=0 η=0 是给定初始噪声后的确定性采样;并非所有 DDIM 设置都完全确定。Drive-WM 附录 B.1 明确报告 50 步、 η = 1.0 \eta=1.0 η=1.0,所以不能把本文写成“没有任何逐步随机性的DDIM”。即使 η = 0 \eta=0 η=0,改变初始噪声仍可改变生成样本。
来源:DDIM,ICLR 2021。概念卡:DDIM。
17.2 CFG:决定每一步多大程度强调条件
Classifier-Free Guidance,无分类器引导。它不用额外训练一个类别判别器,而组合“有条件”和“空/去除条件”两路去噪预测。
常见记法:
ϵ ^ = ϵ u + s ( ϵ c − ϵ u ) \hat\epsilon=\epsilon_u+s(\epsilon_c-\epsilon_u) ϵ^=ϵu+s(ϵc−ϵu)
- ϵ c \epsilon_c ϵc:给定条件 c c c 的噪声预测。
- ϵ u \epsilon_u ϵu:空条件或指定移除条件的参考预测。
- ϵ c − ϵ u \epsilon_c-\epsilon_u ϵc−ϵu:条件对预测带来的变化。
- s s s:放大这部分变化的引导系数。
按这个记法, s = 0 s=0 s=0 用无条件分支, s = 1 s=1 s=1 用正常条件分支, s > 1 s>1 s>1 进一步强调条件。另一种文献写作 ( 1 + w ) ϵ c − w ϵ u (1+w)\epsilon_c-w\epsilon_u (1+w)ϵc−wϵu,相当于 s = 1 + w s=1+w s=1+w;因此比较不同代码/论文数值时要看参数约定。不能把“5”理解成“5倍正确”或“多去噪5次”。
训练常随机丢弃条件,使同一套模型能处理有/无条件输入;推理两路逻辑预测可合并成一个更大batch计算,并不一定对应两个完全独立的模型。
Drive-WM:附录B.1报告各条件训练时20%概率丢弃,推理CFG=5。具体多模态参考分支保留哪些条件,要以实现为准,不把抽象“无条件”一律说成完全不看任何上下文。
系数过大可能出现失真、过饱和或多样性下降。CFG 不自动保证三维正确或安全。
来源:Classifier-Free Diffusion Guidance。概念卡:CFG-无分类器引导。
17.3 DDIM 和 CFG 怎样配合?
达到最终噪声级别后停止循环,再由VAE解码。UNet估计怎么去噪,CFG调整条件作用,DDIM决定怎样更新状态。 它们是同一生成过程的不同环节。
17.4 MCTD 与 MCTS 是两个词,不能直接互换
前文讨论树搜索时出现的是 MCTS = Monte Carlo Tree Search,蒙特卡洛树搜索,不是MCTD。它通过反复选择、扩展、模拟/价值评估、回传结果,在“探索没试过的分支”和“继续研究看起来好的分支”之间分配计算预算。回传是更新搜索统计,不一定是对神经网络做梯度反传。
MCTD 也确实存在:Monte Carlo Tree Diffusion,蒙特卡洛树扩散,对应 ICML 2025 论文 Monte Carlo Tree Diffusion for System 2 Planning。它将扩散去噪组织成树,对尚未完全去噪的计划进行评价、选择性扩展、剪枝与细化,结合MCTS式搜索与扩散生成。这里仅按原论文摘要解释定位,本次没有精读或复现MCTD算法。
它不是Drive-WM里新增的一个模块。 Drive-WM 是2023预印本/CVPR2024,采用候选轨迹、生成未来、规则奖励和树状推演;不能仅因有树形图就把它改称MCTS或MCTD。
若用户所见原文实际写的是MCTS,则按“蒙特卡洛树搜索”理解;若确实写MCTD,应定位到上述独立方法或其具体上下文,不能擅自判定为打错字。
17.5 参考分组是否固定?
在Drive-WM的nuScenes推理实现设定中,是预先指定的:
| 第一步先生成的参考视频 | 第二步条件生成的中间视频 |
|---|---|
| F 前视 + BL 左后 | FL 左前 |
| BL 左后 + BR 右后 | B 后视 |
| BR 右后 + F 前视 | FR 右前 |
也就是先联合生成 F、BL、BR 的未来,再生成 FL、B、FR 的未来。并非只拿三张当前照片、让其余三路做预测;第一步的三路本身也要生成未来。 第二步还用目标视角自己的历史上下文。
分组在本文推理实验中固定,不是每次按清晰度或置信度动态挑参考;但不是数学上永远只能选这一组三个方向,而是依据此相机布局选择交错分组。改变相机布局、训练与条件处理后,可以研究其他分组;本文没有据此证明任意分组可不改模型直接替换。
训练与推理也不同:附录B.2训练每次随机选六路之一作为目标,提供其两个相邻视角;推理才预定义 F、BL、BR 为参考、分两阶段生成。这不是在推理时偷偷使用目标时刻的真实参考画面。
本文深入解析Drive-WM——一种面向自动驾驶的条件化世界模型。其核心是基于Stable Diffusion潜空间扩散架构,融合多相机视频(六路交错分组)、BEV布局、CLIP文本描述与候选轨迹位移等多模态条件,通过cross-attention实现条件融合,并采用DDIM采样与CFG引导生成未来场景。生成结果经外部感知模型(BEVFormer/MapTR)评估,结合规则奖励重评分候选轨迹,支撑基于树的规划决策。模型强调视角一致性、条件可控性与生成可评价性,非端到端无监督。
395

被折叠的 条评论
为什么被折叠?



