ProphNet: Efficient Agent-Centric Motion Forecasting with Anchor-Informed Proposals

今天分享一篇自动驾驶轨迹预测方向的论文《ProphNet: Efficient Agent-Centric Motion Forecasting with Anchor-Informed Proposals》,它被录用于CVPR2023,是来自轻舟智航(QCraft)的一篇工作。

原论文链接:https://openaccess.thecvf.com/content/CVPR2023/html/Wang_ProphNet_Efficient_Agent-Centric_Motion_Forecasting_With_Anchor-Informed_Proposals_CVPR_2023_paper.html

摘要

运动预测(轨迹预测)是自动驾驶系统的核心模块。由于运动预测任务的输入是异质的(主要包含代理的运动信息、代理与代理之间的交互以及道路的信息、道路与代理之间的交互),代理的行为是多模态的(multimodality,指的是代理的未来轨迹可能有多条),并且如果想要将运动预测模块部署到实际应用场景中,模型应该满足一定的推理延迟,综合上述的因素,自动驾驶运动预测任务是一项极具挑战的任务。

为了解决上述难题,本文提出了一种新颖的以代理为中心(agent-centric)的模型,它带有锚知情的提议(with anchor-informed proposals,此处的锚知情提议指的就是anchor-informed proposals,简称AiP),用于进行高效的多模态运动预测。

本文方法还使用了一种模态不可知的编码策略(a modality-agnostic strategy),用于以一种统一的方式对复杂的输入进行准确的编码。

在进行轨迹预测时,本文方法会生成丰富的提议(diverse proposals),它们将会与带有以目标为导向的场景上下文锚点进行特征融合(fused with anchors bearing goal-oriented scene context),来进行多模态预测,预测的结果将覆盖更广范围的未来轨迹。

本文方法提出的网络框架是高度统一并且简洁的,使得本文提出的模型可以部署在真实世界驾驶环境当中,以进行高效的运动预测。

实验结果表明,本文方法可以达到与当年的SOTA方法相同的预测精度,同时将推理延迟降低到与以场景为中心(scene-centric)的方法相同的水准。
在这里插入图片描述

结论

本文提出了ProphNet,它是一种带有锚知情提议的以代理为中心的轨迹预测方法,用于高效的多模态运动预测。ProphNet对异质的输入进行统一的编码,来构建一个统一的特征表示空间AcSR,生成提议(proposals)和锚点(anchors)来形成AiP(Anchor-informed Proposals),并将AiP输入到超预测器(hydra prediction heads)中用于生成多模态的轨迹。

在两个数据集上的实验结果表明,ProphNet不仅预测精度较高,并且推理延迟很低。作者希望这项工作可以鼓励更多的研究人员对使用的网络架构设计进行探索,从而用于真实世界驾驶环境中的实际部署,而不是仅仅局限于追求更高的预测精度。
在这里插入图片描述

Introduction + Related Work(精简版)

  • 运动预测任务的输入通常是异质的,比如代理的历史运动信息、代理与代理之间的交互、道路的动态与静态信息、道路元素之间的交互、道路与代理之间的交互等。上述信息是静态与动态,离散与连续的信息的混合。过去的方法通常使用不同的子系统对上述信息进行分别的编码,比如LaneGCN设计了四种子网络来分别处理代理与代理、代理与道路、道路与代理以及道路与道路之间的交互(此外,在特征编码方面,LaneGCN使用1D CNN + FPN来对代理运动信息进行编码,使用LaneGCN来对道路图进行编码)。
  • 由于代理的意图是不可知的,运动预测的输出通常是高度多模态的。运动预测模型通常需要准确地对代理未来行为潜在的概率分布进行建模。TNT引入了三阶段的运动预测方法,包括代理目标预测(即预测代理未来轨迹可能的终点,将预测的终点作为锚点),以目标为条件的运动估计(即同时以带有场景上下文的历史运动信息和锚点作为输入,对整条轨迹进行补全)以及轨迹打分(trajectory scoring)。DenseTNT在TNT的基础上对密集型的目标候选进行预测。mmTransformer使用了一种基于区域的(region-based)训练策略,将场景划分为若干个子区域,迫使预测的结果落入到不同的区域当中,从而使预测结果保持多模态。
  • 在真实的自动驾驶系统当中,整个预测框架的运行频率通常在10Hz左右,包括:1)从上游模块进行特征提取;2)模型推理;3)数据尾处理。因此,运动预测模型需要满足特定的推理延迟,才能够真实地部署到实际驾驶场景当中。尽管当年的以代理为中心的运动预测方法在预测精度上取得了非常大的提升,但是其推理时间相较于以场景为中心的方法而言却是难以接受的。这是因为以代理为中心的模型会相对于每一个代理重新计算一次场景表示(对目标代理进行轨迹预测时,每一次都要以当前的目标代理为坐标中心,对整个场景当中的元素位置进行重新的标准化),意味着相较于以场景为中心的方法而言,以代理为中心的方法要处理的特征更多,使得整个预测框架的推理延迟也随之提高。

