经典文献阅读之--GraphAD(端到端自动驾驶的交互场景图)

news2025/1/16 1:03:39

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G的免费磁盘空间。通过链接注册并联系客服,可以获得20元代金券(相当于6-7H的免费GPU资源)。欢迎大家体验一下~

0. 简介

自车、道路参与者和地图元素之间复杂交互的建模一直是确保安全的自动驾驶的关键部分。之前关于端到端自动驾驶的研究依赖于注意力机制来处理异构交互,但这种方法未能捕捉几何先验,并且计算量巨大。在《GraphAD: Interaction Scene Graph for End-to-end Autonomous Driving》中,我们提出了交互场景图(ISG)作为一种统一的方法来建模自车、道路参与者和地图元素之间的交互。通过ISG的表示,驾驶代理可以从最具影响力的元素中聚合关键信息,包括潜在碰撞的道路参与者和需要遵循的地图元素。由于省略了大量不必要的交互,更高效的基于场景图的框架能够专注于不可或缺的连接,从而带来更好的性能。我们在nuScenes数据集上评估了所提出的方法。与强大的基线相比,我们的方法在包括感知、预测和规划在内的全栈驾驶任务中表现显著优越。代码将发布在Github上,暂时还没有开源。


1. 主要贡献

本文的主要贡献总结如下:

1)据我们所知,GraphAD是首个采用图模型来描述交通场景中复杂交互的端到端自动驾驶算法。该图模型能够有效且高效地将交通场景的强先验知识引入到算法中

2)本文精心设计了交互场景图(ISG),其简要地展现了自车、交通智能体与地图元素之间的异构交互。特别地,动态场景图(DSG)能够迭代地细化对未来轨迹的预测,并且描述智能体之间微妙的交互;

3)与强基线相比,本文方法在多个任务上实现了最先进的性能。

在这里插入图片描述

图1:交互场景图由动态场景图(DSG)和静态场景图(SSG)组成。在DSG中,圆形节点表示的交通参与者通过有向连接关注周围的其他参与者。在SSG中,交通参与者基于连接的车道推理其轨迹,这些车道由矩形节点表示。

2. 主要方法

图2展示了GraphAD的整体框架。首先,以多视角视频序列、相机参数和自车位置为输入,图像编码器提取图像特征,然后将其转换为鸟瞰图(BEV)特征。这些多帧的BEV特征进一步聚合,形成时空场景表示。其次,GraphAD使用两个Transformer解码器,即TrackFormer和MapFormer,提取动态和静态驾驶元素的结构化表示。第三,明确构建交互场景图,以建模自车、动态元素和静态元素之间的交互,考虑其潜在的运动。最后,将图聚合后的自车查询特征与自车状态特征和高级驾驶指令相结合,通过规划头部来预测自车的轨迹。我们将在后续章节中详细阐述这些步骤的设计。

在这里插入图片描述

图2:GraphAD展示了驾驶环境中结构化实例之间的基于图的交互,包括动态交通参与者和静态地图元素。GraphAD首先在鸟瞰图(BEV)上构建时空场景特征,作为下游任务的统一表示。然后,GraphAD通过TrackFormer和MapFormer提取结构化实例。将这些实例作为图节点,GraphAD提出了交互场景图,通过考虑代理之间以及代理与地图之间的交互,迭代优化动态节点的特征。最后,处理后的节点特征用于运动预测和端到端规划。

4 时空场景表示

3.1 图像编码器

图像编码器包括一个用于多尺度特征提取的主干网络和一个用于融合这些特征的颈部结构。形式上,以多视角图像 I ∈ R N × 3 × H I × W I I \in \mathbb{R}^{N \times 3 \times H_I \times W_I} IRN×3×HI×WI 作为输入,图像编码器生成提取的视觉特征 F 2 d ∈ R N × C I × H I ′ × W I ′ F_{2d} \in \mathbb{R}^{N \times C_I \times H'_I \times W'_I} F2dRN×CI×HI×WI,其中 N N N 是相机视角的数量, C I C_I CI 是通道数, ( H I , W I ) (H_I, W_I) (HI,WI) ( H I ′ , W I ′ ) (H'_I, W'_I) (HI,WI) 分别是输入和下采样的图像大小。输出的视觉特征可以包含周围环境的基本语义和几何信息。

