1. 提出的问题
  • 现有向量化方法忽略多智能体运动预测的对称性(平移 / 旋转),对参考系变换不鲁棒。
  • 多智能体预测时需重复归一化场景和重计算特征,计算成本高昂,难以实时推理。
  • 全对全交互建模导致计算量随实体(智能体、车道)数量激增,扩展性差。
2. 解决的问题
  • 实现快速且准确的多智能体运动预测,兼顾实时性与预测性能。
  • 突破参考系变换限制,无需重复计算即可单前向传播完成所有智能体预测。
  • 降低模型参数规模,提升计算效率,适配自动驾驶实时需求。
3. 使用的方法
  • 分层建模框架:分解为局部上下文提取(局部编码器)和全局交互建模(全局交互模块)。
  • 平移 / 旋转不变性设计:采用相对位置表征场景(平移不变),旋转不变交叉注意力模块(旋转不变)。
  • 局部编码器:依次建模智能体 - 智能体交互、时间依赖、智能体 - 车道交互,聚合局部信息。
  • 全局交互模块:基于 Transformer 编码器,融合不同局部区域的长程依赖。
  • 多模态解码器:以混合拉普拉斯分布建模未来轨迹,训练采用 variety loss(回归 + 分类损失)。
4. 创新点
  • 首次将多智能体预测拆解为 “局部 + 全局” 分层架构,平衡效率与表征能力。
  • 引入几何对称性先验(平移 / 旋转不变),提升模型数据效率和鲁棒性。
  • 单前向传播完成多智能体预测,避免重复计算,大幅降低推理延迟。

以往方法:
1. 缺点
    1. 忽视对称性
    2. 计算量大
    3. 以往的矢量化方法对参考系的平移、旋转不鲁棒
2. 方法:
    1. 归一化对中心位置、代理朝向,计算量大
    2. all2all关系建模,计算量大

提出方法:本地上下文提取+全局交互建模。
1. 避免all2all关系建模,仅提取本地特征。场景被划分为一组局部区域,其中每个局部区域以一个建模代理为中心。每个代理中心局部区域,从本地向量化实体提取上下文
2. 为了补偿有限的局部感受野并捕获场景中的长程依赖关系,通过赋予Transformer编码器局部参考帧之间的几何关系来执行以代理为中心的局部区域之间的全局消息传递。
3. 给定局部和全局表示,解码器在单个向前传递中为所有代理生成未来轨迹
平移不变场景表示:与全局坐标系的平移无关的场景表示,即用相对位置来描述所有矢量化实体
旋转不变空间学习模块:交叉注意力,学习对场景旋转不敏感的局部和全局表示

方法

提出方法:本地上下文提取+全局交互建模。

1. 避免all2all关系建模,仅提取本地特征。场景被划分为一组局部区域,其中每个局部区域以一个建模代理为中心。每个代理中心局部区域,从本地向量化实体提取上下文

2. 为了补偿有限的局部感受野并捕获场景中的长程依赖关系,通过赋予Transformer编码器局部参考帧之间的几何关系来执行以代理为中心的局部区域之间的全局消息传递。

3. 给定局部和全局表示,解码器在单个向前传递中为所有代理生成未来轨迹

平移不变场景表示:与全局坐标系的平移无关的场景表示,即用相对位置来描述所有矢量化实体

旋转不变空间学习模块:交叉注意力,学习对场景旋转不敏感的局部和全局表示

方法概述

1. 场景元素矢量化

2. 分层聚合时空信息

    1. 为每个代理编码旋转不变本地上下文特征

    2. 全局聚合更新代理本地上下文表示,以捕捉依赖关系和场景级动态

场景表示

代理i在时间T内的轨迹 $\{P^{t}_{i}-P^{t-1}_{i}\}^T_{t=1}$ 车道段 $P^1_e-P^0_e$ 。

使用相对位置而非全局位置。通过将点集转换为向量集,这样的表示自然地保证了平移不变性。但是实体间相对位置被丢弃,为此引入相对位置位置编码关于 agent-agent 和 agent-lane。例如实体i和代理j表示为 $P^t_j-P^t_i$ 。

