自动驾驶大一统?以规划为目标,强可解释性的端到端自动驾驶框架!

3DCV有幸邀请到顶会作者Yihan Hu、Jiazhi Yang、Li Chen等与大家一起分享他们的最新文章,如果您有相关工作需要分享,文末可以联系我们!

18fba2a46634f9ff395cfde19f67788c.png

在公众号「3D视觉工坊」后台,回复「原论文」即可获取pdf或代码。

添加微信:dddvisiona,备注:SLAM,拉你入群。文末附行业细分群。

1 背景

b259a53655353a2e7cf651bd38ae3b82.png图1 现代自动驾驶系统的系统流程。作者首先分析了现代自动驾驶系统的三大核心部分,分别是感知(Perception)、预测(prediction)和规划(Planning),如图1所示。已有的自动驾驶方法,要么为单个任务部署独立的模型。要么,基于统一的特征提取骨干网络,然后为不同的任务设计单独的”任务头“。但是这两种方案都存在问题,例如独立的模型在联合起来以后可能会遭遇累积误差的问题,而多任务联合学习的方案则可能不同的任务会相互拉扯,并不能有一个统一的优化目标。因此,作者提出了统一自动驾驶(UniAD)。这是一种最新的综合框架,以最终的规划(Planning)为目标。将全栈驾驶任务整合到一个网络中。充分利用了每个模块的优势,并从全局角度为agents交互提供了互补的特征抽象。任务通过统一的查询接口进行沟通,方便彼此进行规划。作者在nuScenes数据集上对UniAD,选择nuScenes的原因是目前只有nuScenes提供了面向自动驾驶比较全面的任务标注。最终的实验结果显示,UniAD取得了优异的性能,远超先前的方法。

这里推荐一下3D视觉工坊最新自动驾驶课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

2 相关工作

45fc6f76b845f0173814a4f91b284977.png图2 为单个任务部署单独模型的方案4a84552943d3346d771c56b61c1957dc.png图3 多任务联合学习方案 d68791c938c81eb0a992c03e310a1b51.png图4 端到端的初步方案0a90ebfe568948d8a7a20f39bc94cc89.png图5 集成了部分中间任务的端到端方案 图2展示了为任务部署单独模型的方案,这种方案在实验室中其实已经有很多例子了。这种方案确实在有些任务中会把指标刷的很高,例如,物体检测,语义分割等。但是在将所有的任务进行联合以后,可能会产生累积误差,导致最终的自动驾驶规划结果并不是那么好。图3展示了多任务联合学习的方案,这种方案的优势是容易拓展且高效。但缺点是没有一个统一的优化目标,最终出来的结果可能会是多个任务“相互拉扯”的结果。图4是端到端的初步方案,优点是设计简单,且在模拟环境下性能表现不错。但是自动驾驶毕竟事关人命,这种缺乏可解释性的黑盒方案还是比较难落地到实际环境中。图5展示了集成了部分中间任务的端到端方案,这种方案其实有点接近UniAD了。但是缺点是缺少了自动驾驶的一些重要任务。

3 方法

485273c1364062687bd659d92d31ccb7.png图6 UniAD的框架流程图 如图6所示,UniAD最终包括四个基于Transformer解码器的感知和预测模块以及一个规划器。查询 Q 起到连接各个任务的作用,以对驾驶场景中实体的不同交互进行建模。具体来说,将一系列多摄像头图像输入特征提取器,并通过 BEVFormer 中现成的 BEV 编码器将所得视图特征转换为统一的鸟瞰图 (BEV) 特征 B。这里的特征提取部分(Backbone)是可以替换的。TrackFormer,负责检测和跟踪任务。MapFormer的作用是执行全景分割。MotionFormer 捕获agents之间的交互,并绘制和预测每个agents的未来轨迹。由于每个agents的动作都会显着影响场景中的其他agents,因此该模块对所有考虑的agents进行联合预测。同时,设计了一个自我车辆查询来显式地建模车辆,并使其能够在这种以场景为中心的范例中与其他agents进行交互。OccFormer 采用 BEV 特征 B 作为查询,预测未来其他agents的占用情况。最后,Planner预测规划结果,并使其远离 OccFormer 预测的占用区域以避免碰撞。

这里推荐一下3D视觉工坊最新自动驾驶课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