3.2 图像到BEV的转换

为了构建用于时间聚合和多任务推理的统一场景表示,我们使用**“Lift-Splat-Shoot”范式将多视角图像特征提升到BEV表示中**。具体来说,时间 t t t 的图像特征 F 2 d t F^t_{2d} F2dt 被处理以创建上下文特征 F c o n t ∈ R N × C × H I ′ × W I ′ F^t_{con} \in \mathbb{R}^{N \times C \times H'_I \times W'_I} FcontRN×C×HI×WI 和类别深度分布 D t ∈ R N × D × H I ′ × W I ′ D^t \in \mathbb{R}^{N \times D \times H'_I \times W'_I} DtRN×D×HI×WI,其中 C C C 是通道数, D D D 是深度分箱的数量。然后计算外积 F c o n t ⊗ D t F^t_{con} \otimes D^t FcontDt 作为提升的特征点云 P t ∈ R N D H I ′ W I ′ × C P^t \in \mathbb{R}^{NDH'_IW'_I \times C} PtRNDHIWI×C。最后,使用体素池化来处理特征点并生成时间 t t t 的BEV特征 F B E V t ∈ R C × H × W F^t_{BEV} \in \mathbb{R}^{C \times H \times W} FBEVtRC×H×W

3.3 时间特征聚合

多帧BEV特征 { F B E V t } t = t c u r − T + 1 t c u r \{F^t_{BEV}\}^{t_{cur}}_{t=t_{cur}-T+1} {FBEVt}t=tcurT+1tcur,其中 t c u r t_{cur} tcur 是当前时间, T ∈ N + T \in \mathbb{N}_+ TN+ 是帧数,首先被扭曲到当前时间的自车中心坐标系中,从而消除了自车运动的错位。然后,将对齐的多帧BEV特征在通道维度上进行连接,并进一步通过卷积BEV编码器处理。输出的时空BEV特征 F B E V ∈ R C o × H × W F_{BEV} \in \mathbb{R}^{C_o \times H \times W} FBEVRCo×H×W 将作为下游任务的统一时空场景表示。


4. 结构化元素学习

基于时空场景特征,提取包括交通参与者和地图元素在内的结构化元素对于自动驾驶中的安全关键规划至关重要。因此,GraphAD利用TrackFormer和MapFormer来预测这些与驾驶相关的实例。

4.1 TrackFormer

利用时空BEV表示,TrackFormer旨在执行端到端的3D目标检测和跟踪。按照[12]的设计,我们使用两组对象查询和Transformer解码器来解决这个问题。具体来说,一组跟踪查询对应于先前检测到的对象,需要预测相同对象标识的更新的3D边界框。另一组检测查询负责首次可见的对象。对于每个时间戳,包括跟踪和新出现的正查询将作为下一个时间戳的跟踪查询。Transformer解码器层包括所有对象查询之间的自注意力和用于关注时空BEV特征的可变形注意力。

4.2 MapFormer

为了更好地捕捉地图元素的几何约束,我们遵循最近的实践[16, 26]来学习局部地图的矢量化表示。具体来说,MapFormer利用实例级和点级查询形成分层的地图查询,这些查询由与TrackFormer中类似的Transformer解码器处理。最后,输出的地图查询被投影到类别得分和潜在地图元素的一系列BEV坐标。为了充分捕捉地图信息,建模了四种元素,包括车道中心线、车道分隔线、道路边界和人行横道。

在这里插入图片描述

5. 交互场景图

在以结构化格式提取了驾驶实例(包括交通参与者和地图元素)之后,关键的挑战在于网络如何感知异质交互。这些交互,包括动态代理之间的驾驶博弈或简单的中心线跟踪启发式方法,对于预测周围环境的未来和做出驾驶决策非常重要。为此,我们构建了交互场景图以捕捉这些异质交互。作为一个迭代过程,交互场景图分为三个步骤。首先,所有动态和静态元素被表述为图节点表示,包括显式几何和隐式特征。其次,基于强几何先验构建交互场景图。第三,根据已建立的图边更新图节点特征,进一步处理以更新几何。详细的公式在以下段落中阐述。

