Social-STGCNN: A Social Spatio-Temporal GCNN for Human Trajectory Prediction(CVPR2020)论文阅读笔记

一种用于人类轨迹预测的社会时空图卷积神经网络

收录于CVPR2020
作者:Mohamed Abduallah /Qian Kun /Elhoseiny Mohamed /Claudel Christian
发表时间: 27 Feb 2020
开源地址:https://github.com/abduallahmohamed/Social-STGCNN
论文地址:https://arxiv.org/abs/2002.11927

【参考资料】
知乎专栏:https://zhuanlan.zhihu.com/p/113342850
CSDN原文翻译:https://blog.csdn.net/qq_41897558/article/details/104774320

摘要

对行人行为的更好的机器理解使得在建模诸如自主车辆和人类之间的交互方面有了更快的进展。
行人的运动轨迹不仅受行人自身的影响,还受与周围物体的相互作用影响。以前的方法通过使用各种聚合方法来建模这些交互,这些方法集成了不同的学习行人状态。我们提出了社会时空图卷积神经网络(Social STGCNN),它通过将交互建模为一个图来代替聚合方法
我们的结果表明,与以前报道的方法相比,最终位移误差(FDE)提高了20%,平均位移误差(ADE)提高了8.5倍,推理速度提高了48倍。此外,我们的模型数据效率高,并且在ADE指标上超过了以前的技术水平,只有20%的训练数据。我们提出了一个核函数将行人之间的社会互动嵌入到邻接矩阵中,通过定性分析,我们发现我们的模型继承了行人轨迹之间可以预期的社会行为。

1引言

预测行人的运动轨迹对于包括自动驾驶和监视系统在内的许多应用都具有重要意义。行人轨迹预测具有复杂性,主要来自:
(1)物理障碍物(树木、道路)、移动物体(车、人)
(2)不同的社会行为(与他人平行行走、在一个群体内避免碰撞、从不同方向汇合到特定点…)
(3)运动的随机性,因为行人的目标目的地和预期路径是未知的

行人运动的社会属性鼓励这一领域的研究人员致力于发明深度方法来模拟行人之间的社会互动。

Social LSTM通过一个递归的深度模型对每个行人的轨迹进行建模来预测行人的轨迹。递归模型的输出通过池化层**(SocialPooling)**相互作用。有几篇文章遵循了这个方向。Social LSTM将行人轨迹建模为 双变量高斯分布,而其他一些模型旨在预测确定性轨迹。

另一个方向是使用生成性对抗网络(GANs)来完成这项任务,假设轨迹的分布是多模态的。有几篇文章使用GANs来预测未来轨迹的分布。对于这些模型,生成器是使用循环神经网络设计的,并且依赖于聚集方法来提取行人之间的社会交互。

早期文章的一个局限性来自于循环架构的使用,这些架构的参数效率低,而且在训练中成本高昂。我们通过使用时间卷积架构
(temporal convolutional architectures)来克服这个限制。

除了递归体系结构的限制之外,早期工作中使用的聚合层(aggregation layers)也会限制其性能。首先,由于特征状态的物理意义难以解释,因此特征状态的聚集在建模人与人之间的交互时既不直观也不直接。其次,由于聚集机制通常是基于启发式方法(如池化层),因此它们可能无法正确地建模行人之间的交互。为了直接捕捉行人之间的相互作用并从中预测未来的路径,最近的文章Social BiGAT依赖于一个图形表示来模拟社会相互作用。

由于图的拓扑结构是表示场景中行人之间社会交互的一种自然方法,因此我们认为,与基于聚集的方法相比,图的拓扑结构是一种更直接、直观和有效的行人交互建模方法。我们还认为,Social-BiGAT并没有充分利用图的表示,因为它们只是将其用作循环单元状态的池机制。Social-STGCNN通过将场景建模为时空图并在其上执行,从而从图的表示中获益更多

