摘要:本文提出了一种新颖的数据驱动人群模拟方法,可以模拟给定环境中观察到的行人交通。给定一组观察到的轨迹,我们使用最新形式的神经网络——生成对抗网络(GAN)来学习这组轨迹的属性并生成具有相似属性的新轨迹。我们定义了一种让模拟行人(代理)遵循这样的轨迹,同时处理局部碰撞避免的方法。因此,系统可以生成行为类似于观察的人群,同时仍然可以实现代理之间的实时交互。通过对真实世界数据的实验,我们表明我们的模拟轨迹保留了其输入的统计特性。我们的方法实时模拟类似于现有人群的人群,同时还允许插入额外的代理、与其他模拟方法相结合以及用户交互。目的是在完整轨迹级别上再现行人运动。

人群模拟算法的目标是在虚拟场景中填充表现出视觉上令人信服行为的人群。模拟应该实时运行,以便可用于游戏、培训软件和虚拟现实体验等交互式应用程序。

为了模拟复杂的行为,数据驱动的人群模拟方法使用真实世界的输入数据(例如摄像机镜头)来生成匹配的人群运动。通常,这些方法不能轻易生成不属于输入的新行为。此外,它们通常很难用于代理需要实时调整其运动的应用,例如:因为用户是人群的一部分。

在本文中,我们提出了一种新的数据驱动的人群模拟方法,很大程度上避免了这些限制。我们的系统能够实时模拟行为类似于观察到的代理,同时允许它们在需要时偏离其轨迹。为了在更高层次上复制智能体如何在环境中移动,

更具体地说,我们的方法:学习完整轨迹的空间和时间属性,生成具有相似属性的新轨迹,并让智能体灵活地遵循这些轨迹

(1)学习输入轨迹的整体属性,并可以生成具有相似属性的新轨迹;

(2) 将这些轨迹嵌入人群模拟中,其中代理遵循轨迹,同时允许局部交互。

对于第 1 项,我们使用生成对抗网络(GAN)[4],这是一种机器学习新技术,用于根据现有数据生成新内容。对于第 2 项,我们将“路线跟踪”[6] 的概念扩展到具有时间方面的轨迹,规定了可能随时间变化的速度。以真实世界的数据集为例,我们将展示我们的方法生成具有匹配样式的新轨迹。例如,我们的系统可以使用其他代理重现现有场景,并且可以轻松地与其他人群模拟方法相结合。

模型驱动的问题:研究人员还使用输入轨迹来训练(微观)模拟模型的参数[14],以便调整代理的局部行为参数以匹配输入数据。但是,这无法捕获不属于所用模拟模型的任何复杂(社会)规则。

基于GaN的方法,用于生成与训练数据中的示例类似的轨迹。

就像在大多数人群模拟研究中一样,我们假设一个平面环境,并将代理建模为磁盘。我们将轨迹定义为映射,它描述了代理在T秒的时间段内如何在环境中移动。注意,轨迹编码速度信息:我们的系统应该捕获代理何时加速、减速或静止。

在实践中,我们将用点的序列来表示轨迹由固定的时间间隔∆t分隔;即,每个具有相应的时间戳。在我们的实验中,我们使用,因为我们的输入数据也使用此值。我们将使用符号来表示从到的子轨迹。

给定轨迹数据集,我们的生成器应该学习生成具有类似于Π中的属性的新轨迹。我们假设所有轨迹都在感兴趣区域R的边界上开始和结束,该区域可以具有任何形状,并且对于每个环境可以是不同的。

在内部,G和D都是人工神经网络;让θG和θD作为它们各自的权重。G用作将m维噪声矢量z转换为伪样本x=G(z;θG)的函数。D充当将(真实的或伪的)样本x转换为指示x为真实的概率的值D(x;θD)∈[0,1]的函数。训练GaN代表以下优化问题:

其中V(θD,θG)称为损失函数。它的第一项表示随机实样本的D的预期输出。当D正确地将更多的输入样本分类为实数时,这个值会更高。相反,当D将更多生成的样本分类为伪时,第二项的值更高。这里,px和pz分别是发送到G的真实数据和噪声向量的概率分布。

                                                 图1  显示了我们的GaN系统的概述。

生成器和鉴别器都有两个任务:生成或评估轨迹π的入口点(即前两个点P0π和P1π),以及生成或评估轨迹的连续性(即在子轨迹P0:πk之后的下一个点pkπ+1)。对于延续任务,我们使用来自所谓的“条件Gans”的概念,因为生成器和鉴别器接受额外的数据作为输入。现在我们将更详细地描述该系统。参数设置将在第5节中提到。