3.1 TrackFormer

e32df00b4bd3f468306f871f9dffb3f6.png图7 TrackFormer 流程图 图7TrackFormer得具体流程图,该方法采用类似Motr和MUTR3D的查询设计思路,在对象检测中只使用传统的检测查询,并引入跟踪查询来实现跨帧跟踪代理,实现检测查询与跟踪查询相结合的范式。具体来说,每一时刻,初始化的检测查询负责检测第一次感知到的新出现代理,跟踪查询对之前帧中已经检测到的代理进行建模。检测查询和跟踪查询都通过考察BEV特征来获取代理的抽象表达。随着场景更新,当前帧的跟踪查询与自注意力模块中之前记录的查询进行交互,从而聚合时序信息,直到相应代理完全消失(在特定时间内未被跟踪到)。TrackFormer通过多层网络,最终输出状态表示,为下游任务提供对环境中有效代理的编码表达。除了对自主驾驶车辆周围其他代理的查询设计外,还在查询集中引入了对自主车辆的专门查询,以显式对自身进行建模,这将在运动规划中进一步使用。

3.2 MapFormer

b497ce2695bb7060c5e8441b5111ba3c.png图8 MapFormer流程图 图8是该MapFormer的流程图,基于2D全景分割方法Panoptic SegFormer,将道路元素表示为地图查询,以帮助下游任务进行预测,并编码位置和结构知识。针对自动驾驶场景,将车道线、分割线和十字路口设定为things类,将可行驶区域设定为stuff类。MapFormer的多层网络都进行监督,只有最后一层包含的新的地图查询被向前传播到MotionFormer,以进行代理和地图的交互。地图查询采用了稀疏表示,以编码自动驾驶场景的关键道路元素,辅助运动预测任务。

3.3 MotionFormer

8de3eb3adf8a28f2bc2bfcba0b54bb83.png图9 MotionFormer流程图

图9是MotionFormer流程图。Transformer结构对运动预测任务非常有效,基于此提出端到端的MotionFormer,它通过分别从TrackFormer和MapFormer对动态代理和静态地图进行高度抽象的查询,以场景为中心的方式预测所有代理的多模态未来运动,即每个代理可能的多条未来轨迹。这种范式通过一次前向传播即可生成整个场景中多个代理的轨迹,大大减少了将整个场景与每个代理对齐的计算量。同时,考虑到未来的动态情况,MotionFormer还传入了来自TrackFormer对自主车辆的编码查询,以使自主车辆与其他代理进行交互。查询抽象提供了场景编码,辅助运动预测。

3.4 OccFormer

f968eef5f0e9e8b516b6dc2094440e6d.png图10 OccFormer流程图 图10是 OccFormer流程图。Occupancy栅格地图是一种离散化的BEV表示,其每个栅格单元包含一个标志位指示其是否被占用。Occupancy预测任务是预测栅格地图未来的变化。之前的方法利用RNN沿时间维展开当前观测到的BEV进行预测,高度依赖手工设计的聚类后处理来为每个代理生成Occupancy,其将BEV特征压缩到RNN隐状态作为整体表示,因此缺乏对代理的建模。这导致其难以预测全局所有代理的行为,而这对场景演变至关重要。UniAD提出OccFormer,从场景级和代理级两个层面结合语义信息:1)稠密场景特征在时间维上展开时,通过设计的注意力机制获取代理级特征;2)通过代理特征和场景特征的矩阵乘法直接获得实例级Occupancy,无需其他后处理。OccFormer可为运动规划提供碰撞风险较低的Occupancy预测。

3.5 Planning

6f0b458e4b3c436ea3409714d605c757.png图11 Planning流程图 图11是Planning流程图。是在没有高精度地图或预定义路线的情况下,规划通常需要高级命令指示前进方向。因此,本文将原始导航信号转换为三个可学习的embedding,称为命令embedding。来自MotionFormer的自主车辆查询已经编码了其多模态意图,因此再配备命令embedding形成“规划查询”。该查询作用于BEV特征,感知周围环境,然后解码得到未来的航点。命令embedding提供了高级导航意图,辅助基于场景的无地图导航规划。规划查询结合自主车辆状态和导航意图,可实现端到端的条件路径规划。

4 实验

