文献阅读报告 - 3DOF Pedestrian Trajectory Prediction
文献
Sun L , Yan Z , Mellado S M , et al. 3DOF Pedestrian Trajectory Prediction Learned from Long-Term Autonomous Mobile Robot Deployment Data[J]. 2017.

概览
文章所提出的模型基于LSTM框架,旨在预测行人的姿态信息(位置坐标和朝向)。就模型本身而言,其结构基本与Vanilla LSTM保持一致,不具有共享LSTMs信息的池化层结构,但数据有所改变:数据为3DOF行人姿态的称作Pose-LSTM,数据为3DOF行人姿态+Time的称作T-Pose-LSTM,与此同时,文章在数据、训练等又有新的创新点。
创新点
- 自动标注:受益于当今更加先进的2D laser and RGB-D sensors 和 3D LiDAR,使得移动机器人准确测量成为可能,文章模型评估时所使用的数据正是由上述两种sensors感应和自动标注完成的。
- 新增行人姿态和时间日期信息:模型的输入和输出在原有世界坐标系下二维坐标的基础上,增加转向角(yaw)方向坐标,形成了3DOF数据,评价指标在ADE基础上增加AEDE(平均欧拉角度误差);并且输入了兼顾长时间和短时间的日-小时-分-秒信息,使模型关注长时间下环境的变化。
- 长时常数据和动态训练长度:文章评估模型时所使用数据库之一的STANDS具有约3192h的信息记录,相比UCY、ETH等小于1小时的数据库时间跨度大幅提升,更符合移动机器人实际环境下的应用;同时,在训练时模型并不指定统一的
seq_length,长度根据轨迹原有长度自动调整,只需定义最大长度并结合真值mask即可统计每条轨迹输出中的有效部分。
Future Work
- 扩展L-CAS数据库(现时长小于1h)至数周时长。
- 调研Pose-LSTM在真实环境下动态学习训练的可能性。
模型概述
T-Pose-LSTM和Pose-LSTM仅在输入数据上有日期时间的差异,在介绍时以T-Pose-LSTM为中心。下图中我们可以看到T-Pose-LSTM的基本结构,其与轨迹预测的Vanilla LSTM基本模型是基本一致的:
- 默认具有三层的LSTM结构,但每层的LSTM Cell均共享一个权重系数以免增加权重。
- 场景中出现的每一条轨迹对应一个LSTM序列,但序列之间是完全独立的,没有池化层等信息交流的途径。

