上海人工智实验室提出了自动驾驶通用算法框架——Unified Autonomous Driving(UniAD)。UniAD 首次将检测,跟踪,建图,轨迹预测,占据栅格预测以及规划整合到一个基于 Transformer 的端到端网络框架下,在 nuScenes 数据集下的所有相关任务都达到 SOTA 性能,尤其是预测和规划效果远超其他模型。
UniAD 工作被选为CVPR 2023 Award Candidate。本次会议共9000篇投稿,其中仅有12篇论文作为award candidate, 共同竞逐CVPR Best Paper。
TLDR:
更多 UniAD 的细节,请查看:
• 项目地址:https://github.com/OpenDriveLab/UniAD
• 论文地址:https://arxiv.org/abs/2212.10156
自动驾驶是一项高度复杂的技术,需要多个学科领域的知识和技能,包括传感器技术、机器学习、路径规划等方面。自动驾驶还需要适应不同的道路规则和交通文化,与其他车辆和行人进行良好的交互,以实现高度可靠和安全的自动驾驶系统。面对这种复杂的场景,大部分自动驾驶相关的工作都聚焦在具体的某个模块,关于框架性的研讨则相对匮乏。自动驾驶通用算法框架——Unified Autonomous Driving(UniAD)首次将检测、跟踪、建图、轨迹预测,占据栅格预测以及规划整合到一个基于 Transformer 的端到端网络框架下, 完美契合了 “多任务”和“高性能”的特点,可称为自动驾驶中的技术突破。
通过我们的青年研究员李弘扬、陈立的分析(上图),相信大家有所了解,接下来给大家详细阐述为什么 UniAD 会诞生。这必然会回到一个问题:为什么之前的模型没有同时做到这么多的任务呢?这还要从自动驾驶的框架开始分析。
上图所示为自动驾驶UniAD框架对比 (a)模块化(b)多任务模块(c)端到端自动驾驶模块。现有自动驾驶系统可大致归为三类:
1. 模块化
每个模型负责单独的子任务,优势在于易于调试迭代,但是解耦就会丢失最优性,各个模块的优化目标并不是以驾驶为最终目标,并且每个模块的误差会传递到之后的模块。
2. 多任务模块
多任务范式利用一个共享的特征提取器来完成多个子任务,好处是节省计算成本,缺点在于不同任务之间可能会存在负面影响。
3. 端到端(End-to-end, E2E)模块
端到端范式以最终的驾驶性能为目标,具体又可以细分为两种范式:隐式的端到端和显式的端到端。其中隐式端到端是以传感器数据作为输入,直接输出规划或者控制指令。这种范式的好处是较为简洁,缺点是缺乏可解释性,难以调式及迭代。显式端到端则是将多个模块囊括在端到端模型之中,每个模块有各自的输出,并且会将提取到的特征传递到下游任务。
我们对目前显式端到端自动驾驶工作进行了比较:
可以发现,大多数工作都关注了感知、决策和规划三部分,但具体任务存在差异,且没有框架融合所有的任务。那为什么会出现这种情况呢?一方面受限于对自动驾驶的认识,研究者们没有对任务之间的关联和构建方式研究清楚;另一方面受限于模型的最终效果,或许有人曾经尝试过把全部任务融合,但是效果不佳。
为了探讨这一问题,UniAD 首次将所有检测,跟踪,建图,轨迹预测,占据栅格预测与规划都包含进来,从实现方面解决了这一难点。另一方面,通过严格的消融实验发现,在正确的融合方式下,所有的任务对最终的驾驶性能都是有收益的。至此,本自动驾驶项目为了解决实际问题而来
核心技术
那为什么我们的模型可以解决不同任务的融合难的问题,从而实现多任务和高性能呢?让我们开始揭晓我们自动驾驶技术的真身:
整体而言,UniAD 利用多组 query 实现了全栈 Transformer 的端到端模型。如图所示,UniAD 由 2 个感知模块,2 个预测模块以及一个规划模块组成。其中感知和预测模块是通过transformer 架构进行预测,每个模块输出的特征会传递到之后的模块来辅助下游任务。
秘密武器1:多组 query 的全 Transformer 模型
UniAD 利用多组 query 实现了全栈 Transformer 的端到端模型,我们可以从具体 Transformer 的输入输出感受到信息融合。在 TrackFormer 中,Track query 通过与 BEV 特征通过 attention 的方式进行交互,输出特征。类似的,Map query 经过 MapFormer 的更新后,得到特征。MotionFormer 使用 Motion query 与、以及 BEV 特征进行交互,得到未来轨迹以及特征。OccFormer 以密集的 BEV 特征为 Q 和稀疏的特征对应的位置信息和作为K 和 V 来构建实例级别的占据栅格。
秘密武器2:基于最终“规划”为目标
在 TrackFormer 中,Track query 中包含一个特定的 ego-vehicle query 用来表示自车属性。规划模块 (Planner) 将 MotionFormer 更新后的 ego-vehicle query 与 BEV 特征进行交互,此时 ego-vehicle query 包含对整个环境的感知与预测信息,因此能更好的学习 planning 任务。为了减少碰撞,我们还利用占据栅格预测模块 OccFormer 的输出对自车路径进行优化,避免行驶到未来可能有物体占用的区域。在这个过程中,全部的模块通过输出特定的特征来帮助实现最终的目标“规划”。
技术效果展示
UniAD 在 nuScenes 数据集中的所有任务都达到了 SOTA,尤其是预测和规划部分,以下是部分技术效果:
晴天直行
UniAD 可以感知左前方等待的黑色车辆,预测其未来轨迹(即将左转驶入自车的车道),并立即减速以进行避让,待黑色驶离后再恢复正常速度直行。
晴天转弯
得益于UniAD的地图分割模块,其可以沿着分割得到的道路结构适时地转弯。
雨天直行
在视野干扰较大的雨天环境中,UniAD 也能感知到周围车辆进行正常行驶。
雨天转弯
在视野干扰较大且场景复杂的十字路口,UniAD 能通过分割模块生成十字路口的整体道路结构(如右侧 BEV图中的绿色分割结果所示),并完成大幅度的左转。
夜晚直行
在夜晚视野变暗的情况下,UniAD仍然能感知到前方以及右侧的车辆(双车道场景),确保自车行驶。
夜晚转弯
在夜晚视野变暗的情况下,UniAD能感知到前车并完成先静止,后左转的规划。
未来展望
总的来说,UniAD 作为一项极具创新性的自动驾驶技术,具有很大的潜力和应用价值。尽管该技术目前仍处于发展初期,但其已经引起了人们的广泛兴趣和关注,未来的发展前景非常值得期待。希望UniAD能充分利用现在海量数据驱动的优势,在未来实现高阶的自动驾驶人工智能。
自动驾驶交流群