zoukankan      html  css  js  c++  java
  • 文献阅读报告

    文献

    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,与此同时,文章在数据、训练等又有新的创新点。

    创新点

    1. 自动标注:受益于当今更加先进的2D laser and RGB-D sensors 和 3D LiDAR,使得移动机器人准确测量成为可能,文章模型评估时所使用的数据正是由上述两种sensors感应和自动标注完成的。
    2. 新增行人姿态和时间日期信息:模型的输入和输出在原有世界坐标系下二维坐标的基础上,增加转向角(yaw)方向坐标,形成了3DOF数据,评价指标在ADE基础上增加AEDE(平均欧拉角度误差);并且输入了兼顾长时间和短时间的日-小时-分-秒信息,使模型关注长时间下环境的变化。
    3. 长时常数据和动态训练长度:文章评估模型时所使用数据库之一的STANDS具有约3192h的信息记录,相比UCY、ETH等小于1小时的数据库时间跨度大幅提升,更符合移动机器人实际环境下的应用;同时,在训练时模型并不指定统一的seq_length,长度根据轨迹原有长度自动调整,只需定义最大长度并结合真值mask即可统计每条轨迹输出中的有效部分。

    Future Work

    1. 扩展L-CAS数据库(现时长小于1h)至数周时长。
    2. 调研Pose-LSTM在真实环境下动态学习训练的可能性。

    模型概述

    T-Pose-LSTM和Pose-LSTM仅在输入数据上有日期时间的差异,在介绍时以T-Pose-LSTM为中心。下图中我们可以看到T-Pose-LSTM的基本结构,其与轨迹预测的Vanilla LSTM基本模型是基本一致的:

    1. 默认具有三层的LSTM结构,但每层的LSTM Cell均共享一个权重系数以免增加权重。
    2. 场景中出现的每一条轨迹对应一个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,eta,gamma))表示,而是使用了**汉密尔顿四元数((q_x,q_y,q_z,q_w)) **,汉密尔顿四元数实际刻画四维空间的旋转,通常其用于表示特殊的旋转(三维空间中绕轴旋转):

    1. 给定三维轴向量((x,y,z)),对应四元数(q=(cos({ hetaover2}),sin({ heta over 2})*x,sin({ heta over 2})*y, sin({ heta over 2}) * z))(其中( heta)为旋转绕轴旋转角度)

    2. 四元数共轭为(q^{-1}=(cos({ hetaover2}),-sin({ heta over 2})*x,-sin({ heta over 2})*y, -sin({ heta over 2}) * z))

    3. 对于三维坐标中的待旋转点((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} ]

    4. 结论:根据四元数(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, ho, q_p^z,q_p^w))

    1. ((mu_x,mu_y,sigma_x,sigma_y, ho ))用于基于二维高斯分布求解二维坐标。
    2. ((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

    1. 场景:关护中心的服务机器人,历时19周,行走距离87km。
    2. 技术:自动标注,对于行人检测,使用kinect检测上肢,2D-laser检测下肢,二者合成卡尔曼滤波追踪框架。
    3. 数据:共采集17609个轨迹,平均时长22.6s。

    L-CAS

    1. 场景:林肯大学的大型室内空间-餐厅、咖啡店和休息区,包含挑战性轨迹如团队、小孩、手推车等。历时19分钟。
    2. 技术:Velodyne VLP-16 3D LiDAR
    3. 数据:共采集925个轨迹,平均时长13.5s。

    评价

    1. 对比模型:Social LSTM、Pose-LSTM、T-Pose-LSTM
    2. ADE - Average Distance Error
    3. 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}|,2pi-|r_p^{i,j} - r_{gt}^{i,j}|))
    4. STRANDS:(Delta t =1s),输入5s,预测后续的1-9秒。三分之二训练,其余预测。
    5. L-CAS:(Delta t = 0.4),输入3.2秒,预测后续4.8秒。三分之二训练,其余预测。

    High Lights

    1. STRANDS测试中,预测时间小于5秒时三种方法性能相近,5S后T-Pose-LSTM表现显著提升。
    2. STRANDS测试中,Pose-LSTM和Social-LSTM对比发现纵使没有提供时间信息,姿态信息也有助于提升位置判断的准确性。
    1. L-CAS测试中,Pose-LSTM的AEDE误差高达(35^o) ,这是因为使用贝叶斯追踪器自动标准静态人并不准确。
  • 相关阅读:
    redis报Cannot allocate memory错误
    Python输入输出
    leedcode题目 :罗马数字转整数 Java
    form 表单中input 使用disable属性
    今天开始学习
    equals的用法的注意事项
    mybatis的优缺点
    安装oracle出现环境不满足最低要求
    史上最形象易懂的java代理
    MySQL中光标的使用细节
  • 原文地址:https://www.cnblogs.com/sinoyou/p/11384505.html
Copyright © 2011-2022 走看看