【略读】GUPTA A, JOHNSON J, FEI-FEI L, et al., 2018. Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks[C/OL]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT: IEEE: 2255-2264[2022-08-31]. https://ieeexplore.ieee.org/document/8578338/. DOI:10.1109/CVPR.2018.00240.

什么是GAN?

生成对抗网络(GAN)由2个重要的部分构成:

  1. 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
  2. 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”

Abstract

如果要在以人为中心的环境中导航,了解人类运动行为对于自主移动平台(如自动驾驶汽车和社交机器人)至关重要。这是具有挑战性的,因为人体运动本质上是多模态的:鉴于人类运动路径的历史,人们在未来可以通过许多社会上合理的方式进行运动。我们通过结合来自序列预测和生成对抗网络的工具来解决这个问题:一个循环的序列到序列模型观察运动历史并预测未来的行为,使用一种新的池化机制来聚合跨人群的信息。我们通过针对经常性鉴别器的反面训练来预测社会上合理的未来,并通过新的品种损失来鼓励年龄多样化的预测。通过对几个数据集的实验,我们证明了我们的方法在准确性、多样性、避免碰撞和计算复杂性方面优于先前的工作。

Introduction

预测行人的运动行为对于自动驾驶汽车或社交机器人等与人类共享相同生态系统的自动移动平台至关重要。人类可以有效地协商复杂的社交互动,而这些机器也应该能够做到这一点。为此,一项具体而重要的任务如下:给定观察到的行人运动轨迹(过去的坐标,例如 3.2 秒),预测所有可能的未来轨迹(图 1)。
由于拥挤场景中人体运动的固有特性,预测人类行为具有挑战性:

  1. 人际交往。每个人的动作取决于周围的人。在人群中导航时,人类具有阅读他人行为的先天能力。
    联合建模这些依赖关系是一个挑战。

  2. 社会可接受的。有些轨迹在物理上是可能的,但在社会上是不可接受的。行人受社会规范的制约,如让路权或重新审视个人空间。将它们形式化并非易事。

  3. 多式联运。鉴于部分历史,没有单一正确的未来预测。多重轨迹是合理的和社会可接受的。

轨迹预测方面的开创性工作已经解决了上述一些挑战。基于手工特征的传统方法已经详尽地解决了人际关系方面的问题 [2, 17, 41, 46]。最近,基于循环神经网络 (RNN) [1, 28, 12, 4] 的数据驱动技术重新审视了社会可接受性。
最后,在给定静态场景的路线选择背景下研究了该问题的多模式方面(例如,在十字路口选择哪些街道 [28, 24])。罗比凯等人[38] 已经表明,在给定温和或激进的导航风格的情况下,行人在拥挤的场景中有多种导航风格。因此,预测任务需要输出不同的可能结果。
尽管现有方法在应对特定挑战方面取得了很大进展,但它们存在两个限制。首先,他们在进行预测时对每个人周围的本地社区进行建模。因此,他们没有能力以计算高效的方式对场景中所有人之间的交互进行建模。第二,他们倾向于学习“平均行为”,因为通常使用的损失函数最小化了地面实况和预测输出之间的欧几里得距离。相反,我们的目标是学习多种“良好行为”,即多种社会可接受的轨迹。

为了解决以前工作的局限性,我们建议利用生成模型的最新进展。最近开发了生成对抗网络 (GAN),以克服在逼近棘手的概率计算和行为推断方面的困难 [14]。虽然它们已被用于产生照片般逼真的信号,例如图像 [34],但我们建议使用它们在给定观察到的过去的情况下生成多个社会可接受的轨迹。一个网络(生成器)生成候选者,另一个(鉴别器)评估它们。对抗性损失使我们的预测模型能够超越 L2 损失的限制,并有可能学习可以欺骗鉴别器的“良好行为”的分布。在我们的工作中,这些行为被称为拥挤场景中社会接受的运动轨迹。
我们提出的 GAN 是一个 RNN 编码器-解码器生成器和一个基于 RNN 的编码器鉴别器,具有以下两个新颖性:(i)我们引入了多种损失,它鼓励我们 GAN 的生成网络扩展其分布并覆盖可能的空间路径同时与观察到的输入一致。 (ii) 我们提出了一种新的池化机制,该机制学习了一个“全局”池化向量,该向量为场景中涉及的所有人编码细微的线索。我们将我们的模型称为“Social GAN”。通过对几个公开可用的真实世界人群数据集的实验,我们展示了最先进的准确性、速度,并证明我们的模型有能力生成各种社会可接受的轨迹。

