基于LSTM的自动驾驶策略建模

部署运行你感兴趣的模型镜像

基于LSTM和Waymo开放数据集的自动驾驶模型

1. 引言

1.1. 动机

可靠的驾驶策略在开发有效的自动驾驶车辆系统中起着至关重要的作用,这也是研究人员面临的基本挑战之一。由于自动驾驶制造商的知识产权保护,目前没有任何文档揭示在公共道路上运行的现有自动驾驶测试车队是如何被编程来驾驶以及与其他道路使用者进行交互的,这为外部人员开发自动驾驶策略以进行后续研究形成了障碍。因此,学术研究人员不得不在其模型或仿真中对自动驾驶车辆组件做出各种假设,而这些假设可能无法真实反映基于仿真的研究中的实际交互情况。

Waymo近期发布的丰富多样的自动驾驶数据集[1,2]在模式识别、三维检测和跟踪方面引起了学术界的关注。然而,研究人员可能更感兴趣的是生成该数据集的Waymo汽车所采用的难以获取的驾驶策略。结合行为克隆的思想与大规模的Waymo数据集,可以有效解决实际驾驶策略缺失的问题。为此,本文提出了一种新颖的基于长短期记忆(LSTM)的模型,用于研究该数据集中反映的潜在驾驶策略。

1.2. 研究目标

本文中,问题是学习一个自动驾驶策略模型,使得给定的Waymo开放数据集最有可能由此生成。该策略模型在环境处于特定运动状态时生成相应的驾驶动作。响应指的是瞬时加速度a(包括大小和转向角)。在实际情况下,a可通过控制油门踏板和刹车来产生。环境被定义为描述自动驾驶车辆周围环境的可测量变量,包括12个运动学参数和距离度量。这些变量由安装在Waymo汽车上的雷达、激光雷达、摄像头和其他传感器采集。

1.3. 贡献

据我们所知,本文是首个利用Waymo传感器数据为现有5级自动驾驶汽车开发驾驶模型的研究。由于制造商的知识产权保护,目前尚无任何文档披露现有的自动驾驶车队在公共道路上是如何被编程来驾驶并与其它道路使用者进行交互的。因此,学术研究人员在控制器设计之前不得不做出各种假设。我们的工作可以作为交通领域中自动驾驶车辆相关研究的通用自动驾驶模型。具体而言,我们做出了以下贡献:
- 设计具有编码器‐解码器结构的先进LSTM策略模型,该结构包含多个堆叠LSTM单元;
- 通过与基线进行比较,评估所提出的基于LSTM的策略;以及
- 研究使用不同的特征集作为输入对模型的性能和训练效率的影响。

这项工作展示了如何高效利用公开的自动驾驶汽车数据集来学习复杂自动驾驶系统的代理,而不是基于可能不切实际的假设来实现自动驾驶车辆模型。学习得到的自动驾驶汽车模型为许多后续研究奠定了基础,例如研究混合交通中的某些现象,这在交通领域备受关注。

2. 相关工作

2.1. 行为克隆

行为克隆是一种模仿人类驾驶员操作的流行方法。来自GPU技术公司英伟达的博贾尔斯基等人[3]提出了一种卷积神经网络(CNN)来模仿驾驶行为并预测转向指令。该训练好的神经网络可将单个前向摄像头的原始像素映射为基本的转向指令。该系统能够成功应对复杂场景,例如视线模糊区域或未铺砌的道路。

2.2. 卷积神经网络

卷积神经网络(CNN)是计算机视觉领域中广泛应用的一种机制。2012年,克里热夫斯基等人[4]提出了一种使用卷积神经网络的新型深度学习架构,并在ImageNet[5]竞赛中展示了其卓越性能。西蒙扬和齐斯曼[6]提出了与AlexNet相比,更深的卷积神经网络,证明了更深的模型具有更强的能力和更低的错误率。为了开发更深层的网络模型,Szegedy等人[7]提出了Inception的概念,提高了网络内部计算资源的利用率。此外,He等人[8]提出了著名的卷积神经网络ResNet,通过添加残差块进一步增加了网络深度,达到了惊人的152层。随后,He等人通过引入恒等映射对ResNet进行了改进。[9] Liao等人[10]已成功将改进的ResNet应用于出租车需求预测。在本研究中,改进的ResNet被用作Waymo数据集中摄像头图像的特征提取器。