我们设计了Social-STGCNN来克服上述两个限制。
首先,我们从一开始就将行人轨迹建模为时空图来代替聚集层。
(1)图的边模拟了行人之间的社会互动。
(2)提出了一种加权邻接矩阵,其中核函数定量地度量行人之间的影响。
为了解决与递归单元相关的问题,我们的模型使用图卷积神经网络(GCN)和时间卷积网络TCN来处理时空图。这使得我们的模型可以在a single shot预测整个序列。

2相关工作

1、Human trajectory prediction using deep models
Social-LSTM使用一个递归网络对每个行人的运动进行建模,然后使用一个聚合机制对递归输出进行聚合,然后对轨迹进行预测。Social-LSTM假设行人轨迹服从双变量高斯分布,在我们的模型中遵循这一假设。
在这里插入图片描述
SR-LSTM通过一个加权机制来衡量每个行人对其他人的贡献。它类似于Social BiGAT中的思想,它使用一种注意机制来衡量代表行人轨迹的重复状态的贡献。基于行人轨迹服从多模态分布的假设,Social GAN将Social LSTM扩展为基于递归神经网络(RNN)的生成模型。

Sophie使用CNNs从整个场景中提取特征,然后对每个行人使用双向注意机制。之后,Sophie将注意力输出与视觉CNN输出连接起来,然后使用基于长短期记忆(LSTM)的自动编码器生成模型生成未来的轨迹。CGNS的工作在架构上与Sophie相似,但它们使用了门循环单元(GRU)而不是LSTMs。

我们注意到,之前的大多数研究都围绕着两个概念展开,分别使用循环网络a recurrent net对每个步行者的运动进行建模,并使用池化机制a pooling mechanism对循环网络进行组合。

最近的工作Social BiGAT依赖于图注意网络graph attention networks来模拟行人之间的社交互动。LSTM输出被输入到Social BiGAT中的图形中。

我们的模型Social STGCNN和Social BiGAT的一个关键区别是,我们从一开始就直接将行人轨迹建模为一个图,在这个图中我们为顶点提供有意义的值。

2、Recent Advancements in Graph CNNs
与我们工作相关的发展之一是ST-GCNN。ST-GCNN是一种时空图CNN,最初是为解决基于骨架的动作识别问题而设计的。尽管体系结构本身设计用于处理分类任务,但我们对其进行了调整以适应我们的问题。在我们的工作中,ST-GCNNs从图中提取空间和时间信息,从而创建合适的嵌入,然后我们对这个嵌入进行操作,以预测行人的轨迹。

**时间卷积神经网络(TCNs)**以一个叠加的序列数据作为输入,对一个序列进行整体预测。这可以缓解RNNs在序列预测中积累误差的问题。更重要的是,TCN与RNN相比体积更小。
我们受到TCNs的启发,设计了一个扩展ST-GCNNs功能的时间CNN模型。

3问题描述

N:行人个数
trn0:第n个行人在T0时间段对应的位置
trnp:要预测未来Tp时间段上的轨迹

对于行人n,未来要预测的轨迹记为:
trnp={ Pnt=(Xnt,Ynt) | t ∈ (1,……,Tp)}
其中(Xnt,Ynt)是行人n在时间t时的2D概率分布的随机变量。
假设Pnt遵循二元高斯分布,则:
在这里插入图片描述
( ^ \hat( (^Pnt ) ) )表示我们预测的轨迹的概率分布,它也同样遵循二元高斯分布在这里插入图片描述
我们的模型被训练以最小化负对数似然,其定义为:
在这里插入图片描述
其中W包括模型的所有可训练参数。 μ ^ \hat\mu μ^tn是分布平均值; σ ^ \hat\sigma σ^tn是方差; ρ ^ \hat\rho ρ^tn是相关性。

4Social-STGCNN模型

1、Model Description
两部分:时空图卷积神经网络ST-GCNN、时间外推器TXP-CNN

