分享

StarNet算法在行人轨迹交互预测中的应用

本帖最后由 levycui 于 2019-12-17 18:27 编辑
问题导读:
1、行人轨迹预测的意义是什么?
2、行人轨迹预测的难点有哪些?
3、StarNet基本原理有哪些?
4、如何理解Hub Network全局时序交互计算网络?



1. 背景
民以食为天,如何提升超大规模配送网络的整体配送效率,改善数亿消费者在”吃“方面的体验,是一项极具挑战的技术难题。面向未来,美团正在积极研发无人配送机器人,建立无人配送开放平台,与产学研各方共建无人配送创新生态,希望能在一个场景相对简单、操作高度重复的物流配送中,提高物流配送效率。在此过程中,美团无人配送团队也取得了一些技术层面的突破,比如基于神经网络StarNet的行人轨迹交互预测算法,论文已发表在IROS 2019。IROS 的全称是IEEE/RSJ International Conference on Intelligent Robots and Systems,IEEE智能机器人与系统国际会议,它和ICRARSS并称为机器人领域三大国际顶会。

1.1  行人轨迹预测的意义
在无人车行驶过程中,它需要对周围的行人进行轨迹预测,这能帮助无人车更加安全平稳地行驶。我们可以用图1来说明预测周围行人的运动轨迹对于无人车行驶的重要性。

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9oRXgwM2NGZ1VzWFNJRk5aaEFDdWpXNmlhVWF5.jpg
图1 主车规划轨迹跳变问题

图1中蓝色方块代表无人车,白色代表行人。上半部分描述的是在不带行人轨迹预测功能情况下无人车的行为。这种情况下,无人车会把行人当做静态物体,但由于每个时刻行人都会运动,导致无人车规划出来的行驶轨迹会随着时间不停地变化,加大了控制的难度,同时还可能产生碰撞的风险,这样违背了安全平稳行驶的目标。下半部分是有了行人轨迹预测功能情况下的无人车行为。这种情况下,无人车会预测周围行人的行驶轨迹,因此在规划自身行驶时会考虑到未来时刻是否会与行人碰撞,最终规划出来的轨迹更具有“预见性”,所以避免了不必要的轨迹变化和碰撞风险。

1.2  行人轨迹预测的难点
总体而言,行人轨迹预测的难点主要有两个:
第一,行人运动灵活,预测难度大。本身精确预测未来的运动轨迹是一个几乎不可能完成的任务,但是通过观察某个障碍物历史时刻的运动轨迹,可以根据一些算法来大致估计出未来的运动轨迹(最简单的是匀速直线运动)。在实际中,相比于自行车、汽车等模型,行人运动更加灵活,很难对行人建立合理的动力学模型(因为行人可以随时转弯、停止、运动等),这加剧了行人预测的难度。
第二,行人之间的交互,复杂又抽象。在实际场景中,某一行人未来的运动不仅受自己意图支配,同样也受周围行人的影响(例如避障)。这种交互非常抽象,在算法中往往很难精确地建模出来。目前,大部分算法都是用相对空间关系来进行建模,例如相对位置、相对朝向、相对速度大小等。

1.3  相关工作介绍
传统算法在做预测工作时会使用一些跟踪的算法,最常见的是各类时序模型,例如卡尔曼滤波(Kalman Filter, KF)、隐马尔可夫(Hidden Markov Model, HMM)、高斯过程(Gaussian Process, GP)等。这类方法都有一个很明显的特点,就是根据历史时序数据,建立时序递推数学公式:
2019-12-17_180725.jpg
因为这类方法具有严格的数学证明和假设,也能处理一些常规的问题,但是对于一些复杂的问题就变得“束手无策”了。这是因为这些算法中都会引入一些先验假设,例如隐变量服从高斯分布,线性的状态转换方程以及观测方程等,而最终这些假设也限制了算法的整体性能。神经网络一般不需要假设固定的数学模型,凭借大规模的数据集促使网络学习更加合理的映射关系。本文我们主要介绍一些基于神经网络的行人预测算法。