2.3. 循环神经网络

循环神经网络(RNN)在处理时间序列数据方面具有优势,因其能够通过内部状态存储信息,从而在时间和动态上表现出色。LSTM网络是RNN的改进版本,解决了原始RNN中存在的梯度消失或梯度爆炸问题[11]。因此,许多研究人员在各种时间序列任务中采用LSTM作为主要模型,例如机器翻译[12]、活动识别[13]、和轨迹预测[14]。

2.4. 轨迹预测

在轨迹预测问题中,未来的预测通常基于过去的经验或先前轨迹的历史信息。因此,专为处理时间序列数据而设计的LSTM在此类任务中可能表现良好。Alahi等人[14]提出了一种新颖的LSTM模型,用于在拥挤空间中预测人类轨迹;Xue等人[15]则引入了更多包括占据图和相机图像在内的信息,以构建一个鲁棒的行人轨迹预测模型。这些思路在预测车辆轨迹方面同样有效,因为车辆与行人在一定程度上具有共同运动模式。受其工作的启发,我们将考虑使用基于LSTM的方法来处理Waymo数据集中的时间序列数据,并学习其背后的驾驶策略。此外,非基于LSTM的方法在轨迹预测问题中也可能有效。Mercorelli[16,17]提出了一种使用模糊控制器预测非完整轮式移动机器人轨迹的非基于LSTM的方法。

3. 数据

3.1. 标签

该数据集中的标签指代物体的运动学和空间参数,这些物体以边界框形式表示。具体而言,一种标签类型type被分为行人、车辆、未知、标志和骑车人类别。每个标签都提供了详细的信息,其中我们尤其关注后续特征提取步骤中的边界框坐标、速度v以及加速度a。

3.2. 坐标系

该数据集中提供了三种坐标系:全局坐标系、车辆坐标系和传感器坐标系。一些原始特征在非预期的坐标系中表示。为了保持一致性,必须将数据转换到正确的坐标系中。该数据集还提供了车辆姿态VP,一个4 × 4行矩阵,用于将变量从一个坐标系转换到另一个坐标系。以下公式展示了我们在实验中常用的变换[18]。
$$
X_{VF} \cdot VP = X_{GF},
$$
其中$X_{VF}$和$X_{GF}$分别指车辆坐标系和全局坐标系。

3.3. 数据大小

根据数据格式,每1000个片段被打包成多个大小为25 GB的压缩文件(tar格式)。在我们的实验中,使用32个训练用tar文件作为训练集,8个验证用tar文件作为测试集。从片段中提取的视频总数为45,000个。

3.4. 加速度计算

由于数据集中无法直接获得自动驾驶车辆的瞬时加速度,因此训练和评估所需的“真实值”需要通过速度差来计算。我们设计了以下公式来计算两个连续视频帧之间的加速度,其中初始帧的加速度设为零:
$$
a_t =
\begin{cases}
0, & t = 0 \
\frac{v_t - v_{t-1}}{\Delta t}, & t > 0
\end{cases}
$$
其中t为帧索引,$a_t$和$v_t$分别为自动驾驶车辆在时间帧t的加速度和速度。

3.5. 更多特征

除了用全局坐标系表示的速度之外,在研究自动驾驶车辆加速度变化时,考虑前车的信息也是有益的。如前所述,加速度和速度数据是在车辆坐标系中按边界框提供的;为了保持一致性,需要将其转换到全局坐标系中。