更详细的结果作者放在了补充材料里面,UniAD在nuScenes数据集上进行了实验,从以下三个方面验证了方法的有效性:

  1. 任务协同带来的优势及其对规划的影响。

  2. 和之前方法相比,每个子任务模块的效果。

  3. 对特定模块设计的消融实验分析。

4.1 Joint Results

458e279e3543904a9ba16b1c99fdd722.png
image.png
  • 表1 每一个子任务有效性的消融实验

作者进行了如表 1 所示的消融,以证明端到端管道中先前任务的有效性和必要性。此表的每一行显示合并第二个模块列中列出的任务模块时的模型性能。第一行 (ID-0) 作为普通多任务基线,具有单独的任务头以进行比较。每个指标的最佳结果以粗体标记,第二名结果在每列中用下划线标记。由于与感知相比,预测更接近于规划,因此我们首先研究框架中的两种类型的预测任务,即运动预测和占用预测。在Exp.10-12中,只有当同时引入两个任务时(Exp.12),与没有任何中间任务的朴素端到端规划(Exp.10)相比,规划L2和碰撞率的指标都达到了最佳结果。因此,得出的结论是,这两个预测任务都是安全规划目标所必需的。退一步来说,在实验 7-9 中,展示了两种类型预测的协同效应。当两个任务紧密集成时,它们的性能都会得到提高(Exp.9,-3.5% minADE,-5.8% minFDE,-1.3 MR(%),+2.4 IoUf.(%),+2.4 VPQ-f.(%) )),这证明了包括代理和场景表示的必要性。为实现运动预测,还探索感知模块如何在实验 4-6 中做出贡献。值得注意的是,结合跟踪和绘图节点可以显着改善预测结果(-9.7% minADE、-12.9% minFDE、-2.3 MR(%))。此外,还提出了实验 1-3,它们表明一起训练感知子任务会产生与单个任务相当的结果。此外,与朴素多任务学习(Exp.0)相比,Exp.12 在所有基本指标上都显着优于它(-15.2% minADE、17.0% minFDE、-3.2 MR(% ))、+4.9 IoU-f.(%).、+5.9 VPQf.(%)、-0.15m avg.L2、-0.51 avg.Col.(%)),显示了UniAD的优越性。

4.2 Modular Results

按照感知预测规划的顺序,报告每个任务模块的性能,并与 nuScenes 验证集上的现有技术进行比较。UniAD 使用单个经过训练的网络联合执行所有这些任务。每个任务的主要指标在表格中用灰色背景标记。对于表2中的多目标跟踪,与 MUTR3D 和 ViP3D相比,UniAD 分别产生了 +6.5 和 +14.2 AMOTA(%) 的显着改进。此外,UniAD 获得了最低的 ID 切换分数,显示了每个 tracklet 的时间一致性。对于表 3 中的在线地图(Online mapping),UniAD 在分段车道上表现良好(与 BEVFormer 相比,+7.4 IoU(%)),这对于运动模块中的下游智能道路交互至关重要。由于UniAD的跟踪模块遵循端到端范例,它仍然不如具有复杂关联的检测跟踪方法,例如 Immortal Tracker,并且UniAD的映射结果落后于之前针对特定类别的面向感知的方法。作者认为 UniAD 是通过感知信息来促进最终规划,而不是通过完整的模型能力来优化感知。dab39894ff00d11ac55fd44a81b1941e.png表2 多目标跟踪结果4ed8ed552677a2c55f429f01e933504d.png表3 Online mapping结果

运动预测结果如表4所示,其中 UniAD 明显优于之前基于视觉的端到端方法。与 PnPNet-vision 和 ViP3D相比,它在 minADE 上的预测误差分别减少了 38.3% 和 65.4%。就表5中报告的Occupancy预测而言,UniAD 在附近区域取得了显着的进步,与大量增强的 FIERY和 BEVerse 相比,在 IoU-near(%) 上分别获得了 +4.0 和 +2.0的提升。受益于自我车辆查询和占用中丰富的时空信息,UniAD 与 ST-P3 相比,就规划范围的平均值而言,将规划 L2 错误和碰撞率降低了 51.2% 和 56.3% 。此外,它的性能明显优于几种基于激光雷达的同类产品,这是非常难得的结果。d7492968191fbcb3daf8427395cf8584.png表4 运动预测结果82975d6717d178b9c8b1e5b5c46bf0eb.png表5 Occupancy预测

