24年12月香港科技大学和地平线的论文“DrivingWorld: Constructing World Model for Autonomous Driving via Video GPT”。
自回归 (AR) 生成模型(例如自然语言处理中的 GPT 系列)的最新成功,促使人们努力在视觉任务中复制这种成功。一些研究试图通过构建基于视频的世界模型将这种方法扩展到自动驾驶,该模型能够生成逼真的未来视频序列并预测自车状态。然而,先前的研究往往会产生不令人满意的结果,因为经典的 GPT 框架旨在处理 1D 上下文信息(例如文本),并且缺乏对视频生成所必需的空间和时间动态建模的固有能力。本文提出 DrivingWorld,一种用于自动驾驶的 GPT 式世界模型,具有多种时空融合机制。这种设计能够有效地对空间和时间动态进行建模,从而促进高保真、长时间的视频生成。具体而言,提出一种下一状态预测策略来模拟连续帧之间的时间连贯性,并应用下一个标记预测策略来捕获每帧内的空间信息。为了进一步提高泛化能力,提出一种token预测掩码策略和重新加权策略,以缓解长期漂移问题并实现精确控制。该工作展示能够生成时长超过 40 秒高保真和一致视频片段的能力,这比最先进的驾驶世界模型生成时间长 2 倍以上。
如图所示可控生成结果。该方法以短视频片段作为输入,并可以根据不同的预定义轨迹路径生成多种可能的未来驾驶场景。以一条直线路径和一条曲线路径为例,结果表明方法实现精确的控制和未来预测。
世界模型
。世界模型 [24] 可以全面地表示环境,并根据一系列动作预测未来状态。世界模型已在游戏 [11–13] 和实验室环境 [40] 中得到广泛探索。Dreamer [11] 使用过去的经验训练了一个潜动力学模型,以预测潜空间内的状态值和动作。DreamerV2 [12] 以原始 Dreamer 模型为基础,在 Atari 游戏中达到人类水平的性能。DreamerV3 [13] 采用了更大的网络,并成功学会从头开始在 Minecraft 中获取钻石。DayDreamer [40] 扩展 Dreamer [11],以在现实世界中训练四个机器人,成功完成运动和操纵任务。
最近,驾驶场景的世界模型引起学术界和工业界的极大关注。大多数以前的研究 [1、6、7、15] 仅限于模拟器或控制良好的实验室环境。 Drive-WM [39] 使用扩散模型探索现实世界的驾驶规划器。GAIA-1 [17] 研究基于自回归模型的现实世界驾驶规划器,但 GAIA-1 的参数和计算需求较大,而且随着条件帧数量的增加,这些需求也会增加。
VQVAE
。VQVAE [36] 通过矢量量化学习了离散码本表示来模拟图像分布。VQGAN [8] 通过结合 LPIPS 损失 [46] 和对抗性 PatchGAN 损失 [18] 提高真实感。MoVQ [47] 通过将空间变量信息嵌入量化矢量来解决 VQGAN 的空间条件正则化问题。 LlamaGen [33] 进一步对 VQGAN 进行微调,结果表明较小的码本向量维度和较大的码本大小可以提高重建性能。虽然基于 VQGAN 的结构被广泛使用,但一些方法探索更高效的架构。ViT-VQGAN [43] 用视觉Transformer取代卷积编码器-解码器,提高模型捕获长范围依赖关系的能力。VAR [34] 采用多尺度结构从先前的尺度预测后续尺度,从而提高生成质量和速度。然而,这些方法专注于单图像处理,无法捕捉时间一致性。
视频生成
。目前,有三种主流的视频生成模型:基于 GAN、基于扩散和基于 GPT 的方法。基于 GAN 的方法 [31、35、44] 经常面临一些挑战,例如模式崩溃,生成器生成视频的多样性变得有限。此外,生成器和鉴别器之间的对抗性学习,会导致训练过程中的不稳定。基于扩散的方法的一个主要问题,是它们无法生成精确控制的视频。扩散过程的随机性在每一步都引入随机性,因此很难对生成内容中的特定属性进行严格控制。另一方面,传统基于 GPT 的方法 [14, 41] 允许一定程度的控制,但它们的计算成本随序列长度二次增长,严重影响模型效率。
本文世界模型 DrivingWorld 利用 GPT 风格的架构来高效预测未来状态,能够以 10Hz 的频率将预测时间延长至 40 秒以上。该模型旨在理解过去的真实世界状态,并预测未来的视频内容和车辆运动。DrivingWorld 特别专注于根据从时间 1 到 T 的历史状态预测时间 T + 1 的下一个状态,可以通过逐个序贯预测未来状态来生成长视频。时间 t 的每个状态表示为 [θ/t, (x/t , y/t), I/t],其中 θ/t 是车辆的方向,(x/t, y/t) 是其位置,I/t 是当前的正面视图图像。
如图所示,DrivingWorld 不仅可以根据过去的观测 {[θ/t,(x/t,y/t),I/t]} 生成未来状态 [θ/T+1,(x/T+1,y/T+1),I/T+1],而且还支持通过操纵车辆的位置和方向对复杂驾驶场景进行可控模拟。
token化器
token化 [36, 47] 将连续数据转换为离散tokens,从而能够与语言模型集成并增强多模态序列建模。在该方法中,token化器将多模态状态映射到统一的离散空间中,从而实现准确且可控的多模态生成。为了图像生成时间一致的嵌入,提出一种时域-觉察的矢量量化token化器。提出的车辆姿态token化器将姿态轨迹离散化并将其集成到DrivingWorld 中。
单图像 VQ token化器通常难以生成时间一致的嵌入,从而导致视频预测不连续并阻碍世界模型的训练。图像序列 {I/t}被编码为 {f/t},其中每个特征都是独立处理的,缺乏时间信息。
为了解决这个问题,提出一个时间-觉察的矢量量化token化器,旨在确保随时间一致的嵌入。具体来说,为了捕获时间依赖性,在 VQGAN [8] 量化之前和之后插入一个自注意层,其中注意沿着时间维度运行。这使模型能够捕获帧之间的长期时间关系,从而提高生成序列的连贯性和一致性。模型建立在 LlammaGen [33] 的开源 VQGAN [8] 实现之上。简单而有效的时间自注意可以无缝地融入到原始框架中,然后进行微调以开发一个健壮且可泛化的时间-觉察 VQ token化器。{f/t} 在执行量化之前被输入到时间自注意 H(·) 中。
为了准确表示车辆的自车状态,包括其方向 θ 和位置 (x, y),采用以自为中心的坐标系,如上图所示。采用相邻时间步之间的相对姿势,而不是全局姿势。这是因为全局姿势带来巨大的挑战,因为在长期序列中绝对姿势值的幅度不断增加。这种增长使归一化变得困难,并降低模型的鲁棒性。随着序列变长,管理这些大姿势值变得越来越困难,阻碍有效的长期视频生成。
对于车辆方向 {θ/t} 和位置 {(x/t, y/t)} 序列,计算每个时间步相对于前一个时间步的相对值。第一个时间步的相对位置和方向初始化为零。以自车为中心的状态序列由 {∆θ/t} 和 {(∆x/t, ∆y/t)} 给出。为了对它们进行token化,将自车的周围空间离散化。具体而言,将方向离散化为 α 类别,将 X 轴和 Y 轴分别离散化为 β bins 和 γ bins。因此,在时间 t 的相对姿态就可以据此被 token 化。
最后,处理过去 T 个现实世界状态 {[θ/t, (x/t, y/t), I/t]} 并将它们token化为离散序列 {[φ/t, v/t, q/t]},其中每个token都是车辆在每个时间步其状态的离散表示。
世界模型
世界模型旨在理解过去的状态输入,模拟现实世界的动态并预测未来的状态。在该上下文中,它预测即将到来的驾驶场景并规划可行的未来轨迹。为此,世界模型将历史状态tokens {[φt, vt, qt]} 连接成一个长序列,其中 2D 图像标记以之字形(zig-zag)顺序展开为 1D 形式。因此,目标是根据过去观察序列 {r/t} 预测下一个状态 r/T+1 =(φ/T+1, v/T+1, q^1/T+1,...,q^H×W/T+1),捕获时间和多模态依赖关系。注:来自不同模态的所有离散tokens在输入到世界模型之前都由它们各自可学习嵌入层映射到共享潜空间,即 h/t = Emb(r/t)。所有后续过程都在这个潜空间内进行。
一种直接的方法是使用 GPT-2 [29] 结构进行 1D 顺序下一个 token 预测。如图 (a) 显示一个简单的示例。因果注意应用于下一个 token 预测,并对 T + 1 的第 i 个 token 进行建模。
然而,这种一维设计对于该特定的场景来说是不够的。预测长期视频需要生成数万个tokens,这非常耗时。此外,它忽略图像固有的空间结构化图像特征。故提出一个下一状态预测流水线,它由两个模块组成:一个模块集成时间和多模态信息用于下一状态特征生成(即时间-多模态融合模块),另一个模块是自回归模块(即内部状态自回归模块)用于高质量的内部状态token生成。
时间-多模态融合模块
。时间-多模态模块由一个单独的时间层和一个多模态层组成。这将时间和多模态信息的处理分离,从而提高训练和推理速度,同时降低 GPU 内存消耗。如上图 (b) 所示,在
时间 transformer 层 F/a(·)
中采用因果注意掩码,其中每个token只关注自身和所有先前帧中相同顺序位置的tokens,充分利用时间信息。
在
多模态信息融合层 F/b(·)
中,在同一帧中使用双向掩码,旨在充分整合内部状态多模态信息并促进模态之间的交互。每个token都会关注来自同一时间步骤的其他tokens。时间层和多模态层交替堆叠 N 层以形成此模块。
内部状态自回归模块
。在时间多模态模块之后,获得用于未来帧状态预测的特征。一种简单的方法是同时预测下一状态tokens h/t。最近,多项图像生成工作 [33] 提出,用于下一token预测的自回归流水线可以生成更好的图像,甚至优于扩散方法。受此启发,提出一个内部状态自回归模块来生成下一时间步骤的姿势和图像(见上图 (b))。具体来说,为了预测 ˆr^T+1 = (ˆr^1/T+1, . . . , ˆr^H ×W +2/T+1),将时间多模态输出特征 ̊hT =( ̊h^1/T,..., ̊h ^H×W+2/T) 与连续的 tokens ([sos], ˆr^1/T+1, . . . , ˆr^H×W +1/T+1) 相加。然后将它们输入到
内部状态自回归Transformer层 F/c(·)
。这些层中使用因果掩码,因此每个 token 只能关注自身并为内部状态 token 加前缀。由于该流水线结合下一状态预测和下一内部状态token预测,在训练中强制执行两种教师-强制策略,即一种用于帧级别,另一种用于内部状态级别。注:训练中采用交叉熵损失。
解码器
使用世界模型预测下一状态token ˆr/T+1 =(φˆ/T+1, vˆ/T+1, qˆ/T+1),然后可以利用解码器生成相应的相对方向 ∆θˆ/T+1、相对位置 (∆xˆ/T+1, ∆yˆ/T+1) 和该状态的重建图像 ˆI/T+1。此过程能够将预测的潜表示映射回物理输出,包括空间和视觉数据。
车辆姿态解码器
。对于预测的相对方向token φˆ/T +1 和相对位置token vˆ/T +1 ,可以通过token化的逆函数获得相应的值。
时域-觉察解码器
。对于预测的图像token qˆ/T +1,从时域-觉察矢量量化token化器中的代码本 Z 中检索相应的特征。注:在量化层之后,插入时间自注意来增强时间一致性。
长期可控生成