Related Work

预测人类行为的研究可以分为学习预测人类空间交互或人人交互。前者学习特定场景的运动模式 [3, 9, 18, 21, 24, 33, 49]。后者模拟场景的动态内容,即行人如何相互作用。我们工作的重点是后者:学习预测人与人之间的互动。我们讨论了关于这个主题的现有工作以及 RNN 中用于序列预测和生成模型的相关工作。

人际互动。已经从宏观模型中的群体视角或微观模型中的个体视角(我们工作的重点)研究了人类行为。微观模型的一个例子是 Helbing 和 Molnar [17] 的社会力量模型,该模型用吸引力引导行人朝向目标而排斥力来模拟行人行为,并鼓励避免碰撞。在过去的几十年里,这种方法已经被重新审视了十次 [5, 6, 25, 26, 30, 31, 36, 46]。经济学中流行的工具也被使用,如Antonini等人的离散选择框架[2]。Treuille 等人 [42] 使用连续介质动力学,Wang 等人[44],泰等人[41] 使用高斯过程。这些函数也被用于研究固定组 [35, 47]。然而,所有这些方法都使用基于相对距离和特定规则的手工制作的能量势。相比之下,在过去的两年中,基于 RNN 的数据驱动方法已被用于优于上述传统方法。

用于序列预测的 RNN。循环神经网络是一类丰富的动态模型,它扩展了前馈网络,用于在语音识别 [7、8、15]、机器翻译 [8] 和图像字幕 [20、43、45、 39]。然而,它们缺乏高层和时空结构[29]。已经进行了几次尝试来使用多个网络来捕获复杂的交互 [1, 10, 40]。阿拉希等人[1] 使用模拟附近行人的社会池化层。在本文的其余部分,我们展示了使用多层每感受器 (MLP) 和最大池化的计算效率更高,并且与 [1] 中的社交池化方法一样好或更好。李等人[28] 介绍了一种 RNN 编码器-解码器框架,该框架使用变分自动编码器 (VAE) 进行轨迹预测。然而,他们没有在拥挤的场景中模拟人与人之间的互动。

**生成建模。**像变分自动编码器 [23] 这样的生成模型是通过最大化训练数据似然的下限来训练的。古德费罗等人[14] 提出了一种替代方法,即生成对抗网络(GAN),其中训练过程是生成模型和判别模型之间的极小极大博弈;这克服了近似计算棘手的概率计算的困难。生成模型在超分辨率 [27]、图像到图像转换 [19] 和图像合成 [16、34、48] 等任务中显示出有希望的结果,这些任务对于给定的输入具有多个可能的输出。然而,它们在自然语言处理等序列生成问题中的应用已经滞后,因为从这些生成的输出中采样以馈送到鉴别器是一种不可微分的操作。

Method

目前的方法集中在预测平均未来轨迹,这使得 L2 与地面真实未来轨迹的距离最小化,而我们想要预测多个“好”轨迹。

图2:系统总览。我们的模型由三个关键组件组成:生成器 (G)、池化模块和判别器 (D)。 G 将过去的轨迹 Xi 作为输入,并将人 i 的历史编码为 Hit 。池化模块将所有 Hitobs 作为输入,并为每个人输出一个池化向量 Pi。解码器生成以 Hitobs 和 Pi 为条件的未来轨迹。 D 将 Treal 或 Tfake 作为输入,并将它们分类为社会可接受与否。

Generative Adversarial Networks

生成对抗网络 (GAN) 由两个相互对抗训练的神经网络组成 [14]。这两个对抗训练的模型是:==一个生成模型 G 捕获数据分布,一个判别原生模型 D 估计样本来自训练数据而不是 G 的概率。==生成器 G 将潜在变量 z 作为输入, 并输出样本 G(z)。鉴别器 D 将样本 x 作为输入并输出 D(x),它表示它是真实的概率。训练过程类似于具有以下目标函数的两人最小最大游戏:

Socially-Aware GAN