5.1 图节点表示

交互场景图构建在交通参与者和地图元素的结构化节点上。每个图节点设计为包含显式几何和隐式特征。注意,自车被视为参与图基交互的交通参与者之一。

具体来说,交通参与者的图节点,即动态图节点,被组织为一组 P d = { p 1 d , … , p N d d } P^d = \{p^d_1, \ldots, p^d_{N_d}\} Pd={p1d,,pNdd},其中 N d N_d Nd动态图节点的数量。同时, p i d = ( x i d , f i d ) p^d_i = (x^d_i, f^d_i) pid=(xid,fid) 表示具有轨迹提议 x i d ∈ R M d × 2 x^d_i \in \mathbb{R}^{M_d \times 2} xidRMd×2 作为BEV坐标节点特征 f i d ∈ R C g f^d_i \in \mathbb{R}^{C_g} fidRCg 的节点表示,其中 M d M_d Md 是轨迹预测的时间跨度。轨迹提议是前一层的轨迹预测。对于第一层,使用k-means的聚类结果代替。隐式节点特征按照[12]的方式计算为先前节点特征、TrackFormer查询、轨迹提议的嵌入和可学习意图嵌入的组合。为了统一公式,我们将同一代理的不同模态视为不同的动态图节点。

类似地,地图元素的图节点,即静态图节点,被组织为另一组 P s = { p 1 s , … , p N s s } P^s = \{p^s_1, \ldots, p^s_{N_s}\} Ps={p1s,,pNss},其中 N s N_s Ns 是静态图节点的数量, p i s = ( x i s , f i s ) p^s_i = (x^s_i, f^s_i) pis=(xis,fis) 表示一个由一系列BEV坐标 x i s ∈ R M s × 2 x^s_i \in \mathbb{R}^{M_s \times 2} xisRMs×2 和节点特征 f i s ∈ R C g f^s_i \in \mathbb{R}^{C_g} fisRCg 组成的地图元素。MapFormer的结构化预测,包括BEV坐标和输出查询特征,直接用作静态图节点。由于驾驶场景中的地图元素通常作为恒定的环境约束,它们的节点特征在迭代层中不会更新。

5.2 图连接构建

…详情请参照古月居

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是项目计划?项目计划如何制定?

做不好项目计划的项目管理,注定会失败! 项目计划是帮助管理人员有效实现目标的非常重要的一环,在开始任何项目之前,制定一份详细的计划作为所有参与者的指导性文件非常重要。那么什么是项目计划?项目计划又该如何制定…

springboot集成thymeleaf实战

引言 笔者最近接到一个打印标签的需求,由于之前没有做过类似的功能,所以这也是一次学习探索的机会了,打印的效果图如下: 这个最终的打印是放在58mm*58mm的小标签纸上,条形码就是下面的35165165qweqweqe序列号生成的&…

民大食堂用餐小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商家管理,档口号管理,商家餐品管理,餐品种类管理,购物车管理,订单信息管理 微信端账号功能包括:系统首页&a…

pytorch-迁移学习

目录 1. 宝可梦数据集训练的问题2. 迁移学习3. 迁移学习实现4. 完整代码 1. 宝可梦数据集训练的问题 宝可梦数据总共有1000多张,对于resnet18网络来说数据量是不够的,训练时很容易出现过拟合,那么如何解决这个问题呢? 宝可梦数据…

常见的几种数据标注类型

数据标注是机器学习和人工智能项目中一个至关重要的步骤,它帮助算法理解输入数据中的关键特征。根据不同的应用场景和技术需求,数据标注可以分为多种类型。 以下是一些常见的数据标注类型: 图像标注: 边界框:在物体周…

手撕数据结构---栈和队列的概念以及实现

栈的概念: 栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈…

