All In One!UniAD:自动驾驶通用算法框架(CVPR23 Award Candidate)

作者 | OpenDriveLab  编辑 | 书生 OpenGVLab

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【轨迹预测】技术交流群

   引言 

上海人工智实验室提出了自动驾驶通用算法框架——Unified Autonomous Driving(UniAD)。UniAD 首次将检测,跟踪,建图,轨迹预测,占据栅格预测以及规划整合到一个基于 Transformer 的端到端网络框架下,在 nuScenes 数据集下的所有相关任务都达到 SOTA 性能,尤其是预测和规划效果远超其他模型。

UniAD 工作被选为CVPR 2023 Award Candidate。本次会议共9000篇投稿,其中仅有12篇论文作为award candidate, 共同竞逐CVPR Best Paper。

02f45d335819b870170cfcb9cf31b3c9.png

TLDR:

更多 UniAD 的细节,请查看:

• 项目地址:https://github.com/OpenDriveLab/UniAD

• 论文地址:https://arxiv.org/abs/2212.10156

1

点速览

自动驾驶是一项高度复杂的技术,需要多个学科领域的知识和技能,包括传感器技术、机器学习、路径规划等方面。自动驾驶还需要适应不同的道路规则和交通文化,与其他车辆和行人进行良好的交互,以实现高度可靠和安全的自动驾驶系统。面对这种复杂的场景,大部分自动驾驶相关的工作都聚焦在具体的某个模块,关于框架性的研讨则相对匮乏。自动驾驶通用算法框架——Unified Autonomous Driving(UniAD)首次将检测、跟踪、建图、轨迹预测,占据栅格预测以及规划整合到一个基于 Transformer 的端到端网络框架下, 完美契合了 “多任务”和“高性能”的特点,可称为自动驾驶中的技术突破。

ca985c4631504da54a812965f049b123.png

通过我们的青年研究员李弘扬、陈立的分析(上图),相信大家有所了解,接下来给大家详细阐述为什么 UniAD 会诞生。这必然会回到一个问题:为什么之前的模型没有同时做到这么多的任务呢?这还要从自动驾驶的框架开始分析。

e9d2ac5ef86b124b009bf9d2d71ac6ee.png

上图所示为自动驾驶UniAD框架对比 (a)模块化(b)多任务模块(c)端到端自动驾驶模块。现有自动驾驶系统可大致归为三类:

1. 模块化

每个模型负责单独的子任务,优势在于易于调试迭代,但是解耦就会丢失最优性,各个模块的优化目标并不是以驾驶为最终目标,并且每个模块的误差会传递到之后的模块。

2. 多任务模块

多任务范式利用一个共享的特征提取器来完成多个子任务,好处是节省计算成本,缺点在于不同任务之间可能会存在负面影响。

3. 端到端(End-to-end, E2E)模块

端到端范式以最终的驾驶性能为目标,具体又可以细分为两种范式:隐式的端到端和显式的端到端。其中隐式端到端是以传感器数据作为输入,直接输出规划或者控制指令。这种范式的好处是较为简洁,缺点是缺乏可解释性,难以调式及迭代。显式端到端则是将多个模块囊括在端到端模型之中,每个模块有各自的输出,并且会将提取到的特征传递到下游任务。

我们对目前显式端到端自动驾驶工作进行了比较:

6717f06f825e121b07fd54a160ccb732.png

可以发现,大多数工作都关注了感知、决策和规划三部分,但具体任务存在差异,且没有框架融合所有的任务。那为什么会出现这种情况呢?一方面受限于对自动驾驶的认识,研究者们没有对任务之间的关联和构建方式研究清楚;另一方面受限于模型的最终效果,或许有人曾经尝试过把全部任务融合,但是效果不佳。

为了探讨这一问题,UniAD 首次将所有检测,跟踪,建图,轨迹预测,占据栅格预测与规划都包含进来,从实现方面解决了这一难点。另一方面,通过严格的消融实验发现,在正确的融合方式下,所有的任务对最终的驾驶性能都是有收益的。至此,本自动驾驶项目为了解决实际问题而来。

2

核心技术

那为什么我们的模型可以解决不同任务的融合难的问题,从而实现多任务和高性能呢?让我们开始揭晓我们自动驾驶技术的真身:

整体而言,UniAD 利用多组 query 实现了全栈 Transformer 的端到端模型。如图所示,UniAD 由 2 个感知模块,2 个预测模块以及一个规划模块组成。其中感知和预测模块是通过transformer 架构进行预测,每个模块输出的特征会传递到之后的模块来辅助下游任务。

3159880980a08eea7e8d7a2cd613478b.png

秘密武器1:多组 query 的全 Transformer 模型