此外,我们使用一种简单的几何方法来检测前车的存在。如图1所示,该方法检查从自动驾驶车辆的位置发出的假设射线(绿色)是否与前车(红色边界框)相交。然而,这种方法的一个缺陷是,使用单条射线可能导致大量漏检。因此,我们通过采用矩形射线来表示自动驾驶车辆的视野,并引入检测容差来优化该方法。由此提取以下特征:前车的速度($v_{fx}, v_{fy}, v_{fz}$)和加速度($a_{fx}, a_{fy}, a_{fz}$),以及与前车的相对距离($d_x, d_y$)。此外,当前方有多辆车辆时,扩大容差范围可能导致检测错误,因此还将车辆数量作为描述场景复杂度的特征之一,记为$num_v_labels$。对于未检测到前车的帧,上述各项特征值均设为0。

总共计算了上述提到的12个特征,并将在我们的实验中使用。表1列出了特征及其对应的说明。

特征 说明
$v_x, v_y, v_z \in \mathbb{R}$ 自动驾驶车辆在$x、y、z$方向上的速度。
$d_x, d_y \in \mathbb{R}$ 自动驾驶车辆到前车在x、y方向上的距离。
$v_{fx}, v_{fy}, v_{fz} \in \mathbb{R}$ 前车在x、y、z方向上的速度。
$a_{fx}, a_{fy}, a_{fz} \in \mathbb{R}$ 前车在x、y、z方向上的加速度。
$num_v_labels \in {0, 1}$ 前方车辆的数量(存在性),用于描述场景的复杂程度。

示意图0

3.6. 图像嵌入

如图2所示,每辆Waymo车辆上安装了五个摄像头,分别朝向前向、前左、前右、侧左和侧左。这些图像反映了移动车辆的时序信息,其动态变化相较于数值数据更为平滑,有助于防止连续帧之间的尖峰预测。因此,我们将图像嵌入(即图像的简洁表示形式——向量)作为输入数据的一部分,用于训练模型。有关图像嵌入的更多细节将在基于LSTM的模型部分进行讨论。

示意图1

4. 基线模型

为了建立用于比较的基准,我们提出了几种使用不同方法的基线模型,包括神经网络模型和基于决策树的集成方法。在本节中,我们重点介绍基线模型的结构和原理。默认情况下,我们使用均方误差(MSE)作为训练的损失函数。

4.1. 神经网络模型

  • NN :由于数值和图像数据都可以表示自动驾驶车辆的周围环境并影响其决策,因此第一个基线模型是一个简单的深度神经网络,它以12个特征作为输入,并拥有两个隐藏层,分别包含八个和四个神经元。这个模型旨在捕捉12个特征的特性,以及加速度与周围环境之间的关系。
  • CNN :第二个模型是一个传统的卷积神经网络,包含卷积层、批归一化层和池化层。在训练过程中应用网格搜索来确定最优参数。将数据集中每一帧的视频图像作为输入,以预测同一帧的加速度。然后,多层的输出被送入全连接层,以提取图像的特征嵌入并生成输出。
  • 神经网络 + 卷积神经网络 :为了更好地利用图像嵌入以及与帧对应的12个特征来表示一帧,第三个模型结合了神经网络和卷积神经网络模型。具体来说,如图3所示,两个模型的最后全连接层被连接到新的全连接层,最终生成输出。

示意图2

4.2. 集成方法

回归问题的另一个流行类别是集成方法。为了对数据集进行全面探索,我们尝试了多种集成方法,并比较了它们的预测结果:
- XGBoost :XGBoost是一种基于决策树的集成机器学习算法,建立在梯度提升框架之上。它采用更严格的正则化模型形式来控制过拟合,通常在竞赛中表现出更优的性能。
- 轻量梯度提升 :另一种流行的提升算法,轻量梯度提升[19]使用基于梯度的单边采样进行分割,它不是水平地生长树(增加层级),而是垂直生长以增加叶节点的数量,从而比按层级生长更能最小化损失。
- 堆叠线性回归器 :堆叠线性回归器[20]是一种更全面的集成方法,可线性组合不同模型。与其它提升回归器不同,它使用第二层学习算法,其中第二层中的每个模型都能找到其最优值。此外,第二层回归器可以通过更复杂的模型构建,从而克服了单一线性回归模型的局限性。

