【ICCV 2023】华科&地平线提出基于矢量范式的端到端自动驾驶SOTA算法方案VAD
一、论文导读
在本文中,作者提出了一种基于纯视觉输入的矢量形式的端到端自动驾驶算法VAD,以完全矢量化的方式对整个驾驶场景进行建模,超越了当时现有的端到端解决方案UniAD,在nuScenes数据集上实现了SOTA的性能和效率
二、论文研究背景
传统的自动驾驶解决方案主要采用模块化的设计思路,其中感知和规划被解耦为独立的模块。但这会造成规划模块的输出结果完全基于感知模块的精度,感知的误差可能会严重影响到规划模块,也就是所谓信息传递是有损的,进而导致一些安全问题。所以,端到端的解决思路是将传感器数据作为感知的输入,用一个整体模型输出规划结果。
此外,根据将传感器采集到的信息进行场景表达方式的不同,可以分成栅格化形式和矢量化形式两种
- 栅格化形式:大多数的工作都会将传感器采集的信息转换到栅格化形式的场景表达。这种形式相对简单,但计算量很大,并且丢失了很多关键的实例级结构信息(下图左侧)
- 矢量化形式:在本文中采用了矢量化的场景表达从而为自动驾驶系统提供道路结构信息以及其他交通参与者的运动信息,进而帮助自动驾驶系统做出更加准确的规划决策(下图右侧)
三、网络模型结构&技术细节梳理
下图展示了VAD端到端算法模型的整体网络结构图
核心创新点一:矢量化场景学习
在本文中,矢量化场景的学习主要包括两部分的内容,分别是Vectorized Map以及Vectorized Agent Motion。
- Vectorized Map:在这一部分中,VAD主要采用一组Map Query从构建的BEV Features中提取地图信息,并预测地图向量以及对应的类别得分。在论文中,主要有三种地图元素,分别是lane divider、road boundary以及pedestrian crossing。经过Vectorized Map Transformer处理得到的Map Query以及Map Vector均会参与后续的规划任务
- Vectorized Agent Motion:在这一部分中,VAD利用Decoder解码出agent相关的属性信息。同时对每个agent的未来轨迹进行预测,包含有不同的模态,每种模态代表了一种驾驶意图。最终agent的运动向量用于去约束自车的规划轨迹以及避免碰撞。同时agent quries作为场景信息喂入到规划模块
核心创新点二:通过交互实现规划
在核心创新点二中,主要包括Ego-Agent交互以及Ego-Map交互两种。
- Ego-Agent交互:在自车和其他智能体的交互中,VAD先随机初始化ego query,然后与agent quries进行交互学习位置信息和运动信息。对于ego query和agent quries对应的位置编码信息则是利用感知模块的输出结果通过MLP网络编码获得
- Ego-Map交互:经过上一步更新后的ego query与map query进行交互,从而使交互后的ego query具备整个驾驶场景中的动态和静态信息。对于ego query和map query对应的位置编码信息采用上一步类似的形式,但是参数并不共享
核心创新点三:矢量规划约束
在VAD算法框架中,基于明确的矢量化场景表示,VAD提出了三个实例级规划约束,分别是Ego-Agent碰撞约束、Ego-Boundary越界约束、Ego-Lane方向约束,如下图所示。
- Ego-Agent碰撞约束:在这个过程中,本文明确考虑了Ego规划轨迹与其他Agent未来轨迹的兼容性,从而提高规划安全性和避免碰撞问题的发生。具体而言,VAD考虑了自车横向和纵向的安全边界,即在横向上车辆之间可以离的比较近,但是在纵向上却需要更远的安全距离。
- Ego-Boundary越界约束:该约束目的是为了将Ego的规划轨迹远离道路的边界区域,从而使自动驾驶车辆可以始终保持在可行驶区域内。
- Ego-Lane方向约束:该约束来源于自动驾驶车辆的运动方向应与车辆所在车道方向保持一致的先验条件。该约束利用矢量化车道方向来正则化规划轨迹的运动方向,从而实现二者能够保持一致。