4.3 Ablation Study

6a69ffa46be4846cc3b0f5952eccffbe.png表6 运动预测模块中设计的消融。表6显示了UniAD在论文第 2 节中描述的所有建议组件。2.2 为 minADE、minFDE、Miss Rate 和 minFDE-mAP 指标的最终性能做出贡献。值得注意的是,旋转的场景级锚点显示出显着的性能提升(15.8% minADE、-11.2% minFDE、+1.9 minFDE-mAP(%)),表明以场景为中心的方式进行运动预测是至关重要的。agents-目标点交互通过面向规划的视觉特征增强了运动查询,周围的agents可以从考虑自我车辆的意图中进一步受益。此外,非线性优化策略通过考虑端到端的感知不确定性,提高了性能(-5.0% minADE、-8.4% minFDE、-1.0 MR(%)、+0.7 minFDE-mAP(%))。

029d6f601e1634c39a3c730fd1b518bf.png表7 占用预测模块中设计的消融。如表7所示,与无注意力基线(实验 1)相比,在没有局部性约束的情况下关注所有代理的每个像素(实验 2)会导致性能稍差。The occupancy-guided attention mask解决了问题并带来了增益,特别是对于附近区域(Exp.3,+1.0 IoU-n.(%),+1.4 VPQ-n.(%))。此外,重用掩模特征而不是代理特征来获取占用特征进一步增强了性能。

38830427e120bd5ef8ab873c23c7e2cd.png表8 规划模块中设计的消融。表8是对规划模块行了消融,即关注 BEV 特征、碰撞损失训练以及占用优化策略。为了安全性,较低的碰撞率优于朴素轨迹模仿(L2 度量),并且在 UniAD 中应用的所有部件中,碰撞率都会降低。

5 总结与未来展望

本文讨论自动驾驶算法框架的系统级设计。面向规划的终极追求,提出了以规划为导向的管道,即UniAD。我们对感知和预测中每个模块的必要性进行了详细的分析。为了统一任务,提出了一种基于查询的设计来连接 UniAD 中的所有节点,从而受益于环境中代理交互的更丰富的表示。大量的实验从各个方面验证了所提出的方法。但是,协调这样一个具有多个任务的综合系统并非易事,需要大量的计算能力,尤其是计算能力。如何设计和管理系统以实现轻量级部署值得未来探索。此外,是否纳入更多的任务,如深度估计、行为预测,以及如何将它们嵌入到系统中,也是未来值得研究的方向。

参考:

1、https://zhuanlan.zhihu.com/p/639336670

2、https://zhuanlan.zhihu.com/p/638820246

—END—

高效学习3D视觉三部曲

第一步 加入行业交流群,保持技术的先进性

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

724950e8fe9d4632254c15a029fa4615.jpeg

添加小助理微信:cv3d007, 拉你入群
第二步 加入知识星球,问题及时得到解答

针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」

学习3D视觉核心技术,扫描查看,3天内无条件退款c489178cc51efca59e86f0199dbd9458.jpeg

高质量教程资料、答疑解惑、助你高效解决问题
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行

如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com

基础课程:

[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶

[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]

[3]如何学习相机模型与标定?(代码+实战)

[4]ROS2从入门到精通:理论与实战

[5]彻底理解dToF雷达系统设计[理论+代码+实战]

工业3D视觉方向课程:

[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]

[2]保姆级线结构光(单目&双目)三维重建系统教程

[3]机械臂抓取从入门到实战课程(理论+源码)

[4]三维点云处理:算法与实战汇总

[5]彻底搞懂基于Open3D的点云处理教程!

[6]3D视觉缺陷检测教程:理论与实战!

SLAM方向课程:

[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战

[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化

[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析

[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)

[5](第二期)ORB-SLAM3理论讲解与代码精析

视觉三维重建

[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进)

自动驾驶方向课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

[3]单目深度估计方法:算法梳理与代码实现

[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)

最后

1、3D视觉文章投稿作者招募

2、3D视觉课程(自动驾驶、SLAM和工业3D视觉)主讲老师招募

3、顶会论文分享与3D视觉传感器行业直播邀请

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3D视觉工坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值