1 问题定义:预测什么?

1.1 预测任务的数学表述

运动预测的数学形式是:给定自车周围 N 个智能体的历史状态序列和场景上下文,预测它们在未来的位置序列。形式化表示为:

P(Y_i|X_i,M,I)

其中:

  • X_i = 智能体 i 的历史观测轨迹,通常为 [(x,y) 坐标序列] 或更丰富的状态向量
  • M = 地图信息,包括车道线、路缘、交叉口、交通信号等
  • I = 交互信息,智能体之间的相互影响
  • Y_i = 智能体 i 的未来轨迹,长度为 T 的 (x,y) 或 (x,y,θ,v) 序列

1.2 输出的多种形式

输出类型描述典型用途
确定性轨迹单条最优轨迹简单场景、确定性预测
多模态轨迹K 条候选轨迹 + 概率真实场景的不确定性建模
概率分布高斯混合模型或扩散分布连续概率建模
占用网格未来每个栅格被占用的概率无需显式轨迹
交互概率变道概率、让行概率等行为决策层

核心挑战在于多模态性:一个智能体可能有多种合理行为——直行、左转、靠边停车。预测模型必须捕获这种不确定性。


2 输入类型详解

2.1 智能体历史信息

历史轨迹是最基础的输入。通常取过去 1-3 秒(10-30 帧)的观测:

  • 位置坐标 (x, y):绝对坐标或相对坐标
  • 朝向角 θ:决定航向
  • 速度 v 和加速度 a:运动学信息
  • 转向灯状态:隐含意图
  • 类型标签:车辆、行人、自行车(影响运动模型)

特征编码方式通常包括:

  • LSTM/GRU:序列编码,捕获时序依赖
  • 1D CNN:以卷积处理时间维度,并行高效
  • Transformer Encoder:自注意力建模帧间关系
  • 速度叠加:对时间戳做正弦编码融入特征

2.2 地图信息

高精地图(HD Map)或在线重建地图为预测提供道路拓扑约束:

  • 车道中心线:智能体极大概率沿车道行驶
  • 车道边界与连接关系:左转/直行/右转的道口关系
  • 交叉口拓扑:交叉口中的通行优先级
  • 交通信号灯状态:红灯停、绿灯行

地图编码演进:

方法思路代表工作
栅格化将地图渲染为图像,用 CNN 编码早期方案
向量化用多段线(polyline)表示车道,GNN/Transformer 编码LaneGCN, VectorNet
隐式编码直接用 transformer 处理点集,不显式建图SceneTransformer

2.3 交互信息

智能体之间并非独立运动,而是相互影响:

  • 自车-他车交互:自车行为影响他车决策(如让行、抢行)
  • 他车-他车交互:周围车辆之间的相互作用
  • 交互建模方式
    • Social Pooling:将周围智能体特征汇聚到目标智能体
    • 相对位置编码:将其他智能体以目标为中心编码
    • 全局注意力:所有智能体之间做 full attention
    • Interaction Transformer:显式设计交互注意力层

一个重要的洞察:在马路上,大多数车辆的行为主要由道路拓扑决定,交互只在近距离(如路口、合流区)才显著。交互建模收益在稀疏场景下有限。


3 经典架构演进

3.1 LaneGCN(2020)

核心思路:将地图车道线构建为图结构,用图卷积网络(GCN)进行消息传递。

  • 地图编码:车道中心线 → 节点特征,相邻车道间连边
  • 智能体编码:1D CNN 编码历史轨迹
  • 交互融合:智能体节点与车道节点之间做 attention,融合地图信息
  • 预测头:输出多模态轨迹及其置信度

贡献:首次系统性地将高精地图以图结构引入预测网络,奠定了"智能体特征 + 地图特征 → 交互融合 → 轨迹解码"的经典范式。

局限:图结构固定,难以处理车道拓扑的动态变化;对复杂交互场景表现有限。

3.2 VectorNet(2020)

核心思路:将所有元素(车道线、轨迹点、交通标志)统一编码为向量化多段线(polyline),用 GNN 做次图级编码,再用全局注意力交互。

  • 统一表征:无论是车道还是轨迹,一律用 polyline + 节点属性表示
  • 分层编码:先 polyline 内部做节点级注意力,再做 graph-level 的全局交互
  • 灵活性:可处理任意数量/类型的输入元素

