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

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.mzph.cn/bicheng/51876.shtml

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

相关文章

使用IPIDEA海外代理助力宠物跨境电商1.1

3.如何获取具体分类的数据? 以前我们做选品,通常会招聘多个运营专员,每隔几小时去亚马逊平台上查看猫狗商品数据,然后人工把数据一条一条复制粘贴下来。通常一遍做下来,1-2小时就过去了(根据数据样本的大小…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 围棋的气(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

Spring-原理篇-DispatcherServlet 初始化 怎么和IOC进行了打通?

委托模式的体现,在初始化醒目的时候Spring MVC为我们提供了一个DispatcherServlet,映射了所有的路径,所有的请求都会先到达这里然后被转发到具体的Controller 进行处理,此文来探索一下,DispatcherServlet 初始化的时候…

Hive之扩展函数(UDF)

Hive之扩展函数(UDF) 1、概念讲解 当所提供的函数无法解决遇到的问题时,我们通常会进行自定义函数,即:扩展函数。Hive的扩展函数可分为三种:UDF,UDTF,UDAF。 UDF:一进一出 UDTF:一进多出 UDAF&#xff1a…

架构分析(CPU:ARM vs RISC-V)

ARM N2 ARM V2 对比 N2和V2,整体架构具有一致性。保证 SiFive P870 P870 Pipeline Veyron V1

MATLAB画散点密度图(附代码和测试数据的压缩包)

1. 有关 Matlab 获取代码关注公众号WZZHHH回复关键词,或者咸鱼关注:WZZHHH123 怀俄明探空站数据解算PWV和Tm:怀俄明探空站数据解算PWV和Tm 怀俄明多线程下载探空站数据(包括检查和下载遗漏数据的代码):怀俄…

【C++深度探索】深入解析AVL树的底层实现机制

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 前言 AV…

阿里云 服务器安装rabbit

现在我们去服务器安装一个rabbit 进入home 创建一个rabbit文件夹 /home/rabbit vim deployRabbit.sh 脚本内容 #!/bin/bash docker run -d \ --name dev.rabbit \ --network dev-net \ -p 15672:15672 \ -v ./data:/var/lib/rabbitmq \ --hostname dev.rabbit \ rabbitmq:…

反射和游戏场景

主要内容 1.Unity中的反射机制运用 2.游戏场景本质 回顾一下反射的概念 程序正在运行时没有查看其它程序集或者自身的元数据,一个运行的程序查看本身或者其它程勋的元数据的行为就叫做反射。 在程序运行时,通过反射可以得到其它程序集或者自己程序集…

UCOS-III 互斥锁接口详解

在实时操作系统uC/OS-III中,互斥锁(Mutex)是一种用于管理对共享资源的访问的同步机制。互斥锁通过保证在任何时刻只有一个任务可以持有锁,从而防止资源竞争问题。同时,uC/OS-III还实现了递归锁定和优先级继承机制&…

2024杭电多校第三场

目录 1001-深度自同构 1003-游走 1007-单峰数列 1008-比特跳跃 1011-抓拍 1012-死亡之组 1001-深度自同构 每个数的答案其实与它的各个因数有关&#xff0c;正向递推一下 #include <bits/stdc.h> using namespace std; #define int long long const int N1e65; co…

51 单片机的Keil5软件

1. KEIL C51 软件获取 博主网盘下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1YBfrRh2L7SIehS5xLQkAow?pwd4211 提取码&#xff1a;4211 也可以在 KEIL 的官网上下载&#xff1a;http:// https://www.keil.com/download/product/ 打开界面如下图所示&#xff1…

读零信任网络:在不可信网络中构建安全系统04最小特权

1. 公钥基础设施 1.1. PKI 1.2. 数字证书本身并不能解决身份认证问题 1.2.1. 需要一种方法来验证获得的公钥的确属于某人 1.2.2. 公钥基础设施&#xff08;PKI&#xff09;解决了这个问题 1.3. PKI定义了一组角色及其职责&#xff0c;能够在不可信的网络中安全地分发和验证…

AMQP-核心概念-终章

本文参考以下链接摘录翻译&#xff1a; https://www.rabbitmq.com/tutorials/amqp-concepts 连接&#xff08;Connections&#xff09; AMQP 0-9-1连接通常是长期保持的。AMQP 0-9-1是一个应用级别的协议&#xff0c;它使用TCP来实现可靠传输。连接使用认证且可以使用TLS保护…

观远BI经验总结

观远BI经验总结 观远BI&#xff08;Galaxy platform&#xff09;简介 ​ 观远数据是一站式智能分析平台&#xff0c;为企业提供数据分析可视化与智能决策服务&#xff0c;打通数据采集-数据接入-数据管理-数据开发-数据分析-AI建模-AI模型运行-数据应用全流程&#xff0c;全方…

Golang | Leetcode Golang题解之第300题最长递增子序列

题目&#xff1a; 题解&#xff1a; func lengthOfLIS(nums []int) int {if len(nums)<1{return len(nums)}dp : make([]int,len(nums))for i:0;i<len(nums);i{dp[i]1}res : 1for i:1;i<len(nums);i{for j:0;j<i;j{if nums[i] > nums[j]{dp[i] max(dp[i],dp[j…

录制创意无限的视频:2024年热门免费录屏软件精选

录屏会帮助我们捕捉屏幕上每一帧的精彩瞬间&#xff0c;不论是直播还是学习甚至是工作的会议都能用到这个功能。如果找到一款好用的免费录屏软件&#xff0c;那我们录屏时候会更随意&#xff0c;更愉悦一些吧。 1.福昕录屏大师 链接&#xff1a;www.foxitsoftware.cn/REC/ 这款…

【扒代码】X = output[:,:,y1:y2,x1:x2].sum()

假设我们有以下输入&#xff1a; output 是一个形状为 (1【batch size】, 1【channel】, 10, 10) 的张量&#xff0c;表示一个 10x10 的输出图像。boxes 是一个形状为 (1【index】, 2, 5) 的张量&#xff0c;表示两个边界框&#xff0c;每个边界框包含 5 个值 [index, y1, x1,…

AttributeError: ‘str‘ object has no attribute ‘decode‘

AttributeError: ‘str‘ object has no attribute ‘decode‘ 目录 AttributeError: ‘str‘ object has no attribute ‘decode‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#x…

springBoot 3.X整合camunda

camunDa camunDa 是2013年从Activiti5 中分离出来的一个新的工作流引擎。Camunda 官方提供了 Camunda Platform、Camunda Modeler&#xff0c;其中 Camunda Platform 以 Camunda engine 为基础为用户提供可视化界面&#xff0c;Camunda Modeler 是流程文件建模平台&#xff0c…