【以规划为导向的自动驾驶】Planning-oriented Autonomous Driving

ABSTRACT

研究背景:

现代自动驾驶系统是顺序化地排列多个任务模块, 近期的主流方法:

①为单个任务部署独立模型

②设计具有分离式头部的多任务(multi-task)范式。

但是,这些方法会累积误差或任务间协同不足而不利于自动驾驶。

作者认为重点应设计一个最优的框架服务于自动驾驶的Planning任务。故而提出统一自动驾驶(UniAD

各框架的对比

UniAD

论文提出该统一自动驾驶算法框架,利用五个基本任务来实现安全和强大的自动驾驶系统,设计理念是面向Planning,关键组件是基于Query的设计来连接所有节点。

  与传统的边界框表示相比,Query受益于更大的感受野,可以减轻Planning上游任务的复合误差。

  此外,Query可以灵活地对各种交互进行建模和编码,例如多个交通参与实体之间的关系。

  论文提到,UniAD是第一个全面研究自动驾驶领域包括PerceptionPredictionPlanning在内的多种任务合作的框架。

Methodology

Overview

UniAD包含四个基于Transformer解码器的PerceptionPrediction模块和一个PlannerQueries 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-agentagent-map

agent-goal交互transformers组成。

agent-agentagent-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,在模态维度中对来自MotionFormermotion query进行max-pool操作,这里的motion query表示为Qx,其中D表示特征维度。然后,通过特定的时域MLP将与上游的轨迹查询和当前位置嵌入融合:

对于场景级特征,BEV特征B被缩小至1/4分辨率作为第一个块的输入,为进一步保存训练记忆,每个块都遵循下采样-注意力-上采样的方式进行pixel-agent交互。下采样的特征表示为Fdst

Pixel-agent交互设计的目的是在预测未来占用时统一场景和实体级理解。

将密集特征Fdst作为查询,实体级特征作为keyvalue,随着时间更新

密集特征。具体来说,Fdst通过自注意力层进行全局交互,然后通过交叉

注意力层将实体特征和网格特征进行交互,同时使用注意力掩膜,限制仅

t时刻实体占用的像素。密集特征更新过程:

Instance-level occupancy 实例级占用表示每个实体的占用情况,

为获取BEV特征BH×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 0MTL(多任务学习方案),每个任务都有单独的Head,即图1(b)

每个指标最佳结果以粗体标记,次优结果有下划线。

ID 1-3实验表明了同时训练感知子任务与训练单个任务的结果相差不太明显

ID 4-6探索了感知模块能对Motion预测模块做出多少贡献。实验表明了当将感知模块中结合TrackingMapping可以显著的改善运动预测的结果(-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

 

多目标追踪:MUTR3DViP3D相比,UniAD分别取得了+6.5+14.2 AMOTA%)的明显改善,UniAD 实现了最低的 IDS,展现了对每个轨迹段的时域一致性。

online mapping相比于BEVFormerUniAD在车道线分割上表现良好(+7.4 IoU%)),这对于运动模块里的下游agent-map之间交互至关重要。

与感知导向的方法相比,本文方法的性能不是最优的,因为本文提出的是以Planning导向的方法,

并未将所有模型容量用于优化感知任务上。

Motion forecasting

Occupancy prediction

运动预测:UniAD 的性能显著优于以前基于视觉的端到端方法

占用预测:UniAD在自车附近区域的性能实现了显著改善,这个区域对规划更为关键。

Planning

UniAD由于有自车查询和occupancy中丰富的时空信息,与ST-P3相比,UniADplanningL2误差和碰撞率分别降低51.2%56.3。此外,它的性能明显优于很多基于激光雷达的对标方法。

Ablation Study

MotionFormer设计的影响:

实验结果表明:在MotionFormer中所有建议的组件都有助于运动预测

     指标( minADEminFDE等)的最终结果。

OccFormer设计的影响:

 

实验结果表明:与无注意力基线(1)相比,在没有局部性约束的情况下让每个像素关注所有的Agents(2)会导致性能稍微变差。occupancy 引导的注意力掩码解决了此问题并带来了收益,特别是对于附近的区域。此外,重用掩码功能而不是agent特征来获取occupancy特征,可进一步提高性能。

