概述

本文献是一篇文献综述,以自动驾驶载具对外围物体行动轨迹的预测为切入点,介绍了基于运动学(kinematics-based)和基于机器学习(learning-based)的两大类预测方法。

并选择了基于机器学习的六种具体方法(GP、LSTM、GP-LSTM、Character-based LSTM、Seq2Seq、Seq2Seq with Attention)做量化对比性研究,利用增强的行人过/停马路的数据,使用轨迹平均误差和终点误差作为衡量标准,最终结果显示,常规Seq2Seq模型(Vanilla Seq2Seq - 即不带有注意力转移优化的模型)在六种方法中表现均为最好,能够做到在常规情况下,对行人1s后的位置预测误差小于15cm。

贡献与创新点:

  1. 构建汽车-行人过马路的情形对6中机器学习方法进行比较评估。
  2. 依赖现有的数据库,使用数据增强方法,形成可供机器学习模型使用的数据量。
  3. Vanilla Seq2Seq模型的表现相对6中方法最佳。

模型概述

基于运动学的模型(有待细致研究)

IMMs(Interacting Multiple Models):综合多种单一的运动学模型,提供更高准确性(up to 30 cm)。

SLDS(Switching Linear Dynamic System):基于马尔科夫链概率转移,在多种线性运动学模型间切换,从而处理实际情况中非线性的运动情况。

DBN(Dynamic Bayesian Network):除了SLDS考虑的运动学特征,将行人头部偏移、距离、环境等潜在因素纳入考虑,提供更高准确性。

问题:数学模型属于计算集中型,对载具设备的算力要求比较大。

基于机器学习的模型

GP(Gaussian Processes):高斯过程,一种无参数的机器学习方法,其假设了序列数据所呈现的高斯过程特点,通过此概率分布求出特定时间点的预测结果。GP模型的核心是协方差函数(核心函数),\(\mu, \theta\)为协方差函数的超参数,也是需要通过训练得到的,数据训练主要就是为求得以上两个参数。(此部分内容待深入研究)

LSTM(Long Short-Term Memory):经典的序列模型,相较于传统RNN模型,新增Cell State传递状态和Cell中的复杂逻辑门以保证数据在长序列传递时梯度消失与爆炸问题。

GP-LSTM:将GP模型作为外壳,LSTM作为GP模型的核心参数以更好适应序列模型的回归任务,以达到将输入的序列集合转换成GP模型所需要的实数。

Character-based LSTM:与传统LSTM相同的是,均使用LSTM做序列回归任务;与传统LSTM不同的是,C-LSTM在输入一个轨迹序列后每次均只生成下一个时间点的数据,在概率分布满足二维高斯分布的条件下,用线性变化矩阵得到二维高斯分布的5个参数,进而确定下一时刻所在的位置。

Seq2Seq:由Encoder和Decoder组成,之间以一个高维向量\(c\)衔接,Encoder和Decoder均可用LSTM实现,下一步预测依赖于上一步预测的结果。

\[P(Y_{k+m+1}|Y_{k+1:k+m}) = g(h_{k+m+1}, y_{k+1:k+m},c)\]

Attention-based Seq2Seq:在Seq2Seq上进一步优化,避免高维向量\(c\)所传递信息的有限性,使得每步预测时自适应地带权选择Encoder的输出内容。

\[P(Y_{k+m+1}|Y_{k+1:k+m}) = g(h_{k+m+1}, y_{k+1:k+m},c_{k+m+1})\]

对比实验细节

