0. 简介
最近VAD v2论文出来了,又掀起了一波该系列模型的热点。我们先看一下蒋博的文章,然后再来看一下《VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning》这篇文章,代码目前还没开源,可以期待一波。等开源后作者也会来仔细阅读这部分代码的。
1. VAD系列对比
1.1 VAD v1 基于矢量场景表征的端到端自动驾驶
自动驾驶系统通常采用分阶段模块化的设计,即感知、预测、规划等模块相互解耦,独立优化。但对于模块化方案,模块间无法协同优化,存在误差累积,感知的漏检误检将会影响规划的安全性。近年来,端到端自动驾驶逐渐受到业界的关注。端到端方案基于数据驱动的方式优化整个系统,打通了各个模块的壁垒,并减少了繁琐的后处理,具有很高的研究价值。然而,之前的端到端方案往往基于栅格化的环境表征(如图1)。这种密集的表征不具备高层级的语义信息,并且需要较高的计算代价。
在ICCV 2023上,我们提出基于矢量化场景表征的端到端自动驾驶算法——VAD。VAD摈弃了栅格化表征,对整个驾驶场景进行矢量化建模(如图2),并利用矢量环境信息对自车规划轨迹进行约束。相比于之前的方案,VAD在规划性能和推理速度上具有明显的优势。
图1|栅格化场景表征
图2|矢量化场景表征(来源:VectorNet)
1.1.1 VAD架构——基于Transformer的端到端模型(主要就是基于MapTr这个模型)
图3|VAD模型框架
VAD的各个子模块都是基于统一的Transformer结构(如图3所示)。其实**BEV Encoder用于编码输入的环视图像,并将其转化为鸟瞰图视角(BEV)下的特征图;Vectorzied Motion Transformer提取场景中的动态目标信息,实现动态目标检测和矢量化的轨迹预测;Vectorzied Map Transformer提取场景中矢量化的静态元素信息(如车道线,路沿和人行道);Planning Transformer以隐式的动静态场景特征作为输入,**提取其中与驾驶决策规划相关的信息,并完成自动驾驶车辆的轨迹规划。另外在模型训练阶段,VAD基于矢量场景表征,对自车的规划轨迹进行矢量化约束,从而提升规划的安全性。
图4|基于矢量场景表征的规划约束
1.1.2 基于矢量场景表征的规划约束
此前的工作大多采用各种后处理策略对规划轨迹进行优化,以提升规划安全性。例如,使用占据图预测结果对规划轨迹进行微调,从而使规划轨迹位于可行驶区域内。这种方法破坏了模型的端到端学习能力,另外后处理也会带来额外的计算开销,降低模型的推理速度。VAD完全摈弃了后处理策略,而是选择在训练阶段,使用驾驶先验知识优化规划表现,从而在不引入额外推理计算开销的前提下,提升了规划的安全性。
◆自车-他车碰撞约束
基于场景中其他动态目标预测的矢量化轨迹和自车规划轨迹的碰撞约束。VAD将自车安全边界分解为横向和纵向的安全距离,当规划轨迹在任一方向与他车预测轨迹的距离小于指定的安全阈值时,则惩罚该轨迹,从而避免自车规划轨迹与他车预测轨迹相交。
◆自车-边界越界约束
基于预测的矢量化边界线,VAD约束自车规划轨迹始终在可行驶区域内。当自车规划轨迹越出道路边界线时,则惩罚该轨迹。
◆自车-道路方向约束
VAD基于预测的道路线方向,约束自车规划轨迹朝向与道路前进方向保持一致。当自车规划轨迹朝向与道路前进方向有较大差异时,则惩罚该轨迹。
1.2 VADv2 基于概率性规划的端到端自动驾驶
大语言模型(Large Languague Model)通过在互联网级别语料库上的预训练,学习到语法、语义和概念关系等高维知识,进而涌现通用智能。驾驶场景中同样存在着数量庞大并且源源不断产生的人类驾驶数据。从人类驾驶数据中学习拟人的驾驶策略,具备成熟的数据基础。但在算法层面,如何建模和训练,仍需进一步的探索。VADv1初步探索了基于矢量化场景表征的端到端自动驾驶算法框架。在VADv1的基础上,VADv2基于概率性规划,以数据驱动的范式从大量驾驶数据中学习端到端驾驶策略。
1.2.1 概率性规划
与感知不同,规划中存在着更多的不确定性,对于同一场景,存在不同的合理的决策规划结果。环境信息到决策规划不存在明确的映射关系,因此学习拟人的驾驶策略极具挑战性。以往的基于学习的规划方法确定性地通过MLP回归出规划轨迹,无法应对环境信息和决策规划之间不明确的映射关系。同时基于神经网络输出的轨迹无法保证满足运动学约束,仍需要后端的轨迹优化。
VADv2采用概率性规划的方法,从大量的人类驾驶数据中,拟合每一时刻基于环境信息的自车轨迹概率分布,将问题转化为预测每一条轨迹和环境信息的相关性,从而应对规划中的不确定性。
图7|规划中的不确定性
1.2.2 算法框架
图8|VADv2算法框架
如图8所示,VADv2以车载相机采集的流式图像序列作为输入。鉴于图像信息稀疏性,VADv2将图像信息转换为具有高层语义信息的tokens。具体地,VADv2基于MapTRv2从环视图像数据中提取地图物理层和逻辑层的map tokens,同时从图像中提取关于动态障碍物的agent tokens和交通信号灯的traffic element tokens。此外,由于在连续的动作空间上学习概率分布较为困难,VADv2将动作空间离散化,通过最远轨迹采样的方式从真实的轨迹数据中筛选出N条轨迹构建轨迹集合,用于表征整个动作空间。VADv2将轨迹通过正余弦编码方式编码为planning tokens。planning tokens基于堆叠的Transformer结构与包含环境信息的tokens交互,同时结合稀疏导航信息和自车状态信息,输出每一条轨迹的概率:
在训练阶段,VADv2通过KL散度约束预测的概率分布和驾驶数据对应分布之间的一致性,并引入额外的场景约束进一步降低存在安全风险的轨迹的概率。在推理阶段,VADv2在每一个时刻从轨迹概率分布中采样一条高置信度的轨迹用于车辆控制。由于输出多模式的轨迹簇,VADv2也可以和基于优化或规则的规控架构结合,进行二阶段优化以及筛选过滤。
2. 主要贡献
基于概率性规划,作者提出了VADv2,一个端到端的驾驶模型,它以流式方式接收环视图像序列作为输入,将传感器数据转换成标记嵌入,输出动作的概率分布,并采样一个动作来控制车辆。仅使用摄像头传感器,VADv2在CARLA Town05基准测试中实现了最先进的闭环性能,显著优于所有现有方法。丰富的闭环演示可以在https://hgao-cv.github.io/VADv2上找到。VADv2在完全端到端的方式下稳定运行,即使没有基于规则的封装也可以。作者的贡献总结如下:
- 作者提出概率性规划以应对规划中的不确定性。作者设计了一个概率场,将动作空间映射到概率分布,并从大规模驾驶演示中学习动作的分布。
- 基于概率性规划,作者提出了VADv2,一个端到端的驾驶模型,它将传感器数据转换为环境标记嵌入,输出动作的概率分布,并从中采样一个动作来控制车辆。
- 在CARLA模拟器中,VADv2在Town05基准测试上实现了最先进的闭环性能。闭环演示表明,它能够以端到端的方式稳定运行。
3. 相关工作
3.1感知
感知是实现自动驾驶的第一步,统一的驾驶场景表示有助于轻松集成到下游任务中。近年来,鸟瞰图(BEV)表示已成为一种常见策略,能够有效编码场景特征并融合多模态数据。LSS [38] 是一项开创性的工作,通过显式预测图像像素的深度来实现视角转换为BEV。另一方面,BEVFormer [26, 52] 通过设计空间和时间注意机制,避免了显式深度预测,并在检测性能上表现出色。后续的工作 [25, 48] 通过优化时间建模和BEV转换策略,持续提高下游任务的性能。在矢量化映射方面,HDMapNet [24] 通过后处理将车道分割转换为矢量地图。VectorMapNet [32] 以自回归方式预测矢量地图元素。MapTR [29, 30] 引入了排列等效性和分层匹配策略,大大提高了映射性能。LaneGAP [28] 为车道图引入了路径建模。
3.2 运动预测
运动预测旨在预测驾驶场景中其他交通参与者的未来轨迹,以帮助自车做出明智的规划决策。传统的运动预测任务利用历史轨迹和高清地图等输入来预测未来轨迹。然而,最近的发展中,一些端到端的运动预测方法 [17, 53, 14, 22] 将感知和运动预测结合在一起。在场景表示方面,一些工作采用栅格化图像表示,并使用卷积神经网络(CNN)进行预测 [3, 37]。其他方法则利用矢量化表示,并采用图神经网络 [27] 或Transformer模型 [13, 33, 36] 进行特征提取和运动预测。一些工作 [17, 53] 将未来运动视为密集的占用情况和流,而不是代理级的未来路径点。一些运动预测方法 [14, 22] 采用高斯混合模型(GMM)来回归多模态轨迹,这可以在规划中应用于建模不确定性,但模式的数量有限。
3.3 规划
基于学习的规划因其数据驱动的本质和随着数据量增加而表现出色的性能,最近展现出了巨大的潜力。早期的尝试 [39, 8, 41] 采用了完全黑箱的思路,直接使用传感器数据预测控制信号。然而,这种策略缺乏可解释性,且难以优化。此外,还有大量结合强化学习与规划的研究 [46, 5, 4]。通过在闭环仿真环境中自主探索驾驶行为,这些方法达到了甚至超越了人类驾驶水平。然而,将强化学习策略应用于实际驾驶场景时,模拟与现实之间的差距以及安全问题带来了挑战。模仿学习 [2, 18, 19, 23] 是另一个研究方向,通过学习专家的驾驶行为以实现良好的规划性能,并开发出接近人类驾驶风格的驾驶模式。近年来,端到端自动驾驶兴起,将感知、运动预测和规划集成到一个模型中,形成了完全数据驱动的方法,并表现出了可喜的成绩。UniAD [19] 巧妙地集成了多个感知和预测任务以提升规划性能。VAD [23] 探索了矢量化场景表示在规划中的潜力,并摆脱了密集地图的依赖。
3.4 大语言模型在自动驾驶中的应用
大语言模型(LLMs)表现出的可解释性和逻辑推理能力在自动驾驶领域可以提供巨大帮助。最近的研究探索了LLMs与自动驾驶的结合[7, 10, 12, 44, 51, 34, 31, 50, 49]。其中一部分工作利用LLMs通过问答任务来理解和评估驾驶场景。另一种方法更进一步,在基于LLM的场景理解基础上引入规划。例如,DriveGPT4 [51] 以历史视频和文本(包括问题和诸如历史控制信号之类的附加信息)作为输入。编码后,这些输入被送入LLM,LLM预测问题的答案和控制信号。另一方面,LanguageMPC [44] 以语言描述的形式接收历史真实感知结果和高清地图,然后利用思维链分析方法来理解场景,最后LLM从预定义的动作集合中预测规划动作,输出的每个动作对应一个具体的控制信号以供执行。VADv2 借鉴了 GPT [42, 43, 1, 47] 以应对不确定性问题。不确定性也存在于语言建模中。在给定特定上下文的情况下,下一词的选择并非确定,而是具有概率性的。LLM通过大规模语料库学习上下文条件下的概率分布,并从分布中采样一个词。受LLM的启发,VADv2 将规划策略建模为一个环境条件下的非平稳随机过程。VADv2 离散化动作空间以生成规划词汇表,基于大规模驾驶示范近似概率分布,并在每个时间步从分布中采样一个动作以控制车辆。
4. 方法
VADv2的整体框架如图2所示。VADv2以多视角图像序列作为输入,以流式处理的方式,将传感器数据转化为环境token嵌入,输出动作的概率分布,并从中采样一个动作来控制车辆。大规模驾驶示范和场景约束被用来监督预测的分布。
图2. VADv2的整体架构。VADv2以多视角图像序列作为输入,以流式处理的方式,将传感器数据转化为环境token嵌入,输出动作的概率分布,并从中采样一个动作来控制车辆。大规模驾驶示范和场景约束被用来监督预测的分布。