24年12月来自北大、清华和鉴智机器人的论文“GPD-1: Generative Pre-training for Driving”。

对驾驶场景的演变进行建模对于自动驾驶系统的评估和决策非常重要。现有的大多数方法都侧重于场景演变的一个方面,例如地图生成、运动预测和轨迹规划。本文提出一个统一的生成式驾驶预训练 (GPD) 模型,无需额外的微调即可完成所有这些任务。用自车、智体和地图tokens表示每个场景,并将自动驾驶制定为统一的tokens生成问题。采用自回归Transformer架构并使用场景级注意掩码来实现场景内的双向交互。对于自车和智体 tokens,提出一个分层的位置token化器来有效地编码 2D 位置和方向。对于地图tokens,训练一个地图矢量量化自动编码器,有效地将以自车为中心的语义地图压缩成离散tokens。在大规模 nuPlan 数据集上对 GPD 进行预训练,并进行大量实验来评估其有效性。在不同的提示下,GPD 无需微调即可成功推广到各种任务,包括场景生成、交通模拟、闭环模拟、地图预测和运动规划。

如图所示:根据过去的 2D BEV 观察结果,预训练 GPD-1 模型可以联合预测未来的场景演变和智体运动。这项任务需要对 2D 场景的空间理解和对驾驶场景进展的时域建模。GPD-1 成功预测周围智体的运动和未来的地图元素。值得注意的是,它甚至生成了比真值更合理的可驾驶区域,展示其理解场景的能力,而不仅仅是记住训练数据。然而,它很难预测新车辆进入视野,这很具有挑战性,因为它们在输入数据中不存在。

请添加图片描述

用于自动驾驶的离散tokens。token化离散表示已变得流行,可用于高效且可解释地捕获复杂的空间布局。VQ-VAE [42] 引入了一种码本机制,在token化的离散潜空间内构建编码器-解码器架构,从而能够更丰富、更紧凑地表示高维数据。VQ-VAE-2 [38] 通过分层的量化代码和自回归先验进一步增强该框架。遵循这一方向,VQ-GAN [12]、DALL-E [37] 和 VQ-Diffusion [16] 等模型将输入映射到与码本条目相对应的离散tokens中,从而实现简化但富有表现力的表示。视觉预训练方面的最新研究 [2, 35] 采用了类似的token化策略,使用tokens来表示图像块,并将预测掩码tokens作为智体任务来增强模型的鲁棒性和多功能性。为了表示地图元素,最近关于地图重建 [32, 33] 和端到端驾驶 [24] 的方法将每个地图元素编码为矢量化表示以进行建模,这忽略了场景级结构。

将token化应用于基于 BEV 的自动驾驶场景,并将地图特征编码为离散tokens。该方法通过最小化空间噪声并为地图和智体信息提供统一的结构,解决 BEV 建模中的常见问题,例如计算效率低下和表征不一致。

数据驱动的自动驾驶模拟。传统的模拟技术通常涉及重放记录的驾驶数据以模拟各种驾驶条件 [4, 13, 17, 25]。例如,像 nuPlan [4] 这样的传统模拟器严重依赖广泛的驾驶日志来覆盖不同的场景。然而,这些模拟需要大量的存储容量,这使得它们资源密集且难以广泛使用。此外,这些模型驱动的模拟器,需要复杂的基于规则模块来进行场景生成、智体行为和渲染。为此,提出数据驱动的模拟方法,用于传感器渲染[23、43、44、48]、道路网络生成[14、18、29]和智体行为预测[8、10、40、45]。例如,SLEDGE[8]利用生成模型来模拟具有紧凑矢量化数据的场景,从而无需牺牲场景多样性或复杂性即可高效利用存储。虽然它们很有效,但它们在动态建模智体与周围地图之间的交互方面缺乏适应性,从而限制它们在反应性任务中的应用。

GPD-1介绍如下。

2D 地图场景token化器

自动驾驶的一个关键方面是准确高效地捕捉环境的空间信息。为了实现这一点,采用 2D 地图场景token化器,它将复杂的基于矢量地图表示转换为离散tokens,这些tokens可以在生成框架内有效地建模。此token化器旨在将连续的空间特征简化为结构化的离散格式,使模型能够无缝地将地图信息与智体和自车的tokens结合起来。

地图矢量栅格化。地图数据由直线的矢量表示组成,每条线由多个点定义。由于矢量格式中缺乏空间关系,直接编码这些矢量会带来挑战。为了解决这个问题,将地图矢量栅格化为以自车为中心的 2D 画布,仅表示直接可见的区域。该栅格化地图表示为二值图像 I ,其中插值线段和背景区域标记为 1 和 0。

