原文:
https://arxiv.org/pdf/2001.03093.pdfhttps://arxiv.org/pdf/2001.03093.pdf源码:
前言:这是上一篇综述里对比过的一个效果不错的行人轨迹预测方法。
一、前言
在人机交互和自动驾驶等领域,预测多智能体的未来行为是实现安全、高效导航的关键。然而,现有的轨迹预测方法普遍存在以下问题: 一方面,许多方法忽视了智能体的动态约束,导致预测结果可能不符合物理现实(如车辆横向滑动)。另一方面,这些方法很少结合语义地图等环境信息,使得预测缺乏对场景结构的充分理解。此外,多智能体的相互影响以及自我智能体的未来运动计划在现有模型中往往被简化或忽略。
为了弥补这些不足,Trajectron++ 提出了一个模块化、图结构的循环模型,能够生成符合动态约束的轨迹预测,同时结合了异构数据以提升预测精度和场景适应能力。
二、本文方法
2.1 问题定义
模型需要预测多个智能体的未来轨迹。智能体的数量 N(t)随时间 t 变化,且每个智能体有其语义类别(如“行人”、“车辆”)。智能体的历史状态定义为 ,包括过去 H 个时间步的物理状态。每个智能体的附加信息定义为,如语义地图或其他环境数据。智能体的未来状态定义为 ,即未来 T 个时间步内的轨迹分布。输出轨迹以概率分布的形式给出,反映未来运动的不确定性。
语义地图用来描述智能体位置附近的环境信息,定义为。
模型支持基于自我智能体(ego-agent)未来运动计划的条件预测,定义为。自我智能体的未来路径可以作为输入条件,预测其他智能体对其的响应,例如应用于自动驾驶场景时可以预测行人如何反应于车辆的加速或转弯。
2.2 Trajectron++
2.2.1 场景表示
场景被表示为一个时空图 G = (V,E)。节点 V 表示智能体;边 E 表示智能体之间的交互影响。边是有向的,用于表示不对称的影响,如车辆对行人的影响比反向更大。如果两个智能体之间的欧几里得距离小于感知范围,则建立边。
2.2.2 历史编码
使用 LSTM 对智能体的历史轨迹进行编码。而且根据智能体的语义类别选择适当的动力学模型:行人使用简单的单积分器模型;车辆使用扩展单轮车模型。这些动力学模型帮助模型考虑非全向约束。
2.2.3 交互编码
首先聚合每个智能体的邻居节点信息,该操作采用逐元素加法,既支持节点数量动态变化,也能保留邻居数量信息。然后使用 LSTM 对每条边进行编码,权重在同一类别的边之间共享。最后使用了一个附加注意力模块将所有边的编码聚合为一个“影响表示向量",代表邻居对当前节点的影响。
2.2.4 异构数据整合
对于每个建模的智能体,trajectory ++用CNN编码一个局部地图,旋转以匹配智能体的航向。CNN的输出与智能体的历史状态和边影响表示向量相连接,生成一个完整的节点表示向量。
2.2.5 自我智能体的未来运动计划编码
使用双向 LSTM对运动计划进行编码,输入为自我智能体未来的 T 个时间步的运动计划,编码结果与其他表示向量拼接到一起,形成一个综合的智能体表示向量。
2.2.6 多模态建模
使用 CVAE 的潜在变量 z 表示智能体的高层次行为模式,如“转弯”或“直行”。输出的轨迹分布通过整合不同的 z 实现多模态建模。
2.2.7 动态约束整合
将潜在变量 z 和骨干表示向量被送入解码器。每个GRU单元在控制动作上输出二元高斯分布的参数(如,加速度和转向速率),然后通过动力学模型积分生成轨迹,这种方式确保轨迹符合智能体的动态约束。
2.2.8 输出配置
模型可以生成以下四种预测输出:
-
Most Likely (ML):单一最可能的轨迹。
-
z-mode:基于模型最可能的高级潜在行为模式的轨迹预测。
-
Full:采样多个 z 和对应轨迹,得到完整分布。
-
Distribution:计算轨迹的解析概率分布。
最终模型的训练目标就是InfoVAE目标函数:
三、实验
训练设备
一个 AMD Ryzen 1800X CPU 和两个 NVIDIA GTX 1080 Ti GPU。
数据集
ETH、UCY、nuScenes 。
评价指标
ADE、FDE、KDE NLL(基于核密度估计的负对数似然)、BoN(N个随机采样轨迹的最小ADE和FDE)。
实验结果
(1)确定性输出结果
(2)生成式输出结果
(3)消融实验
四、总结
Trajectron++ 提供了一种高效且灵活的轨迹预测框架,结合了动态约束、异构环境数据和多模态建模,显著提升了预测精度和轨迹的物理合理性。未来可以进一步扩展到更多智能体类型、更复杂的场景和更精细的动力学建模。
标签:异构,轨迹,预测,智能,Trajectron,模型,++,2.2 From: https://blog.csdn.net/xyy_zlh/article/details/144424072