ST-GCNN对行人轨迹的图表示进行时空卷积操作以提取特征。这些特征是观察到的行人轨迹历史的紧凑表示。
TXP-CNN将这些特征作为输入,并预测所有行人作为一个整体的未来轨迹。我们使用时间外推器的名字是因为TXP-CNN期望通过卷积运算外推未来的轨迹。
在这里插入图片描述
给定T帧,构造表示G=(V,A)的时空图. 然后,G通过时空图卷积神经网络(ST-GCNNs)转发,创建一个时空嵌入。 之后,TXP-CNNs预测了未来的轨迹。 P是行人位置的维数,N是行人的数目,T是时间步长 P ^ \hat P P^是来自ST-GCNN的嵌入的维数.

(1)Graph Representation of Pedestrian Trajectories
我们首先构造一组空间图Gt,表示每个时间步长t在场景中行人的相对位置。
Gt = (Vt, Et)。 Vt是图Gt的顶点集,观察到的位置(xit,yit)是顶点vit的属性;Et是边集,eijt=1如果顶点vit和顶点vjt相连,否则=0。

为了建模两个节点之间相互影响的强度,我们附加了一个值aijt 它是由每个eijt的某种核函数计算的。aijt 被组织为带权邻接矩阵At。

**aijsim,t是要在邻接矩阵At中使用的内核函数。**定义为:在这里插入图片描述
(2)Graph Convolution Neural Network
利用行人轨迹的图表示,介绍了在图上定义的空间卷积运算。 对于在二维网格地图或特征地图上定义的卷积运算,定义如下:
在这里插入图片描述
k是内核大小,p(.)是采样函数,其聚集以z为中心的邻居的信息, σ \sigma σ是激活函数。( l l l)表示层。
在这里插入图片描述
其中 1 / Ω 1/\Omega 1/Ω是规范化术语,B(vi(l)) = {vj|d(vi,vj)≤D}是顶点的邻居集,而d(vi,vj)表示连接vi和vj的最短距离, Ω \Omega Ω是邻居集的基数。—>感兴趣参考[8,27]

