论文阅读--Planning-oriented Autonomous Driving(二)

news/2024/9/22 22:07:49/

自动驾驶框架的各种设计比较。

( a )大多数工业解决方案针对不同的任务部署不同的模型。

( b )多任务学习方案共享一个具有分割任务头的主干。

( c )端到端范式将感知和预测模块统一起来。以往的尝试要么采用( c.1 )中对规划的直接优化,要么采用( c.2 )中的部分元件设计系统。相反,我们在( c.3 )中主张,一个理想的系统应该以规划为导向,并适当地组织前期工作以促进规划。

1.创新点

     在这篇文献《Planning-oriented Autonomous Driving》中,作者提出了一个创新的自动驾驶系统框架UniAD,它以规划为核心,将感知、预测和规划任务集成在一个统一的网络中,通过基于查询的设计实现不同模块间的有效通信和信息共享。UniAD采用端到端的训练方法,允许直接从传感器数据学习到规划结果,强调了对规划模块的专门设计,包括自我车辆的显式建模和环境交互。此外,系统引入了非线性优化策略来提高运动预测的物理可行性,并通过同时考虑实例级和场景级信息来增强占用预测的准确性。在nuScenes基准测试中,UniAD展现出显著的性能提升,证明了其在规划安全性和准确性方面的优势。整个系统在保持计算效率的同时,为自动驾驶技术的发展提供了一个全面、协调且高效的解决方案。

2.规划导向系统设计具体是如何实现的?

       规划导向系统设计通过创建一个名为UniAD的统一网络框架实现,该框架整合了自动驾驶的关键任务,包括感知、预测和规划,以规划为核心目标进行端到端的优化。通过基于查询的交互方式,UniAD促进了任务间的有效通信和信息共享,同时采用非线性优化策略来提高运动预测的物理可行性,并结合实例级与场景级的占用预测,为规划模块提供了精确的环境理解。此外,规划模块利用从感知和预测模块中提取的信息,考虑自我车辆的动态和环境的占用状态,生成安全有效的轨迹。这种设计在nuScenes基准测试中验证了其在规划安全性和准确性方面的优势,展示了显著的性能提升。
 

3.方法论

统一自动驾驶框架( Uniad )。它是精心设计的遵循规划为导向的哲学。我们不是简单的任务堆叠,而是研究每个模块在感知和预测中的作用,利用从前节点到最终规划的联合优化在驾驶场景中的好处。所有感知和预测模块均采用转换器解码器结构设计,任务查询作为连接各节点的接口。最后,一个简单的基于注意力的规划器考虑从前面节点提取的知识来预测自我车辆的未来路径点。超占地图仅供视觉使用。

UniAD系统能够实现一个高度集成和协调的自动驾驶解决方案,强调了规划在自动驾驶系统中的核心地位。

3.1 系统概览

UniAD系统由四个基于Transformer解码器的感知和预测模块以及一个规划器组成。这些模块通过查询(queries)相互连接,以模拟驾驶场景中实体间的不同交互。系统处理多摄像头图像,将视角视图特征转换为统一的鸟瞰视图(BEV)特征,然后进行进一步的处理和规划。

3.2 感知模块

3.2.1 跟踪和映射(TrackFormer 和 MapFormer)

  • TrackFormer:负责检测和多目标跟踪(MOT),无需非可微的后处理。它使用检测查询和跟踪查询来分别处理新出现的目标和已跟踪目标。
  • MapFormer:基于2D全景分割方法,将道路元素(如车道、分隔线和交叉口)作为地图查询,执行语义分割。

3.3 预测模块

3.3.1 运动预测(MotionFormer)

  • 利用来自TrackFormer和MapFormer的动态代理和静态地图的查询,预测所有代理的多模态未来运动。
  • 通过场景中心的方式,一次前向传播产生多代理轨迹,节省计算成本。

3.3.2 占用预测(OccFormer)

  • 预测未来时间步的占用网格图,考虑场景级别的语义和代理级别的动态。
  • 使用注意力模块在时间上展开未来预测,同时保持代理身份。

3.4 规划模块

  • 将从MotionFormer得到的自我车辆查询与BEV特征结合,预测未来路径点。
  • 通过牛顿方法在推理阶段优化路径,避免与预测的占用区域发生碰撞。

3.5 学习策略

  • 两阶段训练:首先独立训练感知模块,然后进行端到端训练,包括所有模块。
  • 共享匹配:使用二分图匹配算法在跟踪和映射阶段进行预测与真实值的匹配。

3.6 实现细节

  • 检测和跟踪:使用Deformable DETR头进行检测,引入跟踪查询以实现端到端跟踪。
  • 在线映射:将道路元素分为“thing”和“stuff”,进行实例和语义分割。
  • 运动预测:采用Transformer结构,通过多模态预测和非线性优化策略生成物理上可行的轨迹。
  • 占用预测:通过注意力机制和多步交互预测未来的占用网格图。
  • 规划:使用自我车辆查询和BEV特征进行规划,优化路径以避免碰撞。