Doris-计算特性

1 全新优化器 1.1 如何开启1.2 统计信息 1.2.1 使用ANALYZE语句手动收集1.2.1 自动收集1.2.3 作业管理1.3 会话变量及配置项调优参数2 Join相关 2.1 支持的Join算子2.2 支持的shuffle方式 2.2.1 Broadcast Join2.2.2 Shuffle Join2.2.3 Bucket Shuffle Join 2.2.3.1 原理2.2.3.…

【CTFWP】ctfshow-web40

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 题目介绍:题目分析:payload:payload解释:payload2:payload2解释:flag 题目介绍: …

python-分享篇-用Python分析文本数据的词频

上次批量提取了上市公司主要业务信息,要分析这些文本数据,就需要做文本词频分析。由于中文不同于英文,词是由一个一个汉字组成的,而英文的词与词之间本身就有空格,所以中文的分词需要单独的库才能够实现,常…

2024年必备技能:小红书笔记评论自动采集,零基础也能学会的方法

摘要: 面对信息爆炸的2024年,小红书作为热门社交平台,其笔记评论成为市场洞察的金矿。本文将手把手教你,即便编程零基础,也能轻松学会利用Python自动化采集小红书笔记评论,解锁营销新策略,提升…

pmp学习交流组队~

首先,来看看什么是PMP PMP指的是项目管理专业人士资格认证。它是由美国项目管理协会(Project Management Institute(PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。 pmp备考攻略本人推荐的参考资料比较多&#xff0…

MySQL 9 安装第1辑-版本选择和安装包获取

一、MySQL 9 版本选择 在准备安装MySQL时,选择合适的版本和分发格式至关重要。首先,需要决定是安装长期支持(LTS)系列版本还是创新系列版本。长期支持版本(如MySQL 8.x LTS)专注于稳定性、性能优化和安全性…

RocketMQ知识总结(基本原理)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 基本原理 总体架构图 零拷贝 零拷贝技术是一个思想,指…

蓝屏事件一些想法

影响全球的蓝屏事件 2024年7月19日发生了大量windows操作系统电脑蓝屏的事情,造成了全球级别的影响。其中国外的影响最大,甚至像医院、银行、航班等与人民生活密切相关的行业都受到了本次影响。导致全球数千架次航班被取消,数万架次航班延误…

Java | Leetcode Java题解之第303题区域和检索-数组不可变

题目&#xff1a; 题解&#xff1a; class NumArray {int[] sums;public NumArray(int[] nums) {int n nums.length;sums new int[n 1];for (int i 0; i < n; i) {sums[i 1] sums[i] nums[i];}}public int sumRange(int i, int j) {return sums[j 1] - sums[i];} }…

【Web开发手礼】探索Web开发的秘密(十三)-Vue(3)好友列表、登录

前言 主要介绍了好友列表、登录界面所涉及的vue知识点&#xff01;&#xff01;&#xff01; 好友列表 从云端API读取数据信息 地址 https://app165.acapp.acwing.com.cn/myspace/userlist/方法&#xff1a;GET是否验证jwt&#xff1a;否输入参数&#xff1a;无返回结果&…

C++自定义接口类设计器

关键代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QStringListModel>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);// C基础数据类型列表QStringList typ…

求.netcore 按模板导出pdf免费插件,来谈谈。

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

图书管理系统设计

设计一个图书管理系统时&#xff0c;我们需要考虑系统的基本功能、用户需求、技术选型以及数据的安全性和完整性。下面是一个基本的图书管理系统的设计概览&#xff1a; 1. 系统目标 管理图书信息&#xff1a;添加、删除、修改图书信息。借阅管理&#xff1a;处理借书、还书流…

低代码应用版本管理能力探讨

低代码平台为开发者提供易用的可视化、定制化开发能力&#xff0c;无需编写原生代码或者只有少量代码编写就能实现需求&#xff0c;从而带来开发门槛的降低&#xff0c;开发效率的提升。低代码作为提升应用研发生产力的关键型技术&#xff0c;成为企业数字化转型的助推器。 低代…