特征提取和量化。为了有效地表示地图数据,用矢量量化自动编码器 (VQ-VAE) [42] 将连续地图特征转换为离散tokens。栅格化地图 I 首先由 ResNet-50 [20] 编码为紧凑特征 zˆ,其中 H = W = 256,d 是下采样因子,C 是特征维度。对于量化,引入一个具有 K 个离散代码的码本 V ,每个代码捕获场景的一个高级特征。zˆ 中的每个地图特征 zˆ/ij 都通过将它映射到 V 中最近代码来量化。

函数 Q(z/c) 表示将连续潜向量 z/c 映射到码本 V 中最近邻居的量化函数,从而得到离散表示 z/q。这些tokens提供地图信息紧凑且一致的表示,并在降低模型复杂性的同时对空间结构进行编码。

使用离散查询进行重建。遵循 SLEDGE [8] 中定义的 DETR [5] 解码方法,将量化的地图tokens解码为 SLEDGE 中概述的矢量车道表示。为了对齐生成的地图线和真值地图线,还采用匈牙利算法进行匹配,使用与 SLEDGE 相同的监督损失设置,以确保准确的地图重建。地图token化器将基于矢量的地图转换为紧凑的离散空间,对必要的空间关系进行编码。这种表示有助于在生成框架内对动态场景元素进行建模。

智体token化器

在自动驾驶模拟中,准确表示场景中的动态智体对于生成逼真且连贯的场景至关重要。为了有效地编码智体数据,引入一个分层位置token化器来捕获空间(2D 位置)和角度(航向)信息。此token化器使模型能够表示复杂的智体动态,同时减少特征空间,使生成过程更易于管理。

多级量化。每个智体坐标(表示为一般变量 p(例如 x、y 或航向))在 N 个层次上进行多级量化,由一组阈值 {s/1、s/2、…、s/N} 表示,其中每个 s/i 表示特定的一个粒度尺度。

这种迭代量化确保每一级都能够捕捉到更精细的细节,方法是关注前几级未捕捉的残差。结果是一组 N 个量化值 {q/1、q/2、…、q/N},每个值代表不同精度级别的坐标。

位置嵌入。量化后,将固定的正弦嵌入合并到每个量化级别,以捕获其在特征空间中的相对位置。这种正弦编码基于 Transformers [26] 中引入的经典位置编码,它提供空间上下文并保留离散嵌入空间中的位置关系。

最后,所有量化级别的位置嵌入{e/1,e/2,…,e/N}连接起来,形成每个坐标的最终位置编码向量。这样便可获得智体坐标 p 的全面、多层次表示,捕捉精细和粗糙的空间细节。

此分层token化过程统一应用于 x、y 和航向值,为每个智体提供编码空间和角度信息的一致方法。然后将组合的嵌入连接起来并通过 MLP [19] 以将它们映射到指定的模型维度。对于可见区域之外的智体,应用一组统一的可学习参数,允许模型自主学习未见过智体的表示。
如图智体token化器将智体位置和航向转换为离散嵌入,从而实现空间和角度关系的结构化表示。这种token化减少了位置噪声并在特征空间中引入了一致性,从而提高了学习和有效预测智体动态的能力。

请添加图片描述

场景建模的生成式Transformer

在自动驾驶中,对整个场景的演变进行建模的能力,对于预测智体之间的动态交互和理解未来结果至关重要。采用自回归Transformer架构来处理场景建模,该架构受到 GPT 序贯生成框架 [3] 的启发。该方法结合场景级注意掩码,可实现每帧内token之间的双向交互,从而全面理解空间和时间关系,如图所示。

请添加图片描述

每个场景对应于单个帧,由固定数量的地图tokens和智体tokens组成。地图tokens源自 2D 地图场景token化器,是通过 VQ-VAE 获得的离散潜表示 z/q,其数量由潜空间的维数决定。智体token化器生成的智体tokens表示场景中的各个智体,每个帧分配一个固定编号。

空间和时间嵌入。为了向模型提供有关空间布局和时间进程的结构化信息,添加可学习的空间和时间嵌入。空间嵌入将每个token与其作为地图或智体token的角色相关联,确保模型理解场景中每个元素的不同功能。时间嵌入对跨帧的序列顺序进行编码,捕获事件随时间的进展。这些嵌入允许模型保持一致的结构,其中每个帧由固定排列的地图和智体token组成,有助于理解跨帧的空间关系和时间依赖关系。
场景级注意掩码。注意机制使用场景级注意掩码 M 来控制帧内和帧间tokens的交互。掩码 M 的维度为 [T/max ·N, T/max ·N],其中 T/max 是时间步长的最大数量,N = N/agent + N/map 表示每帧中的智体和地图tokens的总数。