根据上述观察,本文方法提出了ProphNet,它是一种高效的以代理为中心的模型,它以一种统一的方式将异质的输入进行融合,并设计了一种锚知情提议(Anchor-informed Proposals;AiP)来提高输出的多模态。

相较于现有的模态具体处理方法(比如LaneGCN和MutliPath++),本文方法设计了一种模态不可知的架构,来将代理历史运动信息、代理之间的交互以及道路图构成一个以代理为中心的场景表示空间(Agent-centric Scene Representation,AcSR),它可以直接被输入到自注意力编码模块当中(即直接使用self-attention对异质的特征编码进行交互处理)。通过上述方式,本文方法使用自注意力机制来以最低的归纳偏置(with minimum inductive bias)学习复杂的交互。

此外,本文方法提出了一种锚知情提议,从而以端到端的方式提升输出的多模态。在本文方法中,提议proposals)是仅仅通过代理历史运动信息得到的未来轨迹,而锚点anchors)指的是从AcSR当中学习得到的目标嵌入表示(goal embeddings,TNT和DenseTNT当中的目标是显式的,并且具有具体的含义,即目标代理未来轨迹的可能终点,而ProphNet中从AcSR得到的锚点是抽象的,即goal embeddings,它是一种代表着目标可能位置的特征表示)。通过上述方式,模型可以首先生成提议,来在不带有环境约束的前提下最大化预测轨迹的不同(不带有环境约束的原因是提议是仅仅通过代理历史运动信息得到的,不包含道路约束以及代理之间的交互),之后再通过与AiP进行特征融合,来对预测轨迹进行选择和改进。

基于AiP的随机组合,本文方法进一步提出了超预测器(hydra prediction heads)来鼓励模型学习互补的信息,同时执行模型预测结果的集成(ensemble)。

综上所述,本文方法的贡献可以总结如下:

  1. 基于AcSR,本文设计了一种输入模态不可知的编码策略,来对异质的输入进行建模,并对网络结构进行简化,使得本文方法可以满足真实驾驶场景的实际部署。
  2. 本文方法提出了一种新颖的框架,它通过AiP端到端地对提议和锚点进行学习,从而提升输出模式的差异。
  3. 本文方法引入了超预测器,来进行互补的预测,通过超预测器预测的结果可以方便地进行集成。
  4. 本文方法作为一种以代理为中心的方法,其精度可以在时兴的数据集上达到SOTA水准,同时它还可以保持与以场景为中心的方法相同的推理延迟。

Method

ProphNet的架构如下图所示:
在这里插入图片描述

Input Representation

ProphNet基于多模态的输入进行运动预测,输入信息包括目标代理的历史运动,周围其它代理与目标代理的交互以及场景当中的道路图(road graph)。

Agent History

代理的历史运动信息是一系列目标车辆运动状态组成的时间序列,包括目标代理在每一个观测时刻的速度和航向。即: I h i s t = [ ( x t , y t , v t x , v t y , sin ⁡ θ t , cos ⁡ θ t ) t = − T + 1 : 0 ] I_{hist}=[(x_t, y_t, v^x_t, v^y_t, \sin{\theta_t}, \cos{\theta_t})_{t=-T+1:0}] Ihist=[(xt,yt,vtx,vty,sinθt,cosθt)t=T+1:0]

以代理为中心的坐标系统被定义为其原点与目标代理在最后一个观测时刻的位置相对齐,x轴为最后一个观测时刻目标代理的运动方向。目标代理的运动状态会被变换到这一坐标系统当中。

Agent Relation

