本文主要是介绍Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
社会GAN:生成对抗网络的社会接受轨迹
1 引言
对于自动驾驶汽车或与人类共享同一个生态系统的社交机器人等自主移动平台来说,预测行人的运动行为至关重要。人类可以有效地进行复杂的社会互动,这些机器也应该能够做到这一点。为此,一项具体而重要的任务如下:给定观察到的行人运动轨迹(过去的坐标,如3.2秒),预测所有可能的未来轨迹(图1)。
由于拥挤场景中人类运动的固有特性,预测人类行为具有挑战性:
- 人际关系。每个人的动作取决于他们周围的人。人类有一种天生的能力,在人群中辨别他人的行为。对这些依赖项进行联合建模是一项挑战。
- 社会可以接受的。有些轨迹在物理上是可能的,但在社会上是不可接受的。行人受到社会规范的约束,比如让出优先通行权或尊重个人空间。将它们形式化并不是件小事。
- 多通道。给定一个不完整的历史,没有单一正确的未来预测。多重轨迹是可信的,也是社会可以接受的。
图1:两个行人想要避开对方的场景说明。有很多方法可以避免潜在的碰撞。我们提出一种方法,给定相同的观察过去,预测多种社会可接受的输出在拥挤的场景。
在轨迹预测方面的开创性工作解决了上述一些挑战。人际关系方面已经通过基于手工特征的传统方法彻底解决了[2,17,41,46]。最近,基于递归神经网络(RNNs)的数据驱动技术重新审视了社会可接受性[1,28,12,4]。最后,在给定静态场景的路径选择背景下(例如,在十字路口走哪条街道[28,24]),研究了问题的多模式方面。Robicquet等人的[38]研究表明,行人在拥挤的场景中有多种导航风格,有温和的导航风格,也有激进的导航风格。因此,预测任务需要输出不同的可能结果。
虽然现有的方法在应对具体挑战方面取得了很大进展,但它们存在两个局限性。首先,在进行预测时,他们对每个人周围的社区进行建模。因此,它们无法以计算效率高的方式对场景中所有人之间的交互进行建模。其次,他们倾向于学习“平均行为”,因为常用的损失函数将地面真实值和预测输出之间的欧氏距离最小化。相反,我们的目标是学习多种“良好行为”,即多种社会可接受的轨迹。
为了解决之前工作的局限性,我们建议利用生成模型的最新进展。为了克服难以处理的概率计算和行为推理[14]的近似问题,生成式对抗网络(GANs)应运而生。虽然它们已被用于产生像图像[34]这样逼真的信号,但我们建议使用它们来产生多个社会可接受的轨迹,给定一个观测到的过去。一个(generator)生成网络,另一个(discriminator)对抗网络进行评估。对抗性损失使我们的预测模型能够超越L2损失的限制,并潜在地了解“良好行为”的分布,可以愚弄鉴别器。在我们的研究中,这些行为被称为拥挤场景中社会接受的运动轨迹。
我们提出了GAN是一个RNN Encoder-Decoder生成器和一个基于RNN的编码器鉴频器使用以下两个创新点:(i)我们介绍各种损失,鼓励我们的GAN生成网络传播其分布和覆盖的空间可能的路径,与观察到的输入一致。(ii)我们提出了一种新的池化机制,它学习一个“全局”池化向量,为场景中所有参与者编码微妙的线索。我们将我们的模式称为“社会GAN”。通过对几个公开可用的现实人群数据集的实验,我们展示了最先进的准确性和速度,并证明我们的模型有能力生成各种社会可接受的轨迹。
2 相关工作
预测人类行为的研究可分为学习预测人与空间的互动或人与人的互动。前者学习场景特定的运动模式[3,9,18,21,24,33,49]。后者模拟了场景的动态内容,即行人如何相互作用。我们工作的重点是后者:学习预测人与人之间的互动。我们讨论了这方面的现有工作,以及RNN序列预测和生成模型的相关工作。
人与人之间的互动。从宏观模型的人群视角研究人类行为,从微观模型的个体视角研究人类行为(这是我们工作的重点)。微观模型的一个例子是Helbing和Molnar[17]的社会力量,它模拟了行人的行为,吸引力引导他们走向目标,斥力鼓励避免碰撞。在过去的几十年里,这种方法经常被重新研究[5,6,25,26,30,31,36,46]。经济学中流行的工具也被使用,如Antonini等人的离散选择框架[2]。Treuille等人使用连续统动力学,Wang等人使用连续统动力学,Tay等人使用高斯过程。这些函数也被用于研究固定基团[35,47]。然而,所有这些方法都是根据相对距离和特定规则手工制作能量势。相比之下,在过去的两年中,基于RNNs的数据驱动方法已经被用于优于上述传统方法。
用于序列预测的RNNs。递归神经网络是一类丰富的动态模型,它将前馈网络扩展到不同领域的序列生成,如语音识别[7,8,15]、机器翻译[8]和图像字幕[20,43,45,39]。但缺乏高水平的时空结构[29]。人们曾多次尝试使用多个网络来捕获复杂的交互作用[1,10,40]。Alahi等人[1]使用一个社交池层来模拟附近的行人。在本文的其余部分中,我们证明了使用多层感知器(MLP)和最大池化方法在计算上更有效,并且比[1]中的社会池化方法工作得更好。Lee等人[28]介绍了一种RNN编码器-解码器框架,该框架使用变分自编码器(VAE)进行轨迹预测。然而,它们并没有模拟拥挤场景中的人类互动。
生成建模。生成模型如变分自编码器[23]是通过最大化训练数据似然的下界来训练的。Goodfellow等人[14]提出了一种替代方法,生成对抗网络(GANs),其中训练过程是生成模型和判别模型之间的最大极小博弈;这克服了难以处理的概率计算近似的困难。生成模型在超分辨率[27]、图像到图像转换[19]和图像合成[16,34,48]等任务中显示出了很好的结果,这些任务对于给定的输入有多种可能的输出。然而,它们在序列生成问题(如自然语言处理)中的应用有滞后,因为从这些生成的输出中采样到馈送给鉴别器是一个不可微的操作。
3 方法
人类拥有一种直观的能力,可以根据周围的人来辨别人群。我们在规划路径的时候会牢记我们的目标,同时也会考虑周围人的运动,比如他们的运动方向,速度等等。然而,在这种情况下通常存在多种可能的选择。我们需要的模型不仅能够理解这些复杂的人类交互,而且能够捕捉各种选项。目前的方法主要集中在预测平均的未来轨迹,从而最小化L2距离地面真实的未来轨迹,而我们希望预测多个“良好的”轨迹。在本节中,我们首先提出基于GAN的编码器-解码器架构来解决这个问题,然后描述我们的新池化层,它可以模拟人类交互,最后我们介绍了我们的多样性损失,它鼓励网络为相同的观察序列产生多种多样的未来轨迹。
3.1 问题描述
我们的目标是共同推理和预测一个场景中所涉及的所有agent的未来轨迹。我们假设我们接收一个场景中所有人的轨迹作为输入,如X = X1,X2,…, Xn,并预测未来的轨迹ˆY =ˆY1,ˆY2,…,ˆYn的所有人同时。人i的输入轨迹定义为Xi= (xt i,yt i)从时间步长t = 1,…, tobs和未来的轨迹(ground truth)可以类似地定义为Yi= (xt i,yt i)从时间步长t = tobs+ 1,…, tpr。我们称预测为ˆYi。
3.2 生成对抗网络
生成式对抗网络(GAN)由两个相互对立的神经网络组成。两个对抗性训练模型是:生成模型G捕获数据分布,判别模型D估计样本来自训练数据而不是G的概率。生成器G取一个潜在变量z作为输入,并输出样本G(z)。鉴别器D以样本x作为输入,输出D(x)表示它为实数的概率。训练过程类似于两人最小最大博弈,目标函数如下:
【公式1】
GANs可用于条件模型,为生成器和鉴别器提供额外的输入c,产生G(z, c)和D(x, c)[13,32]。
图2:系统概述。我们的模型由三个关键组件组成:生成器(G)、池化模块和判别器(D)。G将person i的历史轨迹xi作为输入,并将其编码为Ht i。池化模块将所有Htobs i作为输入,并输出一个池化向量Pifor每个person。解码器生成以Htobs i和Pi为条件的未来轨迹。D将其作为输入,并将其分类为社会接受或不接受(见图3的PM)。
3.3 具有社会意识的GAN
正如第1节所讨论的,轨迹预测是一个多模态问题。生成模型可以用于timeseries数据来模拟可能的未来。我们利用这一观点设计SGAN地址问题的多峰性使用GANs(见图2)。我们的模型包括三个主要组件:生成器(G),池化模块(PM)和鉴别器(D)。G是基于encoder-decoder框架,我们联系通过点隐藏的编码器和译码器。G以Xi为输入,输出预测轨迹ˆYi。D输入包含输入轨迹xi和未来预测ˆYi(或Yi)的整个序列,并将其分类为“真/假”。
生成器。我们首先使用单层MLP嵌入每个人的位置,得到一个固定长度的向量et i。这些嵌入作为在时刻t编码器的LSTM单元的输入,引入以下递归:
【公式2】
其中φ(·)为ReLU非线性的嵌入函数,weee为嵌入权值。LSTM权值(Wencoder)在场景中的所有人之间共享。
Na¨ıve每个人使用一个LSTM无法捕捉到人与人之间的交互。编码器学习一个人的状态,并存储他们的运动历史。然而,正如Alahi等人的[1]所示,我们需要一个紧凑的表示法,它将来自不同编码器的信息结合起来,从而有效地对社会互动进行推理。在我们的方法中,我们通过池化模块(PM)建模人与人之间的交互。在tobs之后,我们将场景中所有人的隐藏状态集合起来,以获得每个人的集合张量Pifor。传统的GANs算法将输入噪声作为输入噪声并生成样本。我们的目标是创造出与过去一致的未来情景。为了实现这一点,我们将译码器的隐藏状态初始化为:
【公式3】
其中γ(·)为具有ReLU非线性的多层感知器(MLP), Wc为嵌入权值。关于轨迹预测,我们在两个重要方面偏离了之前的工作:
之前的工作[1]使用隐藏状态预测二元高斯分布的参数。然而,这给不可微采样过程中的反向传播训练带来了困难。我们通过直接预测坐标(ˆxt i,ˆyt i)来避免这种情况。
“社会”语境通常作为LSTM细胞的输入[1,28]。相反,我们只提供一次池上下文作为解码器的输入。这也为我们提供了在特定时间步长选择池的能力,结果是与S-LSTM[1]相比速度提高了16倍(见表2)。
将上述解码器状态初始化后,我们可以得到如下预测:
【公式4】
其中φ(·)为ReLU非线性嵌入函数,Wedas为嵌入权重。LSTM的权值用Wdecoder表示,γ为MLP。
鉴别器。鉴别器由一个单独的编码器组成。具体来说,将Treal= [Xi,Yi]或Tfa ke= [Xi,ˆYi]作为输入,并将它们分类为real/fake。我们在编码器的最后一个隐藏状态上应用MLP来获得分类分数。在理想状态下,“辨别者”会学习微妙的社会互动规则,并把不被社会接受的轨迹分类为“虚假”。
损失。除了对抗性损失,我们还在预测轨迹上应用L2损失,该轨迹测量生成的样本离实际地面真相有多远。
3.4 池化模块
为了在多人之间进行联合推理,我们需要一种机制来在lstm之间共享信息。然而,有几个挑战是一个方法应该解决的:
一个场景中有很多人。我们需要一个紧凑的表示,它将来自所有人的信息结合起来。
人与人之间的互动分散。本地信息并不总是足够的。远处的行人可能会相互碰撞。因此,网络需要对全局配置进行建模。
社交池化[1]通过提出一个基于网格的池化方案解决了第一个问题。然而,这个手工制作的解决方案很慢,并且不能捕获全局上下文。Qi等人的[37]表明,通过将学习到的对称函数应用于点的输入集合的转换元素上,可以实现上述性质。如图2所示,这可以通过通过一个MLP传递输入坐标,然后是一个对称函数(我们使用Max-Pooling)来实现。这个集合向量需要总结出一个人做出决定所需要的所有信息。因为我们使用相对坐标来实现翻译不变性,所以我们用每个人相对于person i的相对位置来增加pooling模块的输入。
图3:红色人物的池化机制(红色虚线箭头)和社会池化1之间的比较。我们的方法计算红色和所有其他人之间的相对位置;这些位置与每个人的隐藏状态相连接,由MLP独立处理,然后通过元素池的方式来计算red person的池向量P1。社会统筹只考虑网格内的人,不能对所有人对之间的交互进行建模。
3.5 鼓励产生不同的样本
轨迹预测是具有挑战性的,因为给定有限的历史,模型必须推理多种可能的结果。到目前为止描述的方法产生了良好的预测,但是这些预测尝试在可能有多个输出的情况下产生“平均”预测。此外,我们发现输出对噪音的变化不是很敏感,并且产生了非常相似的预测。
我们提出了一个多样性损失函数,鼓励网络产生多样化的样本。对于每个场景,我们通过从N(0,1)中随机抽样z,并选择L2意义上的“最佳”预测作为我们的预测,生成k个可能的输出预测。
【公式5】
其中k是超参数。
通过只考虑最佳轨迹,这种损失鼓励网络对冲其赌注,并覆盖符合过去轨迹的输出空间。这种损失在结构上类似于最小超过N (MoN)的损失[11],但据我们所知,这种损失并没有被用于GANs环境中,以鼓励生成样本的多样性。
3.6 实现细节
在我们的模型中,我们使用LSTM作为解码器和编码器的RNN。编码器隐藏状态的维数为16,解码器为32。我们将输入坐标嵌入为16维向量。我们使用Adam[22]以0.001的初始学习率迭代训练生成器和判别器,批处理大小为64,进行200个纪元的训练。
4. 实验
在本节中,我们在两个公开可用的数据集上评估我们的方法:ETH[36]和UCY[25]。这些数据集包含真实世界的人类轨迹和丰富的人类交互场景。我们将所有数据转换为真实世界的坐标,并以每0.4秒为间隔进行插值以获得值。总共有5组数据(ETH - 2, UCY 3), 4个不同的场景,由1536名行人组成,在拥挤的环境中,具有具有挑战性的场景,如群体行为,人群交叉,避免碰撞,群体形成和分散。
评价指标。与之前的工作相似[1,28],我们使用两个误差度量:
- 平均位移误差(ADE): ground truth和我们对所有预测时间步的预测之间的L2平均距离。
- 最终位移误差(FDE):在预测时段Tpred结束时,预测的最终目的地与真实最终目的地之间的距离。
基线:我们比较以下基线:
- 线性的:一种通过最小化最小二乘误差来估计线性参数的线性回归器。
- LSTM:一个简单的LSTM,没有池化机制。
- S-LSTM: Alahi等人[1]提出的方法。每个人都通过LSTM建模,在每个时间步骤都使用社会池化层池化隐藏状态。
我们也用不同的控制设置对我们的模型做消融研究。在本节中,我们将我们的完整方法称为SGAN-kVP-N,其中kV表示模型是否使用了品种损失训练(k = 1本质上意味着没有品种损失),P表示使用了我们提出的池化模块。在测试时,我们从模型中采样多次,并选择L2意义上的最佳预测进行定量评价。N为在测试时间内对模型进行采样的时间。
评价方法。我们采用与[1]类似的评估方法。我们使用一种方法,在4组上训练,在剩下的一组上测试。我们观察轨迹8次步(3.2秒),并显示8(3.2秒)和12(4.8秒)时间步的预测结果。
表1:所有方法在数据集上的定量结果。对于tpred= 8和tpred= 12(8 / 12),我们报告了两个误差指标:平均位移误差(ADE)和最终位移误差(FDE),单位为米。我们的方法始终优于最先进的S-LSTM方法,尤其适合长期预测(越低越好)。
4.1 定量评估
我们将我们的方法在两个指标ADE和FDE上与表1中的不同基线进行比较。正如预期的那样,线性模型只能建模直线路径,在较长的预测(tpred= 1 2)情况下尤其糟糕。LSTM和S-LSTM的性能都比线性基线好得多,因为它们可以建模更复杂的轨迹。然而,在我们的实验中,S-LSTM并没有优于LSTM。我们尽了最大的努力来重现论文的结果。[1]在合成数据集上训练模型,然后在真实数据集上进行微调。我们不会使用合成数据来训练任何可能导致性能下降的模型。
SGAN-1V-1的性能比LSTM差,因为每个预测样本都可能是多种未来轨迹中的任意一种。由模型产生的条件输出代表了许多似是而非的未来预测之一,这些预测可能与地面真实预测不同。当我们考虑多个样本时,我们的模型优于确认问题的多模态本质的基线方法。GANs面临模式崩溃的问题,其中产生器诉诸于产生少数由鉴别器分配高概率的样本。我们发现SGAN-1V-1生成的样本并没有捕捉到所有可能的场景。然而,SGAN-20V-20显著优于所有其他模型,因为品种损失鼓励网络产生不同的样本。尽管我们提议的池层的完整模型表现稍差,但我们在下一节中显示,池层帮助模型预测更“社会上”可信的路径。
速度。在自动驾驶汽车这样的现实环境中,速度是一种方法的关键,因为你需要准确预测行人的行为。我们将我们的方法与两个基线LSTM和S-LSTM进行比较。一个简单的LSTM执行速度最快,但不能避免碰撞或作出准确的多模态预测。我们的方法比S-LSTM快16倍(见表2)。速度的提高是因为我们没有在每个时间步都执行池操作。此外,与需要为每个行人计算占用网格的S-LSTM不同,我们的池化机制是简单的MLP,然后是最大池化。在实际应用中,我们的模型可以在S-LSTM进行1次预测的同时快速生成20个样本。
评价多样性的效果。有人可能会想,如果我们简单地从我们的模型中抽取更多的样本而不损失品种,会发生什么?我们比较了SGAN-1V-N和SGAN-NV-N的性能。需要提醒的是,SGAN-NV-N是指用k = N的品种损失训练模型,并在测试过程中抽取N个样本。如图4所示,在所有的数据集上,仅仅从训练过的模型中抽取更多的样本而没有变化,并不能提高准确性。相反,当我们增加k值时,我们可以看到显著的性能提升,当k = 100时,模型的平均性能提升33%。
图4:品种损失的影响。对于SGAN-1V-N,我们训练单个模型,训练时为每个序列绘制一个样本,测试时绘制N个样本。对于SGAN-NV-N,我们用我们的品种损失训练几个模型,在训练和测试期间使用N个样本。用品种损失训练可以显著提高准确性。
表2:与S-LSTM的速度(秒)比较。与S-LSTM相比,我们得到了16倍的加速,使得我们可以在同一时间绘制16个样本,S-LSTM只做一次预测。与S-LSTM不同的是,我们不会在每个时间步都执行池化操作,从而在不影响精度的情况下产生显著的减速。所有方法都以Tesla P100 GPU为基准
4.2 定性评价
在多主体(人)场景中,必须模拟一个人的行为如何影响其他人的行为。传统的活动预测和人类轨迹预测方法集中在手工制作的能量潜力模型吸引和排斥力,以模拟这些复杂的相互作用。我们使用纯数据驱动的方法,通过一种新颖的池化机制来模拟人与人之间的交互。在他人面前行走的人,会根据自己的个人空间、感知到的潜在碰撞、最终目的地和自己过去的运动情况来规划自己的路径。在本节中,我们首先评估池化层的效果,然后分析我们的网络在三个公共社交交互场景中做出的预测。尽管我们的模型对场景中的所有人进行了联合预测,但为了简单起见,我们只对一个子集进行预测。我们通过图中颜色的第一个字母来引用场景中的每个人(例如,B(黑色),R(红色)等等)。另外,为了简单起见,我们将SGAN-20vp-20称为SGAN- p,将SGAN-20v-20称为SGAN。
4.2.1 有池化VS无池化
在定量指标上,两种方法的性能相似,SGAN略优于SGAN- p(见表1)。然而,从质量上说,我们发现汇集加强了全球的一致性和社会规范的一致性。我们比较了SGAN和SGAN-p在四种常见的社会交互场景中的表现(见图5)。我们想强调的是,即使这些场景是综合创建的,我们使用的模型是在真实世界的数据上训练的。此外,创建这些场景是为了评估模型,我们的设计中没有任何东西使这些场景变得特别容易或困难。对于每个设置,我们绘制300个样本,并绘制轨迹的近似分布以及平均轨迹预测。
场景1和场景2通过改变方向描述了我们模型的避碰能力。在两个人朝同一个方向前进的情况下,池化使模型能够预测出一种社会接受的方式,让路权向右移动。然而,SGAN预测导致了碰撞。同样,与SGAN不同的是,SGAN-p能够对群体行为进行建模,并预测回避行为,同时保留情侣一起行走的概念(场景2)。
人类也倾向于改变速度来避免碰撞。场景3描述了一个人G走在人B后面,尽管速度更快。如果他们都继续保持他们的速度和方向,他们会碰撞。我们的模型预测G从右边超车。SGAN未能预测出一条社会可接受的道路。在场景4中,我们注意到模型预测B放慢速度,G屈服。
4.2.2 有行动的池化
我们考虑三种真实场景,在这些场景中,人们必须改变路线以避免碰撞(参见图6)。
人合并。(第一排)在走廊或道路上,来自不同方向的人通常会走到一个共同的目的地。人们在继续向目的地前进时,会用各种方法避免碰撞。例如,一个人可能会放慢速度,稍微改变自己的路线,或者根据周围环境和其他人的行为结合使用这两种方法。我们的模型能够预测一个人在速度和方向上的变化,从而有效地应对一种情况。例如,模型预测B减速(col 2)或B和R都改变方向以避免碰撞。最后一个预测(col 4)特别有趣,因为模型预测了人R的突然转变,但也预测了人B的反应显著放缓;从而做出全球一致的预测。
避免。(第二排)另一个常见的场景是,人们在相反的方向移动时互相避开。这可以以各种形式表现出来,比如一个人回避一对情侣,一对情侣回避一对情侣,等等。在这种情况下,要做出正确的预测,一个人需要提前计划,把眼光放远。我们的模型能够识别人们在群体中移动,并对群体行为进行建模。该模型预测两组的方向变化是避免碰撞的一种方式(第3、4节)。与图5相反,尽管在这种特定的情况下,公约可能会让路给右边,这将导致碰撞。因此,我们的模型会预测哪些夫妇会向左让步。
行人跟随。(第三排)另一个常见的场景是一个人走在别人后面。一个人可能想要保持速度或者超过前面的人。我们想提请大家注意这种情况和现实生活中的对应情况之间的细微差别。在现实生活中,一个人的决策能力受其视野的限制。相比之下,我们的模型可以获取池化时所有参与场景的人的ground truth位置。这在一些有趣的案例中表现出来(见第3章)。模型知道人R在人B后面,并且移动得更快。因此,它预测B通过改变方向让路,而R保持方向和速度。该模型还能够预测超车(地面真实情况)。
图6:来自我们模型的不同预测的例子。每一行表示一组不同的观测轨迹;列显示了我们模型中每个场景的四个不同样本,这些样本展示了不同类型的社会可接受行为。最好的是最接近地面真相的样本;在慢样本和快样本中,人们改变速度以避免碰撞;在DIR样本中,人们改变方向以避免彼此。我们的模型以数据驱动的方式学习这些不同的回避策略,并共同预测场景中所有人的全局一致和社会可接受的轨迹。我们还展示了一些补充材料的失效案例。
4.3 潜伏空间结构
在这个实验中,我们试图了解潜在空间z的景观。在学习的流形上行走可以让我们了解模型如何能够产生不同的样本。理想情况下,人们可以期望网络在潜在空间中强加一些结构。我们发现潜伏空间中的某些方向与方向和速度有关(图7)。
图7:潜在的空间探索。潜伏流形中的某些方向与方向(左)和速度(右)有关。观察相同的过去,但在不同的方向上改变输入z,导致模型预测轨迹的平均方向是右/左或快/慢。
5 结论
在这项工作中,我们解决了建模人与人之间的互动和共同预测轨迹的所有人在一个场景。我们提出了一种新的基于GAN的编码器-解码器框架,用于轨迹预测捕捉未来预测问题的多模态。我们还提出了一种新颖的汇集机制,使网络能够以纯粹数据驱动的方式学习社会规范。为了鼓励预测样本之间的多样性,我们提出了一个简单的多样性损失,加上池化层,鼓励网络产生全球一致的,社会兼容的多样性样本。我们在几个需要遵循社会规范的复杂现实生活场景中展示了我们的方法的有效性。
这篇关于Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!