摘 要:随着人工智能和深度学习的快速发展,确保在复杂的现实环境中无缝、安全地导航是目前自动驾驶面临的主要问题。面对多变的交通环境,这是将复杂的数学公式转化为精确的物理步骤。文章的目标是通过在真实模拟中开发和测试复杂的控制系统和深度学习技术,提高自动驾驶汽车在各种驾驶场景下的安全性和有效性。这项研究涉及AirSim模拟器的使用,用于训练神经网络独立驾驶汽车。该研究首先使用AirSim利用虚幻引擎中可用的环境,并利用神经网络操纵汽车训练它。第二部分在此基础上研究了数据源选择对神经网络性能的影响。比例-积分-微分(PID)控制器和模型预测控制(MPC)用于收集数据并在其上训练设计的模型。该报告还探讨了遇到的困难,例如模型选择和作为性能指标的均方误差的限制,为未来在真实世界应用和更复杂的控制场景中的研究奠定了基础。本研究中将使用MPC和PID控制器收集数据的结果,然后将经过训练的模型应用于该数据集。通过验证数据集的图像输出输出,以测试该模型在自动驾驶测试中的泛化能力。
关键词:AirSim 深度学习 神经网络 PID MPC
1 引言
车辆自主驾驶是近年来人工智能技术在交通领域的一大突破。传统的车辆自主驾驶方法通常涉及多个模块和复杂的算法流程,包括感知、决策和控制等。限制了系统的整体性能和鲁棒性。而端到端深度学习方法通过直接从原始输入到最终控制输出的一体化学习,为实现车辆自主驾驶提供了一种新的思路。
端到端深度学习将这些模块整合为一个神经网络模型,极大简化了系统复杂度,提高了自动驾驶系统的性能。在将机器学习纳入自动驾驶汽车模拟方面取得了重大进展,尤其是在使用微软的AirSim模拟器时。这项研究为训练自主驾驶神经网络提供了新的思路和方法。为了测试和开发自动驾驶算法,AirSim是一个开源模拟器,运行在虚幻引擎4等游戏引擎之上。它具有深度地图、语义分割数据、Lidar和现实城市布局等功能,是深入研究自动驾驶汽车的完美平台。
2 相关工作
在传统机器学习中,处理数据和生成输出涉及多个步骤,须每个模块独立训练和优化。深度学习则通过单一框架简化此过程,直接将摄像头图像映射为方向盘角度或油门刹车控制。
在基于神经网络的自动驾驶汽车模型预测控制的研究中,自动驾驶汽车管理中模型预测控制(MPC)的应用是一个核心议题。Vianna通过用神经网络替代传统MPC,研究了基于学习的控制器的潜力。他们的方法特别值得注意,因为它同时探索了监督学习和强化学习(RL)技术,其中模仿学习被用来复制MPC和PID控制器的行为。
Kuutti在2019年的研究全面概述了深度学习在自动驾驶汽车控制领域的应用。这项调查研究了自主车辆控制器设计中的挑战和发展。库蒂着重于研究在动态环境中使用深度学习进行挑战性控制任务时。我们的研究主要关注混合控制系统的实际实施和优化,该系统融合了深度学习和传统控制系统的优点。
3 研究方法与实现
自动驾驶随着端到端深度学习的算力的不断增加中得到了前所未有的发展。为了达到L4级或L5级的自动驾驶水平,汽车需要对大量的数据进行训练,如果没有虚拟仿真测试环境,自动驾驶决策的有效性将不能得到测试与验证。有了像AirSim这样的逼真的虚拟现实仿真平台,可以不需要使用真正的汽车进行道路行驶,而是可以通过逼真的仿真环境可以收集大量的仿真数据来训练自动驾驶模型。
3.1 AirSim平台
AirSim是一种基于虚幻引擎开发的适用于无人机和自动驾驶系统的仿真平台。选择AirSim平台作为研究工具,能够提供真实的环境仿真和车辆动力学模拟功能。
3.2 虚拟仿真环境搭建
下载和安装一个开源的、跨平台的无人机和自动驾驶车辆仿真平台AirSim并根据AirSim的文档进行环境配置,包括安装所需的依赖项、设置路径等。确保AirSim能够正常运行。
3.3 数据采集与处理
数据的采集与处理为我们提供了用于训练和评估模型的有用信息。在仿真环境中使用相机传感器来采集车辆周围环境的数据。通过AirSim平台提供的API接口,可以实现了数据的采集和处理流程。
本研究中只使用汽车上的一个前置摄像头作为视觉输入,训练一个模型.通过对前置摄像头获取图像进行数据处理和分析,通过摄像头采集的图像内容设定汽车的当前状态参数(速度、转向角、油门等)。
通过对采集数据集的分析,可以看出,单帧输入的图像是一个250×150像素图像,在自动驾驶中,注意力机制可以帮助模型专注于道路、行人、交通标志等关键对象。
对于以上读取的图像,为减少训练时间和训练模型所需的数据量,提取此图像的下半部分。同时可以防止模型因关注环境中不相关的特征(如山、树等)而导致深度学习的效果较差。
3.4 数据集分析
本研究在AirSim平台中利用车载传感器数据来表征车辆及其周边环境的状态信息。数据集分为normal和swerve两种驾驶风格。
相比之下,急转弯驾驶策略则导致车辆在道路上行进时呈现出显著的左右摆动。这一现象凸显了在训练深度学习模型时需考虑的一个重要因素。
3.5 训练模型
在处理图像数据时,将整个数据集载入内存的代价极高。Keras引入了DataGenerator的概念,这是一种迭代器,能够从磁盘分块读取数据。这种方法能有效地维持CPU和GPU的工作状态,有效提升数据处理效率。
4 数据处理与优化
在AirSim中生成参考轨迹,供车辆遵循。控制器在限定的时间范围内优化车辆的控制输入,同时确保车辆沿期望轨迹行驶,这些轨迹由航路点表示。为了生成和保存这些航路点,首先在AirSim中模拟汽车行驶,然后通过Python脚本记录下车辆在环境中的坐标,并保存在文本文件中。
这些坐标随后被转换到车辆的局部坐标系。这样的转换使得在车辆状态下定义成本和约束函数变得更加简便。考虑到当前车辆的姿态,一个函数将这些航路点从全局坐标系转换到车辆的局部坐标系。转换后的航路点用于拟合多项式曲线,该曲线代表了车辆应遵循的理想轨迹。得到的系数随后作为优化问题中的参数。数据集是在汽车上运行PID和MPC控制器时收集的,且被分成测试、训练和验证数据集,按照7:2:1的比例进行拆分。
4.1 PID优化控制策略
首先定义油门和转向的误差项。误差指的是系统期望状态(设定点)与当前状态之间的差异。例如,速度误差、横向轨迹误差和航向误差常被用于汽车的油门和转向控制。
比例分量即时响应当前误差,指导加速或减速调整,或转向角度以纠正横向误差。积分部分处理历史误差累积,减少稳态误差,结合速度误差累积(油门)或横向距离误差累积(转向)。微分部分预测未来误差,评估速度误差变化率(油门)或横向距离误差变化率(转向)。
综合比例、积分和微分分量,计算出油门和转向的控制器输出。PID控制输出 u(t)的计算方式如下,其中Kp是比例增益,Ki是积分增益,Kd是微分增益,e(t)是针对转向和油门的误差值,de(t) 是误差的变化率,d(t)是时间的变化量。
为确保控制输出保持在可接受的范围内,意味着在每个迭代过程中限制控制输出,以防止过度的加速或转向,这对保持车辆的稳定性至关重要。最终,通过对PID增益进行细致调整,以实现响应性与稳定性之间的理想平衡。
4.2 MPC优化控制命令
模型预测控制(MPC)是一种应用于众多工程领域的先进控制技术,其中包括自动驾驶汽车。该策略在有限的时间范围内通过迭代解决优化问题,其中优化变量为控制输入。MPC选择使成本函数最小化的最优控制输入,并利用系统的动态模型基于当前状态预测未来状态。这一过程在每个时间步循环执行,使得MPC成为一种动态调整控制策略。
该策略的核心在于预测汽车系统在未来N个时间步的行为,并据此计算出执行器(包括转向和节气门)的控制指令。然而,MPC仅在当前时间步使用下一时间步的预测执行器来进行控制。
在MPC中,成本函数是基于实际车辆状态与由多项式曲线定义的期望轨迹之间的误差来构建的。通过最小化这一成本函数,可以确定执行器的最优值。成本函数的定义如下:
其中δ和a分别是转向角和油门(实际上是加速度),ci是用户选择的系数,特别是用于惩罚连续加速度差异和转向角差异的系数,V0车辆运行的目标速度。MPC在一系列由运动学模型指定的约束下最小化成本,这使得这成为一个非线性优化问题。使用Scipy.optimize.minimize函数中可用的SLSQP(顺序最小二乘编程)方法来求解这个问题。这些约束确保车辆的状态按照车辆动力学发展并遵循期望的轨迹。
确定一组最优的执行器配置(δi,ai),仅采用首对参数(δ1,a1) 以实现对车辆的操控。而,通过优化过程获得的最佳控制输入被用于刷新车辆的控制指令。随后,这些指令被传递至模拟车辆,以实现预期的行驶轨迹。
5 神经网络模型设计
为了在AirSim模拟器中使用基于神经网络的控制来增强自动驾驶汽车控制,我们采用了一种系统化的方法。该方法旨在用自适应多层神经网络来增强传统PID和模型预测控制器,以改善车辆的转向输入。
5.1 模型的输入/输出
神经网络模型接收来自AirSim模拟器的传感器数据,特别是模拟车辆前置摄像头拍摄的图像。模型的输出为车辆的转向指令,这些指令表现为与预定路线所需转向角度相匹配的连续数值。
5.2 神经网络结构
本研究设计了一个多层神经网络结构,专门适配于控制任务。使用预测的转向角和来自数据集的地面真实值之间的均方误差(MSE)来评估神经网络模型的性能。此外,该模型在无人参与的情况下有效操纵汽车行驶的能力被用作定性性能指标。
将采用深度学习框架来实现该神经网络。具体地,它首先输入一个的图像,在神经网络架构中,在经过首个卷积层处理后,图像尺寸调整为64×64,步长为256。后续卷积层逐步缩减尺寸:第二层为64×256(步长16),第三层为32×128(步长224),第四层为16×63(步长16)。第五层最大池化层将尺寸减小至16×32(步长2)。第六层再次缩减至32×128(步长224),第七层最大池化层维持此尺寸(步长2)。第八至第十二层为全连接层,输出尺寸均展平为1×1024,中间穿插dropout层以减少过拟合。最终,在第十三层全连接层中,输出尺寸展平为1×10,形成分类输出层。
5.3 训练神经网络
本研究将数据集划分为训练集、验证集及测试集。借助训练数据,本研究旨在训练神经网络,使其能够基于当前车辆状态和环境异常,学习预测适宜的转向指令。模型的输入包括RGB图像以及转向、油门、速度和制动等状态变量。网络训练上限设定为500个周期,模型仅在258个周期后停止训练。在整个训练过程中,持续监控训练和验证损失,以绘制损失曲线,并评估模型性能。
6 仿真测试
在山路场景下对网络进行测试,以确保它能够应模型算法在应对自动驾驶挑战时的有效性。
6.1 微调和优化
为了提高效率并防止过度拟合,本研究采用了提前停止策略,确保了辍学率的一致性。在优化过程中,采用了Nadam优化器。
6.2 实验结果
在初始阶段,本研究选取的ROI范围为[76,140;
0,255]像素,该选择带来了积极的结果。进一步地,当ROI区域调整为[50,140;0:255]像素,伴随模型中图像输入尺寸的增加,模型性能亦得到提升。此配置使得模型能够有效提取距离车辆较远的车道特征,从而在多数情况下提供更准确的预测。图3表示不同ROI情况下训练的损失情况,左侧时高ROI的拟合情况。损失和验证损失的同时下降以及二者之间相对接近的关系,表明了模型具有良好的泛化能力,这进一步说明模型未出现过度拟合现象。
资金项目:2022年江苏省研究生科研与实践创新计划项目“基于Airsim平台的小型车辆后方危险紧急避险策略研究”(项目编号:SJCX22_1484),主持人:周铮。
参考文献:
[1]SHALUMOV A, HALALY R, TSUR E E. Lidar-driven spiking neural network for collision avoidance in autonomous driving [J]. Bioinspiration & Biomimetics, 2021, 16(6):
066016.
[2]AMER K, SAMY M, SHAKER M, et al. Deep convolutional neural network based autonomous drone navigation; proceedings of the Thirteenth International Conference on Machine Vision, F, 2021 [C]. SPIE.
[3]SADHU V, ZONOUZ S, POMPILI D. On-board deep-learning-based unmanned aerial vehicle fault cause detection and identification; proceedings of the 2020 ieee international conference on robotics and automation (icra), F, 2020 [C]. IEEE.
[4]SUTTON R S, BARTO A G. Reinforcement learning:
An introduction [M]. MIT press, 2018.
[5]ZHONG F, QIU W, YAN T, et al. Gym-unrealcv:
Realistic virtual worlds for visual reinforcement learning [J]. Web Page, 2017.