在这里插入图片描述

1.1.1 基本概念

当我们参与交通的时候, 通常会观察并猜测周围的交通参与者的行为, 比如说猜测对方是否会加速,变道等等. 基于这些猜测, 我们会进一步采取行动(比如减速避让)来避免潜在的危险. 对于自动驾驶系统, 预测其他交通参与者的行为, 由轨迹预测模块完成.

如上图所示, 轨迹预测的结果受到很多因素的影响:

  • 交通参与者的数量和种类 (车辆, 自行车, 行人等)
  • 交通参与者的相互影响 (Inter-dependencies between Vehicles, 即车辆之间 或者是车辆和行人之间的相互影响)
  • 交通参与者与环境的相互影响 (图中红绿灯对参与者的影响等)
  • 历史信息 (自车, 参与者过去的行为信息)
  • 观测的不确定性
  • 计算资源的多少

1.1.2 轨迹预测方法分类

轨迹预测的方法, 大体可以分为这样几类:

1.1.2.1 基于物理学的预测方法

主要是指基于车辆的物理学来进行预测的方法, 包括基于车辆动力学模型, 车辆运动学模型. 动力学模型的预测方法可能会非常复杂, 但是对于预测方法来说, 复杂的动力学模型带来的效果提升非常有限. 在大部分情况下, 简单的运动学模型(通常使用自行车模型)即可满足预测需求.

基于物理学的预测是最早被使用, 同时也是最简单的预测方法. 主要的方法有:

  • 恒速度预测方法
  • 恒加速度预测方法
  • 恒转向速度预测方法

1.1.2.2 基于经典机器学习的预测方法

经典机器学习是采用数据驱动的预测方法, 主要通过挖掘数据特征来确定概率发布. 主要的方法有:

  • 高斯过程(Gaussian Process)
  • 支持向量机(SVM)
  • 隐马尔科夫过程(HMM)
  • 动态贝叶斯网络(Dynamic Bayesian Network)

1.1.2.3 基于深度学习的预测方法

在深度学习逐渐占据主流之后, 基于深度学习的预测方法也成了学界和业界最主流的预测方法.

因为深度学习不仅能考虑目标和环境的物理信息, 还能考虑到他们之间的交互信息, 这极大的提升了预测结果的质量. 这也是本课程主要讲解的预测方法, 主要有以下分类:

  • 卷积神经网络(CNN)
  • 循环神经网络(RNN)
  • 图神经网络(GNN)
  • 注意力机制

1.1.2.4 基于强化学习的预测方法

强化学习的预测方法一般是用来生成自车的预测轨迹, 大部分方法都基于马尔科夫过程(MDP)来最大化累计期望收益. 强化学习的预测方法能够更深入的考虑自车与目标的交互过程, 但是需要高昂的计算成本和训练时间.

  • 逆强化学习(IRL)
  • 深度逆强化学习(DIRL)

1.2 输入和输出定义

轨迹预测问题可以表述为: 给定场景信息, 基于交通参与者的历史状态, 预测他们未来的状态. 不管是基于物理学的方法, 还是基于深度学习, 强化学习的方法, 轨迹预测的输入输出大体都是类似的.

本节将定义轨迹预测的输入输出.

1.2.1 轨迹预测的输入

agent指交通参与者, 可以是预测目标本身, 也可以是预测目标附近的交通参与者.

首先我们将第iii个agent在时刻ttt的状态, 定义为:

Xit={xit,yit,vit,θit,...} \boldsymbol{X}^t_i=\left\{x_i^t, y_i^t,v_i^t,\theta_i^t,...\right\} Xit={xit,yit,vit,θit,...}

状态包括:(x,y)(x,y)(x,y)坐标, 速度, 航向角等等状态信息

  • agent的历史状态信息

iii个agent的历史信息, 可以定义为:

HistoryXi={Xit−h,Xit−h+1,…,Xit} \boldsymbol{HistoryX}_i=\left\{{X}^{t-h}_i, {X}^{t-h+1}_i, \ldots, {X}^{t}_i\right\} HistoryXi={Xith,Xith+1,,Xit}

hhh代表历史时间步长, Xit−h{X}^{t-h}_iXith代表当前时间之前hhh时间步长的状态, Xit{X}^{t}_iXit代表当前时间的状态.

  • 地图信息: lane

如果我们将折线定义为一组向量, 其中第iii个线段的首末点构成向量:

veci={xiend−xistart,yiend−yistart} \boldsymbol{vec}_i=\left\{x_i^{end}-x_i^{start}, y_i^{end}-y_i^{start}\right\} veci={xiendxistart,yiendyistart}

那么lane可以定义为:

Lanej={central_vecj,left_vecj,right_vecj,turn_typej,vlimit,...} \boldsymbol{Lane}_j=\left\{{central\_vec}_j,{left\_vec}_j,{right\_vec}_j,turn\_type_j,v_{limit},...\right\} Lanej={central_vecj,left_vecj,right_vecj,turn_typej,vlimit,...}

central_vecj,left_vecj,right_vecj{central\_vec}_j,{left\_vec}_j,{right\_vec}_jcentral_vecj,left_vecj,right_vecj分别代表中心线, 左边界和右边界对应的向量.

turn_typejturn\_type_jturn_typej代表lane的属性:直行, 左转, 右转等等

vlimitv_{limit}vlimit代表lane的最高限速

也可以加入lane的曲率等其他信息

  • 地图信息: 特殊区域

地图存在一些特殊的区域, 比如说人行道crosswalk, 禁停区等等, 可以用多边形(n个vecvecvec)表达边界:

polygonj={vec1,vec2,...vecn} {polygon}_j=\left\{{vec}_1,{vec}_2,...{vec}_n\right\} polygonj={vec1,vec2,...vecn}

这样我们可以定义特殊区域为:

Zonej={polygonj,polygon_type} \boldsymbol{Zone}_j=\left\{{polygon}_j,polygon\_type\right\} Zonej={polygonj,polygon_type}

  • 地图信息: 红绿灯

t时刻的红绿灯信息定义为:

Lightsjt={position,light_typet} \boldsymbol{Lights}_j^t=\left\{{position},light\_type^t\right\} Lightsjt={position,light_typet}

positionpositionposition是指红绿灯的位置

light_typelight\_typelight_type指红绿灯的状态: 红灯, 绿灯, 黄灯等等

1.2.2 轨迹预测的输出

  • 预测轨迹

一般而言, 轨迹预测会输出一条或者多条时间序列下的离散点集, 也就是轨迹. 当输出轨迹不止1条时, 称之为多模态. 如图目标车辆有红色和绿色两条预测轨迹:

将第iii个agent的第jjj条预测轨迹定义为:

Yij={Xit+1,Xit+2,…,Xit+tf} \boldsymbol{Y}_i^j=\left\{{X}^{t+1}_i,{X}^{t+2}_i, \ldots, {X}^{t+t_f}_i\right\} Yij={Xit+1,Xit+2,,Xit+tf}

tft_ftf代表预测轨迹的时间步长数.

  • 意图

有一些预测方法, 也可以输出目标的行为意图(intention), 比如说cut-in,换道等.

参考论文:

  • Huang, Yanjun, et al. “A survey on trajectory-prediction methods for autonomous driving.” IEEE Transactions on Intelligent Vehicles 7.3 (2022): 652-674.

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