我们的模型由三个关键组件组成:生成器 (G)、池化模块 (PM) 和鉴别器 (D)。

G 基于编码器-解码器框架,我们通过 PM 链接编码器和解码器的隐藏状态。 G 将 Xi 作为输入并输出预测轨迹 Y^i 。 D 输入包含输入轨迹 Xi 和未来预测 Y^i(或 Yi)的整个序列,并将它们分类为“真实/虚假”。
生成器。我们首先使用单层 MLP 嵌入每个人的位置以获得固定长度的向量 eti。这些嵌入在时间 t 用作编码器的 LSTM 单元的输入,引入以下递归:

其中 φ(·) 是具有 ReLU 非线性的嵌入函数,Wee 是嵌入权重。 LSTM 权重 (Wencoder) 在场景中的所有人之间共享。

传统上,GAN 将噪声作为输入并生成样本。我们的目标是产生与过去一致的未来场景。为了实现这一点,我们通过初始化隐藏状态来调节输出轨迹的生成。

鉴别器。鉴别器由一个单独的编码器组成。具体来说,它将 Treal = [Xi , Yi] 或 Tfake = [Xi, Y^i] 作为输入,并将它们分类为真/假。我们对编码器的最后一个隐藏状态应用 MLP 以获得分类分数。理想情况下,鉴别器将学习微妙的社交互动规则,并将不被社会接受的轨迹分类为“假”。
损失。除了对抗性损失之外,我们还在预测轨迹上应用 L2 损失,以测量生成的样本与实际地面实况的距离

Pooling Module

我们需要一种在 LSTM 之间共享信息的机制。但是,一种方法应该解决几个挑战:

• 场景中的可变和(可能)大量人员。我们需要一个紧凑的表示,它结合了来自所有人的信息。
• 分散的人际互动。本地信息并不总是足够的。远处的行人可能会相互影响。因此,网络需要对全局配置进行建模。

Social Pooling [1] 通过提出基于网格的池化方案解决了第一个问题。但是,这种手工制作的解决方案速度很慢,并且无法捕获全局上下文。齐等人[37]表明,可以通过在输入点集的变换元素上应用学习的对称函数来实现上述特性。如图 2 所示,这可以通过将输入坐标传递给 MLP 和对称函数(我们使用 Max-Pooling)来实现。池化向量 Pi 需要总结一个人做出决定所需的所有信息。因为,我们使用相对坐标来实现平移不变性,所以我们使用每个人相对于人 i 的相对位置来增加池化模块的输入。

Encouraging Diverse Sample Generation

输出对噪声的变化不是很敏感,并且产生了非常相似的预测。我们提出了一种多样化的损失函数,鼓励网络产生多样化的样本。对于每个场景,我们通过从 N (0, 1) 中随机抽样 z 并选择 L2 意义上的“最佳”预测作为我们的预测来生成 k 个可能的输出预测。

其中 k 是一个超参数。
通过仅考虑最佳轨迹,这种损失鼓励网络对冲其赌注并覆盖符合过去轨迹的输出空间。该损失在结构上类似于N(MoN)损失的最小值[11],但据我们所知,在GAN的背景下,这并没有用于鼓励生成样本的多样性。

Implementation Details

我们在解码器和编码器的模型中使用 LSTM 作为 RNN。编码器隐藏状态的维度为 16,解码器为 32。我们将输入坐标嵌入为 16 维向量。我们使用 Adam [22] 以 0.001 的初始学习率迭代训练生成器和判别器,批量大小为 64,共 200 个 epoch。

Conclusion

在这项工作中,我们解决了对人机交互进行建模并共同预测场景中所有人的轨迹的问题。我们提出了一种新颖的基于 GAN 的编码器解码器框架,用于轨迹预测,捕捉未来预测问题的多模态。我们还提出了一种新的汇集机制,使网络能够以纯数据驱动的方式学习社会规范。为了鼓励预测样本之间的多样性,我们提出了一个简单的多样性损失,它与池化层相结合,鼓励网络产生全局一致、符合社会要求的多样化样本。我们展示了我们的方法在必须遵循社会规范的几个复杂的现实生活场景中的有效性。