基于神经网络的预测算法(主要以长短期记忆神经网络Long Short Term Memory,LSTM为主)在最近5年都比较流行,预测效果确实比传统算法好很多。在CVPR(IEEE Conference on Computer Vision and Pattern Recognition) 2019上,仅行人预测算法的论文就有10篇左右。这里我们简单介绍2篇经典的行人预测算法思路,如果对这方面感兴趣的同学,可以通过文末的参考文献深入了解一下。第一篇是CVPR 2016斯坦福大学的工作Social-LSTM,也是最经典的工作之一。Social-LSTM为每个行人都配备一个LSTM网络预测其运动轨迹,同时提出了一个Social Pooling Layer的模块来计算周围其他行人对其的影响。具体的计算思路是将该行人周围的区域划分成NxN个网格,每个网络都是相同的大小,落入这些网格中的行人将会参与交互的计算。

2019-12-17_181038.jpg
第二篇是CVPR 2019卡耐基梅隆大学&谷歌&斯坦福大学的工作,他们的工作同样使用LSTM来接收历史信息并预测行人的未来轨迹。不同于其他算法的地方在于,这个模型不仅接收待预测行人的历史位置信息,同时也提取行人外观、人体骨架、周围场景布局以及周围行人位置关系,通过增加输入信息提升预测性能。除了预测具体的轨迹,算法还会做粗粒度预测(决策预测),输出行人未来时刻可能所在的区域。

2019-12-17_181223.jpg

其他的相关工作,还包括基于语义图像/占有网格(Occupancy Grid Map, OGM)的预测算法,基于信息传递(Message Passing, MP)的预测算法,基于图网络(Graph Neural Network, GNN)的预测算法(GCN/GAT等)等等。

2. StarNet介绍
目前,现有的轨迹预测算法主要还是聚焦在对行人之间交互的建模,轨迹预测通常只使用LSTM预测即可。如下图4左,现有关于轨迹预测的相关工作基本都是考虑行人之间两两交互,很少有考虑所有行人之间的全局交互(即使是GCN,也需要设计对应的相似矩阵来构造拉普拉斯矩阵,这也是一个难点)。我们可以举一个例子来说明现有其他算法预测的流程:

假设感知模块检测到当前N个行人的位置,如何计算第一个行人下一时刻的位置?

Step 1计算其他人对于第一个行人的交互影响。将第i个行人在第t时刻的位置记为(一般是坐标x和y)。可以通过以下公式计算第一个行人的交互向量:
2019-12-17_181314.jpg

2019-12-17_181419.jpg
图4 算法思路对比图 左:传统算法 右:StarNet

两两交互的方式存在两个问题:

(1) 障碍物2和3确实会影响障碍物1的运动,但是障碍物2和3之间同样也存在相互影响,因此不能直接将其他障碍物对待预测障碍物的影响单独剥离出来考虑,这与实际情况不相符。
(2) 两两计算消耗的资源大,如果有N个障碍物,那么两两交互就需要N的平方次计算,随着N的变大,计算量呈平方倍增长。我们希望障碍物之间的交互能否只计算1次而非N次,所有障碍物的轨迹预测都共享这个全局交互那就更好了。

基于上述两个问题,我们提出了一种新的模型,该模型旨在高效解决计算全局交互的问题。因为传统算法普遍存在计算两两交互的问题(即使是基于Attention注意力机制的Message Passing也很难考虑到全局的交互),本文想尝试通过一些更加简单直观的方式来考虑所有障碍物之间的全局交互,我们的算法大致思路如下:
每个时刻所有障碍物的位置可以构成一张静态的“地图”,随着时间的变化,这些静态地图就变成了一张带有时序信息的动态图。这张动态图中记录了每个区域内的障碍物运动信息,其中运动信息是由所有障碍物一起影响得到的,而非单独地两两交互形成。对于每个障碍物的预测阶段,只要根据该障碍物的位置,就可以在这张时序地图中查询该区域在历史时刻的障碍物运动信息(例如这个区域在历史时刻中,障碍物1、2、4、5都有其运动的轨迹)。通过“共享全局交互地图+个体查询”的方式,就可以做到计算全局交互以及压缩计算开销。