5. 基于LSTM的模型

5.1. 具有12个特征的基本模型

构建加速度预测模型的一种直接方法是将12个基本特征作为模型的输入。SS-LSTM中为轨迹预测提出的“编码器‐解码器”架构[15]适用于加速度预测问题,因为加速度曲线是基于历史经验的轨迹。尽管SS-LSTM使用占据图等不同的输入信息,但在我们提出的基础模型中,这12个基本特征被整合到一个单一的输入通道中。这些特征被输入到“编码器”模块,该编码器从输入特征中提取关键信息,并生成一个中间结果,更准确地说,是这些特征的潜在表示。该中间结果随后被送入“解码器”模块,解码器对这一表示进行解码并输出加速度预测。该架构的示意图如图4所示。

示意图3

然而,12个输入特征所提供的信息局限性不容忽视。该模型难以通过这些简单且有限的数值特征来捕捉和分析自动驾驶车辆周围复杂的环境,基于这些特征训练的模型可能无法给出令人满意的预测结果。需要包含更多关键信息的高质量特征来提升模型容量。

5.2. 具有图像输入的高级模型

鉴于基础模型的局限性,应从Waymo开放数据集中引入更多特征,其中最可用的关键数据之一是相机图像,它能够完美记录自动驾驶车辆周围的变化环境。显然,原始相机图像无法直接输入到基础模型中,因为图像是二维数据点,而模型输入需要是一维向量。因此,有必要将原始图像转换为一个向量,其元素代表图像的关键内容。

显然,卷积神经网络是一种流行且出色的图像特征提取器,可将图像转换为扁平向量。我们在“编码器”模块前添加一个卷积神经网络。将卷积神经网络模块与“编码器”模块和“解码器”模块作为一个整体进行训练,可以实现端到端的高级模型,比基础模型复杂得多。然而,由于深度CNN模块的复杂性,从头开始训练该模型可能非常耗时。

一种快速且高效的解决方案是使用预训练CNN模块将原始图像转换为向量,而无需进行微调,因为现有的流行预训练CNN网络通常已在大规模数据集上进行了良好训练,应具有良好的泛化能力。其中最优秀的CNN网络之一是ResNetV2[9],其倒数第二层的输出可以作为输入图像的高质量表示。利用这样的图像特征提取器,我们决定采用Waymo开放数据集中前摄像头的图像作为主要输入,因为该摄像头捕捉到自动驾驶车辆最关键的环境信息,并包含用于确定其未来加速度的关键信息。换句话说,图像嵌入通过ResNetV2接收并处理来自前摄像头的输入,并输出一个嵌入结果:
$$
X_{embedding} = f_{ResNetV2}(I_{front}, \theta_{pretrained})
$$
其中$X_{embedding} \in \mathbb{R}^{1576}$是1576维的嵌入结果,$f_{ResNetV2}$是将倒数第二层作为输出的ResNetV2模型,$\theta_{pretrained}$是预训练ResNetV2的参数。

通过嵌入图像和12个基本特征,高级模型的思想可以通过此方程来说明:
$$
O_{acceleration} = f_{advance}(X_{embedding}, X_{feature}, \theta)
$$
其中$O_{acceleration} \in \mathbb{R}^3$是包含沿x轴、y轴和z轴的加速度a的三维输出,$X_{embedding} \in \mathbb{R}^{1576}$是嵌入图像,$X_{feature} \in \mathbb{R}^{12}$和$f_{advance}$是所提出的具有参数 $\theta$的高级模型。

该高级模型的架构与之前的基础模型类似。保持了“编码器‐解码器”结构,以学习输入特征中隐藏的信息。不同之处在于,前摄像头图像被作为附加输入。该架构的细节如图5所示。

示意图4