Planning设计的影响:

 

实验结果表明:提供了规划中提出的设计的消融,即引入BEV功能,碰撞损失的训练和占用率的优化策略,为了安全起见,较低的碰撞率优于朴素的轨迹模拟(L2 度量),并且随着 UniAD 中所有部件的应用而降低。

Qualitative Results

Conclusion and Limitations

本文讨论了自动驾驶算法框架的系统级设计。基于端到端的自动驾驶,为了实现对规划的最终追求,提出了UniAD框架。作者对感知和预测中每个模块的必要性进行了详细分析。为了统一任务,提出了一种基于query的设计来连接UniAD中的所有节点,大量的实验在各个方面验证了所提方法的有效性。

1.对计算资源和显存要求太高

2.轻量化开发有待研究

3.能否加入事实导航信息

4.未考虑红绿灯信息、交通标志、地面标识等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625135.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx 配置域名SSL证书HTTPS服务

下载 上传根目录 /home/wwwroot/xx.com/ssl 从新执行 添加域名命令 选择添加SSL SSL Certificate file: 填写 完整目录 PEM文件地址 SSL Certificate Key file:填写 完整目录 key文件地址

鸿蒙布局Column/Row/Stack

鸿蒙布局Column/Row/Stack 简介我们以Column为例进行讲解1. Column({space: 10}) 这里的space: 10,表示Column里面每个元素之间的间距为102. width(100%),height(100%) 表示宽高占比3. backgroundColor(0xffeeeeee) 设置背景颜色4. padding({top: 50}) 设…

如何用Rust获取本机CPU、内存在Web网页中显示?

目录 一、需求描述 二、具体操作步骤 三、知识点 1、systemstat 2、Actix 一、需求描述 需求: 1、需要使用Rust进行后端开发获取本机CPU和内存信息; 2、使用WEB框架发布API; 3、然后使用HTML/CSS/JavaScript进行前端开发&#xff0…

网络安全公司观察,看F5如何将安全化繁为简

应用无处不在的当下,从传统应用到现代应用再到边缘、多云、多中心的安全防护,安全已成为企业数字化转型中的首要挑战。根据IDC2023年《全球网络安全支出指南》,2022年度中国网络安全支出规模137.6亿美元,增速位列全球第一。有专家…

ICode国际青少年编程竞赛- Python-6级训练场-多重递归

ICode国际青少年编程竞赛- Python-6级训练场-多重递归 1、 def move(a, b):if a > 12:returnDev.step(a)Dev.turnRight()if b < 4:move(a, b1)else:move(a2, 1) move(2, 1)2、 def move(a, b):if a < 2:returnif b 1: Spaceship.step(2)Dev.step(a)Dev.turnRight()De…

静态住宅IP优缺点总结

在进行海外 IP 代理时&#xff0c;了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和&#xff0c;并提供选择建议&#xff0c;帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

idea启动Jsp非maven项目时的一些步骤

文章目录 事前准备eclipse项目举例idea打开eclipse项目安装tomcat配置启动项启动测试 一些小问题到不到servlet 事前准备 非社区版idea【否则启动项无法配置】tomcatmysql eclipse项目举例 idea打开eclipse项目 剩下的全部下一步即可 安装tomcat 自己的文章 Javaweb - t…

GPT-4o: 从最难的“大海捞针”基准看起

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在阅读过程中有些知识点存在盲区&#xff0c;可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果…

免费PPT模板下载,无套路。

身在职场做好PPT是一项必备技能&#xff0c;如何快速做出好看又高级的PPT&#xff0c;收藏好这6个网站&#xff0c;不管你是工作总结、毕业论文、个人简历、企业宣传都能找到合适的模板&#xff0c;最重要的是可以免费下载。 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图…

轻松拿下指针(5)

文章目录 一、回调函数是什么二、qsort使用举例三、qsort函数的模拟实现 一、回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被⽤来调⽤其所指向的函数 时&#x…

