文章链接
这个文章是CVPR2023 Best Paper
https://arxiv.org/pdf/2212.10156
提出背景
以往的自动驾驶多数是为不同的任务场景设计部署单独的模型,这样子组成的系统会很复杂如图a。
图b这是多任务共享一个主干,但还是要分离训练,而且不是端到端的。有没有什么方式你可以把所有的环节都串联起来,实现完整的端到端呢?
c.1就是一个直接预测轨迹的方式,但是它的没有明确监督学习中间的过程,所以就如同一个黑箱,基本没有可解释性。c.2做了一些改造加入了一个一个模块,但是串联似乎并不是一个好的设计。最理想的端到端是以最终的规划为导向,并且把前面的任务合理组织促进最终的规划决策的,于是作者提出c.3的端到端自动驾驶规划模型
模型解读
UniAD模型设计:以规划为导向,可以理解为,最终车的轨迹规划是结合了车身轨迹,运动特征,地图语义特征,空间占用特征等做出的综合决策
具体流程
-
先对多视角的图片进行特征提取获得BEV特征
-
然后用作两个方向:一个通过前后帧结合的自注意力查询,获得根据轨迹检测的特征(Track),实现车辆轨迹跟踪,只有清晰车辆的状态才能进行下一步的规划;另外一个通过查询地图相关元素,得到地图的查询特征(Map),这里也是多层的注意力,最终结果输出到下一个目标
-
接下来做轨迹特征预测,这里把前面的车辆跟踪结合地图特征又结合上BEV特征,所有都联合起来进行自注意机制的学习,获得行车运动的轨迹预测(Motion)
-
通过Motion轨迹预测再次结合BEV来构建占用网络,获得空间中的占用情况,并且预测占用的变化,占用也是一个关键的特征,只有车辆能够明确占用情况才可以进一步做出安全明智的规划。这里也是多层的Transformer,结合Motion轨迹预测和前后帧的token来实现占用的预测
-
通过占用Occ预测,Motion预测还有BEV特征,做出最后的决策规划,这里的规划可以说是集大成的结果,开启可解释性比较强,可以专门针对每个单独模块做优化
总结
这么完整的一套端到端规划流程最大的基石就是Transformer架构,通过自注意力机制,把各种具有不同语义表示的特征结合起来,做下游的规划。不仅如此,模型还基Transformer架构从特征当中获取特征,如Track,Map,Occ。在最后的两步中还是加入了BEV的,我们可以认为BEV就是一个贯穿全程且不断被强化的特征。因为BEV特征是最前且核心的特征,通过传感器直接获取,其他的特征其实都依赖于BEV去查询得到的。UniAD也不是简单把所有的任务模块堆叠,每个特征他们之间的关系以及学习构建的方式都做了清晰的明确,实现了最终的联合决策规划。