代理之间的关联被定义为相对于目标代理,其他代理的相对状态。需要注意的是,其它代理的历史运动状态同样也会被变换到以目标代理为中心的坐标系统当中(Again, the historical states of other agents are transformed to the agent-centric coordinate frame of the target agent)。在对代理之间的关联进行建模时,仅仅考虑目标代理周围的一个固定邻域。假定总共考虑 B B B个代理,代理之间的关联被定义为 I r e l a = { ( I r e l a i ) i = 1 : B } I_{rela}=\{(I^i_{rela})_{i=1:B}\} Irela={(Irelai)i=1:B},与 I h i s t I_{hist} Ihist类似, I r e l a I_{rela} Irela同样也是由位置、速度以及目标代理的第 i i i个邻域代理相对于目标代理的朝向组成的序列。

Road Graph

道路图被定义为目标代理在预测时长内可能行驶到达的地图区域。类似地,道路元素也将被变换到以目标代理为中心的坐标系统当中。本文方法使用车道中心线、车道边界以及交通信号控制来对道路图进行表示,并将每一条道路中心线或是道路边界近似为折线(polylines),即一个由固定长度的相连线段组成的有序集合。带有 L L L个折线的道路图被表示为 I r o a d = { ( I r o a d i ) i = 1 : L } I_{road}=\{(I_{road}^i)_{i=1:L}\} Iroad={(Iroadi)i=1:L},其中 I r o a d i I^i_{road} Iroadi指的是第 i i i条折线。令 ( a , b ) (a, b) (a,b)表示线段的终点, α \alpha α表示线段的朝向, c c c表示线段当中与原点最近的点,将线段的初始特征定义为 [ ( a − b ) / ∣ ∣ a − b ∣ ∣ 2 , ∣ ∣ c ∣ ∣ 2 , c / ∣ ∣ c ∣ ∣ 2 , ∣ ∣ a − c ∣ ∣ 2 , α ] [(a-b)/||a-b||_2, ||c||_2, c/||c||_2, ||a-c||_2, \alpha] [(ab)/∣∣ab2,∣∣c2,c/∣∣c2,∣∣ac2,α]

对输入表示的部分进行总结,发现输入被统一表示为 I h i s t , I r e l a , I r o a d I_{hist}, I_{rela}, I_{road} Ihist,Irela,Iroad,后面要使用相同类型的编码器对输入进行处理,输出到统一形式的特征空间AcSR当中。

Agent-centric Scene Representation(AcSR)

本文方法将异构输入的特征编码空间命名为AcSR。AcSR为所有来源的输入提供了统一的表示空间,可以方便地从中学习模态内和模态间的交互。使用带有门控的MLP(gMLP,提出自《Pay Attention to MLPs》)对不同来源的输入进行编码,它是一种简单并且高效的用于对序列数据进行建模的模型。

Encoding Agent History

使用gMLP: G h i s t G_{hist} Ghist来对目标代理的历史状态进行编码 F h i s t = [ f − T + 1 , . . . , f 0 ] = G h i s t ( I h i s t ) F_{hist}=[f_{-T+1},...,f_0]=G_{hist}(I_{hist}) Fhist=[fT+1,...,f0]=Ghist(Ihist),其中 F h i s t ∈ R T × D F F_{hist}\in{R^{T\times{D_F}}} FhistRT×DF是编码特征的时序序列。将 F h i s t F_{hist} Fhist定义为整条轨迹的特征编码,而 F ˚ h i s t = f 0 \mathring{F}_{hist}=f_0 F˚hist=f0作为代理历史编码的紧致表示,它仅仅包含当前 t = 0 t=0 t=0时刻的特征。

F h i s t F_{hist} Fhist可以被视为一个用于生成轨迹提议的存储空间,因为它包含着与代理历史运动相关的完整的空间-时间信息。而 F ˚ h i s t \mathring{F}_{hist} F˚hist可以被视为AcSR集合的紧致表示。

Encoding Agent Relation

使用另一个gMLP: G r e l a G_{rela} Grela来对邻域代理相对于目标代理的相对运动那个状态进行编码,得到 F r e l a = { ( F r e l a i ) i = 1 : B } = G r e l a ( I r e l a ) F_{rela}=\{(F^i_{rela})_{i=1:B}\}=G_{rela}(I_{rela}) Frela={(Frelai)i=1:B}=Grela(Irela),其中 F r e l a i ∈ R T × D F F^i_{rela}\in{R}^{T\times{D_F}} FrelaiRT×DF是第 i i i个邻域代理的时序编码特征。目标代理的所有邻域代理共享同一个gMLP: G r e l a G_{rela} Grela

类似地,使用 F ˚ r e l a = { ( F ˚ r e l a i ) i = 1 : B } \mathring{F}_{rela}=\{(\mathring{F}^i_{rela})_{i=1:B}\} F˚rela={(F˚relai)i=1:B}来构造AcSR中代理相对位置编码的紧致表示。

