ABSTRACT
研究背景:
现代自动驾驶系统是顺序化地排列多个任务模块, 近期的主流方法:
①为单个任务部署独立模型
②设计具有分离式头部的多任务(multi-task)范式。
但是,这些方法会累积误差或任务间协同不足而不利于自动驾驶。
作者认为重点应设计一个最优的框架服务于自动驾驶的Planning任务。故而提出统一自动驾驶(UniAD)
各框架的对比
UniAD
论文提出该统一自动驾驶算法框架,利用五个基本任务来实现安全和强大的自动驾驶系统,设计理念是面向Planning,关键组件是基于Query的设计来连接所有节点。
与传统的边界框表示相比,Query受益于更大的感受野,可以减轻Planning上游任务的复合误差。
此外,Query可以灵活地对各种交互进行建模和编码,例如多个交通参与实体之间的关系。
论文提到,UniAD是第一个全面研究自动驾驶领域包括Perception、Prediction和Planning在内的多种任务合作的框架。
Methodology
Overview
UniAD包含四个基于Transformer解码器的Perception、Prediction模块和一个Planner。Queries Q 连接整个工作流,对场景中各种实体间的多种交互进行建模。将一系列多相机图像序列输入特征提取器,通过BEVFormer中的BEV编码器将特征提取器生成的透视视图特征转换为统一的鸟瞰图(BEV)特征B。
TrackFormer 中,可学习嵌入被视为跟踪查询track queries,从B中查询信息,并检测和跟踪实体agents的信息。MapFormer 将地图查询map queries作为道路元素的语义抽象,并对地图实施全景分割。MotionFormer利用上述查询,捕捉实体和地图的交互,联合预测所有实体的未来轨迹。此外,还设计自车查询,与其余实体交互。OccFormer使用BEV特征B作为查询,实体知识作为键与值,预测多步未来占用。最后规划器Planner使用MotionFormer中的自车查询预测规划结果,并使自车远离OccFormer预测的占用区域。
Perception: Tracking and Mapping
TrackFormer:
联合执行检测和多目标跟踪(MOT),除检测查询外,还引入跟踪查询。
初始化的检测查询在每一时刻预测新出现的实体,而跟踪查询建模过去存在的实体。
检测查询与跟踪查询均与BEV特征B交互,跟踪查询与过去帧的相应跟踪查询进行自注意力交互,
直到相应的智能体完全消失,TrackFormer包含N层,其最终输出状态 给出 个有效实体信息
用于后续预测,同时,引入自车查询,建模自车,以便后续规划。
MapFormer:
基于2D全景分割方法Panoptic SegFormer,将道路元素(车道线、分隔带和十字路口、可驾驶路面)稀疏地表达为地图查询,编码位置和结构信息。同样包括N层,各层输出均被监督,但仅有最后一层的查询 被输入到MotionFormer中进行实体-地图交互。
Prediction: Motion Forecasting
MotionFormer使用 和 的高度抽象查询,在一次前向传播内预测所有实体
的前K个可能的轨迹。同时,将来自TrackFormer的自车查询传递到MotionFormer,
让自车与其它实体进行交互,同时还考虑了未来动态。输出运动表示为:
其中 i 是实体的索引,k 是轨迹模态的索引,T 是预测范围的长度。
MotionFormer,由 N 层堆叠的agent-agent、agent-map
和agent-goal交互transformers组成。
agent-agent和agent-map交互模块使用标准transformer
解码器层构建。
agent-goal交互模块建立在可变形交叉注意力模块之上。
MotionFormer,由 N 层组成。
每层捕捉3类交互:实体-实体、实体-地图和实体-目标点。
对于每个运动查询 Qi,k (简写Q)与其他实体 和地图元素
的交互可记为:
利用可变形注意力,实体与目标点交互的注意力模块:
它接受查询、参考点和空间特征,对参考点周围的空间
要素实施稀疏的注意力计算。通过这种方式,预测轨迹被
进一步细化为对端点周围环境的感知。
所有三种交互是并行建模的,生产的Qa、Qm和Qg被连接起来
并传递给多层感知器(MLP)生成query context ,然后
被发送到OccFormer的连续层进行微调或在其最后一层被解码为
预测结果 。
Motion queries:
即MotionFormer每一层的输入查询为运动查询,由两部分组成:
① 由前一层生成的查询上下文 ② 查询位置query position
其中query position把位置信息整合为四种,如方程所示:
这里使用正弦位置编码 PE(·)后跟 MLP 对位置点进行编码,将 设置为第一层的 ,场景级锚点
表示全局视角下的先前移动统计,实体级锚点捕获局部坐标下的潜在意图,都通过k-means
算法在真实轨迹的端点上聚类,以缩小误差。起点为每个实体提供自定义的位置嵌入,预测的
终点充当动态锚点。
Non-linear Optimization:
考虑到端到端范式下 上一层模块预测的不确定性可能会带来的不符合实际的情况,论文提出了使用非线性平滑器Non-linear Optimization来调整目标轨迹,过程如下:
代价函数:
运动学函数集 Φ有五项,包括加加速度,曲率,曲率速率,加速度和横向加速度。
Prediction: Occupancy Prediction
占位栅格图(occupancy grid map):一种离散化的 BEV 表征,
其中每个单元都有一个brief,表示它是否被占用,
occupancy预测任务是负责检测栅格图在未来如何变化。
为解决传统方法中实体知识使用不足,论文提出OccFormer
从两个方面合并场景级和实体级的语义:
① 在未来视野,密集的场景特征在设计的注意力模块获取实体级特征信息
②通过agent级特征和稠密场景特征之间的矩阵乘法生成实例occupancy
OccFormer 由T0个序列块组成,T0表示预测的时间范围。在motion task中,由于稠密表征occupancy的计算成本很高,T0通常小于T 。每个序列块将来自前一层丰富的实体特征Gt和状态(密集特征)Ft-1作为输入,并同时考虑实体级和场景级信息,生成时间步长t。为了获得具有动力学和空间先验的实体特征Gt,在模态维度中对来自MotionFormer的motion query进行max-pool操作,这里的motion query表示为Qx,其中D表示特征维度。然后,通过特定的时域MLP将与上游的轨迹查询和当前位置嵌入融合:
对于场景级特征,BEV特征B被缩小至1/4分辨率作为第一个块的输入,为进一步保存训练记忆,每个块都遵循下采样-注意力-上采样的方式进行pixel-agent交互。下采样的特征表示为Fdst
Pixel-agent交互设计的目的是在预测未来占用时统一场景和实体级理解。
将密集特征Fdst作为查询,实体级特征作为key和value,随着时间更新
密集特征。具体来说,Fdst通过自注意力层进行全局交互,然后通过交叉
注意力层将实体特征和网格特征进行交互,同时使用注意力掩膜,限制仅
看t时刻实体占用的像素。密集特征更新过程:
Instance-level occupancy 实例级占用表示每个实体的占用情况,
为获取BEV特征B的H×W的占用预测,通过卷积解码器将场景级特征
上采样为Fdect ,实体级特征使用MLP更新粗糙掩膜特征
得到占用特征Ut,最后实体级占用通过矩阵乘法得到:
Planning
在没有高清地图和预定路线的情况下,planning需要指示方向的高级命令,本文将原始的导航信息转换为可学习的命令嵌入(command embeddings),motionformer提供的自车查询提供了多模态意图,将其与命令嵌入结合,形成规划查询(plan query)。将规划查询与BEV特征B交互,解码为未来路径
为避免碰撞,论文提出基于牛顿方法的优化:
Experiments
实验在nuScenes数据集上进行,作者从三个方面验证其设计的有效性:
① Joint Results:揭示各任务间协同优势并影响Planning的联合结果
② Modular Results:与以前方法相比每个任务的模块化结果
③ Ablation Study:对特定模块设计空间的消融实验
Joint Results
ID 0:MTL(多任务学习方案),每个任务都有单独的Head,即图1(b)
每个指标最佳结果以粗体标记,次优结果有下划线。
ID 1-3:实验表明了同时训练感知子任务与训练单个任务的结果相差不太明显
ID 4-6:探索了感知模块能对Motion预测模块做出多少贡献。实验表明了当将感知模块中结合Tracking和Mapping可以显著的改善运动预测的结果(-9.7% minADE,-12.9% minFDE,-2.3 MR(%))
ID 7-9:展示了两种预测模块协同效应,实验表明,将两中预测模块结合时,两个任务的性能都会得到提高,(-3.5% minADE, -5.8% minFDE, -1.3 MR(%), +2.4 IoU-f.(%),+2.4 VPQ-f.(%)) 表明有必要同时引入实体和场景的特征
ID 10-12:探索了与没有任何中间任务的朴素端到端规划(ID10)的对比,即图1(c.1)
实验表明了只有将两种预测任务同时引入(ID12),即本论文所提出的UniAD,
其Planning的指标均获得最佳结果。
Modular Results
Multi-object tracking
Online mapping
多目标追踪:与MUTR3D和ViP3D相比,UniAD分别取得了+6.5和+14.2 AMOTA(%)的明显改善,UniAD 实现了最低的 IDS,展现了对每个轨迹段的时域一致性。
online mapping:相比于BEVFormer,UniAD在车道线分割上表现良好(+7.4 IoU(%)),这对于运动模块里的下游agent-map之间交互至关重要。
与感知导向的方法相比,本文方法的性能不是最优的,因为本文提出的是以Planning导向的方法,
并未将所有模型容量用于优化感知任务上。
Motion forecasting
Occupancy prediction
运动预测:UniAD 的性能显著优于以前基于视觉的端到端方法
占用预测:UniAD在自车附近区域的性能实现了显著改善,这个区域对规划更为关键。
Planning
UniAD由于有自车查询和occupancy中丰富的时空信息,与ST-P3相比,UniAD将planning的L2误差和碰撞率分别降低51.2%和56.3。此外,它的性能明显优于很多基于激光雷达的对标方法。
Ablation Study
MotionFormer设计的影响:
实验结果表明:在MotionFormer中所有建议的组件都有助于运动预测
指标( minADE、minFDE等)的最终结果。
OccFormer设计的影响:
实验结果表明:与无注意力基线(1)相比,在没有局部性约束的情况下让每个像素关注所有的Agents(2)会导致性能稍微变差。occupancy 引导的注意力掩码解决了此问题并带来了收益,特别是对于附近的区域。此外,重用掩码功能而不是agent特征来获取occupancy特征,可进一步提高性能。
Planning设计的影响:
实验结果表明:提供了规划中提出的设计的消融,即引入BEV功能,碰撞损失的训练和占用率的优化策略,为了安全起见,较低的碰撞率优于朴素的轨迹模拟(L2 度量),并且随着 UniAD 中所有部件的应用而降低。
Qualitative Results
Conclusion and Limitations
本文讨论了自动驾驶算法框架的系统级设计。基于端到端的自动驾驶,为了实现对规划的最终追求,提出了UniAD框架。作者对感知和预测中每个模块的必要性进行了详细分析。为了统一任务,提出了一种基于query的设计来连接UniAD中的所有节点,大量的实验在各个方面验证了所提方法的有效性。
1.对计算资源和显存要求太高
2.轻量化开发有待研究
3.能否加入事实导航信息
4.未考虑红绿灯信息、交通标志、地面标识等