数据

  1. 数据库:Daimler pedestrian path prediction benchmark dataset,数据由车载立体摄像头(22 cm, 16 fps, 1176 * 640 pixels)的记录处理得到。

    1. Positional Ground Truth - 人工标记bounding box
    2. Head Orientation - 头部识别与方向检测
    3. Minimum Distance between pedestrian & vehicle - Position + Velocity(车载传感与行人加速度估计)
  2. 数据属性:数据为行人的序列数据,序列时长需大于2秒(前1秒用作obs,后1秒用作pred)将数据提取为\(\{X,Y\}\),其中\(X\)为已知轨迹的序列向量,\(Y\)为预测轨迹的序列向量,序列时间片为frame(16.3 frames = 1 secs ​with 0.1 std derivation),\(Y\)为行人从汽车侧方向维度相对的距离,选择行人后脚踩在路边停止线(或离停止线最近)的时刻作为事件发生的基准时刻。

  1. 数据分类:

    文献选取了数据库的数据对58份数据进行了分类,分别是穿过-停止的维度和常规-硬核的维度,选取这两个划分类别的原因旨在分别比较这四种图像差异大的轨迹对学习模型的影响与挑战。

    四种轨迹分布如上文图所示:

    穿过(Cross) 停止(Stop)
    常规(Normal) 线性,穿过 缓慢减速,至TTE=0时梯度为0,停止在马路停止线上(或后)
    (Hard) 较常规型存在非线性的拉伸,穿过 减速发生十分滞后,减速极快,至TTE=0时梯度为0,停止在马路停止线上(或后)
  2. 数据增强(58份真实数据 --> 3700份加强数据)

    方法 描述
    Rotation(旋转) 在上述{X,Y}图示中,绕序列中间点产生小幅度旋转。
    Stretch(拉伸) 对于穿过(Crossing)型的序列,保持起终点不变进行拉伸;对于停止(Stop)型序列,线性拉伸与非线性拉伸皆有。
    Translation(平移) 将序列沿Y维度小幅度上下平移。
  3. 衡量指标

    平局欧拉距离误差:\(ME_{lat} = {1 \over MN_p}\sum_{i=1}^{M} \sum^{k_{obs}+N_p}_{k = k_{obs}+1} ||x_k^i - \hat{x_k^i}||\)

    终点欧拉距离误差:\(FE_{lat} = {1 \over M}\sum_{i=1}^{M} ||x_{k_{obs}+N_p}^i - \hat{x_{k_{obs}+N_p}^i}||\)

  4. 实验结果

    1. 单步预测稳定性、准确性优于多步预测GP、LSTM、GP-LSTM属于轨迹多步预测,输入已知轨迹序列,输出多个预测轨迹序列;C-LSTM,Seq2Seq,attention-based Seq2Seq属于轨迹单步预测,除已知序列外,每步轨迹预测会递归迭代用于下一步轨迹预测。实验结果表明,单步预测整体上从数据稳定性和准确性均优于多步预测。
    2. 相对来说:Vanilla Seq2Seq各维度表现均最优,注意力优化效果不佳:基于LSTM的Seq2Seq模型在6中方法中表现最佳,此模型的注意力自适应权重优化呈现负优化现象。
    3. 绝对来说:Vanilla Seq2Seq模型尚存较大改进空间:一是在Hard(Cross/Stop)情况下,原始数据少,预测难度上升,预测误差显著上升;二是预测误差随预测时长显著提升(0.5 VS 1);三是考虑环境单纯,交通环境、路面状态、人交互等均尚未纳入考虑。

改进方向总结

  1. Seq2Seq models with probabilistic graphical models.
  2. Hard Crossing/Stopping: data collection & augmentation ;prediction accuracy
  3. Multiple information considered when making prediction.

相关问题

数据类别划分

  1. 引用文献中详细探讨了该数据库的收集方法和考虑因素,其中所提到的三个考虑角度并未考虑Normal-Hard这样的分类模式,这样的分类措施是否恰当还需研究。
  2. 原文中没有给出区分Normal-Hard类型的度量标准,也未提供相应的参考文献,特别是在判断Cross状态下Normal和Hard类型。

Attention-based Seq2Seq 实现完整性

根据基于注意力的Seq2Seq模型论文,编码器Encoder应为BiRNN(双向RNN模型),在本文模型中为单向的LSTM模型,其对模型的效果影响有待探究。

