目录
- 1 基本信息
- 3.1 提取特征
- 3.2 中间表示
- 3.3运动规划
- 3.3.1轨迹撒点
- 3.3.2路线预测
- 3.3.2轨迹打分
- 1 路线与驾驶
- 2 安全
- 3 舒适
- 4 学习
- 3 结论
- 参考
1 基本信息
团队:Uber ATG,多伦多大学
年份:2021
论文链接:https://openaccess.thecvf.com/content/CVPR2021/papers/Casas_MP3_A_Unified_Model_To_Map_Perceive_Predict_and_Plan_CVPR_2021_paper.pdf
MP3采用了无高精地图的端到端的方法,并且能够生成可解释的规划 决策的中间表示。中间表示包含未来的位置和速度。
首先采用backbone来踢去地图特征与语义特征,然后生成中间表示。
3.1 提取特征
提取特征采用的方法是将3D点云体素化voxelize,并按照时间拼接起来,作为backbone的输入。
3.2 中间表示
静态场景表示采用online map,划分了可行驶区域;动态场景表示采用occupancy
静态场景表示包含3个部分:(1)可行驶区域,约束是路沿,这个我们也用了;(2)可行驶的车道:在不违反交通法规的情况下,车辆能行驶的车道。(3)路口:路口有2种交通标志,一种是动态的traffic light,另一种是静态的traffic signs(比如停车/让行标志)
信心阈值confidence thresholding和非最大化压缩都是unsafe discrete decisions
动态运动域采用了占据流,即当前和未来多个时刻5s的网格占据情况。这一部分是基于概率的方法。
定义了BEV运动向量,即每个BEV中位置的运动方向,那么每个动态物体从t时刻的i1位置到t+1时刻的i2位置的概率=物体在t时刻在i1的概率 x 各个运动方向的概率 x i2在该运动方向的概率。
障碍物在t+1时刻在i位置的概率 = 1 - (1 - 障碍物在t时刻在其他位置去i+1时刻的i位置的概率)之和
3.3运动规划
采用了基于采样的运动规划方法。oneline map和occupancy分别告诉SDV哪些是可行驶区域,不要和周围的障碍物发生碰撞。
最后从采样的轨迹中选出评分最高的轨迹。
HD map有目标车道线的信息,因此可以在目标车道线附近撒点。道路拓扑是很重要的先验信息prior。
3.3.1轨迹撒点
准备一个大规模的数据集,根据初始状态进行分组,然后对每个组bin进行聚类cluster,使用聚类原型cluster prototype?在在线运动规划中,在组中寻找对应的速度/加速度/曲率,根据这些信息以及自行车模型推导未来轨迹。
3.3.2路线预测
在有高精地图的情况下,路线由高精地图以车道序列给出,但是在没有高精地图的情况下,假定给定【驾驶命令】,包含方向(向前/向左/向右)以及执行该方向命令的大致距离。这个距离加入了均值为0的高斯噪声。没有高精地图怎么解决呢?
route路线被建模为一组BEV中的伯努利随机变量。在给定驾驶命令c和预测地图M后,routing network会预测一个概率地图R。routing network由3个CNN组成,每个CNN对应驾驶命令中的一个方向,每次推理时只会运行其中一个。
3.3.2轨迹打分
用一系列的cost function的组合作为最终分数。
1 路线与驾驶
(1)-行驶路线的概率之和
走概率越大的路线,cost越小
(2)速度与横向误差乘积
距离可行驶车道越远,速度越高,就越危险,越需要惩罚这样的行为。
(3)-可行驶区域的概率
如果不在可行驶区域(人行道/路肩),就越危险
(4)闯红灯惩罚
根据路口预测地图,惩罚闯红灯的行为。
2 安全
(1)和BEV上未来障碍物重合的概率
(2)考虑和其他车的安全距离。假设自车前面的车急减速hard deceleration,子车在慢减速情comfortable deceleration情况下的危险程度。
3 舒适
惩罚 加加速度jerk,横向加速度,曲率和曲率变化率。
4 学习
与端到端训练不一样,采用两步走2 stage training。第一步训练online map,动态占据域和路线。待其收敛,训练planner。
online map采用负对数似然。这里面要学很多分布。
动态占据域:
(1)为了学习当前和未来的占据情况O,采用交叉熵损失;
(2)为了学习概率运动域,运动模式K以非监督的方式,采用分类交叉熵categorical corss entropy,true mode是和真实运动最近的那个。然后采用Huber loss训练该模式。
路线:
采用二元binary交叉熵损失。这一步可以从高精地图里找到驾驶命令。
打分:
打分和选择的过程是不可微分的,采用max-margin loss去惩罚最近但是和样本不一致或者不安全的轨迹。我理解就是自车规划的路线和周车距离太近,虽然是cost最小的,但是仍然不合适。
3 结论
采用了开环+闭环仿真测试。
闭环仿真测试复现日志初始状态和周车行为,如果因为自车和日志中不一样(比如快了慢了,或者换道了),周车采用IDL模型。如果一个场景没有特殊情况event(撞车,偏离路线),那么视为成功。
采用了UrbanExpert数据集,它是KITTI的驾驶时间的33倍。
metrics
Progress 能沿着路线开多远,我觉得挺好的,因为它能衡量和真实轨迹相近程度,要是开的太快或者太慢,就没有对应的log内容了。
L2距离:与真实轨迹的距离
MP3在相比较的模型里,轨迹最安全,跑的最远,也最舒适。
对于模仿而言,IL和CIL表现更好,因为它们的metrics就是这样,但是这样导致轨迹不安全。
这个模型和基于高精地图的模型(NMP和CNMP)相比,效果差不多similar map-related metrics。
作者认为这样还不够,不能反映真实的性能not reflect very well the actual performance when executing these plans
优势:中间可解释的表示intermediate interpretable reprentations
我觉得这篇文章最大的不同在于它认为不应该一味地和数据集里的预测轨迹相比较,虽然很重要,但不一定安全。文章来源:https://www.uudwc.com/A/V6BPZ/
参考
https://zhuanlan.zhihu.com/p/348563616 《什么是体素(Voxel)?》文章来源地址https://www.uudwc.com/A/V6BPZ/