贡献:提出"向量化"这一通用范式,后续大量工作(如 HDGT、LaneGCN 改进版)都沿用此思路。

3.3 SceneTransformer(2022)

核心思路:将所有场景元素(智能体、车道线)的时空轨迹摊平为标记序列,用纯 Transformer 建模。

  • 将所有智能体所有时间步的观测和车道线点视为一组 token
  • Scene-level attention:所有 token 之间做自注意力
  • 输出:从学习的查询向量解码未来轨迹

贡献:证明了纯 Transformer 也能在预测任务上达到 SOTA,不需要显式的图结构。

局限:计算量巨大(O(N²)),场景中元素越多越慢。

3.4 Wayformer(2023)

核心思路:在 SceneTransformer 基础上引入场景融合注意力(Scene Fusion Attention),解决计算效率问题。

  • 将不同模态(智能体、车道线)分别编码,再通过交叉注意力融合
  • 使用因果掩码注意力降采样降低计算复杂度
  • 支持多种输入模态的灵活组合

贡献:在保持 Transformer 表达力的同时,将复杂度降到可落地水平。


4 多智能体预测

4.1 边际预测 vs 联合预测

方式定义特点
边际预测对每个智能体独立预测其未来轨迹简单,但忽略智能体间依赖
联合预测同时预测所有智能体的未来轨迹保持一致性,但输出空间指数增长

边际预测(Marginal Prediction):

P(Y_i|X,M)i

优点:N 个预测头独立并行,计算高效。 缺点:预测结果之间可能相互矛盾(两条轨迹占用同一空间)。

联合预测(Joint Prediction):

P(Y_1,Y_2,.,Y_N|X,M)

优点:保持场景级一致性。 缺点:联合空间巨大,需要精巧的分解策略。

4.2 隐式交互建模

实践中大多数方法走中间路线——在特征层面建模交互,在输出层面做边际预测

  1. 所有智能体共享场景编码器(交互自然被编码进特征)
  2. 每个智能体从共享特征中解码自身轨迹
  3. 轨迹之间的一致性通过特征共享隐式保证

典型代表:SceneTransformer、Wayformer 都采用这种"隐式交互"范式。

4.3 Interaction-Aware 评估指标

多智能体预测的评估比单智能体复杂:

指标含义
minADE / minFDE最优轨迹的平均/最终位移误差
Miss Rate所有预测均偏离真值超过阈值
mAP基于场景的碰撞率评估
Joint minFDE联合预测下所有智能体的联合误差
Collision Rate预测轨迹之间的碰撞比例

一个好的多智能体预测器不仅需要低 ADE,还需要低碰撞率。


5 目标条件预测

5.1 为什么需要目标条件预测

常规预测直接从历史预测未来,而目标条件预测(Goal-conditioned Prediction)分为两步:

  1. 预测智能体的终点目标(如路口出口位置、停车位置)
  2. 基于目标反推完整轨迹

5.2 方法流程

K

目标预测头输出:

  • K 个候选目标点 (x_g, y_g)
  • 每个目标的概率 P(g_k | history)

轨迹补全可以通过:

  • 恒速外推 + 目标导向修正
  • 条件 VAE:给定目标生成完整轨迹
  • 扩散模型:以目标为条件去噪
  • 热力图:在 BEV 空间预测每个栅格作为终点的概率

5.3 典型工作

  • TNT(Target-driveN Trajectory):预测目标 → 补全 → 评分
  • DenseTNT:基于密集目标预测,不依赖稀疏锚点
  • HOME:将目标预测建模为 heatmap 输出
  • MTR(Motion Transformer):用 learned query 作为目标锚点,注意力解码轨迹

5.4 优势

  • 显式建模终点不确定性(先定终点,再定路径)
  • 易于融入场景约束(终点不能在马路外)
  • 计算效率高(只需预测终点而非整条轨迹)

6 轨迹评分机制

6.1 为什么需要评分

多模态预测产生 K 条候选轨迹后,必须评估每条轨迹的合理性:

  • 场景合理性:是否与地图一致?是否避障?
  • 行为合理性:速度是否合理?转向是否平滑?
  • 概率分配:K 条轨迹应形成概率分布

