目前广泛应用在行人轨迹预测领域的方法主要包括基于LSTM网络、GCN网络和GAN网络的轨迹预测方法,这些网络在训练完成后对同类型输入具有很好的适用性,拥有较高的轨迹预测精度。抽空整理下关于用GAN来做行人轨迹预测的相关论文与要点,顺便说的是一定要禁甄姬。

一、CVPR 2018 Social GAN

Social GAN提出的思想很明确:以往的单一轨迹预测往往是一种“平均”的结果。换句话说,行人的轨迹并不是确定不变的,它受行人之间的交互、行人与环境间的交互等多种因素的动态影响,实际上预测的轨迹在可接受的范围内都是合理的,也就是标题说的“Socially Acceptable”。那Social GAN的网络框架长什么样子呢?它就长下面这样子:

可以看到说这是一个基本的GAN的模型,它的generatordiscriminator是由LSTM组成而已。一个很直接的想法是,在看到Social GAN的模型架构时,你会想到说,模型的输入实际上就是一段处理过后的轨迹,先将轨迹映射到高维空间,然后交给generator的Encoder处理,得到每个行人的hidden_state,将hidden_state通过Pooling Module模块,得到的输出与之前的hidden_state、noise_z进行concat后作为generator Decoder的orignal hidden_state,再得到预测的轨迹;在判别阶段,将生成的轨迹与真实轨迹丢给我们的discriminator以输出real还是feak。实际上,这就是Social GAN的运作方式。那光是这样理解,还不是很完善,因为读者看到这里可能不知道说,每一部分的输入输出的维度究竟是多少啊,你的Pooling Module又是怎么运作的呢?这些问题需要仔细的看完论文和代码,那与以前一样,假定在看博客的读者已经看过代码,不然你可能不知道我接下来在说什么。

首先是generator的Encoder部分,这里很简洁,就是一个LSTM的结构,那其实我想说的是,虽然上图Encoder架构画了三个不同颜色的LSTM,代表说它们可能对不同的行人进行轨迹建模,但是具体实现的时候我想应该是同一个LSTM在不同时间段进行“复用”。具体维度在图中已标注,就不再一一细说了。

Encoder的最后输出hidden_state h_{7}(它包含了前8帧的行人交互信息)会被送给Pooling Module模块,文章在这一块实际上说的比较含糊,是因为整篇文章像是两个人写的,风格各异。那Pooling Module怎么操作呢?为了便于说明,运作过程以下图为例:Pool Module的输入有两部分。一开始,我们取观察轨迹最后一帧的行人坐标,其维度为(116,2)。读者可能疑惑说,这里我的能理解啊,但是你图中的n_{i}是什么意思呢,看上去蛮屌的样子。那其实这里的n_{i}指的是一个“场景片段”下的人数。为了让读者明白我在说什么,我们先要理清行人轨迹预测中batchsize意味着什么。什么意思呢?在单一轨迹预测时,我们把一个行人或说一条轨迹当做一个样本是完全OK的,但在Social GAN中,作为为了研究轨迹之间的交互,且研究联合轨迹预测模型(就是同时为多条轨迹预测),那么最好的方式就是让一个场景片段中所有的轨迹在一个batch中被处理,所以这116个人应该是来自不同场景片段下的总人数。n_{i}代表的含义就是指某个场景片段下的人数。之所以要把各个场景片段下的人数单独拿出来,是因为接下来的操作所要求的。举例来说,图中某个场景片段下有n_{i}个行人,我要对该场景片段下的行人做两种不同的repeat操作:第一种repeat的方式是整体复制,可以看到说最后得到的n_{i}^{2}是人数1~n_{i}的整体重复;而第二种repeat的方式是逐一复制,也就是第一个行人复制n_{i}行,第二个行人复制n_{i}行,...,可以看到说这种repeat方式下得到的n_{i}^{2}是人数 1~n_{i}的逐一重复。那为什么要进行这样一步操作呢?实际上是为了计算行人间的相对位置。你可以看到说接下来就是两种repeat得到的复制结果进行相减,得到的矩阵我们把它叫做relative_pos,它的维度大小是(n_{i}\times n_{i},2)。一个常规的操作是将其进行embedding,得到大小为(n_{i}\times n_{i},64)的映射矩阵。紧接着,我们第二部分输入是Encoder中得到的hidden_state  h_{7},它的大小是(116,64)。同理,我们也需要对不同场景片段下的h进行repeat操作,因为这样才能与上述的结果进行concat拼接。那可以看到说,h_{7}的repeat方式是之前所述的整体重复,得到的结果经reshape后,得到大小为(n_{i}\times n_{i},64)的矩阵。该矩阵与我们embedding后的relative_pos进行拼接,再将拼接后的向量送入MLP中,经reshape后得到大小为(n_{i}n_{i},1024)的矩阵。在这里,作者设计了一个Maxpooling函数以获得全局信息(n_{i},1024)(那其实这里为什么是Maxpooling,我也不是很明白)。那对不同的场景片段重复上述过程,最后Pooling module输出大小为(116,1024)的矩阵,为了便于接下的叙述,我们给它取个名字叫做pool_h。

