网站首页 > 技术文章 正文
本篇文章试图解释描述深度学习模型Social-LSTM的研究论文
Social LSTM的动机
Social LSTM是一种模型,它可以根据行人过去的轨迹数据预测他们未来的轨迹(我们可以为其他类型的物体定制轨迹)。
与其他最先进的轨迹预测模型相比,Social LSTM的性能对比。更多的细节在“结果”部分
大多数早期的模型都受到以下两个假设的限制。
i)他们使用手工制作的函数来为特定设置建模“交互”,而不是以数据驱动的方式推断它们。这导致更倾向于捕捉简单相互作用(例如排斥/吸引)的模型,可能无法适用于更复杂的拥挤环境。
ii)他们专注于建模人与人之间的近距离互动(以避免直接碰撞)。然而,他们并没有预见到在更遥远的未来可能发生的互动。
这就是Social LSTM填补空白的地方。
如何做到的
该模型通过一个新的体系结构将相邻序列对应的lstm连接起来来解决这个问题。特别是,它引入了一个“社交”池化层,允许空间近端序列的lstm彼此共享其隐藏状态。这种结构可以自动学习在时间重合的轨迹之间发生的典型交互作用。该模型利用现有的人类轨迹数据集,而不需要任何额外的注释来学习人类在社会空间中观察到的常识性规则和约定。
怎么实现
模型假设每个场景(来自俯视图静态摄像机的帧序列)首先进行预处理,获得所有人在不同时刻的空间坐标。在任意时刻,场景中的i??人用其xy坐标(x??,y??)表示。我们观察时间1到T的所有人的位置???(输入序列),并预测他们在时间瞬间T???+ 1到T????(未来预测序列)的位置。
Social-LSTM模型概述。一个场景中的每个轨迹都有一个独立的LSTM网络。然后,lstm通过社交池(s池)层相互连接。与传统的LSTM不同,这个池化层允许空间上接近的LSTM彼此共享信息。' h?'表示人' x '的LSTM隐藏状态。底部一行显示了场景中一个人的s池。在一定半径内的所有lstm的隐藏状态被集中在一起,用作下一个时间步长的输入。
LSTM权值在所有序列中共享。
隐藏状态的社交池化(Social Pooling)
个体通过隐式推理邻近人的运动来调整他们的路径。这些邻居反过来又会受到周围环境中的其他人的影响,并可能随着时间的推移改变他们的行为。模型期望LSTM的隐藏状态来捕捉这些时变的运动特性。为了在多人之间共同推理,模型引入了“Social”池化层,如图2所示。在每个时间步长,LSTM小区从相邻的LSTM小区接收到池化的隐藏状态信息。
图中显示了由黑点表示的人的社会池。模型池的隐藏状态的邻居(显示为黄色,蓝色和橙色,用“h”值表示)在一定的空间距离内。池化部分地保留了邻居的空间信息,如最后两个步骤所示。
利用时间' t '的隐藏状态预测下一个时间步长' t+ 1 '的轨迹位置(x ',y ')????的分布。
结果
在测试期间,作者使用训练过的Social-LSTM(及其修改)模型来预测i??人的未来位置(x '??,y '??)。从时间T?????到T????,他们使用之前的Social-LSTM单元的预测位置(x '??,y '??)来代替真正的坐标(x??,y??)。
模型对比
线性模型(Lin):作者使用现成的卡尔曼滤波器来推断线性加速度的轨迹。
Collision avoidance(LTA):作者报告了只使用避碰能量的社会力模型的简化版本的结果,通常称为线性轨迹避碰。
Social force (SF):作者使用了社会力量模型的实现,从其中的几个因素,如群体亲和力和预测目的地已经建模。
迭代高斯过程(IGP):作者使用IGP的实现。与其他基线不同,IGP还使用了有关一个人最终目的地的额外信息。
传统LSTM (LSTM)。这是一个简化的Social -lstm模型,作者删除了“Social”池化层,并将所有轨迹视为彼此独立的。
occupancy maps LSTM (O-LSTM)。作者展示了简化版的social-lstm模型的性能。提醒一下,该模型只在每个时间实例上共用邻居的坐标
使用的测试指标
Average displacement error 平均位移误差-平均平方误差(MSE)在所有估计点的轨迹和真点的差值。
Final displacement error 最终位移误差-在预测期结束T????。预测的最终目的地和真正的最终目的地之间的距离
Average non-linear displacement error 平均非线性位移误差-是在一个轨迹的非线性区域的MSE。由于轨迹预测中的大多数误差发生在非线性转弯过程中,这是由于人类的相互作用,因此作者明确地评估了这些区域周围的误差。他们在二阶导数的范数上设置一个启发式阈值来识别非线性区域。
现实生活场景结果
作者可视化了4个人在一个场景中跨越6个时间步长的预测路径的概率分布。子标题描述了social-lstm模型的预测。在每一个时间步长:第1、3行实线表示ground-truth - future轨迹,虚线表示到该时间步长的观测位置,点表示该时间步长处的位置。注意,在具有非线性运动的挑战性环境中,该模型通常能够正确地预测未来的路径。注意,“T”代表时间,id(1到4)表示人的id。
Social-LSTM方法预测轨迹的说明。在前三行中,我们可以看到模型成功地预测轨迹的例子,误差很小(在位置和速度方面)。我们也可以看到其他的方法,如社会力量和线性方法。最后一行表示失败的情况,例如,人放慢速度或采取线性路径。
本文作者:Akhil Raj
论文地址:https://cvgl.stanford.edu/papers/CVPR16_Social_LSTM.pdf
- 上一篇: 用长期短期记忆(LSTM)预测以太坊价格模型
- 下一篇: 只需5行代码!LSTM时间序列建模以及预测
猜你喜欢
- 2024-10-15 【Python时序预测系列】基于多层LSTM实现单变量时间序列预测
- 2024-10-15 「深度学习」深度学习之LSTM 基于深度学习 lstm 的情感分析 京东商城数据
- 2024-10-15 使用2D卷积技术进行时间序列预测 卷积二维
- 2024-10-15 基于LSTM的双色球预测(二) 双色球预测系统分析
- 2024-10-15 【Python时序预测系列】粒子群算法优化LSTM实现单变量时序预测
- 2024-10-15 【Python时序预测系列】一文搞明白时序数据输入到LSTM模型的格式
- 2024-10-15 用AI预测北京雾霾?有Keras在手,LSTM可分分钟解决
- 2024-10-15 基于Keras的LSTM多变量时间序列预测
- 2024-10-15 【Python时序预测系列】SARIMA+LSTM组合模型实现单变量时序预测
- 2024-10-15 人工智能深度学习-TensorFlow基于LSTM的预测实例
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)