@toc<>
1 背景信息
团队:Uber,多伦大大学
年份:2019
论文链接:https://arxiv.org/abs/2101.06679
2 Motivation
深度学习方案受限于累积误差suffers from the compounding error,而且可解释性差interpretability is difficult to obtain for analyzing the mistakes of the network,而且难以理解复杂的先验知识sophisticated prior knowledge。
传统的模块化自动驾驶的问题是,子任务的优化导致了整体的次优lead to a sub-optimal overall system performance。比如3D检测,对每个障碍物的权重都是一样的,但是对于驾驶员来说,远处的障碍物并不重要,近处的障碍物才重要,影响自己的决策。
3 相关工作
3.1 模仿学习
该方法受限于累积误差,需要大量的数据,而且泛化能力差,比如偏离车道的情况drifting out of lane。
注意:为什么作者会说偏离车道的情况是模仿学习不能泛化的场景呢?我觉得是因为这样的场景太少了,而且没有相应的loss要求自车回到中心线附近。
3.2 强化学习
暂时缺少实际应用,而且没有可解释性的中间表示do not produce interpretable representations。
3.3 基于优化的规划器
传统的规划方法是高度参数化的highly parallizable,需要很多精力去优化。
3 解决方案
3.1 输入与输出
输入:Lidar和HD map
输出:时空space-time cost volume/cost map
规划器planner根据cost volume去采样轨迹,并选择最小代价的来执行。
cost volume能更好地建模不确定性uncentainty多模态naturally capture multi-modality。
注意:HDmap光栅化为了M个channel的tensor,每个channel代表了一个道路元素,如roads,intersections,lanes,lane boundaries等。我认为如果把他们混到不同的channel中,可视化会好看一点(因为RGB三通道才能构成不同的颜色),但是这样可能让conv性能下降。
3.2 backbone
采用了一篇3D检测的论文提出的架构Pixor模型
Bin Yang, Wenjie Luo, and Raquel Urtasun. Pixor: Real- time 3d object detection from point clouds.
3.3 perception head
采用了一篇论文提出的SSD模型,既根据锚点anchor做分类,也同时做轨迹预测。
Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, and Alexander C Berg. Ssd: Single shot multibox detector.
3.4 cost volume head
用了多个卷积和反卷积层。最后用一个fileter number是预测帧数T的卷积层。每个filter都会产生一个cost volume_t,对应的是在未来t时刻的cost volume。
注意:cost volume不是一个,而是每个预测时刻都有,这样通过下标即可访问。
问:真值是什么,否则怎么训练?
答:在3.3说了没有监督Note that we do not have supervision for cost volume。
问:那怎么保证效果?
3.5 采样
轨迹点不能直接用x/y,因为在过大的速度或转角下,车辆实际没法达到physical limits in speed, acceleration and steering angle,因此文中用螺旋曲线表示,针对路径,只有可调参数a,针对速度,可调加速度参数。
注意:考虑到车辆的运动学约束是很好的,后来的很多论文都没考虑到该因素,就用MLP生成轨迹点然后做MDE FDE等,那些论文之所以能这样做,是因为他们没有做最重要的一步------闭环仿真,在数据集上的开环测试再好也没有实际意义。
但是螺旋曲线很难表征直线和圆弧。所以文中也同时使用了直线和圆弧。
问:为什么选了无法表征所有轨迹的螺旋曲线?
3.6 损失函数设计
考虑perception和planning 的损失,但是没有考虑cost volume的损失。
3.6.1 perception loss
同时考虑分类损失和回归损失,分类损失用cross-entropy,回归损失用L1损失。
3.6.2 planning loss
这一步承接3.5采样,采样出了N条轨迹,考虑和真值的cost之差,距离之差,以及违法交通规则,作为损失。
然后选出损失最大的那一条,作为最终的loss,整个网络去优化这个损失。