3.7 损失函数

  • 定义了各种任务的损失函数,包括跟踪、映射、运动预测、占用预测和规划,以确保模型在训练过程中能够学习到各个任务的特性和需求。

4.实验

4.1 实验设置

  • 数据集:使用nuScenes数据集进行实验,这是一个多模态自动驾驶数据集,包含丰富的交通场景和传感器数据。
  • 评估指标:采用多种指标来评估系统性能,包括跟踪准确性(AMOTA、AMOTP)、预测误差(minADE、minFDE)、规划安全性(L2误差、碰撞率)等。

4.2 联合结果

  • 任务协调:通过广泛的消融实验(ablations),验证了系统中各个任务模块的协调对最终规划性能的重要性。
  • 预测与规划:展示了运动预测和占用预测任务对于安全规划的必要性,以及它们如何共同提升规划性能。

4.3 模块化结果

  • 感知模块:评估了UniAD在3D目标检测和多目标跟踪任务上的性能,并与现有技术进行了比较。
  • 预测模块:分析了运动预测和占用预测模块的性能,展示了UniAD在这些任务上相较于其他方法的优势。
  • 规划模块:评估了UniAD在规划任务上的性能,特别是在复杂交通场景中的安全性和准确性。

4.4 定性结果

  • 场景可视化:通过可视化方法展示了UniAD在不同交通场景中的表现,包括城市道路巡航、复杂交叉口导航和障碍物避让等。
  • 注意力掩码:展示了规划模块中注意力掩码的可视化结果,说明了模型如何关注关键区域和代理。

4.5 消融研究

  • 设计影响:通过逐步移除或修改UniAD中的某些设计元素(如非线性优化、注意力机制等),研究了这些设计对最终性能的具体影响。
  • 任务贡献:评估了系统中每个任务模块对整体性能的贡献,以及它们如何共同作用以提升规划的安全性和准确性。

4.6 计算效率

  • 模型复杂度:分析了UniAD模型的参数量、计算复杂度(FLOPs)和运行速度(FPS),以评估其在实际车辆硬件上的可行性。

4.7 限制与未来工作

  • 系统限制:讨论了UniAD系统在某些长尾场景下可能遇到的挑战,如大型车辆、复杂光照条件等。
  • 未来方向:提出了未来研究的方向,包括如何进一步优化系统以适应更广泛的驾驶场景,以及如何提高系统的泛化能力和鲁棒性。

http://www.ppmy.cn/news/1529028.html

相关文章

HTTP代理PAC脚本:自动化代理设置的利器

在现代互联网的海洋里,代理IP就像一艘神奇的船,带领我们穿越层层网络波涛。今天,我们要聊聊HTTP代理和PAC脚本这两位“船长”,看他们如何在网络世界里大显身手。 什么是HTTP代理? HTTP代理是一个中间服务器&#xff0…

c语言中define使用方法

在C语言中,#define指令是预处理指令,用于定义宏。其常用格式是: 定义常量: #define 常量名 常量值 例子: #define PI 3.14159 #define MAX_SIZE 100 这里,PI和MAX_SIZE在代码中会被替换为其对应的值。没有…

【基于开源鸿蒙(OpenHarmony)的智慧农业综合应用系统】

基于开源鸿蒙OpenHarmony的智慧农业综合应用系统 1. 智能环境监测与调控1)场景描述2)技术实现 2.精准种植与作物管理1)场景描述2)技术实现 3.智能仓储与物流管理1)场景描述2)技术实现 1. 智能环境监测与调控…

Axure多人协调的方式

当系统有多个模块,又由不同的产品经理负责设计,如何进行协调? 尝试过的方法 1)搭建Axure私服,用Axure的私服进行一个RP文件多人协同编辑; 2)用SVN管理RP文件,每次都要合并。 以上…

fetch怎么使用

fetch 是一个现代、强大的、基于 Promise 的网络请求 API,用于在浏览器中发起网络请求(如异步获取资源)。它提供了一种更加简洁和灵活的方式来替代 XMLHttpRequest。下面是 fetch 的基本使用方法和一些示例。 基本语法 fetch(url, options)…

C语言的文件函数

此篇文章主要对C语言中的" 文件读写函数 "进行详细的刨析~通过此篇文章能够了解并学习到:" 字符读写函数 "," 文本行读写函数 "," 格式化读写函数 "," 二进制读写函数 "&#…

Windows Ribbon框架

Windows Ribbon框架 本文内容 在本节中面向开发人员最低要求另请参阅 Windows Ribbon框架是一个丰富的命令表示系统,它提供传统 Windows 应用程序的分层菜单、工具栏和任务窗格的新式替代方法。 功能区框架的功能和外观与 Microsoft Office 2007 Fluent 用户界面类…

【环境问题】清除僵尸进程 | 深度学习任务中止但是GPU仍在占用

我一般遇到这种是本地网络意外中断了,程序不见了,但是GPU仍在占用。 1.确认GPU显存: 终端输入 nvidia-smi 查看显存使用情况: 2.查看所有进程: 输入fuser -v /dev/nvidia* 查看进程。如果出现bash: fuser: command no…