UniAD 利用多组 query 实现了全栈 Transformer 的端到端模型,我们可以从具体 Transformer 的输入输出感受到信息融合。在 TrackFormer 中,Track query 通过与 BEV 特征通过 attention 的方式进行交互,输出特征f6100789a4998a34eed0d01182509ba2.png。类似的,Map query 经过 MapFormer 的更新后,得到特征dc369e28550f27a9c73bdccd04325eb7.png。MotionFormer 使用 Motion query 与f590576c9018c5cdc793d9521135d57f.png1d0f66bfbc6fde983b57e71724e00c8b.jpeg以及 BEV 特征进行交互,得到未来轨迹以及特征e9c966bd32c75cddc03753aa2db35e38.png。OccFormer 以密集的 BEV 特征为 Q 和稀疏的特征820ccccd8ba1a552ce1f9f0851173adf.png对应的位置信息70ba1757ef0a25bce59cc5211dc150d7.png8aef60f694821929c918c39f7fc0afbe.png作为K 和 V 来构建实例级别的占据栅格。

秘密武器2:基于最终“规划”为目标

在 TrackFormer 中,Track query 中包含一个特定的 ego-vehicle  query 用来表示自车属性。规划模块 (Planner) 将 MotionFormer 更新后的 ego-vehicle  query 与 BEV 特征进行交互,此时 ego-vehicle query 包含对整个环境的感知与预测信息,因此能更好的学习 planning 任务。为了减少碰撞,我们还利用占据栅格预测模块 OccFormer 的输出对自车路径进行优化,避免行驶到未来可能有物体占用的区域。在这个过程中,全部的模块通过输出特定的特征来帮助实现最终的目标“规划”。

3

技术效果展示

UniAD 在 nuScenes 数据集中的所有任务都达到了 SOTA,尤其是预测和规划部分,以下是部分技术效果:

 晴天直行

82bbae0426575723e4cd57f733981fbe.gif

UniAD 可以感知左前方等待的黑色车辆,预测其未来轨迹(即将左转驶入自车的车道),并立即减速以进行避让,待黑色驶离后再恢复正常速度直行。

晴天转弯

125006d96016a45d98ae67654120bea6.gif

得益于UniAD的地图分割模块,其可以沿着分割得到的道路结构适时地转弯。

雨天直行

44c687b7b78c5e0f29020f59621ca9eb.gif

在视野干扰较大的雨天环境中,UniAD 也能感知到周围车辆进行正常行驶。

雨天转弯

38854e7448e22d03b64aa60893a820ea.gif

在视野干扰较大且场景复杂的十字路口,UniAD 能通过分割模块生成十字路口的整体道路结构(如右侧 BEV图中的绿色分割结果所示),并完成大幅度的左转。

 夜晚直行

bf47dbb81d1e636f8c1edc39ad2d38fa.gif

在夜晚视野变暗的情况下,UniAD仍然能感知到前方以及右侧的车辆(双车道场景),确保自车行驶。

 夜晚转弯

3cc0afda41b07b57c236bf15115108a3.gif

在夜晚视野变暗的情况下,UniAD能感知到前车并完成先静止,后左转的规划。

3

未来展望

总的来说,UniAD 作为一项极具创新性的自动驾驶技术,具有很大的潜力和应用价值。尽管该技术目前仍处于发展初期,但其已经引起了人们的广泛兴趣和关注,未来的发展前景非常值得期待。

希望UniAD能充分利用现在海量数据驱动的优势,在未来实现高阶的自动驾驶人工智能。

视频课程来了!

自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知等多个方向学习视频,欢迎大家自取(扫码进入学习)

6aa4ceb5e2613f54d26798521d7a5bfc.png

(扫码学习最新视频)

国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

bc583570e6a72653492370f92689af12.jpeg

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;

73b97a27976db99dc3c40f801f35af0f.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

Inpaint算法是一种用于图像修复和图像填充的计算机视觉算法。CVPR是计算机视觉和图像处理领域最顶级的国际会议,全称为“Conference on Computer Vision and Pattern Recognition”,该会议每年举办一次,汇集了来自世界各地的顶尖研究者和专家。 Inpaint算法的主要目标是通过根据周围像素的信息来填充或修复图像中的缺失区域,使得缺失区域与周围环境的过渡自然平滑。在修复过程中,Inpaint算法会分析图像的内容和结构,并利用相邻像素的信息进行插值或重建,从而补全或修复缺失的部分。这些缺失区域可能是由于图片损坏、刮擦、删除或遮挡等原因导致的。 Inpaint算法中有多种方法可以用于识别和填充缺失区域。最常见的方法之一是根据周围像素的颜色、纹理或结构来预测缺失区域的像素值。另一种常用的方法是利用图像的边界信息或结构特征,如边缘、纹理等来补全缺失区域。一些先进的Inpaint算法还可以利用深度学习和神经网络的方法来进行图像修复和填充。 CVPR会议是计算机视觉和图像处理领域的重要会议之一,汇聚了许多研究者和专家,他们在该领域内提出了许多创新的方法和算法,包括Inpaint算法。通过在CVPR上发表和分享最新的研究成果,研究者可以提高彼此之间的交流和合作,推动图像修复和填充的研究和发展。 总的来说,Inpaint算法是用于图像修复和图像填充的一种计算机视觉算法,在CVPR等国际会议上被广泛研究和讨论。这些算法通过分析图像的内容和结构来填充或修复图像中的缺失区域,以提高图像的完整性和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值