摘要
预测周围智能体的未来轨迹对于自动驾驶车辆的安全运行至关重要。本文提出了QCNet,这是一个推动轨迹预测边界的建模框架。首先,我们发现现有方法使用的以智能体为中心的建模方案需要在观察窗口向前滑动时重新归一化和重新编码输入,导致在线预测期间的冗余计算。为了克服这一限制并实现更快的推理,我们引入了一种以查询为中心的场景编码范式,它通过学习与全球时空坐标系无关的表示,使过去的计算得以重用。在所有目标智能体之间共享不变的场景特征,进一步允许多智能体轨迹解码的并行性。其次,即使在丰富的场景编码情况下,现有的解码策略也难以捕捉智能体未来行为固有的多模态性,特别是当预测范围较长时。为了应对这一挑战,我们首先采用无锚点查询以循环方式生成轨迹提议,这允许模型在不同范围解码航点时利用不同的场景上下文。然后,一个细化模块将轨迹提议作为锚点,并利用基于锚点的查询进一步细化轨迹。通过向细化模块提供自适应和高质量的锚点,我们的基于查询的解码器可以更好地处理轨迹预测输出中的多模态性。我们的方法在Argoverse 1和Argoverse 2运动预测基准测试中均排名第一,以较大优势超越了所有方法的所有主要指标。同时,由于以查询为中心的设计哲学,我们的模型可以实现流式场景编码和并行多智能体解码。
1. 引言
对于自动驾驶车辆来说,做出安全的决策需要准确预测周围智能体的未来轨迹。近年来,基于学习的方法已被广泛用于轨迹预测。尽管为了提高模型的预测能力做出了相当大的努力,但在完全解决轨迹预测问题之前仍有很长的路要走。这项任务为何如此具有挑战性,现有方法的不足之处在哪里?我们试图从以下两个角度回答这些问题:
(i) 尽管蓬勃发展的预测模型在轨迹预测基准测试中取得了令人印象深刻的性能,但今天专门为这项任务设计的最先进的架构无法高效处理异构交通场景。在自动驾驶系统中,数据帧作为稀疏场景上下文的流顺序到达预测模块,包括高清矢量地图和周围智能体的运动状态。模型必须学习这些场景元素的表达性表示以实现准确的预测。随着稀疏上下文编码建模技术的不断发展,研究界见证了向更强大的轨迹预测器的快速发展。值得注意的是,基于分解注意力的Transformer最近将预测精度提高到了前所未有的水平。然而,它们需要为每个时空场景元素学习基于注意力的表示,并且在处理密集交通场景时遭受极高的成本。由于自动驾驶中的每一次微小延迟都可能导致灾难性的事故,对实时预测的未满足需求限制了最先进方法的适用性。
(ii) 轨迹预测输出中的巨大不确定性随着预测范围的延长而呈爆炸性增长,这一直困扰着研究界。例如,交叉路口的车辆可能根据驾驶员的长期目标向左转或向右转。为了避免错过任何潜在的行为,模型必须学会捕捉潜在的多模态分布,而不仅仅是预测最常见的模式。由于每个训练样本中只记录了一种可能性,因此这一学习任务具有挑战性。为了减轻学习难度,一些工作利用手工制作的锚点作为多模态预测的指导。然而,它们的有效性取决于锚点的质量。通常,当很少有锚点能够精确覆盖真实情况时,这些方法就无法很好地工作。在长期预测中,这个问题更加严重,锚点的搜索空间要大得多。其他一些工作通过直接预测多个轨迹来绕过这个问题,尽管存在模式崩溃和训练不稳定的风险。由于缺乏空间先验,这些方法也无法产生准确的长期预测。
上述分析促使我们提出了一个名为QCNet的轨迹预测框架,以克服先前解决方案的限制。首先,我们注意到在享受分解注意力的强大功能的同时,实现更快的在线推理是可能的,但现有方法使用的以智能体为中心的编码方案是一个障碍。每当新的数据帧到达时,观察窗口向前滑动一步,并与前一个窗口大量重叠,为模型重用先前计算的编码提供了机会。然而,以智能体为中心的方法需要根据最新智能体状态的位置对输入进行归一化,这就需要在观察窗口向前滑动时重新编码场景元素。为了解决这个问题,我们引入了一种以查询为中心的场景编码范式。我们设计哲学的关键在于在它们的局部时空参考框架中处理所有场景元素,并学习与全球坐标无关的表示。这一策略使我们能够缓存和重用先前计算的编码,将计算分散在所有观察窗口中,从而减少推理延迟。不变的场景特征也可以在场景中的所有目标智能体之间共享,以实现多智能体解码的并行性。其次,为了更好地利用场景编码进行多模态和长期预测,我们使用无锚点查询循环检索场景上下文,并让它们在每次循环中解码一段未来的航点。这种循环机制通过允许查询在预测不同范围的航点时关注不同的场景上下文,减轻了查询的建模负担。循环解码器预测的高质量轨迹作为动态锚点在随后的细化模块中使用,我们使用基于锚点的查询根据场景上下文细化轨迹提议。因此,我们基于查询的解码管道将无锚点方法的灵活性纳入基于锚点的解决方案,两者兼而有之,以促进多模态和长期预测。我们提出的以查询为中心的编码范式是第一个可以利用轨迹预测的顺序特性实现快速在线推理的范式。此外,我们的基于查询的解码器在多模态和长期预测方面展现出卓越的性能。实验表明,我们的方法在两个大规模运动预测基准测试中均取得了最先进的结果,排名第一。
2. 相关工作
2.1场景上下文融合编码
早期的工作将世界状态光栅化为多通道图像,并使用经典的卷积神经网络进行学习。由于光栅化方法的渲染损失、感受野有限以及高成本,研究界转向基于向量的编码方案。利用排列不变的集合操作符,如池化、图卷积和注意力机制,基于向量的方法可以高效地聚合交通场景中的稀疏信息。最近,几个强大的轨迹预测模型采用了具有分解注意力的Transformer作为编码器。尽管这些模型通过分层学习代理中心表示或在共享坐标系统中编码整个场景来提高效率,但它们的可扩展性仍然受到分解注意力计算复杂度的限制。相比之下,我们的编码器继承了分解注意力的表示能力,通过使用以查询为中心的编码范式,实现了更高效的场景上下文融合,超越了以代理为中心的建模,并实现了流式轨迹预测。
2.2多模态未来分布
鉴于世界状态部分可观测和智能体意图的高度不确定性,多模态未来分布是轨迹预测广泛采用的输出形式。虽然生成模型自然适合多模态预测,但从潜在变量中采样引入了测试时的随机性,这对于自动驾驶等安全关键应用是不可取的。另一研究方向通过从编码的场景上下文中解码一组离散的轨迹来解决多模态问题。由于训练数据中只观察到一种模式,预测多种不同的未来是具有挑战性的。基于锚点的方法通过利用预定义的操作、候选轨迹或地图自适应目标来实现这一点,它们通过锚点指导多模态预测。然而,这些锚点的质量显著影响预测性能。相比之下,无锚点方法在没有模式崩溃和训练不稳定的风险下自由输出多个假设。我们的解码管道结合了基于锚点和无锚点解决方案的优势,无锚点模块以数据驱动的方式生成自适应锚点,基于锚点的模块根据场景上下文细化这些锚点。
3.方法
3.1 输入和输出公式化
考虑一个场景,周围有 A A A个智能体。在线运行期间,感知模块以固定间隔向预测模块提供智能体状态的流,其中每个智能体状态与其时空位置和几何属性相关联。例如,第 i i i个智能体在时间步 t t t的状态包括空间位置 p t i = ( p t i , x , p t i , y ) p_t^i=(p_t^{i,x}, p_t^{i,y}) pti=(pti,x,pti,y),角位置 θ t i \theta_t^i θti(即,偏航角),时间位置 t t t(即,时间步),以及速度 v t i v_t^i vti。我们还添加了运动向量 p t i − p t − 1 i p_t^i - p_{t-1}^i pti−pt−1i到几何属性中,类似于一些基线。此外,预测模块可以访问高清地图上的 M M M个多边形(例如,车道和人行横道),每个地图多边形都标注有采样点和语义属性(例如,车道的用户类型)。给定观察窗口 T T T时间步内的地图信息和智能体状态,预测模块的任务是为每个目标智能体预测 K K K条未来轨迹,在 T ′ T' T′时间步的范围内,并为每个预测分配一个概率分数。
3.2 以查询为中心的场景上下文编码
轨迹预测的第一步是编码场景输入。最新的研究发现,分解注意力机制在场景编码中非常有效。这些方法让查询元素轮流基于一个轴关注键/值元素,从而产生时间注意力、智能体-地图注意力和社会注意力(即智能体-智能体注意力)。与通常的编码策略不同,后者首先应用时间网络来压缩时间维度,然后在当前时间步仅执行智能体-地图和智能体-智能体的融合,分解注意力在观察窗口内的所有过去时间步进行融合。因此,分解注意力能够捕获更多信息,例如智能体和地图元素之间的关系如何在观察范围内演变。然而,每次融合操作的三次方复杂度限制了其可扩展性。在涉及数百个智能体和地图元素的极端情况下,这些模型可能无法及时发出预测。我们提出一个问题:是否可能在享受分解注意力的表示能力的同时减少在线预测期间的推理延迟?在深入我们的解决方案之前,回想一下,轨迹预测是一个流处理任务:当新的数据帧到达时,我们将其放入队列并丢弃最旧的一个。因此,最新的观察窗口与前一个窗口有
T
−
1
T-1
T−1个时间步的重叠。这一事实激发了我们的另一个问题:我们是否可以在观察窗口向前滑动后重用先前计算的编码?不幸的是,由于轨迹预测的归一化要求,这个想法是不可行的:现有方法采用智能体中心编码方案来实现空间旋转平移不变性,其中每个智能体都是在其当前时间步的位置和偏航角确定的局部坐标框架中进行编码的。每次观察窗口向前滑动时,"当前时间步"也会相应地移动,所有场景元素的几何属性都需要根据最新智能体状态的位置进行重新归一化。由于输入的变化,我们被迫即使观察窗口大部分重叠,也要重新编码所有时间步的元素。基于以上分析,我们确定不断演变的时空坐标系统阻碍了先前计算编码的重用。为了解决这个问题,我们引入了一种查询为中心的编码范式,学习与场景元素的全局坐标无关的表示。具体来说,我们为每个场景元素建立了一个局部时空坐标系统,查询向量从中派生,并在其局部参考框架中处理查询元素的特征。然后,我们在执行基于注意力的场景上下文融合时,将相对时空位置注入到键和值元素中。我们在以下段落中详细阐述编码过程。
3.2.1 局部时空坐标系统
图1显示了场景元素的局部坐标系统的一个例子。对于第 i i i个智能体在时间步 t t t的状态,局部坐标框架由参考时空位置 ( p t i , t ) (p_t^i, t) (pti,t)和参考方向 θ t i \theta_t^i θti确定,其中 p t i p_t^i pti和 θ t i \theta_t^i θti分别是智能体状态的空间和角位置。对于车道和人行横道,我们选择中心线的入口点的位置和方向作为参考。通过这种方式,我们为所考虑的所有场景元素建立了规范的局部坐标系统,每个地图多边形有一个专用的局部框架,并且在任何观察窗口中每个智能体有 T T T个参考框架。场景元素嵌入。对于每个时空场景元素,如智能体状态或车道,我们计算所有几何属性(例如,智能体状态的速度和运动向量,车道上所有采样点的位置)相对于由元素的局部框架引用的空间点和方向的极坐标。然后,我们将每个极坐标转换为傅里叶特征,以便于学习高频信号。对于每个智能体状态和地图上的每个采样点,傅里叶特征与语义属性(例如,智能体的类别)连接,并传递通过多层感知机(MLP)以获得嵌入。为了进一步为车道和人行横道产生多边形级表示,我们对每个地图多边形内的采样点的嵌入应用基于注意力的池化。这些操作导致智能体嵌入的形状为 [ A , T , D ] [A, T, D] [A,T,D]和地图嵌入的形状为 [ M , D ] [M, D] [M,D],其中 D D D表示隐藏特征维度。得益于在局部参考框架中建模,每个智能体状态/地图多边形的嵌入只有一个实例,并且可以在后续的观察窗口中重用。相比之下,以智能体为中心的方法必须多次复制所有输入,对每个副本相对于一个智能体的当前位置和航向进行编码,并在观察窗口向前滑动时重新编码所有输入,导致在线推理期间产生更多的开销。
3.2.2 相对时空位置嵌入
我们为场景元素对准备相对位置嵌入,这些将被纳入基于注意力的操作以帮助模型了解两个元素的局部坐标框架之间的差异。对于具有绝对时空位置 ( p t i , θ t i , t ) (pt_i, \theta_t^i, t) (pti,θti,t)的元素和具有 ( p s j , θ s j , s ) (ps_j, \theta_s^j, s) (psj,θsj,s)的另一个元素,我们使用4D描述符来总结它们的相对位置,其组成部分是相对距离 ∥ p s j − p t i ∥ 2 \|ps_j - pt_i\|^2 ∥psj−pti∥2,相对方向 atan2 ( p s j , y − p t i , y , p s j , x − p t i , x ) − θ t i \text{atan2}(ps_j,y - pt_i,y, ps_j,x - pt_i,x) - \theta_t^i atan2(psj,y−pti,y,psj,x−pti,x)−θti,相对方向 θ s j − θ t i \theta_s^j - \theta_t^i θsj−θti和时间差 s − t s - t s−t。由于我们可以轻松地从一个元素重建另一个元素的绝对位置,借助描述符,我们保留了场景元素对的所有时空位置信息。然后,我们将4D描述符转换为傅里叶特征,并通过MLP传递以产生相对位置嵌入 r s → t j → i r_{s \rightarrow t}^{j \rightarrow i} rs→tj→i。如果两个场景元素中的任何一个是静态的(例如,静态地图多边形),我们可以省略上标,并将其表示为 r j → i r_{j \rightarrow i} rj→i。
3.2.3 自注意力用于地图编码
我们使用自注意力来模拟地图元素之间的关系,更新后的地图编码将丰富智能体特征并协助轨迹解码。对于第 i i i个地图多边形,我们从其嵌入 m i m_i mi派生查询向量,并让它关注邻近的车道和人行横道 { m j } j ∈ N i \{m_j\}_{j \in N_i} {mj}j∈Ni,其中 N i N_i Ni表示多边形的邻近集合。为了将空间感知纳入地图编码,我们从 m j m_j mj和相对位置嵌入 r j → i r_{j \rightarrow i} rj→i的连接中生成第 j j j个键/值向量,即 [ m j ; r j → i ] [m_j; r_{j \rightarrow i}] [mj;rj→i]。由于输入到注意力层的每个三元组 ( m i , m j , r j → i ) (m_i, m_j, r_{j \rightarrow i}) (mi,mj,rj→i)与全局时空坐标系统无关,输出的地图编码 { m i ′ } i = 1 M \{m'_i\}_{i=1}^M {mi′}i=1M也是在全局参考框架变换下不变的。因此,它们可以被所有智能体和所有时间步共享,甚至可以预先计算,从而避免了以智能体为中心建模所遭受的冗余计算。
3.2.4 分解注意力用于智能体编码
为了帮助智能体嵌入捕获更多信息,我们还考虑了智能体时间步、智能体之间以及智能体与地图之间的分解注意力。以时间步
t
t
t的第
i
i
i个智能体为例,给定从智能体状态嵌入中派生的查询向量,我们通过基于
{
[
a
s
→
t
i
;
r
s
→
t
i
→
i
]
}
s
=
t
−
τ
t
−
1
\{[a_{s \rightarrow t}^i; r_{s \rightarrow t}^{i \rightarrow i}]\}_{s=t-\tau}^{t-1}
{[as→ti;rs→ti→i]}s=t−τt−1计算的键和值向量来使用时间注意力,这些是第
i
i
i个智能体从时间步
t
−
τ
t-\tau
t−τ(
0
<
τ
<
T
0<\tau<T
0<τ<T)到时间步
t
−
1
t-1
t−1的嵌入以及相应的相对位置嵌入。同样,智能体-地图和社交注意力的键和值向量是从
{
[
m
j
′
;
r
j
→
i
]
}
j
∈
N
i
\{[m'_j; r_{j \rightarrow i}]\}_{j \in N_i}
{[mj′;rj→i]}j∈Ni和
{
[
a
t
→
t
j
;
r
t
→
t
j
→
i
]
}
j
∈
N
i
\{[a_{t \rightarrow t}^j; r_{t \rightarrow t}^{j \rightarrow i}]\}_{j \in N_i}
{[at→tj;rt→tj→i]}j∈Ni派生的,其中邻近集合
N
i
N_i
Ni由50米的距离阈值确定。由于使用不变的查询更新与不变的键和值,这些层的输出也是不变的。我们堆叠时间、智能体-地图和社交注意力作为融合块,并重复这样的块
L
enc
L_{\text{enc}}
Lenc次。得益于查询为中心的建模,所有智能体和地图编码都是唯一的并且是固定的,无论我们从哪个时空坐标系统查看它们(即,空间维度的旋转平移不变性和时间维度的平移不变性),使模型能够重用过去的计算并流式操作。在线预测期间,我们可以缓存先前观察窗口中计算的编码,并增量更新场景表示。如图2所示,当新数据帧到达时,我们的模型仅对
A
A
A个传入的智能体状态执行分解注意力,导致时间注意力的复杂度为
O
(
A
T
)
O(AT)
O(AT),智能体-地图注意力的复杂度为
O
(
A
M
)
O(AM)
O(AM),社交注意力的复杂度为
O
(
A
2
)
O(A^2)
O(A2)。所有这些操作都比非流式的对应操作便宜一个数量级。最后,我们使用新计算的编码更新缓存的张量。
3.3 基于查询的轨迹解码
轨迹预测的第二步是利用编码器输出的场景编码来解码每个目标智能体的 K K K条未来轨迹,这是一个非平凡的任务,因为编码器只返回一组特征嵌入。受目标检测中最新进展的启发,一些最近的工作采用了类似于DETR的解码器来处理这种一对多的问题,其中多个可学习的查询通过交叉注意力层与场景编码交互,以解码轨迹。然而,这些模型像其他无锚方法一样遭受训练不稳定和模式崩溃的困扰。此外,它们在长期预测中表现不佳,因为在遥远的未来预测任务更具挑战性,不确定性呈爆炸性增长。我们的查询基础解码器通过使用循环的无锚提议模块生成自适应轨迹锚点,然后通过基于锚点的模块进一步细化初始提议来克服这些限制。图3显示了解码器的概览。下面,我们将详细说明解码器的组成部分。
3.3.1 模式至场景和模式至模式注意力
提议和细化模块都使用类似DETR的架构。类似于DETR中的对象查询概念,每个查询负责解码一个 K K K轨迹模式。在模式至场景注意力中,我们使用交叉注意力层来更新模式查询,使其包含目标智能体的历史编码、地图编码和邻近智能体编码等多种上下文。在模式至场景注意力之后, K K K个模式查询通过模式至模式自注意力层相互“交流”,以提高多种模式的多样性。
3.3.2 模式查询的参考框架
为了并行预测多个智能体的轨迹,我们需要在场景中的所有目标智能体之间共享同一组场景编码。由于这些编码是从它们的局部时空坐标系统中派生出来的,我们需要将它们投影到每个目标智能体的当前视点中,以实现与智能体中心建模相同的效果。为此,我们为每个模式查询虚构了一个基于相应目标智能体当前位置和偏航角的坐标框架。在通过模式至场景注意力更新查询嵌入时,场景元素的位置相对于查询被纳入键和值中,这与我们在编码器中所做的类似。
3.3.3 无锚轨迹提议
我们使用可学习的无锚查询来提出初始轨迹。这些提议随后将作为锚点在细化模块中使用。与试图用密集采样的手工艺锚点覆盖真实情况的基于锚点的方法相比,我们的提议模块以数据驱动的方式生成 K K K个自适应锚点。得益于交叉注意力层,模式查询可以检索场景上下文并迅速缩小锚点的搜索空间。自注意力层进一步允许查询在生成轨迹提议时相互协作。在长期预测中,智能体可能行驶很长的距离,其周围环境可能快速变化。因此,将所有所需的信息汇总到单个查询嵌入中以解码长序列是困难的。为了减轻查询的上下文提取负担并提高锚点的质量,我们将DETR类解码器泛化为循环方式。通过 T rec T_{\text{rec}} Trec个循环步骤,具有上下文感知能力的模式查询仅在每个循环步骤结束时通过MLP解码 T ′ / T rec T'/T_{\text{rec}} T′/Trec个未来航点。在下一个循环中,这些查询再次成为输入,并提取与接下来几个航点预测相关的上下文。为了提高效率, T rec T_{\text{rec}} Trec远小于预测范围 T ′ T' T′。
3.3.4 基于锚点的轨迹细化
无锚解码可能是一把双刃剑:尽管它很灵活,但不稳定的训练过程可能导致偶尔的模式崩溃。另一方面,随机初始化的模式查询必须适应所有目标智能体和所有场景,缺乏特定场景的偏差,可能导致不合规的预测,例如违反运动定律或打破高清地图传达的交通规则的轨迹。因此,我们采用基于锚点的模块来进一步细化提议。将提议模块的输出作为锚点,我们让细化模块预测与提议轨迹的偏移,并估计每个假设的可能性。这个模块还采用了类似DETR的架构,但其模式查询是从提议的轨迹锚点中派生出来的,而不是从随机初始化的。具体来说,使用一个小的GRU来嵌入每个轨迹锚点,我们将其最终的隐藏状态作为模式查询。这些基于锚点的查询为模型提供了明确的空间先验,使注意力层更容易地定位感兴趣的上下文。
3.4 训练目标
遵循HiVT的方法,我们参数化第
i
i
i个智能体的未来轨迹作为
K
K
K个拉普拉斯分布的混合:
f
(
{
p
t
i
}
t
=
1
T
′
)
=
∑
k
=
1
K
π
i
,
k
∏
t
=
1
T
′
Laplace
(
p
t
i
∣
μ
t
i
,
k
,
b
t
i
,
k
)
,
f(\{p_t^i\}_{t=1}^{T'}) = \sum_{k=1}^{K} \pi_{i,k} \prod_{t=1}^{T'} \text{Laplace} \left( p_t^i \mid \mu_t^{i,k}, b_t^{i,k} \right),
f({pti}t=1T′)=k=1∑Kπi,kt=1∏T′Laplace(pti∣μti,k,bti,k),
其中,
{
π
i
,
k
}
k
=
1
K
\{\pi_{i,k}\}_{k=1}^{K}
{πi,k}k=1K是混合系数,第
k
k
k个混合分量在时间步
t
t
t的拉普拉斯密度由位置
μ
t
i
,
k
\mu_t^{i,k}
μti,k和尺度
b
t
i
,
k
b_t^{i,k}
bti,k参数化。然后,我们使用分类损失
L
cls
L_{\text{cls}}
Lcls来优化细化模块预测的混合系数。这个损失最小化了方程(1)的负对数似然,我们停止了位置和尺度的梯度,仅优化混合系数。另一方面,我们采用胜者通吃策略来优化提议和细化模块输出的位置和尺度,该策略仅对最佳预测提议及其细化进行反向传播。为了稳定训练,细化模块停止了提议轨迹锚点的梯度。最终的损失函数结合了轨迹损失
L
propose
L_{\text{propose}}
Lpropose、轨迹细化损失
L
refine
L_{\text{refine}}
Lrefine和分类损失
L
cls
L_{\text{cls}}
Lcls进行端到端训练:
L
=
L
propose
+
L
refine
+
λ
L
cls
,
L = L_{\text{propose}} + L_{\text{refine}} + \lambda L_{\text{cls}},
L=Lpropose+Lrefine+λLcls,
其中我们使用
λ
\lambda
λ来平衡回归和分类。
4. 实验设置
4.1 数据集
我们使用Argoverse 1和Argoverse 2这两个大规模运动预测数据集来测试我们方法的有效性。Argoverse 1数据集收集了迈阿密和匹兹堡的323,557个数据序列,而Argoverse 2数据集包含了跨越六个城市的250,000个场景。这两个数据集的采样率均为10Hz。对于Argoverse 1数据集,模型需要在给定2秒历史观测的情况下预测智能体未来3秒的轨迹。相比之下,Argoverse 2数据集以提高数据多样性、更高的数据质量和更大的观测窗口(5秒)以及更长的预测范围(6秒)为特点。利用这两个数据集,我们旨在检验模型在不同数据分布和预测范围上的预测能力。
4.2 评估指标
按照标准评估协议,我们采用了包括最小平均位移误差(minADE K _K K)、最小最终位移误差(minFDE K _K K)、Brier-最小最终位移误差(bminFDE K _K K)和误差率(MR K _K K)等指标进行评估。minADE K _K K指标计算了真实轨迹与 K K K条预测轨迹中最佳一条在所有未来时间步上的平均 ℓ 2 \ell_2 ℓ2距离。另一方面,minFDE K _K K指标仅关注最终时间步的预测误差,以强调长期性能。为了进一步衡量不确定性估计的性能,bminFDE K _K K指标在最终步骤误差上增加了 ( 1 − π ^ ) 2 (1 - \hat{\pi})^2 (1−π^)2,其中 π ^ \hat{\pi} π^表示模型为最佳预测轨迹分配的概率分数。此外,MR K _K K指标用于计算minFDE K _K K超过2米的情况的比例。作为常见做法, K K K被选为1和6。如果模型输出超过 K K K条轨迹,评估时只考虑概率分数最高的前 K K K条预测。
4.3 与最先进技术的比较
我们在Argoverse 1和Argoverse 2运动预测基准测试中与最强的基线方法进行比较。首先,我们在Argoverse 2数据集上进行实验,该数据集有利于长期预测的解决方案,因为其预测范围长达6秒。结果如表1所示。即使没有集成,QCNet已经在Argoverse 2测试集的所有指标上超越了所有先前的方法。在使用类似于其他参赛作品的集成技术后,QCNet在所有指标上以较大优势超越了所有方法。我们还评估了我们的模型在Argoverse 1数据集上的性能,以更好地理解我们方法的泛化能力。尽管Argoverse 1基准的性能多年来已趋于饱和,但表2显示QCNet在大多数指标上显著提高了最先进技术的性能。在我们提交论文时,QCNet在Argoverse 1和Argoverse 2的排行榜上均排名第一,超越了所有已发布和未发布的工作。更多关于Argoverse 2的结果,请参考补充材料和Waymo开放运动数据集。
4.4 消融研究
我们在表3中研究了场景上下文融合的效果。第一个问题我们回答的是,是否值得使用分解注意力基础的融合块。如果没有使用分解注意力基础的融合块,编码器不会涉及场景沿不同轴的信息交互。即便如此,解码器仍然可以访问所有预测所需的信息,这要归功于模式至场景层。如表3的第一行所示,我们的模型在没有融合场景上下文的情况下也能提供可靠的预测性能。但在将融合的编码提供给解码器后,模型在所有指标上都取得了显著的改进。此外,增加融合块的数量可以带来更好的结果,证明了分解注意力的有效性。然而,由此产生的推理延迟并不适合实时应用,如自动驾驶,这使得这种建模选择对于广泛采用不太吸引人。幸运的是,我们的以查询为中心的范式允许在在线预测期间重用先前的计算,这超越了以智能体为中心的方法,如HiVT。如表3所示,在最密集的交通场景中,缓存和重用先前计算的编码大大减少了在线推理延迟。这种“免费午餐”也为设计更先进的解码器提供了性能提升的空间。解码器组件研究。如表4所示,解码器中的所有层都对性能有一定的贡献。首先,尽管编码器中的分解注意力已经为智能体特征带来了上下文感知,我们发现仅使用目标智能体的历史编码对于准确的轨迹提议是不够的。我们假设将地图和社会信息注入无锚解码器可以为查询提供未来的上下文,使它们能够缩小初始轨迹的搜索空间。另一方面,地图和社会信息也可以帮助基于锚点的查询识别那些不现实的预测,例如违反交通规则或与道路上的静态物体相撞的轨迹。因此,我们的细化模块的作用不仅仅是轨迹平滑。表4还表明,在提议或细化模块中移除模式至模式自注意力将损害长期准确性和多种假设的多样性。表5展示了在不同难度级别和预测范围的数据集上,轨迹提议和细化模块的效果。在Argoverse 1上,大多数智能体仅表现出简单的行为,场景上下文在3秒预测范围内通常没有显著变化。因此,我们的设计方案在该数据集上的评估仅带来了边际改进。然而,在更具挑战性的Argoverse 2数据集上,将循环步骤从1(即无循环)增加到3,显著改善了长期性能,而细化模块在准确性和多模态性方面都提供了显著的改进。我们还注意到,使用更多的循环步骤是多余的:当循环次数从3增加到6时,模型在Argoverse 2上的性能无法进一步改善。
4.5 定性结果
我们在Argoverse 2验证集上展示了一些定性结果。图4a和4b的比较表明,提议模块的循环机制可以减少长期预测误差。图4c进一步证明了细化模块的有效性,它提高了多种假设的多样性和预测轨迹的平滑性。