24年3月上海AI实验室、香港科大、香港大学和德国图槟根大学的论文“Generalized Predictive Model for Autonomous Driving“。
本文介绍了自主驾驶中大规模视频预测模型。为了消除高成本数据收集的限制,并增强模型的泛化能力,从网络中获取大量数据,并将其与各种高质量的文本描述配对。由此产生的数据集OpenDV-2K累积了超过2000小时的驾驶视频,跨越世界各地具有不同天气条件和交通情况的区域。该模型(称为GenAD)继承了最近的潜扩散模型的优点,用时间推理块处理驾驶场景中具有挑战性的动态。之后以零样本的方式推广到各种未见过的驾驶数据集,超过一般或特定于驾驶的视频预测工作。此外,GenAD可以适应于动作条件预测模型或运动规划器,在真实世界的驾驶应用中具有巨大的潜力。
如图所示,本文旨在通过多模态驾驶视频数据集OpenDV-2K和一个生成模型GenAD,该模型在给定过去视觉和文本输入的情况下预测未来,从而建立一种用于自动驾驶的通用视频预测范式。GenAD的强泛化和可控性在不同的任务范围内得到了验证,包括零样本域迁移、语言条件预测、动作条件预测和运动规划。
该数据集在如下网址公开下载:https://github.com/OpenDriveLab/DriveAGI.
OpenDV-2K,一个用于自动驾驶的大规模多模态数据集,支持通用视频预测模型的训练。 主要组成部分是大量高质量的 YouTube 驾驶视频,这些视频是从世界各地收集的,经过仔细的管理过程后收集到数据集中。 用视觉-语言模型自动为这些视频创建语言注释。 为了进一步提高传感器配置和语言表达的多样性,将 7 个公共许可的数据集合并到OpenDV-2K 中。下表是OpenDV-2K 与现有同类产品在规模和多样性方面的比较一览。 请注意,带✓标记的数据集包含在 OpenDV-2K(最后一行)中。 *标记是Waymo Open、Argoverse 2 和 nuPlan 中的感知子集。 †标记是GPT [78] 根据视频标题估算。
OpenDV-2K 总共占用2059 小时的视频和文本配对,其中来自 YouTube 的 1747 小时和来自公共数据集的 312 小时。 用 OpenDV-YouTube 和 OpenDV-2K 分别指 YouTube 分离部分和整体数据集。
如图是OpenDV-2K 的地理分布,该数据集涵盖了世界各地充足的驾驶场景。
为了简化流程,首先选择某些视频上传者,即 YouTube 用户。 从平均长度和整体质量来看,收集了 43 个 YouTuber 的 2139 个高质量前视驾驶视频。 为了确保训练集和验证集之间不存在重叠,将 3 位 YouTuber 的所有视频用于验证,其余视频作为训练集。 为了排除视频介绍和订阅提醒等非驾驶帧,在每个视频的开头和结尾丢弃一定长度的片段。 然后用 VLM 模型 BLIP-2 [62] 用语言上下文描述每个帧。 通过手动检查这些上下文中是否存在某些关键字来进一步删除不适合训练的黑帧和过渡帧。 数据集构建流程的图示如图所示:从 YouTube 用户那里收集合格的驾驶视频,并处理那些观点不当或涉及场景转换的视频。 然后使用VLM用语言上下文描述每一帧,再对文本进行关键字检查,例如“单词”,“水印”,“黑暗”,“模糊”等。通过这个过程,扭曲或全黑的图像被抹掉。 分类器将具有高级意图的视频标记为命令,孵化出长达 1747 小时的高质量视频文本对的最终数据语料库。
为OpenDV-YouTube 构建了两种类型的文本,即自车的驾驶命令和框架描述,即“命令”和“上下文”,分别帮助模型理解自我行为和开放世界概念。 对于命令,在 Honda-HDD-Action [84] 上训练一个视频分类器,针对 14 种类型的动作来标记 4 秒序列中的自我行为。 这些分类命令将进一步映射到预定义字典中的多个自由格式表达式。 对于上下文,用已建立的视觉语言模型 BLIP-2 [62] 来描述每个帧的主要目标和场景。
考虑到 BLIP-2 注释是为静态帧生成的,无法理解交通灯转换等动态驾驶场景,用几个为驾驶场景提供语言描述的公共数据集 [12,13,24,51,72,84]。 然而,他们的元数据相对稀疏,只有“阳光路”等几个词。 用 GPT [78] 进一步增强文本质量,形成描述性“上下文”,并对每个视频剪辑记录的轨迹进行分类生成“命令”。 最终,将这些数据集与 OpenDV-YouTube 集成,建立 OpenDV-2K 数据集。
如图所示,GenAD分两个阶段进行训练,即图像域迁移和视频预测预训练,第一阶段将通用文本到图像模型适应驾驶域,第二阶段使用时域推理块和修改后的训练方案将文本-到-图像模型提升为视频预测模型,另外将预测模型扩展到以动作为条件的预测和规划:(a) GenAD 的两阶段学习包括将图像扩散模型的图像域迁移到驾驶域(a.1 第一阶段)和用于建模视频时域依赖性的视频预测预训练(a.2 第二阶段); (b) GenAD 中用于第二阶段训练的一个Transformer块在每个冻结层之前交错时域推理块,对齐时空特征; © 时域推理块包括一个因果时间注意(TA)层和两个解耦空间注意(SA)层,提取不同轴的特征。 查询网格关注自身以及那些蓝色的网格,而深灰色网格则被因果关注所屏蔽。 “零初始化”附加在每个注意块的末尾,稳定训练。
车载摄像头采集的视野范围大,视觉内容丰富,包括道路、背景建筑物、周围车辆等,需要强大的生成能力来产生连续、真实的驾驶场景。 为了促进学习过程,第一阶段从独立图像生成开始。 具体来说,用 SDXL [79] 初始化模型,一种用于文本-到-图像生成的大规模潜扩散模型(LDM),以此合成具有大量视觉细节的高质量图像。
最初的 SDXL 是根据一般域的数据进行训练的,例如肖像和艺术绘画,这些数据与自动系统无关。 为了使模型能够合成驾驶图像,用 OpenDV-2K 中的图像-文本对对文本-到-图像的生成进行微调。在 SDXL 的原始训练之后,UNet 的所有参数在此阶段都进行了微调,而 CLIP 文本编码器 [82] 和自动编码器 [25] 保持冻结。
由于两个基本障碍,时域预测高度动态的驾驶世界具有挑战性:
- 因果推理:为了根据驾驶世界的时间因果关系预测合理的未来,模型需要理解所有其他智体以及自车的意图,并了解潜在的交通规则,例如随交通信号灯的过渡交通将如何变化。
- 剧烈的视角飘移:与主要具有静态背景和中心目标慢速运动的典型视频生成基准相反,驾驶视角随着时间的推移而发生巨大变化,每帧中的每个像素都可能在下一帧中移动到较远的位置。
为此采用时间推理块来解决这些问题,每个块由三个连续的注意层组成,即因果时间注意层和两个解耦的空间注意层,分别为驾驶场景中的因果推理和巨大变化建模而定制。
直观上,在第一阶段微调的空间块独立地细化每个帧的特征,实现照片级真实感,而在第二阶段引入的时间块将所有视频帧的特征对齐以实现连贯性和一致性。 为了进一步增强时空特征交互,将所提出的时间推理块与 SDXL中的原始 Transformer 块交织在一起,即空间注意、交叉注意和前馈网络。
对于第二阶段引入的每个块,将其最后一层的所有参数初始化为零。 这避免了一开始就破坏训练好的图像生成模型先验知识,并稳定训练过程。
依靠驾驶场景中训练的视频预测能力,本文进一步开发预训练模型在动作控制预测和规划的潜力,这对于现实世界的驾驶系统非常重要。
动作条件预测。 为了使预测模型可以通过精确的自我行为进行控制并充当模拟器[52],配对的未来轨迹作为附加条件来微调模型。 具体来说,用傅立叶嵌入将原始轨迹映射到高维特征[100]。 经过线性层进一步投影后,添加到原始条件中。 因此,自我行为通过条件交叉注意层注入到网络中。
通过学习预测未来,GenAD 获得复杂驾驶场景强有力的表示,可以进一步用于规划。 具体来说,冻结 GenAD 的 UNet 编码器提取两个历史帧的时空特征,该编码器几乎是整个模型大小的一半,并将它们输入多层感知器(MLP)以预测未来的路点。 借助冻结的 GenAD 编码器和可学习的 MLP 层,与端到端规划模型 UniAD [47] 相比,该规划器的训练过程可以加快 3400 倍,验证了GenAD所学习的时空特征有效性。
GenAD 在 OpenDV-2K 上分两个阶段学习,但具有不同的学习目标和输入格式。 在第一阶段,模型接受输入(图像-文本)对,并在文本-到-图像生成进行训练。 将命令注释(每个 4 秒视频序列的标记)广播到所有包含的帧。 该模型在 32 个 NVIDIA Tesla A100 GPU 上进行了 30 万次迭代训练,批量大小为 256。在第二阶段,GenAD 被训练为以过去潜变量和文本为条件对未来潜变量做联合去噪。 它的输入是(视频剪辑-文本)对,其中每个视频剪辑为 4 秒,频率为 2Hz。 当前GenAD 在 64 个 GPU 上进行了 112.5K 次迭代训练,批量大小为 64。在两个阶段的训练中,输入帧的大小都调整为 256×448,文本条件 c 以 p = 0.1的概率丢弃,在采样中启用无分类器指导的扩散模型[40],用于提高样本质量。
附录:
数据采集。 首先在 YouTube 上搜索自驾游视频,选出全球 43 个持续发布高质量自驾视频的视频上传者,即 YouTubers。 进一步从分辨率、帧率、场景转换频率等方面检查这些YouTuber的视频质量,得到2139个高质量的前视驾驶视频。 将来自 3 个选定的 YouTuber 的所有视频作为验证集,包括 Pete Drives USA、KenoVelicanstveni 和 Driving Experience,而其他视频用于训练。
格式转换。 为了简化训练图像和视频模型的数据使用,用 decord 和 opencv 工具包将所有视频预处理为图像格式的连续帧集。 采样不低于 720p 分辨率的10Hz视频(例如,16:9 视频的分辨率为 1280×720)。
数据清理。 为了确保数据集的质量,排除了每个视频中常见的非驾驶帧,并引入了不需要的噪声。 具体来说,舍弃了大部分视频的前90秒和后30秒,去掉开头的频道介绍和结尾的订阅提醒。 对于视频介绍较长的 YouTube 用户,会丢弃视频中的前 180 或 300 秒。 借助视觉-语言模型进一步检测并删除黑帧和过渡帧。 首先在 BLIP-2 [62] 生成的上下文中搜索包含单词、水印、黑夜、黑暗街道和模糊等短语的帧,然后进行手动质量检查以确定将其删除。
如图所示是OpenDV-2K多种数据源的视频标注例子:
帧描述(上下文)。 用已建立的 BLIP-2 [62] 来描述每个帧中的主要目标或场景,并给出以下提示。 语言注释也用于数据清理。
驾驶员命令。 与传统的行为规划方法[84]类似,将自车的命令分为13类,即{前进、路口超车、左转、右转、左变道、右变道、左车道分支、右车道 分支、人行横道通过、铁路通过、并道、调头、停止/减速、偏离}。 训练一个基于光流的动作模型来注释未标记的 YouTube 数据集的命令。 具体来说,用预训练的 GMFlow [114, 115] 来提取驾驶视频序列的相邻帧之间的光流。 以光流及其距离图 [132] 作为输入,训练 ResNet-18 [37] 对每个 4 秒视频剪辑的动作进行分类。 训练是在 Honda-HDD-Action 和 Honda-HDD-Cause [84] 的合并数据集上进行的,该数据集提供了指定的动作注释。 对于每种类型的动作,将其与多种表达方式相匹配,丰富语言理解。 在训练过程中,为每个动作从匹配的标题集中随机选择一个文本。
对OpenDV-YouTube 数据集的分析如下。
地理多样性分析。 采用 GPT-3.5-turbo [78] 从每个视频的字幕中推断出其地理信息。 还应用手工制定的规则对 GPT-3.5-turbo 的结果进行后处理,以处理一个城市或一个国家的多个别名。 为简单起见,假设视频的所有剪辑都是在同一位置拍摄的。 对于具有多个推断位置的视频,假设该视频中包含的所有剪辑均匀分布在这些位置。 对于由具有 N 个推断位置的 M 个剪辑组成的视频,假设每个站点都有 MN 个剪辑。
场景多样性分析。 在场景分析时,在生成的帧描述中可视化不同场景的频率。 对于天气和时间段的分析,观察到视频字幕中经常出现一些语言提示,例如“雾”和“夜晚”,提示GPT-3.5-turbo [78]根据字幕来推断视频的天气和拍摄时间。
地理分布。 根据人工改进的 GPT 推理结果表明,YouTube 视频取自 40 多个国家的 244 个城市,覆盖的区域比任何现有的公共驾驶数据集都要多得多。 以两个最受欢迎的地区为例,OpenDV-YouTube在美国包含3640万个片段,覆盖50个州中的40个,在中国包含1290万个片段,覆盖34个省中的26个。 此外,为了测试模型在未遇到位置的零样本性能,YouTube-Val 子集包含来自 YouTube-Train 中未包含的 3 个国家/地区的视频,即波斯尼亚和黑塞哥维那、丹麦和匈牙利。 YouTube-Train 中还有来自美国 1 个州(即缅因州)的视频。
相机设置。 考虑到在线视频来自全球不同的 YouTuber,数据集在摄影设备上具有高度多样性,导致丰富的色彩设置、相机内参和相机外部姿态。 例如,YouTube-Val 子集中提供了双层巴士上的前视视频,而 YouTube-Train 子集中不包含类似的情况。
场景。 OpenDV-YouTube 中有足够的各种驾驶员行为、天气条件、拍摄时间和场景的数据。 该数据集中场景的多样性只是估计值,因为并非所有视频都在字幕中提供天气和拍摄时段。
极端案例。 YouTube 视频还包含极端案例和安全关键案例。 例如照明有限的黑暗隧道、夜间拥挤行人众多的十字路口、日落时的海滩、屋顶以及摄像机镜头上雨滴拍摄的视频。
GenAD的细节如下。
GenAD 建立在 2.7B SDXL [79] 的基础上,一种大规模文本到图像生成模型。 首先在第一阶段对其进行微调,将其域知识转移到驾驶视图合成。 之后,冻结去噪 UNet 中的原始块,并将它们与时间推理块交织在一起,总共 2.5B,以便在视频预测预训练中对视频序列进行建模。 遵循原始SDXL,语言条件由两个具有817M参数的冻结CLIP变体编码,即CLIP ViT-L [82]和OpenCLIP ViT-bigG [20],并且像素空间和潜空间之间的投影由有83.7M 参数的预训练自动编码器进行。 结果,GenAD总共有5.9B个参数。 计算复杂度为 5.27 TFLOPs。
除了文本条件和历史帧条件之外,还引入了自车的未来轨迹作为附加条件信号来指导去噪,从而控制未来的想象力。 将低维未来路点转换为高维连续嵌入[100]来实现,然后用零初始化的线性层将其投影到与文本条件c相同的维度。 在零初始化的情况下,未来轨迹的知识可以通过条件交叉注意层与 c 一起逐渐注入到模型中,从而避免干扰在其他条件下学习的先验知识。 它进一步控制未来的模拟与自我意图一致。 这里的条件未来轨迹包括 2Hz 的 6 个路点。
由于 GenAD 能够根据过去的观察结果预测合理的未来,因此它以有意义的方式对过去帧进行编码,指导未来帧的去噪。 因此,将预训练的 GenAD 作为强大的特征提取器,从过去帧中获取时空表示,用于下游策略学习。 仅利用 GenAD 去噪 UNet 的编码器部分来提取中间语义特征,而不是从解码器部分获取噪声。 具体来说,给定过去两帧和以与Planning-oriented autonomous driving以及ST-P3[45, 47]相同的方式生成的高级命令,冻结的 GenAD 编码器提取时空特征,这些特征被传递到随机初始化的多层感知器(MLP),将它们投射到自车的未来轨迹中。 MLP 由 6 个线性层和 5 个 ReLU 激活组成,总共仅包含 0.8M 个参数。 前两个线性层按通道对特征进行下采样,然后将两帧的特征在通道维度上连接起来,并由第三个线性层进一步下采样。 之后,在空间维度上对特征进行平均池化,并将得到的向量通过 MLP 的最后两个线性层投影到未来的轨迹,该轨迹由 2Hz(3s)的 6 个路点组成。
GenAD 分两个阶段进行训练,即图像域迁移和视频预测预训练。 在第一阶段,用其去噪 UNet 的 2.7B 个可训练参数对预训练的 SDXL 进行逐图像去噪的微调。 它在 OpenDV-2K 的 6510 万个图像文本对上进行训练。 每个文本条件统一为“命令,上下文”。 对于最初标记为视频序列而不是静态图像的某些命令和上下文,只需将它们与该视频序列中包含的所有图像帧相关联。 用 AdamW [69] 在 32 个 GPU 上训练模型进行 300K 次迭代,总批量大小为 256。 在开始时线性预热 10^4 步的学习率,然后将其保持恒定在 1.25 × 10−6。 除非另有说明,大多数实验中的默认 GPU 都是 NVIDIA Tesla A100 设备。
在第二阶段,用视频-文本对来训练视频级的去噪模型,在推理过程中迭代地预测未来。 为了计算效率,冻结了微调图像模型的所有块,仅优化时间推理块,从而在该阶段产生 2.5B 个可训练参数。 为了最大限度地提高构建视频片段的数据效率,以 10Hz YouTube 视频的每一帧作为起始帧,形成 2Hz 的 4s 训练序列,从而得到 65M 的视频序列用于训练。 对于 2Hz 8 帧的每个序列,随机取前端 m ε {1, 2} 帧作为条件帧,其余 n ε {7, 6} 帧将被破坏以进行视频去噪,概率分别为 p ε {0.1, 0.9}。 不会在条件帧上添加噪声,因为不需要生成过去的观察结果。 文本条件的结构与第一阶段相同,从序列的中间帧获取上下文。 GenAD 在 64 个 GPU 上进行 112.5K 次迭代训练,批量大小为 64。经过 10^4 个预热步骤后,学习率设置为 1.25 × 10−5。
在这两个阶段中,输入帧的大小都调整为 256 × 448,文本条件 c 以 p = 0.1 的概率丢弃,在采样中实现无分类器指导的扩散模型 [40]。 CLIP 文本编码器和自动编码器在实验过程中都保持冻结状态。
为了扩展动作条件预测,微调了预训练的 GenAD 以及 nuScenes 上轨迹条件的线性投影层。 在 16 个 GPU 上进行 100K 步骤的训练,批量大小为 16。其他训练协议(例如学习率)与视频预测预训练相同。 为了扩展规划,采用轻量级 MLP 将时空特征从冻结的 GenAD 投影到未来的轨迹。 仅优化具有 0.8M 可训练参数的 MLP 以适应规划。 MLP 训练 12 个 epoch,批量大小为 16,学习率为 5 × 10−4,仅需 10 分钟即可在单个 NVIDIA Tesla V100 设备上收敛。
给定两种类型的条件,包括过去的两帧和文本,GenAD 迭代地对其输入潜去噪(从随机高斯噪声开始),相应地模拟 6 个未来帧。 图像分辨率为256×448,视频序列为2Hz。 采样过程由去噪扩散隐式模型(DDIM)[96]执行。 用 100 个采样步骤,并将无分类器指导的尺度设置为 7.5。 采样速度为539.41 ms/步。