6.2 评分方法分类

方法描述
基于分类每条轨迹对应一个置信度 score,通过 cross-entropy 训练
基于能量用能量函数衡量轨迹质量,低能量 = 高合理性
基于 NMS生成大量候选 → NMS 去重 → 保留高质量轨迹
基于排序学习一个 trajectory ranker,对候选排序

6.3 目标概率 vs 轨迹似然

目标概率(Goal Probability):

  • 预测智能体到达每个候选终点的概率
  • 隐式假设:终点决定轨迹质量
  • 常用于 goal-conditioned 方法

轨迹似然(Trajectory Likelihood):

  • 直接对整条轨迹赋概率值
  • 常用 Gaussian Mixture Model 表示
  • 每条轨迹在整个场景下的联合似然

实践中,终点概率比轨迹似然更可靠——终点不确定性维度低,更容易准确建模。


7 从预测到规划

7.1 预测结果如何输入到规划器

在传统模块化范式中,预测结果是规划的输入:

规划器需要处理:

  • 概率化的其他智能体轨迹:规划器需要做风险感知规划
  • 交互不确定性:其他智能体可能对自车行为做出反应
  • 时间一致性:预测和规划在时间轴上对齐

7.2 路径上最危险的智能体

实际系统中,规划器不需要对周围所有智能体同等关注:

  • 关注具有路径冲突的智能体(crossing path、merging path)
  • TTC(Time-to-Collision)小于阈值的智能体需要紧急处理
  • 非冲突路径的智能体用最简单的运动模型(匀速)预测即可

7.3 预测与规划的闭环问题

预测模型通常假设其他智能体不会自车行为改变其行为——这叫预测的 open-loop 假设

但现实中:

  • 自车刹车 → 后车也会刹车
  • 自车加速 → 旁车可能让行

所以预测和规划之间存在一个交互闭环问题。处理方式:

  1. 交互感知预测:将自车规划的未来轨迹作为预测器输入条件
  2. Game-theoretic planning:将其他智能体建模为理性博弈方
  3. 端到端联合建模:预测和规划共享一个网络,自然耦合

8 趋势:预测正在被端到端规划吸收

8.1 传统预测的尴尬地位

预测模块在传统架构中似乎不可或缺,但它存在根本性困局:

  • 预测误差直接伤害下游规划:预测偏一点,规划就错
  • 无法为规划优化而调整:预测器看不到规划 loss
  • 过度预测:许多场景下规划只需要"知道有车在那就够了"

8.2 端到端学习中的预测角色

在端到端框架中,预测不再是一个独立模块:

框架预测的处理方式
UniAD显式预测周围轨迹,作为规划的先验
VAD向量化场景 token,隐式编码未来信息
VLA大模型直接输出规划轨迹,不显式预测
E2E Planner完全跳过预测,直接从感知到规划

8.3 根本转变

从"感知 → 预测 → 规划"三级 pipeline 到感知 → 规划直接映射,预测逐渐从"必需模块"降级为"可选的正则化监督信号"。

现阶段的主流共识

  • 完全不需要预测的端到端方案在复杂交互场景(路口博弈)中仍显吃力
  • 最佳的方案可能是隐式预测——将未来信息编码进场景表示,但不显式输出轨迹
  • 随着模型容量提升和训练数据丰富,预测独立存在的必要性持续降低

9 总结

维度要点
问题定义给定历史 + 地图 + 交互 → 预测未来多模态轨迹
经典架构LaneGCN(图卷积)→ VectorNet(向量化)→ SceneTransformer(纯 Transformer)→ Wayformer(高效融合)
多智能体边际预测 vs 联合预测,特征级交互建模是主流
目标条件先预测终点,再补全轨迹,降低不确定性维度
评分机制目标概率比轨迹似然更可靠,能量模型是当前热点
与规划关系传统作为输入,端到端范式中预测模块逐渐被吸收
未来趋势隐式预测 + 端到端联合建模,预测专业化走向终点

一句话总结:运动预测的本质是从历史中推断意图,经典架构的核心贡献在于"如何让地图信息参与学习",当前趋势是预测从独立模块演变为端到端规划中的隐式组件。