生成器。为了生成入口点,生成器G将随机向量z馈送到完全连接(FC)的神经元块。它的输出是一个4D矢量,其中包含p0π和p1π的坐标。为了生成轨迹的延续,生成器G将和噪声矢量z馈送到应对相关轨迹动态进行编码的长期短期记忆(LSTM)层。LSTM是用于处理顺序数据的常见递归神经网络。这个lstm块的输出被发送到一个fc块,它最终产生一个坐标为pkπ+1的2D向量。让表示这个结果。理想情况下,这一点将取自的可能后续行动的(未知)分布。

鉴别器。鉴别器D将整个(真实或虚假)轨迹π作为输入。它将鉴别分成两个具有与G中类似结构的任务。对于入口点部分,FC块将求值为[0,1]中的标量,我们用表示。对于延续部分,块分别评估每个点给定子轨迹。我们用表示第k个点的结果。

因此,对于个点的全轨迹π,鉴别器计算−1个标量,这些标量一起指示π为真实的可能性。培训阶段在其损失函数中使用这些数字。

训练。每个训练迭代让G为不同的(序列)噪声矢量生成N个轨迹的集合Π‘。然后我们让D对所有轨迹(真实和虚假)进行分类。我们的GaN的损耗函数是两个分量的总和:

区分所有入口点的成功率:

                            

区分所有其他点的成功率:

              

为了让我们的GaN训练得更快,我们添加了第三个组件。对于每个真实轨迹π∈Π,我们采用长度为5的所有有效子轨迹,并让G生成给定的的它自己的版本。我们增加了损失函数:

                              

即我们对实点和生成点之间的欧几里得距离求和。我们观察到,这个额外的组件导致更快的收敛和更好的反向传播。

为了减少“模式崩溃”的机会(即收敛到有限的样本范围),我们使用了“展开”的GaN[9]。这是一种扩展的GaN,其中θG的每个优化步骤都使用鉴别器的改进版本,即u步前进(其中u是参数)。

轨迹跟踪。在模拟循环的每一帧中,每个代理都应尝试沿其轨迹π前进,同时避免碰撞。与经典的“路线跟随”[6]的主要区别是,我们的轨迹有一个时间成分:它们规定了一个代理应该以什么速度移动,这个速度可能会随着时间的推移而改变。因此,我们提出了一种方法,让Agent在尊重其空间和时间数据的同时,灵活地跟随π。我们的算法计算首选速度vpref,该速度vpref将使代理沿着π更远。该vpref然后可以被馈送到任何现有的冲突避免算法,以计算接近vpref的速度,同时避免与其他代理的冲突

两个参数定义了代理如何跟随π:时间窗口w和最大速度smax。代理始终尝试沿π移动到前方w秒的点,同时考虑Smax。在模拟过程中,假设t是自插入代理以来经过的时间。理想情况下,代理现在应该已经到达π(T)。我们的算法由以下几个步骤组成:

计算吸引点,其中,T为π的结束时间。因此,是比早w秒的点,如果需要,夹紧到π的末尾。将首选速度计算为,其中p是座席的当前位置。因此,是将代理发送到的速度,其速度基于t和之间的差异。如果,则缩放,以便。这可以防止代理在被阻塞很长一段时间后接收到非常高的速度。

避免碰撞。由我们的算法计算的优选速度Vpref可以用作任何碰撞避免例程的输入。在我们的实现中,我们使用流行的ORCA方法[2]。在初步测试中,其他方法如社会力量[5]证明不太适合我们的目的。

             

结果1:入口点。为了显示我们的GaN在学习入口点分布方面的性能,我们计算了ETH场景中的500(假)入口点,并计算了样本在R边界上的分布。我们还将这些结果与其他两种生成方法进行了比较:具有3个分量的高斯混合模型(GMM)和不使用展开机制的“香草”GaN变体。如图2所示,展开的GaN(右)的入口点比其他两种方法的入口点更接近实际数据。

结果2:轨迹。接下来,我们使用我们的系统生成了352条新的轨迹,并用它们来模拟人群。图3中的前两个热图显示生成的轨迹(中间)与真实数据(左)类似地分布在环境中。第三个热图显示了模拟代理的最终运动,具有路径跟踪和冲突避免。在这种情况下,代理能够很好地遵循其给定的轨迹。

6结论与未来工作

我们已经提出了一种数据驱动的人群模拟方法,它使用Gans来学习输入轨迹的属性,然后生成具有相似属性的新轨迹。结合考虑时间信息的灵活路线跟踪,轨迹可用于实时人群模拟。例如,我们的系统可以用来创建具有不同密度的场景的变体。它可以很容易地与其他模拟方法相结合,并且允许交互式应用。

在未来,我们将对我们的系统产生的轨迹进行彻底的分析,并将它们与其他算法进行比较。

我们还将调查可靠培训的确切要求。此外,我们的系统为个人生成轨迹,假设代理不会影响彼此的选择。因此,它还不能对组行为进行建模,并且在代理无法独立行动的高密度场景中性能更差。我们希望在今后的工作中处理这些限制。

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: