ICRA 2020 | 行人轨迹预测竞赛冠军方案总结

将门创投
关注

在实际操作过程中,由于数据集中缺乏场景信息,我们对模型做了适当的调整。在世界模型中(对应上图的Interaction Net),我们仅使用了现有数据集,以及模型能够提供的位置信息和跟踪信息LSTM隐状态信息。最终得到的模型结构设计如下图3所示:

图3 竞赛使用的基于世界模型的预测算法

整个模型基于Seq2Seq结构,主要包含历史轨迹编码模块(Encoder)、世界模型(Interaction Module)和解码预测模块(Decoder)三个部分。其中,编码器的功能在于对行人历史轨迹进行编码,主要提取行人在动态环境中的运动模式;解码器则是利用编码器得到的行人运动模式特征,来预测他们未来的运动轨迹分布。

需要强调一下,在整个编码与解码的过程中,都需要对世界模型进行实时更新(Update)与查询(Query)两种操作。更新操作主要根据时序的推进,将行人的运动信息实时编入世界模型中;查询操作则是根据全局的世界地图以及行人的自身位置,来获取行人当前邻域内的环境特征。

图4 编码阶段

在图4中,展示了我们模型在历史轨迹编码阶段的计算流程。编码阶段共有9个时刻,对应9个历史观测时间点,每个时刻都执行相同的操作。以 t 时刻为例。

首先,将 t 时刻的所有行人坐标数据,包含:

位置集合

速度集合

所有行人跟踪信息(上时刻编码得到的LSTM隐状态)

将以上信息输入到世界模型中更新地图信息,即Update操作。整个Update操作经过MLP、MaxPooling以及GRU等模块获得一个全局的时空地图特征R;然后,每个LSTM(对应一个行人),使用其当前观测时刻的坐标信息:

然后与R进行Attention操作,得到个人领域内的时空特征,最后与他的坐标信息、上时刻隐状态信息一并输入到LSTM并更新LSTM内置状态。

解码预测阶段的流程与历史轨迹编码阶段基本一致,但存在两个细微的不同点:

区别1:编码阶段每个行人对应的LSTM隐状态的初始化为0;而解码阶段,LSTM由编码阶段的LSTM隐状态和噪声共同初始化。

区别2:编码阶段行人对应的LSTM和世界模型使用的是行人历史观测坐标;而解码阶段使用的是上时刻预测的行人坐标。

图5 解码预测阶段

四、数据预处理与后处理

为了对数据有更好的理解,便于使用更适合的模型,我们对训练数据做了一些预处理操作。首先,数据集给出了各个行人的行为标签,这些标签是根据规则得到的,由于我们采用了交互预测的方法,希望模型能自动学习行人与周围主体之间的位置关系、速度关系等,所以我们就不直接使用标注中的“类型”信息;然后这次比赛的数据采集自马路、校园等不同场景中行人的运动轨迹,场景之间的差异性非常大,训练集和测试集数据分布不太一致。

于是,我们做了数据的可视化工作,将所有轨迹数据的起点放置于坐标轴的原点处,根据历史观测轨迹(前9个时刻)终点的位置朝向,将所有轨迹分为4类:沿左上方运动(top-left moving)、沿右上方运动(top-right moving)、沿左下方运动(bottom-left moving)和沿右下方运动(bottom-right moving)。分布的结果如图6所示,可以发现,训练集和测试集的数据分布存在一定的差距。

图6 训练集与测试集历史观测轨迹中行人运动方向分布

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存