最初,掩码设置为上三角矩阵,以防止tokens关注未来的帧,从而强制执行自回归结构。此外,对于每个时间步骤 t,都会调整掩码以允许同一帧内的tokens之间进行完全交互。此配置允许地图和智体tokens在单个时间步骤内进行帧内空间交互,同时阻止来自未来帧的信息流。
自回归建模。遵循 GPT 的架构,Transformer 解码器以自回归方式处理每个场景,预测场景tokens随时间的演变。在每个时间步骤,解码器都会接收空间和时间嵌入的场景tokens,使用场景级注意掩码对其进行处理,并预测下一组tokens。

这可以学习帧内tokens之间的空间关系以及跨帧的时间依赖性,这对于生成逼真的动态驾驶场景至关重要。

生成式 Transformer 利用地图和智体 tokens 的结构化组合,并通过空间和时间嵌入进行浓缩,来预测场景演变。场景级注意掩码可实现每帧内的细微交互,增强学习连贯空间关系和时间进程的能力,使其非常适合自动驾驶场景。

GPD-1:驾驶生成预训练

驾驶生成预训练 (GPD-1) 模型采用两阶段训练过程,为自动驾驶模拟和规划任务构建坚实的基础。首先训练 Map VQ-VAE 潜token化器,采用 L1 误差作为地图线位置,采用二元交叉熵 (BCE) 评估地图直线可见性,如 SLEDGE [8] 中定义的那样。此外,为了提高码本的稳定性和精度,加入均方误差 (MSE) 损失以促进准确量化。此阶段创建了一个高保真地图潜空间,可准确编码空间结构,为场景生成奠定坚实的基础。

在第二阶段,训练好的地图token化器被冻结,并用于提取每帧地图的潜表示,这些表示既是输入,也是进一步训练的基本事实。交叉熵 (CE) 损失用于将生成的tokens与其正确的码本条目进行匹配,确保准确的地图重建。平等对待自车和智体tokens,使用平滑的 L1 损失来计算位置误差,使用 BCE 损失进行存在的二元分类。这种结构化训练允许模型捕捉空间和时间场景动态,从而实现跨不同场景的一致性场景建模。

GPD-1 允许它执行广泛的下游任务而无需额外的微调,从而展示了跨那些关键自动驾驶应用的灵活性。

场景生成:GPD-1 通过初始化场景设置并预测智体、自车和地图特征的空间和时间演变来自主生成完整的场景。这项任务对于从最少的初始输入创建不同的驾驶场景至关重要。

交通模拟:通过使用真值地图和初始智体状态初始化模型,GPD-1 可以准确预测交通在帧间的变化情况。这种模拟能力对于评估和训练动态环境中的自动驾驶模型至关重要,因为了解交通流量是至关重要的。

闭环模拟:给定真值地图和自车轨迹,模型可以根据自车的运动动态调整智体行为。此设置与 nuPlan Challenge [4] 中的闭环交互设置非常吻合,其中智体对自车行为的反应是通过模型生成的,而不是依赖于传统的基于规则算法。

运动规划:GPD-1 通过根据给定的一组智体和地图信息生成路线来支持自车轨迹规划。这种规划能力与实际的自动驾驶需求非常吻合,为传统规划方法提供了一种数据驱动的替代方案。

条件生成:GPD-1 还可以处理条件生成,允许用户定义特定条件,例如初始智体轨迹、智体数量或基于矢量的地图特征。在这些约束下,GPD-1 可以自主生成兼容的场景演变,从而能够模拟有针对性的、特定于场景的驾驶条件,以实现细粒度控制。

微调增强性能。对专门的数据集或特定任务场景进行微调进一步增强 GPD-1 的性能,尤其是在复杂的规划任务中。微调使 GPD-1 能够生成扩展的精确轨迹,以满足 nuPlan Planning Challenge 等挑战的严格标准,其中闭环和开环性能对于准确的轨迹预测都至关重要。

生成式预训练为 GPD-1 配备灵活、强大的结构,可适应自动驾驶中的广泛任务。从场景生成到细致的条件模拟,GPD-1 作为一种适应性强、综合性的解决方案,可实现逼真、灵敏的驾驶模拟和轨迹规划,满足自动驾驶研究和开发的基本需求。

Logo

为开发者提供自动驾驶技术分享交流、实践成长、工具资源等,帮助开发者快速掌握自动驾驶技术。

更多推荐