在Waymo开放数据集中,提供了来自五个不同视角的摄像头,分别是前摄像头、前左相机、前右相机、侧左相机和侧右相机。我们相信,整合这五个摄像头可以获得比之前训练的模型更好的性能。该模型的模块架构相似,唯一的改变是除了前摄像头外,还为其余四个摄像头增加了四个额外的输入通道。此模型的架构如图6所示。

示意图5

6. 实验与结果

每个模型均在从Waymo开放数据集采样的相同测试数据上进行评估。为了确定训练后模型的加速度预测准确性,采用平均绝对误差(MAE)作为主要指标。MAE值通过计算测试数据中所有视频片段的MAE误差的平均值得出。使用MAE作为指标的主要优势在于,大多数帧中自动驾驶车辆在高速公路或道路上稳定行驶时加速度值较小,其绝对值通常低于1。MAE保留了预测值与真实值之间的差异,有助于我们判断哪个模型表现更优。然而,若使用其他指标如均方误差(MSE),由于平方和的作用,可能导致这些极小值进一步缩小,从而在模型比较中产生不足的差异。所有提及的模型均在谷歌云平台的虚拟机实例上进行训练,该虚拟机配备单个NVIDIA Tesla K80。

6.1. 超参数

在实验中,主要的超参数如下:
- Thelength ofthe previous frames :这决定了模型能够获取的历史信息量。如果长度太短,模型可能因无法获得足够的历史信息而表现不佳;如果长度太长,模型会过于复杂并浪费资源。我们将该数值设置为10。
- 未来帧的长度 :这决定了模型需要预测多远的未来。如果长度过长,模型会过于复杂,并且需要更多的历史信息来支持良好的预测。我们将此数值设为5。
- 训练轮数 :我们将其设置为300,以获得一个训练充分的模型。

6.2. 结果

从表2可以看出,使用12个特征和前摄像头图像的模型性能优于大多数其他模型,证明与仅使用12个基本特征的模型相比,添加图像使模型性能提升到了一个新的水平。然而,使用所有摄像头的模型与仅使用前摄像头的模型性能相近,这与之前的假设不一致。五摄像头模型未能表现得更好的原因是,其余摄像头的图像是对模型的噪声输入,可能会干扰来自前摄像头的信息,导致模型性能略有下降。

模型 X轴平均绝对误差 Y轴平均绝对误差
NN 0.4014 0.4312
CNN 0.3272 0.3123
神经网络 + 卷积神经网络 0.2985 0.2802
XGBoost 0.3502 0.3537
轻量梯度提升 0.3459 0.3444
堆叠线性回归器 0.3623 0.3222
具有12个特征的LSTM 0.3179 0.3088
带前摄像头的LSTM 0.1379 0.1278
带所有摄像头的LSTM 0.1327 0.1363

最小损失以粗体显示。

6.3. 训练效率

不同模型的时间效率也在实验中进行了评估。从表3中可以明显看出,添加图像会导致训练时间因模型复杂度的增加而迅速增长。当将五个摄像头图像全部引入输入数据时,训练所需时间远比仅使用前摄像头图像更长。然而,先前的结果表明,仅使用前摄像头与使用所有摄像头的模型性能差异较小。因此,仅使用前摄像头图像作为图像输入更为合理,因为它比使用五个摄像头的图像更具计算效率。

模型 近似的GPU训练时间
具有12个特征的LSTM 1.8小时
带前摄像头的LSTM 9.0 h
带所有摄像头的LSTM 37.8 h

6.4. 可视化

为了直观地检查我们的模型表现如何,我们提供了一个可视化工具,该工具以预测加速度和原始相机图像作为输入,并生成视频作为输出。

在图7的三个数据图中,横轴表示片段的帧索引,纵轴表示加速度值。纵轴的范围均被限制在[−2.0, 2.0]以内,以防止误解。生成的视频显示了纵向的预测值和真实值(图例中分别标记为“prediction”和“ground truth”)以及横向加速度(分别标记为“x acc”和“y acc”)。结合数据图(左)和实际视频帧(右),可以直观地检查在连续时空范围内的预测偏差。