数据规范
给定已知随时间变化(间隔为\(\Delta t\))的轨迹信息\(O:\{o_t, ...,o_{t+n+1}\}\),模型实质为\(\{o_t, ..., o_{t+n}\}\)与\(\{o_{t+1},...,{o_{t+n+1}}\}\)之间的encoder-decoder。对于原始的\(o_t\)数据应为6DOF——六自由度数据:
\[o_t = \{x,y,z,q_x,q_y,q_z,q_w\}\]
但基于行人的水平面高度是固定的,只具有偏航(yaw)的角度自由度,因此\(o_t\)可以被简化为:
\[o_t = \{x,y,z,q_z,q_w\}\]
数据规范中的一个重点是6DOF格式数据,其是用于衡量刚体的姿态信息的数据规格,包括三个空间坐标和三个沿轴旋转的角度。对于三维空间中的角度变换,文章中的数据并没有熟悉的三维角度坐标\((\alpha,\beta,\gamma)\)表示,而是使用了汉密尔顿四元数\((q_x,q_y,q_z,q_w)\) ,汉密尔顿四元数实际刻画四维空间的旋转,通常其用于表示特殊的旋转(三维空间中绕轴旋转):
给定三维轴向量\((x,y,z)\),对应四元数\(q=(cos({\theta\over2}),sin({\theta \over 2})*x,sin({ \theta \over 2})*y, sin({\theta \over 2}) * z)\)(其中\(\theta\)为旋转绕轴旋转角度)
四元数共轭为\(q^{-1}=(cos({\theta\over2}),-sin({\theta \over 2})*x,-sin({ \theta \over 2})*y, -sin({\theta \over 2}) * z)\)
对于三维坐标中的待旋转点\((w_x,w_y,w_z)\),生成其纯四元数\(q_w=(0,w_x,w_y,w_z)\),则其绕轴旋转后的四元数(也就是坐标)为:
\[(0,w_x',w_y',w_z') = q * q_w * q^{-1}\]
结论:根据四元数\(q\)的定义方式,我们就可以知道为什么6DOF数据中\((q_x,q_y,q_z,q_w)\)在仅有偏航旋转(绕z轴旋转)的假设上变化为\((0,0,q_z,q_w)\)。
安利有关四元数的原理和应用的知乎回答,上文也摘编自其。
如何形象地理解四元数? - Yang Eninala的回答 - 知乎
https://www.zhihu.com/question/23005815/answer/33971127
模型公式
LSTM迭代公式:
\[h_{t+1} = LSTM(\phi(o_i,W_e),h_t;W_l)\]
模型预测输出格式:\((\mu_x,\mu_y,\sigma_x,\sigma_y,\rho, q_p^z,q_p^w)\):
- \((\mu_x,\mu_y,\sigma_x,\sigma_y,\rho )\)用于基于二维高斯分布求解二维坐标。
- \((q_p^z,q_p^w)\)合成为\((0,0,q_p^z,q_p^w)\)四元数,用于计算方向姿态。
损失函数
\[loss = \Sigma^N_i \Sigma^n_j(-log(PDF((x_{gt},y_{gt})^{i,j},N^{i,j}(\mu,\sigma)))+||r_p^{i,j} - r_{gt}^{i,j}||^2 + \lambda ||W||_2)\]
模型的损失函数由三部分组成:第一部分是二维坐标损失,其计算基于输出是二维高斯分布的假设,PDF-Gaussian Probabilistic-Density-Function 所求的其实就是\((x_{gt},y_{gt})\)在预测高斯分布下的概率密度;第二部分是角度偏向损失,使用欧拉角度距离;第三部分是L2正则化损失函数,防止神经网络过拟合。
之前提到过模型训练需支持动态序列长度,因此用于存储序列数据的向量长度并未和序列真实长度一致,因此需要使用mask去除无关的loss,\(1[.,.]\)是真值函数:
\[loss_{batch} = 1_i[row_i,col_j] \odot [loss_i]\]
实验
数据集
文章所用的均是新数据集-STRANDS、L-CAS,分别由装载在可移动机器人上的2D with depth sensor和3D LiDAR采集,并都将坐标转换到了世界坐标系下。
STRANDS
- 场景:关护中心的服务机器人,历时19周,行走距离87km。
- 技术:自动标注,对于行人检测,使用kinect检测上肢,2D-laser检测下肢,二者合成卡尔曼滤波追踪框架。
- 数据:共采集17609个轨迹,平均时长22.6s。
L-CAS
- 场景:林肯大学的大型室内空间-餐厅、咖啡店和休息区,包含挑战性轨迹如团队、小孩、手推车等。历时19分钟。
- 技术:Velodyne VLP-16 3D LiDAR
- 数据:共采集925个轨迹,平均时长13.5s。

评价
- 对比模型:Social LSTM、Pose-LSTM、T-Pose-LSTM
- ADE - Average Distance Error
- AEDE - Average Eulerian angle Difference Error \({1 \over {N*n}}\Sigma^N_i \Sigma^n_j min (|r_p^{i,j} - r_{gt}^{i,j}|,2\pi-|r_p^{i,j} - r_{gt}^{i,j}|)\)
- STRANDS:\(\Delta t =1s\),输入5s,预测后续的1-9秒。三分之二训练,其余预测。
- L-CAS:\(\Delta t = 0.4\),输入3.2秒,预测后续4.8秒。三分之二训练,其余预测。
High Lights
- STRANDS测试中,预测时间小于5秒时三种方法性能相近,5S后T-Pose-LSTM表现显著提升。
- STRANDS测试中,Pose-LSTM和Social-LSTM对比发现纵使没有提供时间信息,姿态信息也有助于提升位置判断的准确性。

- L-CAS测试中,Pose-LSTM的AEDE误差高达\(35^o\) ,这是因为使用贝叶斯追踪器自动标准静态人并不准确。

文献阅读报告 - 3DOF Pedestrian Trajectory Prediction的更多相关文章
- 文献阅读报告 - Situation-Aware Pedestrian Trajectory Prediction with Spatio-Temporal Attention Model
目录 概览 描述:模型基于LSTM神经网络提出新型的Spatio-Temporal Graph(时空图),旨在实现在拥挤的环境下,通过将行人-行人,行人-静态物品两类交互纳入考虑,对行人的轨迹做出预测 ...
- 文献阅读报告 - Context-Based Cyclist Path Prediction using RNN
原文引用 Pool, Ewoud & Kooij, Julian & Gavrila, Dariu. (2019). Context-based cyclist path predic ...
- 文献及代码阅读报告 - SS-LSTM:A Hierarchical LSTM Model for Pedestrian Trajectory Prediction
概览 简述 SS-LSTM全称Social-Scene-LSTM,是一种分层的LSTM模型,在已有的考虑相邻路人之间影响的Social-LSTM模型之上额外增加考虑了行人背景的因素.SS-LSTM架构 ...
- 文献阅读报告 - Social LSTM:Human Trajectory Prediction in Crowded Spaces
概览 简述 文献所提出的模型旨在解决交通中行人的轨迹预测(pedestrian trajectory prediction)问题,特别是在拥挤环境中--人与人交互(interaction)行为常有发生 ...
- 文献阅读报告 - Pedestrian Trajectory Prediction With Learning-based Approaches A Comparative Study
概述 本文献是一篇文献综述,以自动驾驶载具对外围物体行动轨迹的预测为切入点,介绍了基于运动学(kinematics-based)和基于机器学习(learning-based)的两大类预测方法. 并选择 ...
- 文献阅读报告 - Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs
文献引用 Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian T ...
- 文献阅读报告 - Social BiGAT + Cycle GAN
原文文献 Social BiGAT : Kosaraju V, Sadeghian A, Martín-Martín R, et al. Social-BiGAT: Multimodal Trajec ...
- 文献阅读报告 - Move, Attend and Predict
Citation Al-Molegi A , Martínez-Ballesté, Antoni, Jabreel M . Move, Attend and Predict: An Attention ...
- 文献阅读报告 - Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks
paper:Gupta A , Johnson J , Fei-Fei L , et al. Social GAN: Socially Acceptable Trajectories with Gen ...
随机推荐
- Vue + Webpack 根据不同环境打包
修改 prod.env.js // 当前正在运行的脚本名称 const TARGET = process.env.npm_lifecycle_event // 第一个参数 let argv = pro ...
- js左右选项移动
<!--网页代码--><div class="modal" id="modal-primary7"> <div class=&qu ...
- Tornado -- 7 - 查询结果
查询结果 查询结果总结: 条件查询 多表查询
- PAT (Advanced Level) 1140~1143:1140模拟 1141模拟 1142暴力 1143 BST+LCA
1140 Look-and-say Sequence(20 分) 题意:观察序列D, D1, D111, D113, D11231, D112213111, ...,显然后一个串是对前一个串每一小段连 ...
- POJ - 1847 Tram(dijkstra)
题意:有向图有N个点,当电车进入交叉口(某点)时,它只能在开关指向的方向离开. 如果驾驶员想要采取其他方式,他/她必须手动更换开关.当驾驶员从路口A驶向路口B时,他/她尝试选择将他/她不得不手动更换开 ...
- vscode spring boot配置文件application.properties不提示解决方式
背景 因实际的编程环境是jdk1.6,vscode安装了spring boot tools开发后,application.properties无法提示.spring boot tools的功能之一就是 ...
- mac flutter 创建过程及遇到的问题
参考: 1.入门: 在macOS上搭建Flutter开发环境 系统要求 2.mac配置环境变量 1.打开终端 2.clone flutter 命令: git clone -b beta https:/ ...
- centos 禁用ip v6
# sysctl -w net.ipv6.conf.all.disable_ipv6=1 # sysctl -w net.ipv6.conf.default.disable_ipv6=1 # s ...
- Docker 学习之mysql与redis(二)
在上一随笔中主要就是记录docker的基本使用以及nginx与php服务器的配置:在这一章将主要记录docker安装mysql与redis. 本节随笔参考网址:https://www.runoob.c ...
- Windows系统查看端口被那些进程使用
Windows系统查看端口被那些进程使用注:当前Windows为虚拟机环境1. 打开命令提示符:开始-运行-cmd2. 列出使用端口的PID: netstat -abno -a 显示所有连接和侦听端口 ...