自动驾驶轨迹预测论文阅读(三)Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks相关推荐

  1. 论文阅读:Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks

    转载自 凌空的桨https://blog.csdn.net/baidu_36669549/article/details/85986628 翻译稿---链接 参考---Social GAN:利用GAN ...

  2. Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译

    Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译 如有异议,请多指教,非专业 ...

  3. 【速读】Social GAN : Socially Acceptable Trajectories with Generative Adversarial Networks

    Social GAN : Socially Acceptable Trajectories with Generative Adversarial Networks Paper:https://ope ...

  4. 自动驾驶轨迹预测论文阅读(二)TPNet: Trajectory Proposal Network for Motion Prediction

    论文链接:https://openaccess.thecvf.com/content_CVPR_2020/papers/Fang_TPNet_Trajectory_Proposal_Network_f ...

  5. 自动驾驶轨迹预测论文阅读(一)Deep Learning-based Vehicle Behaviour Prediction For Autonomous Driving Applications

    论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9158529(如果链接无法打开可以通过论文DOI从scihub下载 ...

  6. 论文翻译:2019_Bandwidth Extension On Raw Audio Via Generative Adversarial Networks

    论文地址:原始音频的带宽扩展通过生成对抗网络 博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/10661950.html 摘要 基于神经网络的方法最 ...

  7. 【自动驾驶轨迹预测】一文熟悉自动驾驶轨迹预测发展现状!

    来源 | 自动驾驶之心 来源 | https://zhuanlan.zhihu.com/p/365881810 知圈 | 进"滑板底盘群"请加微yanzhi-6,备注底盘 目录 何 ...

  8. 自动驾驶轨迹预测任务浅述

    注:本文只用来记录我实习过程中积累的粗浅理解,平时抽空写写,不一定正确和全面.随着认识的增多我会不断更新修正本文内容,也欢迎大家帮我指正问题. 目录 1. 自动驾驶任务浅述 2. 轨迹预测任务 2.1 ...

  9. 论文翻译:Learning to Discover Cross-Domain Relations with Generative Adversarial Networks(适合国人习惯)

    摘要 尽管人们无需任何监督就可以轻松识别来自不同域的数据之间的关系,但是学会自动发现它们通常是非常具有挑战性的,并且需要许多对的事实来说明这种关系.为了避免昂贵的配对,我们解决了在未配对数据的情况下发 ...

最新文章

  1. AI安防崛起迅速 开疆拓土少不了专利作“盔甲”
  2. SAP MM MB21创建预留单据报错- Error during conversion to alternative units of measure -
  3. Boost Asio总结(4) io_service
  4. 动态规划 背包九讲的实现。
  5. 后悔贪心+P2949 [USACO09OPEN]Work Scheduling G
  6. junit测试spring_使用Spring JUnit规则进行参数化集成测试
  7. Vue项目 全局定义日期时间方法处理
  8. ipv6详解_modbus之libmodbus库详解
  9. 谷歌停止中国版搜索引擎;李楠宣布离职魅族;微软用 Rust 替代 C/C++ | 极客头条...
  10. python语言的实验心得体会_爱的五种语言——“好妈妈”培训班家教情商课课堂纪实!...
  11. 又用FluorineFx弄了一个精简版的实时视频聊天
  12. Q:How to read attribute from a tag
  13. 用例设计-常用正交表9个
  14. Oracle SOA平台1——概述
  15. 24点游戏(C++)
  16. openerp环境的搭建
  17. php给发qq消息,PHP 模拟QQ登录及发送消息实现方法
  18. 每日刷题之数独简单版 AcWing 1613
  19. 计算机操作系统发展史免费 ppt,《计算机操作系统》PPT课件
  20. oracle 亿级数据存储方案

热门文章

  1. 2.5.4 三元运算符
  2. Personalized Bundle Recommendation in Online Games 阅读笔记
  3. CreateFont函数
  4. CFont::CreateFont 详解
  5. 笔记本计算机17.3寸,拥有这款17.3英寸轻薄游戏本,你才能明白笔记本电脑玩游戏有多爽...
  6. 请编写程序要求输入一个弧度值x,分别计算sin(x),tan(x)的值并输出。(用计算器程序验证你所得到的结果)
  7. python中文路径与英文路径的拼接
  8. DELL课堂十:设计行业 移动工作站该选谁
  9. java injector_Injector的实现原理
  10. 上拉电阻、下拉电阻的使用场景