- 为了解决不确定性问题,提出了VADv2端到端模型,其特色在于使用了概率性规划方法;模型输入是多视角图像序列,然后将输入转换为环境token embeddings,输出行为的概率分布,并且采样出一个具体行为用于车辆控制;
- 在仅仅使用相机数据的情况下,VADv2就实现了CARLA Town05环境下的闭环测试SOTA效果,显著优于所有的现有算法
- 代码开源:https://hgao-cv.github.io/VADv2
1 Introduction
- 自动驾驶场景中的不确定性介绍:
- 在跟车过程中,是继续跟随还是变道超车;
- 对向有来车场景中,是避让还是绕过(yield or overtake);
- 从统计的角度分析,驾驶行为的(时机和速度)是非常随机的,以及还有很多潜在因素都是难以建模的;
- 现有的学习算法使用确定性的方式寻找环境和行为之间的映射关系,但是即时行为的方差使得回归目标模糊不清,导致确定性的模型会输出均值行为,产生安全问题
- 此外,这些基于回归的规划器倾向于输出数据样本中出现次数最多的轨迹(例如直行和停车),会导致不理想的性能;
- 为解决上述问题,本文首次提出了probabilistic modeling作为规划器
- 本文将规划策略建模为一个环境条件非平稳随机过程(environment-conditioned
non-stationary stochastic process),公式化表示为
,其中 是历史和当前的驾驶观测数据, 是候选的规划行为;与确定性的模型相比,概率模型可以灵活捕捉规划中的不确定性,并且实现更加精确和安全地规划效果; - 规划行为的空间是一个高维且连续的时-空间,本文重排序了概率场函数用于建模行为空间到概率分布的映射;因为直接拟合连续的规划行为空间是不太可行的,本文将这个空间离散为大量的规划词汇(planning vocabulary),并且使用大量的人驾示教学习基于规划词汇的规划行为的概率分布;
- 为进行离散化,我们收集驾驶示教中的所有轨迹,并采用最远轨迹采样来选择
个代表性轨迹作为规划词汇 - 概率规划的两个优势:
- 可以建模行为和环境之间的联系;确定性的方法只受到了稀疏的监督,而概率模型不仅提供正样本的监督,并且提供了所有候选规划词汇的监督;
- 概率规划在推断阶段很灵活;可以输出多模态的规划结果,并且容易和基于规则或者基于优化的规划方法相结合;
- 主要贡献:
- 我们提出概率规划来应对规划的不确定性。我们设计了一个概率场来从动作空间映射到概率分布,并从大规模驾驶演示中学习动作的分布。
- 基于概率规划,我们提出了一种端到端的驾驶模型VADv2,该模型将传感器数据转换为环境令牌嵌入,输出行为的概率分布,并对一个行为进行采样以控制车辆。
- 在CARLA simulator中,VADv2在Town05基准测试中实现了一流的闭环性能。闭环演示表明它以端到端的方式稳定运行
2. Related Work
3. Method
3.1. Scene Encoder
相机图像被转换为token embedding
; 包括4种 token: - map token
- agent token
- traffic element token
- image token
模型利用 map token 预测向量化表征的地图,包括车道中心线、车道边界线、道路边界、人行道
模型利用 agent tokens 预测其他交通参与者的运动信息,包括位置、方向、大小、速度和多模态未来轨迹
模型利用 traffic element tokens 预测交通要素的状态,在CARLA环境中,考虑了两种交通信号,交通灯信号和停车信号;
上述三种token都收到相应监督信号的监督,除此之外,还是用了image token作为规划的场景表征,作为上述实例信息的补充;
此外,导航信息和紫车状态也进行了嵌入,表示为
3.2. Probabilistic Planning
model the planning policy as an environment-conditioned nonstationary stochastic process, 表示为
基于大规模驾驶示教将规划动作空间近似为概率分布,并在每个时间步从该分布中抽取一个动作来控制车辆
规划行为空间是一个高维连续的时空间
,然后离散规划行为空间为一个大的规划词汇表 具体来说,我们收集驾驶演示中的所有规划行为,并采用最远轨迹采样来选择N个代表性动作作为规划词汇。默认情况下,N设置为4096。
中的每个轨迹都是从驾驶演示中采样的,因此自然满足ego车辆的运动学约束,这意味着当轨迹转换为控制信号(转向、油门和制动)时,控制信号值不会超出可行范围。 将计划词汇表中的每个动作表示为一个 waypoint 序列
,再转换为高维规划tokenembedding ,使用级联的Transformer decoder与环境信息 进行交互,并且与导航信息 和自车状态 结合,最后输出概率 其中, 表示encoding函数,把坐标映射到高维embedding空间,然后分别应用于轨迹a的每个坐标值; 表示位置;
3.3. Training
- 使用了三种监督训练VADv2,分布loss、冲突loss、场景token loss:
Distribution Loss
- 使用KL散度来最小化预测分布和示教分布的差别:
- 在训练阶段,真实轨迹作为正样本被添加到规划词汇表中。其他轨迹被视为负样本。我们为负轨迹分配不同的损失权重。接近真实轨迹的轨迹受到的惩罚较少。
Conflict Loss
- 我们使用驾驶场景约束来帮助模型学习有关驾驶的重要先验知识,并进一步正则化预测分布。具体来说,如果规划词汇表中的一个动作与其他智能体的未来运动或道路边界冲突,该动作将被视为负面样本,我们将施加一个显著的损失权重来降低该动作的概率
Scene Token Loss
地图token、代理token和交通元素token由相应的监管信号监管,以确保它们明确编码相应的高级别信息。
map tokens的损失函数和 MapTRv2的设置保持一致,用L1损失来计算预测地图和真值地图的回归损失,同时也使用了Focal loss作为地图的分类损失;
Maptrv2: An end-to-end framework for online vectorized hd map construction. arXiv preprint arXiv:2308.05736, 2023.
agent tokens的损失由检车损失和运动预测损失组成,与VAD的损失保持一致;使用了L1损失来回归预测的agent分布(位置、方向、尺寸等),以及focal loss来预测agent的类别,
对于每个和真值agent相匹配的智能体,预测了
条未来轨迹,并且使用这些轨迹来最小化最终的位置误差(minFDE)作为预测结果的表征;然后计算预测轨迹和真值轨迹的L1损失作为回归损失; 除此之外,focal loss也用来作为多模态运动类别的损失;
Traffic element tokens
- Traffic element tokens损失包含两个部分:交通灯token和停止型号token
- 一方面,将交通灯token宋到一个MLP中,用于预测交通灯的状态(红、黄、绿),以及交通灯对于自车是否有影响;
- 另一方面,停止信号token也被送入一个MLP中,来预测停车标志区域和ego车辆之间的重叠情况。focal损失用于监督这些预测结果;
4. Experiments
总结
VADv2主要是将预测未来轨迹变为了选择未来轨迹,而选择的依据就是概率,因此取名为probabilistic planning;这样的好处是生成的轨迹“一定是动力学上可行的”,因此不会有比较离谱的轨迹出现,降低了轨迹生成的不确定性,取得了最好的闭环测试效果;这一改进对于不确定性巨大的端到端模型来说是很关键的,但文章对如何根据示教数据设计先验的轨迹没有介绍,猜测作者是为了技术保密,先参加今年的CVPR端到端预测比赛,后续比赛结束文章正式发表后应该会有补充;