分层 Vector Transformer

Transformers擅长捕获实体间长程依赖,时间复杂度为 $O((NT+L)^2)$ ,N T L分别为代理数量、历史时间步、车道段。为降低计算量,分解了空间和时间维度,并且在每个时间步仅局部地学习空间关系。

具体来说,将空间划分为N个局部区域。每个局部区域以场景中的一个智能体为中心。每个局部区域内是中心智能体的轨迹段和局部环境。其中环境信息包括邻近智能体的轨迹段和周围的局部车道段。每个本地场景聚合本地信息为一个特征向量,通过顺序建模:每个时间步agent-agent交互、每个agent的时序依赖、当前时间agent-lane交互。

时间复杂度降为 $O(NT^2+TN^2+NL)$ 。通过时间和空间维度因式分解,限制本地区域半径,简化为 $O(NT^2+TNk+Nl)$ ,其中 `k<N, l<L`。

本地编码器忽略了全局信息。全局交互模块复杂度为 $O(N^2)$ 。

本地编码器

agent-agent 交互

学习每个本地区域中心agent与邻居间在每个时间点的关系。为利用对称性,引入旋转不变交叉注意力模块去聚集空间信息。代理i的轨迹段 $P^T_i-P^{T-1}_i$ 为本地区域的引用向量,根据它的方向 $\theta_i$ 旋转所有局部向量。通过MLP获取局部中心代理和邻居代理的嵌入:

其中 $\phi$ 为MLP,$R_i$ 为旋转矩阵。$a_*$ 为语义属性。由于所有几何属性在被馈送到MLP之前都相对于中央智能体被归一化,因此这些嵌入不受全局坐标系的旋转的影响。除了轨迹段之外,φnbr的输入还包含相邻智能体相对于中央智能体的位置向量,使相邻嵌入空间感知。

然后将中央代理的嵌入转换为查询向量,并利用相邻代理的嵌入来计算键向量和值向量:

与标准缩放点积注意力相比,变体使用门控函数将环境特征mt i与中央代理的特征z t i融合,使块能够对特征更新进行更多控制。多头注意力输出传入MLP以获取空间嵌入。每个块使用LayerNorm和残差连接。

时间依赖

使用时间Transformer捕获每个局部区域的时序信息。每个中心agent对应的输入为数量等于时间长度T的嵌入{s^t_i}^T_{t=1} ,由前一模块输出。类似BERT,增加一个T+1时刻的token,为每个token增加位置编码,堆叠为 (T+1)×d 的矩阵。输入到时序attention和MLP:

agent-lane 交互

首先旋转本地车道段和当前时间步长T处的智能体-车道相对位置向量。然后通过MLP对旋转向量进行编码:

中心agent的时空嵌入为Q,MLP编码的道路特征为KV,输入和 agent-agent 交互中使用的attention块结构一致的模块。再使用一个MLP对输出中心agent的最终本地编码。

全局交互模块

捕获场景中的长程依赖。这个最后模块,拓展Transformer编码器以感知局部坐标系间的差异。agent i和j 的差异可表示为:

再使用注意力机制和MLP

多模态特征解码器

将未来轨迹的分布参数化为一个混合模型,其中每个混合分量是一个拉普拉斯分布,在一个单一的镜头中对所有智能体进行预测。对每个agent i 和 component f, MLP输入局部和全局表示输出位置\mu ^t_{i,f} \in \mathbb{R}^2和对应的不确定性b ^t_{i,f} \in \mathbb{R}^2。输出的形状为 [F,N,H,4],F是预测的可能轨迹的数量,N是场景中agent的数量,H是预测的时间步的数量。使用softmax计算系数,输出形状[N,F]

训练

使用多样性损失鼓励生成多个轨迹,训练时只优化最好的预测。优化前先计算真实轨迹和所有预测的轨迹间的差值,将所有时间步的误差求和,得到 [F,N] 形状张量。选择误差最小的优化。

Logo

更多推荐