Dosovitskiy, Alexey, German Ros, Felipe Codevilla, Antonio Lopez, and Vladlen Koltun. "CARLA: An Open Urban Driving Simulator." In Conference on Robot Learning, pp. 1-16. 2017.
背景感觉运动控制,在现阶段仍然是机器学习和自动驾驶技术的主要挑战。在自动驾驶技术中,最具有挑战的问题就是如何控制汽车在人来人往的城市环境中运动。现实世界场景设置的成本和训练测试系统的逻辑问题成为研究相关问题的主要障碍。同时,有些测试场景过于危险,不适合在现实世界中进行模拟。而且在进行问题研究时的时间和资金成本往往不是某个项目组可以承担的。因此,将仿真技术用于驾驶模型的训练和测试可以有效的解决相关问题。虽然仿真技术在自动驾驶领域的应用非常广泛,但是大多数的仿真平台都存在不同的局限性。不能直接用于自动驾驶的开发与测试。
解决问题为了降低自动驾驶汽车开发成本高效率低,克服大多数仿真平台局限性的问题,文章提出了将开源的CARLA(Car Learning To Art)软件作为模拟器,进行场景构建来支持开发验证自动驾驶模型。并使用CARLA对自动驾驶汽车三种技术进行了研究:1、自动驾驶技术的模块化通道(MP)(感知、规划、执行)2、模仿学习的深度网络(IL)3、强化学习的神经网络(RL)
方法文章基于CARLA软件模拟了一个逼真的动态虚拟世界,并提供了与现实世界交互了接口。文章将CARLA设计为一个服务器客户端系统,通过服务器模拟呈现虚拟场景,客户端的API是由Python进行实现,负责与客户端进行交互。客户端向服务器发送指令和原命令并接收传感器的数据,指令用于控制车辆运动,元命令负责控制服务器的行为。
文章在进行场景构建时,调用了相关的资源库以此进行驾驶场景的构建。文章设计搭建了两种不同的环境,一个用于训练模型,一个用于测试模型。这两种不同的环境将在补充内进行详细说明。文章对场景中的行人及干扰车辆做出模拟,使其行为更接近于现实中的表现。文章对天气条件也进行了模拟。在传感器方面,文章模拟了三种类型的传感器:普通摄像头,ground-truth depth传感器和ground-truth semantic segmentation传感器其中后两个传感器为伪传感器。相关传感器如下图:
文章对所有的动态对象进行精确定位。这些信号在训练和测试自动驾驶系统有关键作用。
文章对自动驾驶系统三种技术进行了评估。
1、对于模块化管道技术,文章将其分为三个子系统:感知,规划,执行。感知部分是基于RefineNET语义分割网络的,该网络经过训练可以有效地对外部环境对象进行分类。规划部分通过规划器生成一组规划路线进行导航,并将相关数据传给控制器。执行部分文章采用了比例积分导数(PID)进行控制。
2、对于模仿学习技术,文章除了对传感器数据进行采集外还将人类的驾驶信息作为数据进行输入。这些数据用于训练深度神经网络。详细细节在补充中进行说明。
3、对于强化学习技术,文章基于环境的奖励信号对深度网络进行训练。该网络以1000万个模拟步骤作为训练集对模型进行训练。
针对三种技术,文章进行了相同的实验:在六种不同的天气条件下执行四组难度递增的任务(只有第四个难度存在动态干扰源)。规定在预定的时间内到达目的地视为成功,如果偏离车道或发生碰撞视为失败并进行记录。
结果下面两张表描述了在四个不同的难度下成功完成任务的百分比以及出现违规情况时已经行驶的平均距离:
从结果可以看出,即使是在最简单的直线行驶任务上,三种技术都不能做到十分完美。难度越高成功率越低。三种技术对于天气的适应性好于对新场景的适应性。实验结果强调了对场景的普适性对于三种技术的重要性。将三种技术进行横向对比:1、强化学习的效果较差2、模块化管道与模仿学习两者测试结果十分接近,但是在新场景与新天气的环境下MP的表现不佳3、将两种深度学习技术进行比较,IL的学习时间仅用了14小时而RL的学习时间用了12天,但是RL的表现却很差。对违规行为的行驶距离进行分析,可以看出所有的方法在训练集的完成结果较好。IL最不容易偏离车道,RL在这个方面表现最差。但是RL最不容易与行人发生碰撞。在静态对象方面MP表现的最佳。
结论文章介绍并使用CARLA模拟器对学习场景及测试场景进行构建。构建了两种不同的场景,六种不同的天气,四种不同难度的测试环境。利用这些仿真测试环境,文章测试了三种自动驾驶的方法(MP、IL、RL),将这些自动驾驶方法应用在存在行人车辆的场景中,并对实验结果进行评估分析。打破了开发成本以及其他仿真平台局限性的问题。
补充一、模拟技术的相关细节:
1、 文章基于CARLA设计了一个客户端-服务器模式的测试系统。服务器实现虚拟世界,客户端实现对自动驾驶汽车的控制(油门、制动、转向)。
2、 元命令:客户端可以通过元命令控制环境及服务器的行为:干扰车辆行人数量、天气、干扰车辆及行人的行为、传感器参数。
3、 客户端可以接收到服务器传递的相关参数:测试车辆位置、碰撞、对向车道、人行道、时间、测试车辆加速度、行驶方向、交通信号灯、交通标志。
二、自动驾驶技术细节
1、模块化管道(MP):在车道保持的状态下车辆从ground-truth semantic segmentation传感器获取数据计算出与车道右边固定距离的点,依靠这些点进行自动驾驶。在十字路口进行转弯时,采用提前预估转向角的方式进行转弯,当出现故障时系统会进入紧急模式,请求控制器中断。
2、模仿学习(IL):该学习网络由四个模块组成:感知模块、测量模块、整合模块、控制模块。使用Adam随机优化算法对训练数据集进行数据增强来训练该学习网络。
3、强化学习(RL):RL是基于Mnih等人提出的网络架构组成的,该学习网络的输入由传感器采集的数据以及一个测量向量组成,卷积模块负责处理图像信息,网络模块负责处理测量向量。最后将两个模块进行合并处理
三、违规类型
文章定义了以下五种违规行为:
进入对向车道、进入人行道、与静态对象发生碰撞、与车辆碰撞、与行人碰撞
每次违规时限为2秒。
致谢本文由南京大学软件学院2019级硕士徐彬桐翻译转述。
感谢国家自然科学基金项目(重点项目)智能软件系统的数据驱动测试方法与技术(61932012)资助