晶振在电子设备中的作用是什么?

在无源晶振电路中&#xff0c;并联电阻起着至关重要的作用。无源晶振本身不能自行产生振荡&#xff0c;因此需要借助外部电路来实现。并联在晶振两端的电阻&#xff0c;通常称为负载电阻&#xff0c;对电路的稳定性和振荡性能有着重要影响。 晶振电路的核心是皮尔斯振荡器&…

同城预约上门服务家政小程序

基于Thinkphp和原生微信小程序开发的一款同城预约、上门服务、到店核销家政系统&#xff0c;用户端、服务端、门店端各端相互依赖又相互独立&#xff0c;支持选择项目、选择服务人员、选择门店多种下单方式&#xff0c;支持上门服务和到店核销两种服务方式&#xff0c;支持自营…

java AOP环绕切面记录操作日志

一.创建数据库日志表 CREATE TABLE uc_system_log (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键ID,user_code varchar(64) DEFAULT NULL COMMENT 用户编码,user_name varchar(128) DEFAULT NULL COMMENT 用户名称,is_login tinyint(4) NOT NULL DEFAULT 0 COMMENT 是…

Oracle到PostgreSQL的不停机数据库迁移

1970 年&#xff0c;数据库之父 Edgar Frank Codd 发表了“数据的关系模型”论文&#xff0c;该论文为往后的关系型数据库的发展奠定了基础。1979 年&#xff0c;基于关系模型理论的数据库产品 Oracle 2 首次亮相&#xff0c;并在过去的三四十年时间里&#xff0c;横扫全球数据…

Python起风了钢琴曲

写在前面 那年夏天&#xff0c;有《纸短情长》&#xff0c;有《稻香》&#xff0c;有《可不可以》&#xff0c;有《体面》&#xff0c;还有《起风了》……本期小编给大家分享Python弹奏的《起风了》钢琴曲&#xff0c;一起来看看吧&#xff01; 《起风了》 《起风了》是一首深…

解决Android Studio Gradle下载慢的问题

安卓 gradle-7.5-bin.zip 下载慢 https://mirrors.cloud.tencent.com/gradle/7.x.x 找到对应匹配版本 把下载的文件直接复制到 C:\Users\Administrator.gradle\wrapper\dists\gradle-x.x\ 中对应版本目录下&#xff0c;例如需要下载 gradle-2.14.1-all.zip&#xff0c;则下载好…

Linux —— 线程控制

Linux —— 线程控制 创建多个线程线程的优缺点优点缺点 pthread_self进程和线程的关系pthread_exit 线程等待pthread_ join线程的返回值线程分离pthread_detach 线程取消pthread_cancel pthread_t 的理解 我们今天接着来学习线程&#xff1a; 创建多个线程 我们可以结合以前…

【Linux】认识文件(四):文件系统,inode,以及软硬连接

【Linux】认识文件&#xff08;四&#xff09;&#xff1a;文件系统,inode,以及软硬连接 一.磁盘(仅了解)1.组成2.CHS寻址 二.抽象化磁盘(仅了解)三.文件系统1.什么是文件系统2.ext2文件系统的结构i.Date blocksii.Block Bitmapiii.inode1.inode Table2.inode Bitmap iiiii.GDT…

使用 Python 进行图像验证码识别训练及调用

目录 1、验证码识别原理1.1 Tensorflow 介绍1.2 Tensorflow 运行原理1.3 卷积神经网络 CNN&#xff08;Convolutional Neural Networks&#xff09; 2、验证码识别实现步骤2.1 安装第三方模块2.1.1 安装 TensorFlow 模块2.2.2 安装 cuda2.2.3 下载 cudnn 2.2 读取验证码样本形成…

[源码安装]

1 pangolin安装 在Linux上常用的一个3D绘图库是Pangolin&#xff0c;它是基于OpenGL完成的&#xff0c;它不但支持OpenGL的基本操作&#xff0c;还提供了一些GUI的功能。 1.1 版本&#xff1a; pangolin —— v0.6 libpng —— 16 eigen —— 3.4 使用libpng12遇到下面的问…