那在进入generator Decoder之前还有一步add_noise的操作,也就是对应论文架构里面的z。具体是怎么操作的呢?将上述的pool_h与之前Encoder的最后输出hidden_state h_{7}拼接,得到一个大小为(116,1088)的矩阵。将其送入MLP,将得到的结果与一个大小为(116,64)的高斯噪声进行concat拼接,得到的矩阵decoder_h将作为generator Decoder hidden_state的初始值。

       generator Decoder怎么做呢?除了将decoder_h将作为generator Decoder hidden_state的初始值外,我们还需要c_{0}和输入x_{t}。​​​​​​​c_{0}初始化为0,x_{t}来自观测轨迹的最后一帧,但往往都会做一个embedding以嵌入高维,之后经过LSTM输出h_{8},通过一个Linear得到预测坐标,再将该预测坐标送给x_{t},以预测下一个时刻的行人轨迹坐标。总的来说,Decoder就是输入前一帧,输出后一帧的预测坐标,那最后得到一个batch下所有行人的12帧轨迹坐标。

得到的预测坐标送给discriminator以判断real/feak,因为我的discriminator看过真正的坐标,所以当它判断预测的坐标为feak时,就促使对应的generator产生更具迷惑性的结果,以达到欺骗discriminator的目的。那实际上我在想的是,Social GAN好像也并不是真正“多轨迹”的预测啊,你看最后的结果也是一个样本对应一条预测轨迹啊,并没有说一个样本对应多条轨迹。我的理解是:从整体来看,在整个动态的博弈中,一个样本确实生成了多条轨迹,只不过前期立马给我的潘别气给否决了,但是从“多轨迹“预测的角度看,Social GAN模型并没有学习到人类行为真正的多模态分布,而是学习具有高方差的单一行为模式(CVPR 2019 Social BiGAT 写到:However both models fall short of learning the truly multimodal distribution of human behavior, and instead learn a single mode of behavior with high variance.

Social GAN最大的亮点是引入了Variety loss。由原先预测单一轨迹,创新性提出预测多条轨迹从里面找出best trajectory。在2018年,大家都在预测单一轨迹的时候,横空出世,用20条轨迹将其他方法按在地上摩擦...不讲武德的同时,之后的几乎所有方法,都补充上了多轨迹预测实验(这里摘自知乎的一段评论)。

、CVPR 2019 Sophie

以往的轨迹预测模型并没有将场景信息考虑在内,换句话说,以前的工作未能成功地联合场景信息与行人间的交互信息。Sophie利用GAN的可解释性框架,利用场景中行人的轨迹信息与场景上下文信息,即,使用场景图像和观测轨迹对行人轨迹进行预测。Sophie的代码似乎缺少了pkl文件,所以对Sophie的解读只能停留在论文阶段了。

模型的(a)部分实际上是特征提取模块,上分支场景图像由VGG-19进行处理;下分支由LSTM处理观测到的行人轨迹,文章说为了捕获其他行人状态对预测行人轨迹的影响,我们需要从所有行人轨迹特征中提取联合特征(joint feature)。换句话说,我们需要对行人间的交互进行建模,因为每个人从LSTM出来后,并没有交互信息,所以在这里提取行人间的交互信息。文章对这一部分有详细的描述,由于我代码没有调通(缺少pkl文件),这里我就不多叙述。提取完的联合特征会被送入到attention模块,但是论文中是说喂给generator,这一点从图中看不出来还得看代码。模型的(b)部分是注意力模块,注意力机制,其本质是一种通过网络自主学习出的一组权重系数,并以“动态加权”的方式来强调我们所感兴趣的区域同时抑制不相关背景区域的机制。这里的physical Attention算的是编码场景与generator decoder hidden_state的注意力,其物理含义应该是对“行人-场景”进行建模,通过注意力机制得到行人轨迹更可能出现在场景中的哪些位置(当然,这是我的一点理解,也可能不正确),但是为什么这么做我也不太明白。Social Attention算的是联合特征(joint feature)与generator decoder hidden_state的注意力,其物理含义应该是对周围行人进行加权,也就是说哪些行人的轨迹特征对我预测行人的轨迹的影响是比较重要的。Sophie值得一读,但是不看代码的话很多细节没法了解。

三、NIPS 2019 Social-BiGAT

Social BiGAT是继Social GAN, SoPhie后用GAN做行人轨迹预测的新成员,从整体成果上来说是用Cycle-GANGAT网络的方法更好解决在Social GAN时提出的问题:社会交互(Social Interaction)、静态场景(Context Cues)和预测的多元性(Multimodal prediction)。Social BiGAT的理解可以参考博客:文献阅读报告 - Social BiGAT + Cycle GAN - youzn99 - 博客园 (cnblogs.com)https://www.cnblogs.com/sinoyou/p/12159419.html

因为没有找到论文代码,很多细节没法光看论文理解。

四、CVPR 2019 Social Ways

Social Ways是继Social GAN、Sophie模型后的进一步提升,在理想的监控俯瞰数据库ETH、UCY上进行数据的预测。重点贡献有:

  1. 引入了注意力机制使模型自主分配对交互信息的关注。
  2. 舍弃了L2代价函数,引入基于互信息的Information Loss,增强了模型对多合理轨迹的预测能力。
  3. 提供了一种能够验证各模型的多轨迹预测能力的小型合成场景和轨迹生成效果的判断指标。

Social Ways的理解可以参考博客:文献阅读报告 - Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs - youzn99 - 博客园 (cnblogs.com)https://www.cnblogs.com/sinoyou/p/11512830.html

CVPR 2018 Social GAN、CVPR 2019 Sophie、NIPS 2019 Social-BiGAT、CVPR 2019 Social Ways | 基于GAN的行人轨迹预测相关推荐

  1. CVPR 2018 论文解读集锦(9月26日更新)

    本文为极市平台原创收集,转载请附原文链接: https://blog.csdn.net/Extremevision/article/details/82757920 CVPR 2018已经顺利闭幕,目 ...

  2. CVPR 2018 论文解读集锦

    之前我们整理过视觉顶级会议CVPR2017的论文解读文章 和ICCV 2017 论文解读集锦,CVPR 2018已经公布了所有收录论文名单,为了能够让大家更深刻了解CVPR的论文,我们进行了一些CVP ...

  3. CVPR 2018论文解读 | 基于域适应弱监督学习的目标检测

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  4. CVPR 2021 | ShapeInversion: 基于GAN逆映射的无监督点云补全方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 摘要 · 看点 在CVPR 2021上,商汤科技-南洋理工大学联合 AI 研究中心 S-Lab 提出了 ...

  5. 行人轨迹论文阅读SSAGCN: Social Soft Attention Graph Convolution Network for Pedestrian Trajectory Prediction

    SSAGCN: Social Soft Attention Graph Convolution Network for Pedestrian Trajectory Prediction SSAGCN: ...

  6. 行人轨迹论文:STUGCN:A Social Spatio-Temporal Unifying Graph Convolutional Network for Trajectory Predictio

    STUGCN:A Social Spatio-Temporal Unifying Graph Convolutional Network for Trajectory Prediction用于轨迹预测 ...

  7. CVPR 2018 论文解读 | 基于GAN和CNN的图像盲去噪

    作者丨左育莘 学校丨西安电子科技大学 研究方向丨计算机视觉 图像去噪是low-level视觉问题中的一个经典的话题.其退化模型为 y=x+v,图像去噪的目标就是通过减去噪声 v,从含噪声的图像 y 中 ...

  8. CVPR 2019轨迹预测竞赛冠军方法总结

    背景 CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文. ...

  9. CVPR 2018 | ETH Zurich提出利用对抗策略,解决目标检测的域适配问题

    CVPR 2018 | ETH Zurich提出利用对抗策略,解决目标检测的域适配问题 原创: Panzer 极市平台 今天 ↑ 点击蓝字关注极市平台 识别先机 创造未来 论文地址:https://a ...

最新文章

  1. C Primer Plus 第10章 数组和指针 10.5 指针操作
  2. Java报表工具FineReport常见的数据集报错错误代码和解释
  3. ASP.NET文件上传和下载
  4. BUUCTF-----actf_2019_babyheap (UAF)
  5. 重写0-1背包问题的回溯法,使算法能输出最优解
  6. 20应用统计考研复试要点(part23)--简答题
  7. SAP CRM和SAP Hybris的action profile
  8. Nacos(十二)之Java SDK
  9. 04751计算机网络安全讲解,【19份】04751计算机网络安全自考试卷_历年真题自考答案及解析_湖南080901计算机科学与技术(原B080702计算机及应用)专业-自考生资料网...
  10. 火柴棒等式(洛谷P1149题题解,Java语言描述)
  11. 代码对比工具 Top5
  12. error C2265: 'Unknown' : reference to a zero-sized array is illegal
  13. 叶面积指数(LAI)数据、NPP数据、GPP数据、植被覆盖度数据获取
  14. 字节码指令之对象的创建与访问指令
  15. matlab 工具箱 comsol 联,基于MATLAB与COMSOL联合仿真的电磁优化设计
  16. 如何恢复SVN被删除文件、文件夹
  17. 摄影是一门接地气的的艺术
  18. Linux节点释放,关于linux:如何释放Inode的使用量?
  19. win10安装kafka kafka_2.13-2.8.1
  20. 人工神经网络的结构基本上分为两类

热门文章

  1. 数据库连接报错提示connection is being used
  2. autojs遍历当前页面所有控件_纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表 - 葡萄城开发工具...
  3. 【计算机网络学习3】数据链路层
  4. Root检测与反检测
  5. 【Microsoft Azure 的1024种玩法】二十四.通过Azure Front Door 的 Web 应用程序防火墙来对 OWASP TOP 10 威胁进行防御
  6. Unbroken——坚不可摧
  7. 测试markdown语法
  8. cart算法实例matlab,matlab 决策树cart算法源代码
  9. 单相交流电机为什么需要电容才能正常启动?
  10. Samplitude pro x4完美汉化破解版|Samplitude pro x4 64位完美汉化破解版(附汉化包)下载 v15.0.1.139