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} I∈RN×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} F2d∈RN×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} Fcont∈RN×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} Dt∈RN×D×HI′×WI′,其中 C C C 是通道数, D D D 是深度分箱的数量。然后计算外积 F c o n t ⊗ D t F^t_{con} \otimes D^t Fcont⊗Dt 作为提升的特征点云 P t ∈ R N D H I ′ W I ′ × C P^t \in \mathbb{R}^{NDH'_IW'_I \times C} Pt∈RNDHI′WI′×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} FBEVt∈RC×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=tcur−T+1tcur,其中 t c u r t_{cur} tcur 是当前时间, T ∈ N + T \in \mathbb{N}_+ T∈N+ 是帧数,首先被扭曲到当前时间的自车中心坐标系中,从而消除了自车运动的错位。然后,将对齐的多帧BEV特征在通道维度上进行连接,并进一步通过卷积BEV编码器处理。输出的时空BEV特征 F B E V ∈ R C o × H × W F_{BEV} \in \mathbb{R}^{C_o \times H \times W} FBEV∈RCo×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} xid∈RMd×2 作为BEV坐标和节点特征 f i d ∈ R C g f^d_i \in \mathbb{R}^{C_g} fid∈RCg 的节点表示,其中 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} xis∈RMs×2 和节点特征 f i s ∈ R C g f^s_i \in \mathbb{R}^{C_g} fis∈RCg 组成的地图元素。MapFormer的结构化预测,包括BEV坐标和输出查询特征,直接用作静态图节点。由于驾驶场景中的地图元素通常作为恒定的环境约束,它们的节点特征在迭代层中不会更新。