示意图6

在驾驶情况方面,我们分析了三种常见场景的可视化结果。
- “跟车”场景 :在数据集中,“跟车”是最常见的驾驶场景,其中自动驾驶车辆与前车保持安全距离,并以相对恒定速度行驶。如图7a所示,当前自动驾驶车辆稳定地跟随前方卡车。加速度趋势随着卡车的速度变化而相应改变。与其他场景相比,“跟车”是预测曲线最接近真实值曲线的场景。
- “前车转弯”场景 :在第108帧,前车进行转弯,当前自动驾驶车辆由于前方无车辆阻挡而加速。真实值和预测加速度均上升,但预测曲线达到的最大值较低。对应的可视化结果如图7b所示。
- “减速”场景 :当自动驾驶车辆检测到前车因交通状况而减速或停止时,会发生减速。模型生成负加速度值以保持安全距离。图7c显示了相应的可视化结果。

在光照条件方面,还存在其他复杂场景,例如夜间、雨天等。图8展示了夜间驾驶的一个示例;预测曲线的整体趋势与真实值曲线相似,有助于将预测损失保持在较低水平。这证明了我们的模型在不同场景下处理更复杂视觉条件的能力。综上所述,尽管在加速度和减速预测上比Waymo的模型略显保守性,但我们的模型表现与Waymo的自动驾驶策略非常相似。

示意图7

6.5. 讨论

我们希望讨论我们模型的几个局限性。首先,与观测帧长度(当前为10)和预测帧长度(当前为5)相关的超参数可能会限制模型的能力。例如,如果我们仅观察三帧,由于信息不足,模型可能无法很好地预测后续帧。这意味着当前模型仅支持10的输入长度。其次,我们的模型仅使用Waymo汽车前摄像头的图像进行训练,可能难以推广到其他摄像头安装高度和角度不同的车型。例如,如果其他公司制造的自动驾驶车辆的前摄像头位置比Waymo的略高,我们的模型可能表现不佳。因此,我们模型的可迁移性需要进一步研究。

7. 结论和未来工作

从实验结果可以看出,基于LSTM的模型比基线模型具有更好的性能,这也支持了我们的假设,即加速度预测是一个时间序列问题。受LSTM架构的启发,所有基于LSTM的模型都采用了“编码器‐解码器”结构。最初,仅使用基本的数值特征(如前车与当前自动驾驶车辆之间的速度和距离)来训练模型。这种基于LSTM的模型在未使用卷积神经网络或未考虑数据时间依赖性的情况下,已经优于基线模型。为了进一步提高模型性能,引入了摄像头图像以帮助模型输出更准确的结果。结果表明,结合图像的基于LSTM的模型有显著提升。然而,仅使用前摄像头的模型与使用全部五个摄像头的模型性能相近,但后者训练所需时间要长得多。因此,我们得出结论:结合前摄像头图像的基于LSTM的模型是用于加速度预测的一种有效且高效的模型。

这项工作可以通过多种方式扩展。我们实验的一个局限性在于,在当前的训练和测试过程中,“在线方法”在预测初始10帧之后的第一帧后,将真实相对距离和速度作为输入提供给网络。然而,在现实世界场景中,输入应来自(或累积自)先前帧的预测结果。因此,我们目前的方法可能导致损失持续累积。为解决此问题,我们的未来工作是:在初始十帧之后立即生成一帧的预测,并计算该特定帧与真实值数据之间的损失。另一个未来研究方向是训练一个更具泛化能力的模型,以适用于除跟车之外的其他交通场景,例如变道、汇入和分流。

您可能感兴趣的与本文相关的镜像

Kotaemon

Kotaemon

AI应用

Kotaemon 是由Cinnamon 开发的开源项目,是一个RAG UI页面,主要面向DocQA的终端用户和构建自己RAG pipeline

【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方法通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,并在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方法在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方法;②理解状态空间平均法在非线性电力电子系统中的应用;③实现系统线性化并用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值