行人轨迹预测问题是无人驾驶技术的重要一环,已成为近年来的一项研究热点。在机器人领域国际顶级会议ICRA 2020上,美团无人配送团队在行人轨迹预测竞赛中夺冠,本文系对该预测方法的一些经验总结,但愿能对你们有所帮助或者启发。算法
6月2日,国际顶级会议ICRA 2020举办了“第二届长时人类运动预测研讨会”。该研讨会由博世有限公司、厄勒布鲁大学、斯图加特大学、瑞士洛桑联邦理工联合组织,同时在该研讨会上,还举办了一项行人轨迹预测竞赛,吸引了来自世界各地的104支队伍参赛。美团无人配送团队经过采用“世界模型”的交互预测方法,夺得了该比赛的第一名。微信
本次竞赛提供了街道、出入口、校园等十个复杂场景下的行人轨迹数据集,要求参赛选手根据这些数据集,利用行人在过去3.6秒的轨迹来预测其在将来4.8秒的运行轨迹。竞赛使用FDE(预测轨迹和真实轨迹的终点距离)来对各类算法进行排名。ide
本次的赛题数据集,主要来源于各种动态场景下的真实标注数据和模拟合成数据,采集频率为2.5赫兹,即两个时刻之间的时间差为0.4秒。数据集中的行人轨迹都以固定坐标系下的时序坐标序列表示,而且根据行人的周围环境,这些轨迹被分类成不一样的类别,例如静态障碍物、线性运动、追随运动、避障行为、团体运动等。在该比赛中,参赛队伍须要根据每一个障碍物历史9个时刻的轨迹数据(对应3.6秒的时间)来预测将来12个时刻的轨迹(对应4.8秒的时间)。性能
该竞赛采用多种评价指标,这些评价指标分别对单模态预测模型和多模态预测模型进行评价。单模态模型是指给定肯定的历史轨迹,预测算法只输出一条肯定的轨迹;而多模态模型则会输出多条可行的轨迹(或者分布)。本次竞赛的排名以单模态指标中的FDE指标为基准。学习
其实,美团在不少实际业务中常常要处理行人轨迹预测问题,而行人轨迹预测的难点在于如何在动态复杂环境中,对行人之间的社交行为进行建模。由于在复杂场景中,行人之间的交互很是频繁而且交互的结果将会直接影响他们后续的运动(例如减速让行、绕行避障、加速避障等)。测试
基于各种带交互数据集,一系列的算法被相继提出,而后对障碍物进行交互预测,这些主流模型的工做重心都是针对复杂场景下行人之间的交互进行建模。经常使用的方法包括基于LSTM的交互算法(SR LSTM[1]、Social GAN[2]、SoPhie[3]、Peeking into[4]、StarNet[5]等),基于Graph/Attention的交互算法(GRIP[6]、Social STGCNN[7]、STGAT[8]、VectorNet[9]等),以及基于语义地图/原始数据的预测算法等。编码
咱们本次的参赛方法就是由自研算法[10](如图2所示)改进而来,该方法的设计思路是根据场景中全部障碍物的历史轨迹、跟踪信息以及场景信息,创建并维护一个全局的世界模型来挖掘障碍物之间、障碍物与环境之间的交互特性。而后,再经过查询世界模型来得到每一个位置邻域内的交互特征,进而来指导对障碍物的预测。spa
在实际操做过程当中,因为数据集中缺少场景信息,咱们对模型作了适当的调整。在世界模型中(对应上图的Interaction Net),咱们仅使用了现有数据集,以及模型可以提供的位置信息和跟踪信息LSTM隐状态信息。最终获得的模型结构设计以下图3所示:设计
整个模型基于Seq2Seq结构,主要包含历史轨迹编码模块(Encoder)、世界模型(Interaction Module)和解码预测模块(Decoder)三个部分。其中,编码器的功能在于对行人历史轨迹进行编码,主要提取行人在动态环境中的运动模式;解码器则是利用编码器获得的行人运动模式特征,来预测他们将来的运动轨迹分布。须要强调一下,在整个编码与解码的过程当中,都须要对世界模型进行实时更新(Update)与查询(Query)两种操做。更新操做主要根据时序的推动,将行人的运动信息实时编入世界模型中;查询操做则是根据全局的世界地图以及行人的自身位置,来获取行人当前邻域内的环境特征。code
在图4中,展现了咱们模型在历史轨迹编码阶段的计算流程。编码阶段共有9个时刻,对应9个历史观测时间点,每一个时刻都执行相同的操做。以t时刻为例。
首先,将t时刻的全部行人坐标数据,包含:
将以上信息输入到世界模型中更新地图信息,即Update操做。整个Update操做通过MLP、MaxPooling以及GRU等模块得到一个全局的时空地图特征R;而后,每一个LSTM(对应一个行人),使用其当前观测时刻的坐标信息:
解码预测阶段的流程与历史轨迹编码阶段基本一致,但存在两个细微的不一样点:
为了对数据有更好的理解,便于使用更适合的模型,咱们对训练数据作了一些预处理操做。首先,数据集给出了各个行人的行为标签,这些标签是根据规则获得的,因为咱们采用了交互预测的方法,但愿模型能自动学习行人与周围主体之间的位置关系、速度关系等,因此咱们就不直接使用标注中的“类型”信息;而后此次比赛的数据采集自马路、校园等不一样场景中行人的运动轨迹。场景之间的差别性很是大,训练集和测试集数据分布不太一致。
因而,咱们作了数据的可视化工做,将全部轨迹数据的起点放置于坐标轴的原点处,根据历史观测轨迹(前9个时刻)终点的位置朝向,将全部轨迹分为4类:沿左上方运动(top-left moving)、沿右上方运动(top-right moving)、沿左下方运动(bottom-left moving)和沿右下方运动(bottom-right moving)。分布的结果如图6所示,能够发现,训练集和测试集的数据分布存在必定的差距。
针对上述问题,咱们对训练集作了2项预处理来提升训练集与测试集分布的一致性:
此外,对于预测结果,咱们也作了相应的后处理操做进行轨迹修正,主要是轨迹点的裁剪以及基于非极大值抑制的轨迹选择。图7展现了两个场景中行人的运动区域,能够看到有明显的边界,对于超出边界的轨迹,咱们作了相应的修正,从而保证轨迹的合理性。
最后在训练技巧上,咱们也使用K-Fold Cross Validation和Grid Search方法来作自适应的参数调优。最终在测试集上取得FDE 1.24米的性能,而得到比赛第二名的方法的FDE为1.30米。
行人轨迹预测是当前一个很是热门的研究领域,随着愈来愈多的学者以及研究机构的参与,预测方法也在日益地进步与完善。美团无人配送团队也期待能与业界一块儿在该领域作出更多、更好的解决方案。比较幸运的是,此次竞赛的场景与咱们美团无人配送的场景具有必定的类似性,因此咱们相信将来它可以直接为业务赋能。目前,咱们已经将该研究工做在竞赛中进行了测试,也验证了算法的性能,同时为该算法在业务中落地提供了一个很好的支撑。
阅读更多技术文章,请扫码关注微信公众号-美团技术团队!