2019-12-17_181500.jpg

我们的算法结构如上图5所示,Host Network是基于LSTM的轨迹预测网络;Hub Network是基于LSTM的全局时序交互计算网络。在论文具体的实现中,首先Hub Network的静态地图模块是通过接受所有障碍物同一时刻的位置信息、全连接网络和最大池化操作得到一个定长的特征向量;然后动态地图模块使用LSTM网络对上述的特征向量进行时序编码,最终得到一个全局交互向量。Host Network首先根据行人(假设要预测第一个行人下时刻的位置)的位置 aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9oRXgwM2NGZ1VzWFNJRk5aaEFDdWpXNmlhVWF5.png 去动态地图中查询自己当前位置区域内的交互 aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9oRXgwM2NGZ1VzWFNJRk5aaEFDdWpXNmlhVWF5.png ,具体我们采用简单的点乘操作(类似于Attention机制)。最终自己的位置 aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9oRXgwM2NGZ1VzWFNJRk5aaEFDdWpXNmlhVWF5.png 和交互 aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9oRXgwM2NGZ1VzWFNJRk5aaEFDdWpXNmlhVWF5.png 一起输入LSTM网络预测下时刻的的位置 aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9oRXgwM2NGZ1VzWFNJRk5aaEFDdWpXNmlhVWF5.png
实验阶段,我们与4种经典的算法作比较,使用的数据集为UCYÐ数据集,这两个数据集包含4个子场景,分别为ZARA-1/ZARA-2、UNIV、ETH、HOTEL。在预测过程中,所有算法根据每个行人过去3.2秒的运动轨迹,预测出它在未来3.2秒的轨迹。每0.4秒采样一个离散点,因此3.2秒的轨迹可以用8个轨迹离散点表示。对比的指标有:

(a)平均距离差ADE(Average Displacement Error):用算法预测出的轨迹到真实轨迹所有8个点之间的平均距离差。

(b)终点距离差FDE(Final Displacement Error):用算法预测出的轨迹与真实轨迹最后一个终点之间的距离差。

(c)前向预测时间以及参数量。                  
最终的实验结果如下表:
2019-12-17_181809.jpg
从实验结果可以看到,我们的算法在80%的场景下都优于其他算法,且实时性高(表中LSTM的推理时间为0.029秒,最快速是由于该算法不计算交互,因此速度最快参数也最少,但是性能较差)。

总结一下,我们提出算法StarNet的优势主要包括以下两点:
  •     使用全局动态地图的形式来描述行人之间在时间和空间上的相互影响,更加合理,也更加准确。
  •     Hub Network全局共享的特征提升了整个算法的计算效率。

3. 未来工作
首先,我们会进一步探索新的模型结构。虽然我们的算法在数据集上取得了不错的效果,但这是我们的第一次尝试,模型设计也比较简单,如果提升模型结构,相信可以取得更好的结果。
其次,我们会提升预测的可解释性。同现有算法一样,目前的模型对计算到的交互缺乏可解释性,仍然依赖于数据驱动。在今后的工作中,我们将通过对交互的可解释建模来提升预测的准确性。
最后,在构建时序的动态地图过程中,引入对于每个障碍物的跟踪信息。换句话说,我们知道每块区域在各个时间点障碍物的位置,但目前算法没有对障碍物在时序上做跟踪(例如时刻1有三个障碍物,时刻2三个障碍物运动了得到新的位置,网络输入为三个障碍物的位置信息,但是网络无法理解两个时刻中障碍物的对应关系,这降低了交互的性能),这点在以后的工作中还需要继续改进。

作者:美团技术团队
来源:https://blog.csdn.net/MeituanTech/article/details/103193621
最新经典文章,欢迎关注公众号


没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条