(3)Spatio-Temporal Graph Convolution Neural Network(ST-GCNNs)
通过定义一个新的图G,其属性是Gt属性的集合,ST-GCNN将空间图卷积扩展到时空图卷积。 G结合了行人轨迹的时空信息。 值得注意的是,G1,…,GT的拓扑结构是相同的,而当t变化时,不同的属性被分配给vit
因此,我们将G定义为(V,E),其中V={vi|i∈{1,…,N}和E={eij|i,j,{1,…,N}。 顶点vi在G中的属性是vit的集合,∀t∈{0,…,T}。 另外, 加权邻接矩阵A对应于G是{A1,…,AT}的集合。 我们将ST-GCNN产生的嵌入表示为 V ‾ \overline V V

(4)Time-Extrapolator Convolution Neural Network (TXP-CNN)
ST-GCNN的功能是从输入图中提取时空节点嵌入。 然而,我们的目标是预测未来的进一步步骤。我们的目标也是一个TXP-CNN发挥作用的无状态系统。
TXP-CNN直接作用于图嵌入 V ‾ \overline V V的时间维数,并将其扩展为预测的必要条件。 由于TXP-CNN依赖于特征空间的卷积运算,因此与递归单元相比,它的参数较小。需要注意的一个特性是, TXP-CNN层不是置换不变的,因为在TXP-CNN之前,图嵌入的变化会导致不同的结果。除此之外,如果行人的顺序从输入到Social-ST GNN开始排列,那么预测是不变的。

2、 Implementing Social-STGCNN
我们首先对邻接矩阵进行归一化,以方便学习。邻接矩阵A是{A1,…,AT}的堆栈,我们使用以下格式对称地标准化每个AT:
在这里插入图片描述
在这里插入图片描述
A ^ \hat A A^ Λ \Lambda Λ分别表示 A ^ t \hat A _t A^t Λ t \Lambda_t Λt的栈。 邻接关系的规范化对于图CNN的正常工作至关重要。 我们将时间步长t和网络层l的顶点值表示为V(l)t。V(l)是V(l)t的栈。
有了上述定义,我们现在可以实现方程4中定义的ST-GCNN层如下:
在这里插入图片描述
其中W(l)是l层可训练参数的矩阵。

在应用ST-GCNN之后,我们有了紧凑表示图的特征。TXP-CNN接收特征 V ‾ \overline V V并将时间维度视为特征通道。TXP-CNN由一系列残差(residual)连接的CNN组成。 只有TXP-CNN中的第一层没有残差连接,因为它接收来自ST-GCNN的 V ‾ \overline V V,它们在观测样本的尺寸和待观测样本尺寸方面有所不同 。

5数据集和评价指标

该模型在两个人体轨迹预测数据集上训练:ETH 和UCY。ETH包含两个名为ETH和HOTEL的场景,而UCY包含三个名为ZARA1,ZARA2和UNIV的场景。数据集中的轨迹每0.4秒采样一次。
我们的训练方法遵循与Social-LSTM相同的策略。在Social-LSTM中,模型是在特定数据集的一部分上训练的,并针对其余部分进行了测试,并与其他四个数据集进行了验证。在进行评估时,模型会观察到与8帧相对应的3.2秒的轨迹,并预测接下来的4.8秒(即12帧)的轨迹。

有两个指标可用来评估模型的性能:等式6中定义的平均位移误差(ADE)和等式7中定义的最终位移误差(FDE)。
在这里插入图片描述
直观上,ADE测量沿轨迹的平均预测性能,而FDE仅考虑端点的预测精度。由于Social-STGCNN生成了一个双变量高斯分布作为预测,为了将分布与某个目标值进行比较,我们遵循Social-LSTM 中使用的评估方法,其中基于预测的分布生成了20个样本。然后,使用最接近ground-truth情况的样本来计算ADE和FDE。这种评估方法已被Social-GAN等许多著作采用。

6实验和结果分析

模型配置和训练设置
Social-STGCNN由一系列ST-GCNN层和TXP-CNN层组成。我们在模型中使用PReLU作为激活函数σ。我们将训练batch size设置为128,并使用随机梯度下降(SGD)对模型进行了250个epoch的训练。初始学习率是0.01,150个epoch后变为0.002。

根据我们在表1中的Ablation,使用的最佳模型有一个STGCNN层和五个TXP-CNN层。
在这里插入图片描述
此外,值得注意的是,当ST-GCNN层数增加时,模型性能会下降。

1、核函数的Ablation研究
在本节中,我们的目标是找到一个合适的核函数来构造加权邻接矩阵加权邻接矩阵是图边缘属性的表示。核函数将vit和vjt的属性映射到附加在eijt上的值aijt
在Social-STGCNN的实现中,At对卷积运算中顶点之间的贡献进行加权。因此,核函数可以被视为关于行人之间的社会关系的先验知识
在设计核函数时,一个简单的想法是使用方程8中定义的L2范数测量的行人之间的距离来建模他们之间的影响。但是,这违背了直觉,即行人往往会受到更近距离的人的影响。为了克服这个问题,我们在行人之间使用相似性度量。建议之一是使用等式10中定义的L2范数的逆。分母中添加ϵ项以确保数值稳定性。另一个候选函数是高斯径向基函数,如公式9所示。
我们通过实验比较了这些核函数的性能。将不同节点之间的邻接矩阵中的所有值都设置为1的情况用作baseline。
在这里插入图片描述
在这里插入图片描述
根据表4中列出的结果,最佳性能来自公式(2)的aijsim,t。它和公式(10)之间的区别在于
||vit-vjt||2=0的情况。在公式2中,我们将||vit-vjt||2=0时的aijsim,t 设置为0,因为假定两个行人在一起时可以看作同一个人。没有它,该模型将在行人之间的关系上含糊不清。为此,我们在所有实验中都使用aijsim,t定义邻接矩阵。

2、定量分析

表2将Social-STGCNN的性能在ADE / FDE指标上和其他模型进行了比较。总体而言,在这两个指标上,Social-STGCNN的性能优于以前的所有方法。FDE指标的最新技术水平是SR-LSTM ,误差为0.94。我们的模型在FDE指标上的误差为0.75,比最新技术水平低约20%。定性分析的结果说明了Social-STGCNN如何鼓励增强FDE指标的社交行为。
对于ADE指标,Social-STGCNN比最新的SR-LSTM稍好2%。而且,它比以前的生成方法更好,与S-LSTM 相比,改进幅度在63%之间,与PIF相比,改进幅度在4%之间。有趣的是,没有视觉信号的包含场景上下文的模型优于使用它的SR-LSTM,PIF和Sophie等方法。
在这里插入图片描述
在这里插入图片描述 图3. Social-STGCNN的定性分析。 我们比较了不同核函数(核1:方程8和核2:方程2)训练的模型与以前的模型。 Social-GAN是作为比较的baseline。 插图场景来自ETH和UCY数据集。 我们使用了[6]提供的预先训练的Social-GAN模型。
展示了各种情景: 平行行走(1)(2),两人从同一方向相遇(3),两人从不同方向相遇(4),一人与另一组行人以某角度相遇 (5)。 对于每种情况,虚线是行人正在采取的真实轨迹,颜色密度是预测的轨迹分布。

推理速度和模型大小
S-GAN-P 以前具有46.3k参数的最小模型大小。Social-STGCNN的大小仅为7.6K参数,大约是S-GAN-P中参数数量的六分之一。就推理速度而言,S-GAN-P以前是最快的方法,每个推理步骤的推理时间为0.0968秒。我们模型的推理时间为每个推理步骤0.002秒,比S-GAN-P快48倍。 表3列出了我们的模型和可公开使用的模型之间的速度比较,我们可以根据这些模型进行基准标记。我们之所以能够获得这些结果,是因为我们克服了以前的方法的两个局限:即这些方法通过在模型上设计使用了循环架构和聚合机制。
在这里插入图片描述
与我们的模型相比,不同模型的参数大小和推理时间。 所有模型均采用NvidiaGTX1080TiGPU进行bench mark。推理时间是几个单一推理步骤的平均值。我们注意到,与其他方法相比,Social-ST GNN的参数大小最小,因此推理时间最短。 蓝色的文本显示了我们的模型比其他模型快多少倍。 越低越好。

数据效率
在本节中,我们评估模型大小的效率是否会导致从较少的数据样本中学习的效率更高。我们进行了一系列实验,其中有5%,10%,20%和50%的训练数据。训练数据是随机选择的。选择之后,我们将输入相同的数据来训练不同的模型。使用Social-GAN作为比较的baseline,因为它在以前的深度模型中具有最少的可训练参数。
图4显示了具有均值和误差的数据学习效率实验结果。我们注意到,当仅使用20%的训练数据时,我们的模型超过了FDE指标的最新水平。此外,仅使用20%的训练数据进行训练时,Social-STGCNN在ADE指标上的表现就超过了Social-GAN。结果还表明,与目前的模型不同,使用更多的训练数据,S-GAN-P的性能没有太大改善。一个有趣的现象是S-GAN-P不吸收更多的训练数据。我们将这种行为依赖于GAN具有数据效率这一事实,因为GAN可以从很少的训练样本中学习分布。但是,GAN的训练很容易陷入模式崩溃的问题。相比之下,我们模型的数据效率来自参数效率。

3、定性分析
定量分析部分显示,在ADE/FDE指标方面,社会STGCNN优于先前的技术水平。我们现在定性地分析了社会STGCNN如何捕捉行人之间的社会交互作用,并在预测分布时考虑到这一点。我们展示了社会STGCNN成功地预测不同角度行人之间的无碰撞轨迹,保持平行行走,以及正确预测单独个体与一群行人相遇情况的结果。
我们定性地比较了Social-GAN、Social-STGCNN和L2范数(方程8)作为核函数的预测结果、Social-STGCNN和逆L2范数(方程2)作为核函数的预测结果。

平行走
在图3的场景1和场景2中,两个行人平行行走。通常,当人们平行行走时,他们彼此紧密相连,而且他们的动力在未来会保持。Social-STGCNN和Social-GAN的预测都表明,这两个行人在未来将保持平行行走。然而,与我们在Social-GAN中看到的偏差不同,Sosial-STGCNN预测的密度与ground-truth轨迹非常吻合。
将我们在等式2中定义的核函数aijsim,t用于加权邻接矩阵有助于我们更好地建模行人之间的社会影响,而不是使用等式8中定义的正则L2范数核函数。场景一和场景二表明,aijsim,t模型能更好地保持人与人之间的相对位置。在场景5中,观察到类似的行为。

避免碰撞
图3中的场景3和场景4是两个行人朝相似或相反方向行驶的场景。如果它们保持动力,就会发生碰撞。在场景3中,两个行人朝着相似的方向行走。Social-GAN的预测是基于行人的动量线性的,可能导致碰撞。在Social-STGCNN的预测中,我们注意到,对轨迹进行了轻微的调整,使其既能避免碰撞,又能很好地与观察到的行人动量保持一致。结果表明,Social-STGCNN更符合基本真理。在场景4下,Social-GAN无法避免碰撞,而我们给出了一个真实的无碰撞路径预测。

个体遇到一群人
一个更复杂的场景是图3中的场景5,一个单独的人遇到一组平行行走的个体。我们的模型表明,这组人仍然平行行走,同时调整他们的方向,以避免碰撞。在这种情况下,尽管我们的模型和社会GAN都没有很好地捕捉到基本的真实轨迹,但是从社会交互的角度来看,我们的模型预测的分布仍然是有意义的。

样本和社会行为的多样性
为了详细了解Social-STGCNN如何生成样本,我们绘制了由预测的双变量高斯分布生成的样本。图5中有两种不同的场景。在第一个场景中,三个人从相反的方向相遇。在另一个场景中,两个人以一个角度合并。根据预测的分布,可以得到几种不同的样本模式。在图5的第二列中,生成的示例调整前进方向,以避免两个场景中可能发生的碰撞。行人的另一个社会属性是减速或加速以避免撞车。图5第三列中的示例捕获此属性。分析表明,我们的样本编码行人的不同预期社会行为。但是,一些样本在最后一列中显示了不希望的行为,如碰撞或发散。
在这里插入图片描述
图5. 这两行显示了两种不同的场景,行人合并成一个方向或从相反的方向相遇。 第一列是ground-turth,而其他列说明我们模型的样本。 第二列和第三列显示了我们模型样本中速度或方向的变化。 最后一列显示了不想要的行为。

7结论

本文从预测误差、计算时间和参数个数等几个关键方面说明了基于图形的时空行人轨迹预测方法的改进。通过在加权邻接矩阵中应用一个特定的核函数和我们的模型设计,Social-STGCNN在许多公开可用的数据集上优于现有模型。我们还表明,我们的配置产生了一个数据有效的模型,并且可以从很少的数据样本中学习。定性分析了在避免碰撞、平行行走和个体遇到群体等情况下,社会支持向量神经网络的性能。在这些情况下,Social-STGCNN往往比其他几种重新移植的方法提供更现实的路径预测。此外,Social-STGCNN在计算上是非常有效的,它将所需参数的个数除以8.5的因子,与以前的模型相比,推理速度提高了48倍。在未来,我们打算将社会STGCNN扩展到涉及其他移动对象(包括自行车、汽车和行人)的多模式设置。

猜你喜欢

转载自blog.csdn.net/weixin_44934424/article/details/104834939