文献阅读报告 - Pedestrian Trajectory Prediction With Learning-based Approaches A Comparative Study的更多相关文章

  1. 文献阅读报告 - 3DOF Pedestrian Trajectory Prediction

    文献 Sun L , Yan Z , Mellado S M , et al. 3DOF Pedestrian Trajectory Prediction Learned from Long-Term ...

  2. 文献及代码阅读报告 - SS-LSTM:A Hierarchical LSTM Model for Pedestrian Trajectory Prediction

    概览 简述 SS-LSTM全称Social-Scene-LSTM,是一种分层的LSTM模型,在已有的考虑相邻路人之间影响的Social-LSTM模型之上额外增加考虑了行人背景的因素.SS-LSTM架构 ...

  3. 文献阅读报告 - Social LSTM:Human Trajectory Prediction in Crowded Spaces

    概览 简述 文献所提出的模型旨在解决交通中行人的轨迹预测(pedestrian trajectory prediction)问题,特别是在拥挤环境中--人与人交互(interaction)行为常有发生 ...

  4. 文献阅读报告 - Situation-Aware Pedestrian Trajectory Prediction with Spatio-Temporal Attention Model

    目录 概览 描述:模型基于LSTM神经网络提出新型的Spatio-Temporal Graph(时空图),旨在实现在拥挤的环境下,通过将行人-行人,行人-静态物品两类交互纳入考虑,对行人的轨迹做出预测 ...

  5. 文献阅读报告 - 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 ...

  6. 文献阅读报告 - Context-Based Cyclist Path Prediction using RNN

    原文引用 Pool, Ewoud & Kooij, Julian & Gavrila, Dariu. (2019). Context-based cyclist path predic ...

  7. 文献阅读报告 - Social BiGAT + Cycle GAN

    原文文献 Social BiGAT : Kosaraju V, Sadeghian A, Martín-Martín R, et al. Social-BiGAT: Multimodal Trajec ...

  8. 文献阅读报告 - Move, Attend and Predict

    Citation Al-Molegi A , Martínez-Ballesté, Antoni, Jabreel M . Move, Attend and Predict: An Attention ...

  9. 文献阅读报告 - 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 ...

随机推荐

  1. javascript 原型链污染

    原理①javascript中构造函数就相当于类,并且可以将其实例化 ②javascript的每一个函数都有一个prototype属性,用来指向该构造函数的原型同样的javascript的每一个实例对象 ...

  2. memortstream Base64编码和filestream base64编码不同

    memorystream base64 function BaseImage(fn: string): string; var   m1: TMemoryStream;   m2: TStringSt ...

  3. 剑指offer自学系列(一)

    题目描述:输入n个整数,找出其中最小的k个数,例如,输入{4,5,1,6,2,7,3,8}这8个数字,最小的4个数字是1,2,3,4 题目分析:首先我能想到的是先对数组排序,从小到大,然后直接输出想要 ...

  4. Linux学习《第四章shell脚本练习一》随堂练习(重要)

  5. POJ 1151:Atlantis 线段树+扫描线

    Atlantis Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19374   Accepted: 7358 Descrip ...

  6. Spring Boot2(007):关于Spring beans、依赖注入 和 @SpringBootApplication 注解

    一.关于Spring beans 和 依赖注入(Dependency Injection) spring boot 和 Spring 全家桶无缝衔接,开发过程中可以很轻松地使用 Spring 全家桶的 ...

  7. tf.argmax()函数作用

    tf.argmax()函数原型: def argmax(input, axis=None, name=None, dimension=None, output_type=dtypes.int64) 作 ...

  8. 剑指offer - 栈的压入弹出序列 - JavaScript

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列 1,2,3,4,5 是某栈的压入顺序,序列 4,5,3,2,1 ...

  9. 071-PHP数组合并

    <?php $arr1=array('a','b','c'); //定义一个数组 echo '数组$arr1的信息:<br />'; print_r($arr1); //输出数组信息 ...

  10. NumPy 基于已有数据创建数组

    原文:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...