Encoding Road Graph

使用第三个gMLP: G r o a d G_{road} Groad来对道路图当中的折线进行编码: F r o a d = { ( F r o a d i ) i = 1 : L } = G r o a d ( I r o a d ) F_{road}=\{(F^i_{road})_{i=1:L}\}=G_{road}(I_{road}) Froad={(Froadi)i=1:L}=Groad(Iroad),其中 F r o a d i ∈ R T × D F F^i_{road}\in{R}^{T\times{D_F}} FroadiRT×DF是第 i i i个折线有序的片段编码。道路图中所有的折线共享同一个 G r o a d G_{road} Groad。同样收集道路图的折现编码 R ˚ r o a d = { ( F ˚ r o a d i ) i = 1 : L } \mathring{R}_{road}=\{(\mathring{F}^i_{road})_{i=1:L}\} R˚road={(F˚roadi)i=1:L}作为AcSR当中的局部地图表示。

将上述三种紧致的特征编码构造为AcSR,即 S = { F ˚ h i s t , F ˚ r e l a , F ˚ r o a d } S=\{\mathring{F}_{hist},\mathring{F}_{rela},\mathring{F}_{road}\} S={F˚hist,F˚rela,F˚road}。AcSR为复杂的交互学习提供了一个单一的特征空间,不同类型的输入使用gMLP进行了统一的编码,降低了异质信息之间的差异,并使得自注意力机制可以直接在AcSR空间当中执行,从而更好地对模态内和模态间的交互进行建模。

Proposal Generation

为了提高输出的多模态,ProphNet会首先学习仅仅从目标代理的历史运动信息编码当中生成提议。此时生成的提议不带有任何邻域代理干扰以及道路环境约束,因此仅仅通过历史运动编码得到的未来轨迹候选具有最大的差异性。将生成的提议数量设置为 K K K,它比要预测的模态数量 M M M要大得多。同时, K K K个可学习queries的集合 Q p r o p Q_{prop} Qprop会通过交叉注意力与历史运动编码 F h i s t F_{hist} Fhist进行交互,从而生成一个提议集合 E p r o p = { ( E p r o p i ) i = 1 : K } ∈ R K × D F E_{prop}=\{(E^i_{prop})_{i=1:K}\}\in{R}^{K\times{D_F}} Eprop={(Epropi)i=1:K}RK×DF。为了进一步提高提议的差异, Q p r o p Q_{prop} Qprop当中的向量是被正交初始化的。

Anchor Learning

在ProphNet中,锚点是端到端学习得到的,它带有以目标为导向的环境信息(goal-oriented environmental information),并且它同时也具有差异性。本文方法将锚点的数量设置为 K K K,与提议的数量相同,每一个锚点对应一个提议。在AcSR上使用注意力机制,使得 S S S当中异质的元素以最大的灵活性学习交互,此处的 S S S指的就是AcSR特征空间。

假定自注意力的输出为 { ( R i ) i = 1 : 1 + B + L } \{(R_i)_{i=1:1+B+L}\} {(Ri)i=1:1+B+L},目标代理的紧致特征表示 R 1 R_1 R1已经与输入上下文进行了充分的融合。模型之后会以有监督的方式基于 R 1 R_1 R1 K K K条轨迹的终点进行学习。与Ground Truth终点最近的预测终点将会被视为正确预测的哪一个。使用 l 1 l_1 l1损失来对Ground Truth与正确预测之间的距离进行最小化。

本文方法不直接采用预测终点作为锚点,而是使用它们的特征表示(embeddings)作为锚点 E a n c h = { ( E a n c h i ) i = 1 : K } ∈ R K × D E E_{anch}=\{(E^i_{anch})_{i=1:K}\}\in{R}^{K\times{D_E}} Eanch={(Eanchi)i=1:K}RK×DE,锚点的特征表示被用于将以目标为导向的场景上下文与通过代理历史运动信息得到的提议进行特征融合。

Anchor-informed Proposals(AiP)

正如上文中所提到的,提议(proposals)可以被视为不加约束的仅仅从代理历史运动推理得到的未来轨迹,而锚点包含着目标导向的上下文信息。此处引入AiP,用于进一步的轨迹选择和改进,同时提高输出轨迹的多模态。

