本文提出了一种层次图神经网络,首先利用由向量表示的单个道路分量的空间局部性,然后对各分量之间的高阶交互作用进行建模。比较主流的做法是将智能体的轨迹以及道路的上下文信息渲染为鸟瞰图像,并使用卷积神经网络对其进行编码,VectorNet则是将所有信息转化为向量表示,在向量上进行操作。这种做法可以有效地避免有损的渲染和计算密集型卷积网络的步骤。为了进一步提高 VectorNet 在学习上下文特征方面的能力,本文提出了一种新的辅助任务,以根据上下文恢复随机屏蔽的地图实体和智能体轨迹。
VectorNet 提出用矢量化表示来表示高清地图和智能体动态。VectorNet 设计了一个新颖的层次图网络,其中第一级聚合折线内向量之间的信息,第二级模拟折线之间的高阶关系。对大规模内部数据集和公开可用的 Argoverse 数据集的实验表明,所提出的 VectorNet 优于 ConvNet 对应物,同时大大降低了计算成本。 VectorNet 还在 Argoverse 测试集上实现了最先进的性能(DE@3s,K=1)。下一步自然是将 VectorNet 编码器与多模态轨迹解码器(例如 [6, 29])结合起来,以生成不同的未来轨迹。
动机:注重于复杂的多智能体系统,主要的目标是找到一个统一的表示,它集成了由感知系统获得的智能体动态,例如具有场景上下文的对象检测和跟踪,通常以高清(HD)地图的形式作为先验知识提供。目标是建立一个系统来学习预测车辆的意图,这些意图被参数化为轨迹。
方法:传统的行为预测方法是基于规则的,其中基于路线图的约束生成多个行为假设。最近,提出了许多基于学习的方法 [5, 6, 10, 15];它们提供了对不同行为假设进行概率解释的好处,但需要构建一个表示来编码地图和轨迹信息。有趣的是,虽然高清地图是高度结构化的,表达为具有位置(例如车道)和属性(例如绿色交通灯)的实体,但这些方法中的大多数选择将高清地图呈现为颜色编码的属性(图 1,左),这需要手动规范;并使用具有有限感受野的 ConvNet 对场景上下文信息进行编码。这就提出了一个问题:可以直接从结构化的高清地图中学习有意义的上下文表示吗?
贡献:提出直接从向量化的多智能体的动态和结构化的场景上下文学习统一的表示,道路要素的地理范围可以是地理坐标中的一个点、一个多边形或一条曲线。例如,车道边界包含多个构建样条的控制点;人行横道是由几个点定义的多边形;停车标志由一个点表示。所有这些地理实体都可以近似为由多个控制点及其属性定义的折线。类似地,移动智能体的动力学也可以基于它们的运动轨迹通过折线来近似。然后所有这些折线都可以表示为一组向量。
使用图神经网络 (GNN) 来合并这些向量集。将每个向量视为图中的一个节点,并将节点特征设置为每个向量的开始位置和结束位置,以及折线组 ID 和语义标签等其他属性。来自高清地图的上下文信息以及其他移动智能体的轨迹通过 GNN 传播到目标智能体节点。然后,可以采用与目标智能体对应的输出节点特征来解码其未来轨迹。
具体来说,为了学习与 GNN 的竞争表示,基于节点的空间和语义接近度来约束图的连接性很重要。因此,VectorNet提出了一种分层图架构,其中属于具有相同语义标签的相同折线的向量被连接并嵌入到折线特征中,然后所有折线相互完全连接以交换信息。VectorNet用多层感知器实现局部图,用自注意力实现全局图[30]。VectorNet方法的概述如图 2 所示
最后,由于最近从顺序语言 [11] 和视觉数据 [27] 进行自我监督学习的成功,VectorNet提出了除了行为预测目标之外的辅助图完成目标。更具体地说,VectorNet随机屏蔽了输入属于场景上下文或代理轨迹的节点特征,并要求模型重建掩码特征。直觉是鼓励图网络更好地捕捉智能体动态和场景上下文之间的交互。总之,VectorNet贡献是:
• 第一个展示如何直接结合矢量化场景上下文和代理动态信息进行行为预测。
• 提出了层次图网络VectorNet 和节点完成辅助任务。
• 在作者的内部行为预测数据集和 Argoverse 数据集上评估了所提出的方法,并表明VectorNet在具有竞争力的渲染基线上实现了同等或更好的性能,模型尺寸节省了 70% 和一个数量级减少 FLOPs。
自动驾驶的行为预测:IntentNet [5] 提出联合检测车辆并从 LiDAR 点和渲染的高清地图预测它们的轨迹。洪等人 [15] 假设提供了车辆检测,并通过对与 ConvNet 的实体交互进行编码来关注行为预测。同样,MultiPath [6] 也使用 ConvNets 作为编码器,但采用预定义的轨迹锚来回归多个可能的未来轨迹。 PRECOG [23] 试图通过基于流的生成模型来捕捉未来的随机性。与 [6, 15, 23] 类似,我们还假设代理检测由现有的感知算法提供。然而,与这些方法都使用 ConvNets 来编码渲染的路线图不同,我们提出直接编码矢量化场景上下文和代理动态
预测多智能体的交互:除了自动驾驶领域之外,人们更普遍感兴趣的是预测交互代理的意图,例如行人 [2、13、24]、人类活动 [28] 或体育运动员 [12、26] , 32, 33]。特别是,Social LSTM [2] 将单个代理的轨迹建模为单独的 LSTM 网络,并根据代理的空间接近度聚合 LSTM 隐藏状态以模拟它们的交互。 Social GAN [13] 简化了交互模块,并提出了一个对抗性鉴别器来预测不同的未来。孙等人。 [26] 将图网络 [4] 与变分 RNN [8] 相结合,对不同的交互进行建模。社交互动也可以从数据中推断出来:Kipf 等人。 [18] 将此类交互视为潜在变量;和图注意网络 [16, 31] 应用自我注意机制来加权预定义图中的边缘。我们的方法更进一步,提出了一个统一的层次图网络来联合建模多个代理的交互,以及它们与路线图中实体的交互。
实体集的表示学习:传统的机器感知算法一直专注于高维连续信号,例如图像、视频或音频。一个例外是 3D 感知,其中输入通常是由深度传感器给出的无序点集的形式。例如,齐等人。提出 PointNet 模型 [20] 和 PointNet++ [21] 在学习点嵌入上应用置换不变操作(例如最大池化)。与点集不同,高清地图和智能体轨迹上的实体形成闭合形状或有向,它们还可能与属性信息相关联。因此,我们建议通过向量化输入来保留这些信息,并将属性编码为图中的节点特征。
自我监督的上下文建模:最近,NLP 领域的许多工作都以自我监督的方式提出了建模语言上下文 [11, 22]。他们学习的表示在转移到下游任务时实现了显着的性能改进。受这些方法的启发,我们提出了一种用于图表示的辅助损失,它学习从其邻居中预测缺失的节点特征。目标是激励模型更好地捕捉节点之间的交互。
首先介绍如何向量化轨迹和HD地图;其次介绍层次图神经网络,它从各个折线聚合局部信息,然后全局聚合所有轨迹和地图特征。然后可以将该图应用于行为预测。
来自高清地图的大多数注释都是样条曲线(例如车道)、闭合形状(例如交叉路口区域)和点(例如交通信号灯)的形式,以及附加的属性信息,例如语义标签注释及其当前状态(例如交通灯的颜色、道路的限速)。对于代理,他们的轨迹是关于时间的有向样条曲线的形式。所有这些元素都可以近似为向量序列:对于地图特征,我们选择一个起点和方向,从相同空间距离的样条中均匀采样关键点,并将相邻的关键点顺序连接成向量;对于轨迹,我们可以从 t = 0 开始,以固定的时间间隔(0.1 秒)对关键点进行采样,并将它们连接成向量。给定足够小的空间或时间间隔,生成的折线可以作为原始地图和轨迹的近似值。
我们的向量化过程是连续轨迹、地图注释和向量集之间的一对一映射,尽管后者是无序的。这使我们能够在向量集之上形成一个图形表示,它可以由图形神经网络编码。
具体的,文章将每个属于折线的向量表示为一个节点,其节点特征定义为:
其中表示起始点,表示终点,d 本身可以表示为 (x, y) 用于 2D 坐标或 (x, y, z) 用于 3D 坐标。对应于属性特征,例如对象类型、轨迹的时间戳,或道路特征类型或车道的速度限制。j 是 的整数 id,表示 。
为了使输入节点特征对目标智能体的位置保持不变,我们将所有向量的坐标归一化,使其在最后观察到的时间步以目标智能体的位置为中心。未来的工作是共享所有交互智能体的坐标中心,以便可以并行预测它们的轨迹。
为了利用节点的空间和语义局部性,我们采用分层方法,首先在向量级别构建子图,其中属于同一折线的所有向量节点相互连接。考虑具有节点 的折线 P,我们将单层子图传播操作定义为
其中是子图网络第 l 层的节点特征,是输入特征 vi。函数 转换单个节点的特征,聚合来自所有相邻节点的信息,而 是节点 vi 与其邻居之间的关系算子。
在实践中,是一个多层感知器 (MLP),其权重在所有节点上共享;具体来说,MLP 包含单个全连接层,然后是层归一化 [3],然后是 ReLU 非线性。 是最大池化操作,是一个简单的连接。图 3 显示了一个说明。我们堆叠了多层子图网络,其中 的权重不同。最后,为了获得折线级特征,我们计算
我们的折线子图网络可以看作是 PointNet [20] 的推广:当我们设置 并让 a 和 l 为空时,我们的网络具有与 PointNet 相同的输入和计算流。然而,通过将排序信息嵌入向量中,基于折线分组约束子图的连通性,并将属性编码为节点特征,我们的方法特别适合编码结构化地图注释和代理轨迹。
我们现在考虑使用全局交互图对折线节点特征 上的高阶交互进行建模:
是折线结点的特征集合,, GNN(·)对应于图神经网络的单层,A 对应于折线节点集的邻接矩阵,可以为邻接矩阵 A 提供启发式方法,例如使用节点之间的空间距离 [2]。为简单起见,我们假设 A 是一个全连接图。我们的图网络被实现为自注意力操作[30]:
其中 P 是节点特征矩阵,PQ、PK 和 PV 是其线性投影。
然后,我们从对应于移动代理的节点解码未来轨迹:
其中是GNN层的总数,是轨迹解码器。为简单起见,我们使用 MLP 作为解码器功能。更高级的解码器,例如来自 MultiPath [6] 的基于锚的方法,或变分 RNN [8, 26] 可用于生成不同的轨迹;这些解码器与我们的输入编码器互补。
我们在实现中使用单个 GNN 层,因此在推理期间,只需要计算与目标代理相对应的节点特征。然而,我们也可以在需要时堆叠多层 GNN(·) 来模拟高阶交互。
为了鼓励我们的全局交互图更好地捕捉不同轨迹和地图折线之间的交互,我们引入了一个辅助图完成任务。在训练期间,我们随机屏蔽掉折线节点子集的特征,例如。然后,我们尝试将其掩盖的特征恢复为:
其中 是实现为 MLP 的节点特征解码器。在推理期间不使用这些节点特征解码器。
回想一下,是来自全连接无序图中的一个节点。为了在相应特征被屏蔽时识别单个折线节点,我们从其所有所属向量计算起始坐标的最小值,以获得嵌入的标识符。输入节点特征然后变为
我们的图完成目标与广泛成功的自然语言处理 BERT [11] 方法密切相关,该方法基于离散和连续文本数据的双向上下文预测丢失的标记。我们将此训练目标推广到无序图。不像最近的几种方法(例如 [25])将 BERT 目标泛化为具有预先计算的视觉特征的无序图像块,我们的节点特征在端到端框架中进行了联合优化。
一旦构建了分层图网络,我们就优化了多任务训练目标
其中 是 groundtruth 未来轨迹的负高斯对数似然, 是预测节点之间的 Huber 损失特征和groundtruth掩蔽节点特征,α=1.0是一个平衡两个损失项的标量。为了通过降低节点特征的大小来避免的简单解决方案,我们在将折线节点特征馈送到全局图网络之前对折线节点特征进行 L2 归一化。我们的预测轨迹被参数化为每步坐标偏移,从最后观察到的位置开始。我们根据目标车辆在最后观察位置的航向旋转坐标系。
我们的基线使用 ConvNet 对光栅化图像进行编码,其架构与 IntentNet [5] 相当:我们使用 ResNet-18 [14] 作为 ConvNet 主干。没有使用激光雷达的数据,为了获得以车辆为中心的特征,我们从卷积特征图中裁剪目标车辆周围的特征块,并对裁剪后的特征图的所有空间位置进行平均池化以获得单个车辆特征向量。我们凭经验观察到,使用更深的 ResNet 模型或根据目标车辆方向旋转裁剪的特征并不会带来更好的性能。车辆特征馈入到全连接层来并行预测未来坐标。
为了确保公平比较,矢量化表示将与光栅化表示相同的信息作为输入。具体来说,提取与渲染时完全相同的一组地图特征。我们还确保目标代理的可见道路特征向量与光栅化表示中的相同。然而,矢量化表示确实享有合并更复杂的道路特征的好处,这些道路特征渲染起来并不简单。
除非另有说明,使用三个图层表示折线子图,使用一个图层表示全局交互图。所有 MLP 中隐藏单元的数量固定为 64。MLP 之后是层归一化和 ReLU 非线性。我们将向量坐标归一化,使其在最后观察到的时间步以目标车辆的位置为中心。
消融实验:是否仅使用地图或其他代理的轨迹以及折线子图和全局交互图的图形层数的影响。
我们对 ConvNet 感受野的影响、特征裁剪策略和光栅化图像的分辨率进行消融研究。
感受野的影响:我们评估不同的变体,以了解感受野的两个关键因素,卷积核大小和特征裁剪策略如何影响预测性能。
表一: (1)通过比较内核大小 3、5 和 7 在 400×400 分辨率下,我们可以看到更大的内核大小会带来轻微的性能提升,但计算开销变大;(2)通过在所有观察到的时间步增加裁剪大小或沿车辆轨迹裁剪,从表 1 的第 3 行到第 6 行,更大的裁剪尺寸(3 vs 1)可以显着提高性能,并且沿着观察到的轨迹进行裁剪也可以带来更好的性能,当光栅化图像用作输入时,这一观察证实了感受野的重要性。它还强调了它的局限性,即需要精心设计的裁剪策略,通常以增加计算成本为代价。
渲染分辨率的影响:我们进一步改变光栅化图像的分辨率,以了解它如何影响预测质量和计算成本,如表 1 的前三行所示。我们测试了三种不同的分辨率,包括 400 × 400(0.25 米每像素)、200 × 200(每像素 0.5 米)和 100 × 100(每像素 1 米)。可以看出,随着分辨率的提高,性能普遍提高。然而,对于 Argoverse 数据集,我们可以看到将分辨率从 200×200 增加到 400×400 会导致性能略有下降,这可以通过固定 3×3 内核的有效感受野大小减小来解释。我们将在 4.4 节讨论这些设计选择对计算成本的影响。
输入节点类型的影响:添加代理轨迹和地图信息,我们可以清楚地观察到,添加地图信息显着提高了轨迹预测性能。结合轨迹信息进一步提高了性能。
节点完成损失的影响:表 2 的最后四行比较了添加节点完成辅助目标的影响。我们可以看到,添加此目标始终有助于提高性能,尤其是在较长的时间范围内。
对图架构的影响:在表 3 中,我们研究了图形层的深度和宽度对轨迹预测性能的影响。我们观察到,对于折线子图,三层提供了最佳性能,而对于全局图,只需要一层。使 MLP 更宽不会带来更好的性能,并且对 Argoverse 造成伤害,可能是因为它的训练数据集更小。图 4 显示了一些关于预测轨迹和车道注意力的可视化示例。
图 4.(左)预测的可视化:车道显示为灰色,非目标代理为绿色,目标代理的地面真实轨迹为粉红色,预测轨迹为蓝色。 (右)道路和代理注意力的可视化:较亮的红色对应于较高的注意力得分。可以看出,当智能体面临多项选择时(前两个示例),注意力机制能够专注于正确的选择(第二个示例中的两个右转车道)。第三个例子是换道代理,所关注的车道是当前车道和目标车道。在第四个例子中,虽然预测不准确,但注意力仍然会在正确的车道上产生合理的分数。
与卷积网络的比较:
我们观察到,由于驾驶场景的自然分布,内部数据集包含大量静止车辆;这些情况可以通过擅长捕捉局部模式的 ConvNets 轻松解决。然而,对于只保留“有趣”案例的 Argoverse 数据集,VectorNet 大大优于最佳 ConvNet 基线;大概是因为它能够通过分层图网络捕获远程上下文信息。
预测解码器不计算 FLOP 和参数数量,ConvNets 的 FLOPs 随着内核大小和输入图像大小增加,参数的数量随内核大小呈二次方增加。当我们以自动驾驶车辆为中心渲染图像时,特征图可以在多个目标之间重复使用,因此主干部分的 FLOPs 是一个常数。然而,如果渲染图像以目标为中心,则 FLOPs 会随着目标的数量线性增加。对于 VectorNet,FLOPs 取决于场景中矢量节点和折线的数量。我们根据这些平均数字计算 FLOP。请注意,由于我们需要重新归一化矢量坐标并重新计算每个目标的 VectorNet 特征,因此 FLOP 会随着预测目标的数量(表 4 中的 n)线性增加。
最后,我们将 VectorNet 与几种基线方法 [7] 和 Argoverse [7] 测试集上的一些最先进的方法进行比较。我们在表 5 中报告了 K=1 结果(最可能的预测)。基线方法包括恒速基线、最近邻检索和 LSTM 编码器-解码器。最先进的方法是 Argoverse 预测挑战赛的获胜者。可以看出,当 K=1 时,VectorNet 将 DE@3s 指标的最新性能从 4.17 提高到 4.01。