一种将提议和锚点进行特征融合的方法是使用交叉注意力,但是通过实验作者发现,这种方法会导致某种程度上的模式崩塌。作者发现,直接将提议和锚点的特征相加来生成AiP既简单又高效: E A i P = E p r o p + E a n c h E_{AiP}=E_{prop}+E_{anch} EAiP=Eprop+Eanch E A i P ∈ R K × D E E_{AiP}\in{R}^{K\times{D_E}} EAiPRK×DE E A i P E_{AiP} EAiP会被进一步输入到超预测器当中,来输出最终的预测轨迹。

Hydra Prediction Heads

在生成提议的时候提到,本文方法会生成比所需输出的模式更多的提议( K > M K\gt{M} K>M)。在实际应用中,令 K = 2 M K=2M K=2M,并从 E A i P E_{AiP} EAiP中随机选取 M M M个embeddings作为子集。上述随机选取过程将会重复 N N N次,从而获得 N N N个不同的子集。

基于 N N N个子集,构建 N N N个预测器并组成超预测器,每一个预测器会将一个子集作为输入,并生成多模态的未来轨迹。基于超预测器以及随机选取的子集,输出的模式将会进一步产生差异。此外,这种设计还可以用于集成,通过鼓励超预测器学习互补的预测来完成。

通过对预测结果进行集成,本文方法会获得 N × M N\times{M} N×M条轨迹,采用NMS来将 N × M N\times{M} N×M条轨迹减少到 M M M条,作为最终的预测结果。

使用高斯混合模型(Gaussian Mixture Model,GMM)来对预测轨迹的分布进行编码: p ( τ ) = ∑ i = 1 M p i Π t = 1 H N ( τ t − μ t i , Σ t i ) p(\tau)=\sum^M_{i=1}p^i\Pi^H_{t=1}N(\tau_t-\mu^i_t,\Sigma^i_t) p(τ)=i=1MpiΠt=1HN(τtμti,Σti)。其中 τ \tau τ是在预测时长 H H H内的一条轨迹, p i p_i pi是模式 i i i的似然, τ t ∈ R 2 \tau_t\in{R}^2 τtR2是预测时刻 t t t轨迹的坐标点, μ t i ∈ R 2 \mu^i_t\in{R}^2 μtiR2是预测的均值,而 Σ t i ∈ R 2 × 2 \Sigma^i_t\in{R^{2\times2}} ΣtiR2×2是预测的方差。

模型在训练时,将会最大化预测轨迹分布下Ground Truth的似然。将预测轨迹终点距离与Ground Truth最接近的轨迹视为positive。只有positive轨迹与Ground Truth之间的误差会被用于计算回归损失。

Experiments

在Argoverse1和Argoverse2上的实验结果表明,ProphNet可以在保持预测精度的前提下,降低模型的推理延迟。

总结

  • ProphNet的成功表明,以代理为中心的方法可以通过对模型进行精细的设计,来在保持较高精度的基础上将推理延迟进一步降低,甚至可以达到与以场景为中心的方法相同的推理延迟。
  • 针对异质的输入,ProphNet没有针对每一种模态设计单独的子网络,而是统一使用gMLP将输入变换到相同的特征空间当中
  • 在对交互进行建模时,过去的方法普遍是使用图结构(Graph)对整个场景中元素之间的关联进行建模,之后使用图神经网络或是Transformer对图进行表示学习,主要是对目标代理的结点特征进行更新,并使用更新后的结点对目标代理的未来轨迹进行预测。ProphNet则是提取代理历史运动信息、代理之间关联以及道路信息的紧致表示并构造AcSR,在其中使用自注意力机制来对模态内以及模态间的交互进行建模。这与另一篇自动驾驶运动预测工作SEPT的处理方法很像。
  • 非常值得学习的一个思路是,ProphNet使用不加任何约束的代理历史运动特征与正交初始化的queries进行cross-attention,并使用queries生成可能未来轨迹的proposals。作者认为通过这种方式,可以使得轨迹提议的差异最大化,因为单纯使用代理历史运动信息生成的轨迹是不加任何约束的,这些轨迹在ProphNet中将会被视为提议。
  • ProphNet使用AcSR中得到的目标代理特征来生成锚点,并通过最小化锚点与Ground Truth终点之间的 l 1 l_1 l1损失来对Anchor Learning进行优化,作者不显式地使用锚点,而是使用锚点的特征表示,与proposals的特征表示进行融合(简单地相加),并输入到Hydra Prediction Heads中用于输出最后的结果。ProphNet中隐式地使用锚点特征辅助轨迹预测的思路值得学习
Logo

更多推荐