A Survey of Autonomous Driving: Common Practices and Emerging Technologies
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!
IEEE ACCESS, (2020): 58443.0-58469.0
Abstract
自动驾驶系统(ADS)承诺提供安全、舒适和高效的驾驶体验。然而,涉及配备ADS的车辆的死亡人数正在上升。除非最新技术的稳健性进一步提高,否则ADS的全部潜力无法实现。本文讨论了未解决的问题并调查了自动驾驶的技术方面。有关当前挑战、高级系统架构、新兴方法和核心功能的研究:本地化、映射、感知、规划和人机界面,都进行了彻底审查。此外,在我们自己的平台上实现了最先进的技术,并在真实世界的驾驶环境中比较了各种算法。本文最后概述了用于ADS开发的可用数据集和工具。
I. INTRODUCTION
根据美国国家公路交通安全管理局(NHTSA)最近的一份技术报告,94%的道路事故是由人为错误造成的[1]。正在开发的自动驾驶系统(ADS)有望防止事故、减少排放、运输行动不便者并减少与驾驶相关的压力[2]。到2050年,ADS的年度社会效益预计将达到近8000亿美元,通过缓解拥堵、减少道路伤亡、减少能源消耗和通过重新分配驾驶时间而提高生产力[3]。
Eureka Project PROMETHEUS [4]于1987-1995年在欧洲开展,是最早的主要自动驾驶研究之一。该项目导致戴姆勒-奔驰开发了VITA II,它成功地在高速公路上自动驾驶[5]。由美国国防部于2004年组织的DARPA大挑战赛是第一次大型自动驾驶比赛,所有参赛者都未能完成150英里的越野跑酷比赛。挑战的难度在于决赛期间不允许任何级别的人为干预的规则。另一场类似的DARPA大挑战赛于2005年举行。这一次,五支队伍在没有任何人为干扰的情况下成功完成了越野赛道[6]。
自最早尝试以来,城市场景中的全自动驾驶被视为该领域的最大挑战。在2007年举行的DARPA城市挑战赛[7]期间,全球许多不同的研究小组在以典型城市场景为模型的测试环境中尝试了他们的ADS。六支队伍成功完成了比赛。尽管这场比赛是当时规模最大、最重要的赛事,但测试环境缺乏真实世界城市驾驶场景的某些方面,例如行人和骑自行车的人。然而,六支队伍成功完成挑战的事实引起了极大的关注。在DARPA城市挑战赛之后,在不同国家举办了更多的自动驾驶比赛,如[8]-[10]。
多年来,系统架构的通用实践已经建立起来。大多数ADS将自动驾驶的庞大任务划分为多个子类别,并在各种模块上采用一系列传感器和算法。最近,端到端驱动系统开始作为模块化方法的替代方案出现。 深度学习模型已在许多此类任务中占据主导地位[11]。图1给出了ADS架构的高级分类。
车辆动力学方面的知识积累、深度学习[12]的出现导致计算机视觉方面的突破以及激光雷达[13]等新传感器模式的可用性,促进了ADS研究和工业实施。此外,公共利益和市场潜力的增加促成了具有不同程度自动化的ADS的出现。然而,在城市环境中稳健的自动驾驶尚未实现[14]。由不成熟的系统引起的事故[15]-[18]会破坏信任,而且还会造成生命损失。因此,这里认为有必要对未解决的挑战和最先进的技术进行彻底调查。
汽车工程师协会(SAE)将能够在可持续基础上执行动态驾驶任务(DDT)的硬件-软件系统称为ADS [19]。还有一些白话的替代术语,例如"自动驾驶"和"自动驾驶汽车"。尽管如此,尽管常用,但SAE建议不要使用它们,因为这些术语不清楚且具有误导性。在本文中,我们遵循SAE的约定。
本文试图对最先进的ADS的硬件-软件架构进行结构化和全面的概述。此外,还详细讨论了端到端驱动和连接系统等新兴趋势。有关于该主题的概述论文,涵盖了几个核心功能[20][21],并且集中在运动规划方面[22][23]。然而,一项涵盖:当前挑战、可用和新兴的高级系统架构、定位、地图绘制、感知、规划、车辆控制和人机界面等单个核心功能的调查完全不存在。本文的目的是通过彻底的调查来填补文献中的这一空白。此外,此处还提供了可用数据集、软件堆栈和模拟工具的详细摘要。本文的另一个贡献是通过实施对替代方法进行了详细的比较和分析。我们使用开源软件在我们的平台中实现了最先进的技术。现有概述论文和我们的工作的比较如表 I 所示。
本文的提示分为八节。第II节是对当前挑战的概述。第III节给出了自动驾驶系统组件和架构的详细信息。第IV节总结了最先进的定位技术,第V节是对感知模型的深入回顾。驾驶情况的评估和规划分别在第VI节和第VII节中讨论。第VIII节介绍了人机界面的发展趋势和不足。第IX节给出了用于开发自动驾驶系统的数据集和可用工具。
II. PROSPECTS AND CHALLENGES
A. Social impact
ADS的广泛使用并非迫在眉睫,但仍有可能在一定程度上预见到它的潜在影响和好处。
1) Problems that can be solved: 预防交通事故、缓解交通拥堵、减少排放
2) Arising opportunities: 重新分配驾驶时间,运送行动不便者
3) New trends: 消费移动即服务(MaaS),物流革命
广泛部署ADS可以减少因分心、酒后驾驶和超速等错误人类行为造成的社会损失[3]。
在全球范围内,年长群体(60岁以上)的增长速度快于年轻群体[29]。增加患有ADS的老年人的流动性会对大部分人口的生活质量和生产力产生巨大影响。
从个人车辆所有权向消费出行即服务(MaaS)的转变是一种新兴趋势。目前,与年行驶里程1000公里以下的车辆所有权相比,拼车成本更低[30]。到2030年,自有车辆与共享车辆的比例预计将达到50:50 [31]。大规模部署ADS可以加速这一趋势。
B. Challenges
ADS是在不确定环境中运行的复杂机器人系统。因此,存在无数未解决问题的场景。本节总体上讨论了驾驶自动化的高层次挑战。更详细的、特定于任务的细节将在相应的部分中讨论。
汽车工程师协会(SAE)在[19]中定义了五个级别的驾驶自动化。在这个分类中,Level zero代表完全没有自动化。诸如自适应巡航控制、防抱死制动系统和稳定性控制等原始驾驶员辅助系统从Level one开始[32]。Level two是部分自动化,其中集成了紧急制动或防撞[33][34]等高级辅助系统。凭借在车辆控制领域的知识积累和行业经验,二级自动化成为一种可行的技术。真正的挑战始于这个水平之上。
Level three是有条件的自动化;驾驶员可以在正常操作期间专注于驾驶以外的任务,但是,她/他必须快速响应来自车辆的紧急警报并准备接管。此外,三级ADS仅在有限的运营设计域(ODD)中运行,例如高速公路。奥迪声称是第一款在有限的高速公路条件下实现三级自动化的量产车[35]。然而,由驾驶员从自动模式手动接管控制引发了另一个问题。最近的研究[36][37]调查了这个问题,发现接管情况增加了与周围车辆的碰撞风险。收购期间发生事故的可能性增加是一个尚未解决的问题。
在四级和五级时,在任何程度上都不需要人类的关注。但是,Level four只能在存在特殊基础设施或详细地图的有限ODD中运行。在离开这些区域的情况下,车辆必须通过自动停车来停止行程。全自动系统,Level five,可以在任何道路网络和任何天气条件下运行。目前还没有量产车能够实现四级或五级驾驶自动化。此外,丰田研究所表示,业内没有人甚至接近达到五级自动化[38]。
城市道路网络中四级及以上的驾驶自动化是一个开放且具有挑战性的问题。从天气条件到周围人类行为的环境变量具有高度的不确定性,难以预测。此外,系统故障会导致事故:在现代比赛中,一辆ADS因下雨而坠毁[15],Google的ADS在换道时撞上了一辆公共汽车,因为它未能估计公共汽车的速度[16],特斯拉的自动驾驶仪识别失败了一辆白色卡车并与之相撞,导致司机死亡[17]。
由不成熟的ADS造成的死亡[17][18]会破坏信任。根据最近的一项调查[30],大多数消费者质疑该技术的安全性,他们希望对ADS的开发和使用进行大量控制。另一方面,极其谨慎的ADS也给人留下了负面印象[39]。
道德困境带来了另一组挑战。在不可避免的事故情况下,系统应该如何表现[40]?关于这个问题提出了实验伦理学[41]。
风险和可靠性认证是另一项尚未解决的任务。与飞机一样,ADS需要设计为具有高冗余性,以最大限度地减少灾难性故障的可能性。即使在这方面有前景的项目,如DeepTest [42],设计-模拟-测试-重新设计认证程序仍然没有被行业和规则制定者建立。
最后,到达目的地的时间、燃油效率、舒适度和拼车优化等各种优化目标增加了已经难以解决的问题的复杂性。因此,在定义明确的地理围栏区域之外的严格条件下安全地执行所有动态驾驶任务尚未实现,并且仍然是一个悬而未决的问题。
III. SYSTEM COMPONENTS AND ARCHITECTURE
A. System architecture
系统架构的分类如图1所示。ADS被设计为独立的、仅限自我的系统[20][43]或连接的多智能体系统[44]-[46]。此外,这些设计理念通过两种替代方法实现:模块化[20][43][47]-[54]或端到端设计[55]-[63]。
1) Ego-only systems: 仅自我的方法是始终在一辆自给自足的车辆上进行所有必要的自动驾驶操作,而在特定情况下,连接的ADS可能会或可能不会依赖于其他车辆和基础设施元素。Ego-only是最先进的ADS [20][43][47]-[54]中最常见的方法。我们认为这是由于拥有一个自给自足的开发平台的实用性以及连接系统的额外挑战。
2) Modular systems: 模块化系统,在某些作品中被称为中介方法[55],被构造为将感官输入连接到执行器输出的独立组件的流水线[11]。模块化ADS的核心功能可以概括为:定位与建图、感知、评估、规划与决策、车辆控制和人机界面。典型的流水线[20][43][47]-[54]首先将原始传感器输入提供给定位和对象检测模块,然后是场景预测和决策。最后,控制模块[11][64]在流结束时生成电机命令。
单独开发单个模块将自动驾驶的挑战性任务划分为一组更容易解决的问题[65]。这些子任务在机器人[66]、计算机视觉[67]和车辆动力学[32]方面都有相应的文献,这使得积累的专业知识和专业知识可以直接转移。这是模块化系统的主要优势。此外,功能和算法可以在模块化设计中集成或相互构建。例如,可以在复杂的规划模块之上实施安全约束[68],以强制执行一些硬编码的紧急规则,而无需修改规划器的内部工作。这使得设计冗余但可靠的架构成为可能。
模块化系统的主要缺点是容易出现误差传播[11]和过于复杂。在不幸的特斯拉事故中,感知模块中的一个错误,将一辆白色拖车误分类为天空,沿着流水线传播直到失败,导致第一个与ADS相关的死亡事件[42]。
3) End-to-end systems: 端到端驾驶系统,在一些研究中被称为直接感知[55],直接从感官输入产生自我运动。自我运动可以是方向盘和踏板的连续操作,也可以是一组离散的动作,例如加速和左转。端到端驾驶有三种主要方法:直接监督深度学习[55]-[59]、神经进化[62][63]和最近的深度强化学习[60][61]。图2显示了通用端到端驱动系统的流程图,表II给出了这些方法的比较。
最早的端到端驾驶系统可以追溯到ALVINN [56],其中训练了一个三层全连接网络以输出车辆应遵循的方向。[57]中介绍了一种用于越野驾驶的端到端系统。随着人工神经网络研究的进步,深度卷积和时间网络对于自动驾驶任务变得可行。在[58]中提出了一种以图像为输入并输出转向的深度卷积神经网络。在[59]中开发了一种时空网络,一种FCN-LSTM架构,用于预测自我车辆运动。DeepDriving是另一个卷积模型,它试图从图像输入中学习一组离散的感知指标[55]。这种方法并不完全是端到端的,感知指标中的正确驾驶行为必须由另一个模块生成。所有提到的方法都遵循直接监督训练策略。因此,训练需要基本事实。通常,基本事实是专家人类驾驶员的自我动作序列,网络学会模仿驾驶员。这就提出了一个重要的设计问题:ADS应该像人类一样驾驶吗?
一种新颖的深度强化学习模型Deep Q Networks (DQN),将强化学习与深度学习相结合[69]。总之,网络的目标是选择一组最大化累积未来奖励的动作。使用深度卷积神经网络来逼近最佳动作奖励函数。首先通过随机初始化生成动作。然后,网络根据经验调整其参数,而不是直接监督学习。[60]中介绍了使用DQN的自动驾驶框架,其中网络在模拟环境中进行了测试。第一次使用DQN在现实世界中运行是在没有交通的乡村道路上实现的[61]。基于DQN的系统不会模仿人类驾驶员,而是学习"最佳"驾驶方式。
神经进化是指使用进化算法来训练人工神经网络[70]。具有神经进化的端到端驾驶不像DQN和直接监督学习那样流行。据我们所知,现实世界中的神经进化端到端驾驶尚未实现。然而,获得了一些有希望的模拟结果[62][63]。ALVINN接受了神经进化训练,并优于直接监督学习版本[62]。在[63]中使用驾驶模拟器对RNN进行了神经进化训练。神经进化的最大优势是消除了反向传播,因此需要直接监督。
端到端驾驶很有前景,但除了有限的演示之外,它还没有在现实世界的城市场景中实施。一般来说,端到端系统的最大缺点是缺乏硬编码的安全措施和可解释性[65]。此外,与直接监督学习相比,DQN和神经进化有一个主要缺点:这些网络必须与在线环境交互,并且在学习所需行为方面失败了很多。相反,直接监督网络可以使用标记数据进行离线训练。
4) Connected systems: 目前还没有使用可操作的连接ADS,但是,一些研究人员[44]-[46]认为,这种新兴技术将是驾驶自动化的未来。通过使用车载自组织网络(VANET),自动驾驶的基本操作可以分布在智能体之间。V2X是一个术语,代表"车辆到一切"。从行人的移动设备到交通信号灯上的固定传感器,车辆可以通过V2X [26]访问大量数据。通过在对等点之间共享交通网络的详细信息[71],可以消除仅自我平台的缺点,例如感应范围、盲点和计算限制。在可预见的未来,预计将出现更多能够提高安全性和交通效率的V2X应用程序[72]。
VANET可以通过两种不同的方式实现:传统的基于IP的网络和以信息为中心的网络(ICN)[44]。对于车辆应用,大量数据必须以间歇性和不太理想的连接分布在智能体之间,同时保持高移动性[46]。传统的基于IP主机的Internet协议在这些条件下无法正常运行。另一方面,在以信息为中心的网络中,车辆将查询消息流式传输到一个区域而不是直接地址,并且它们接受来自任何发送者的相应响应[45]。由于车辆在道路网络上具有高度移动性和分散性,因此信息源的身份变得不那么相关。此外,本地数据通常为即时驾驶任务提供更重要的信息,例如在盲点上避开快速接近的车辆。
早期的工作,例如CarSpeak系统[73],证明车辆可以利用彼此的传感器并使用共享信息来执行一些动态驾驶任务。然而,如果不减少大量的连续驾驶数据,一个城市的数十万辆汽车之间共享信息是不可行的。为此,[74]中引入了一个符号学框架,该框架集成了不同的信息源并将原始传感器数据转换为有意义的描述。在[75]中,提出了车载云计算(VCC)一词,并介绍了它相对于传统互联网云应用程序的主要优势。传感器是造成差异的主要原因。在VCC中,传感器信息保存在车辆上,只有在有来自另一辆车的本地查询时才共享。这可能会节省将传感器数据恒定流上传/下载到网络的成本。此外,本地数据的高相关性增加了VCC的可行性。将常规云计算与车载云计算进行了比较,据报道,VCC在技术上是可行的[76]。提出了术语"车联网"(IoV)来描述连接的ADS [44],并在[45]中引入了术语"车载雾"。
在城市中建立一个拥有数千辆汽车的高效VANET是一项巨大的挑战。对于基于ICN的VANET,一些具有挑战性的主题是安全性、移动性、路由、命名、缓存、可靠性和多访问计算[77]。总之,尽管连接系统的潜在好处是巨大的,但额外的挑战在很大程度上增加了问题的复杂性。因此,还没有可操作的连接系统。
B. Sensors and hardware
最先进的ADS采用多种板载传感器。在大多数任务中都需要高传感器冗余以实现鲁棒性和可靠性。硬件单元可分为五类:用于感知的外部感知传感器、用于内部车辆状态监测任务的本体感知传感器、通信阵列、执行器和计算单元。
外部感知传感器主要用于感知环境,包括动态和静态物体,例如可驾驶区域、建筑物、人行横道。相机、激光雷达、雷达和超声波传感器是这项任务最常用的方式。外部感受器的详细比较见表III。
1) 单目相机(Monocular Cameras): 相机可以感知颜色并且是被动的,即不发出任何信号进行测量。感知颜色对于交通信号灯识别等任务极为重要。此外,2D计算机视觉是一个成熟的领域,拥有卓越的最先进算法。此外,无源传感器不会干扰其他系统,因为它不会发出任何信号。然而,相机有一些缺点。光照条件会极大地影响它们的性能,并且很难从单个摄像头获取深度信息。有一些有希望的研究[83]来改善基于单目相机的深度感知,但是除了用于动态驾驶任务的相机之外,不受光照和天气条件负面影响的模式仍然是必要的。其他对ADS感兴趣的相机类型包括闪光相机[78]、热成像相机[80][81]和事件相机[79]。
2) 全向相机(Omnidirection Camera): 对于360度的2D视觉,全向相机被用作相机阵列的替代品。它的使用越来越多,越来越紧凑和高性能的硬件不断发布。全景视图尤其适用于导航、定位和地图绘制等应用[84]。
3) 事件相机(Event Cameras): 事件相机是在ADS中使用的较新的传感模式之一[85]。事件相机根据视觉刺激异步记录单个像素的数据。因此,输出是不规则的数据点序列,或由亮度变化触发的事件。响应时间为微秒级[86]。当前事件相机的主要限制是像素大小和图像分辨率。例如,图4所示的DAVIS40图像的像素大小为18.5 × 18.5 μm,分辨率为240 × 180。最近,一个带有事件相机数据的驾驶数据集已经发布[85]。
4) 雷达(Radar): 雷达、激光雷达和超声波传感器在弥补相机的缺点方面非常有用。深度信息,即到物体的距离,可以通过这些传感器有效地测量以检索3D信息,并且它们不受光照条件的影响。但是,它们是有源传感器。 雷达发射从物体反弹回来的无线电波并测量每次反弹的时间。有源传感器的排放可能会干扰其他系统。雷达是一项成熟的技术,既轻便又具有成本效益。例如,雷达可以安装在后视镜内。雷达更便宜,并且可以比激光雷达检测更远距离的物体。但是,激光雷达更准确。
5) 激光雷达(Lidar): 激光雷达的工作原理与雷达相似,但它发射的是红外光波而不是无线电波。它比200米以下的雷达具有更高的精度。雾或雪等天气条件会对激光雷达的性能产生负面影响。另一个方面是传感器尺寸。由于空间有限和空气动力学限制,车辆上首选较小的传感器。激光雷达比雷达大。
在[87]中,人类感知性能与ADS进行了比较。这项研究的主要发现之一是,尽管人类驾驶员总体上仍然更擅长推理,但具有传感器融合的ADS的感知能力可能超过人类,尤其是在照明不足等退化条件下。
6) 本体感受器(Proprioceptive sensors): 本体感觉是另一个关键类别。必须连续测量速度、加速度和偏航等车辆状态,以便通过反馈安全地操作平台。几乎所有现代量产车都配备了足够的本体感受传感器。车轮编码器主要用于里程计,惯性测量单元(IMU)用于监测速度和位置变化,转速计用于测量速度,高度计用于高度。这些信号可以通过现代汽车的CAN协议访问。
除了传感器之外,ADS还需要执行器来操纵车辆和先进的计算单元来处理和存储传感器数据。
7) 全尺寸汽车(Full size cars): 不同的研究小组(例如斯坦福大学的Junior [20])引入了许多仪表化车辆,它们采用了一系列具有不同模式的传感器来感知外部和内部变量。Boss [43]凭借大量传感器赢得了DARPA城市挑战赛。RobotCar [49]是一个更便宜的数据收集研究平台。此外,行业还推出了不同级别的驾驶自动化;特斯拉的自动驾驶仪[88]和谷歌的自动驾驶汽车[89]就是一些例子。Bertha [53]由戴姆勒开发,有4个120度短程雷达,侧面有两个远程雷达,立体摄像头,仪表板上的广角单目彩色摄像头,后面还有一个广角摄像头。我们的车辆如图5所示。表IV给出了10种不同全尺寸ADS的传感器设置的详细比较。
8) 大型车辆和拖车(Large vehicles and trailers): 最早的智能卡车是为加利福尼亚的PATH计划开发的[98],该计划在道路上使用磁性标记。燃油经济性是货运中的一个重要主题,为此目的开发了诸如编队等方法。排队是一个经过充分研究的现象。它减少了阻力,因此减少了燃料消耗[99]。在半自动卡车队列中,领头卡车由一名人类驾驶员驾驶,后面跟着几辆自动卡车;形成[100]中定义的半自动道路列车。Sartre欧盟项目[101]引入了这样一个满足三个核心条件的系统:使用现有的公共道路网络,与非自动化车辆共享交通,不修改道路基础设施。在[99]中形成了一个由三辆自动卡车组成的排,并报告了显著的燃料节省。
拖拉机-拖车设置对自动化货运提出了额外的挑战。传统的控制方法,如反馈线性化[102]和模糊控制[103]用于路径跟踪,而不考虑折刀约束。顶刀、卡车和拖车相互碰撞的可能性增加了任务的难度[104]。[104]中提出了一种控制安全调速器设计,以防止倒车时的折刀。
IV. LOCALIZATION AND MAPPING
A. GPS-IMU fusion
B. Simultaneous localization and mapping
C. A priori map-based localization
V. PERCEPTION
感知周围环境并提取可能对安全导航至关重要的信息是一个关键目标。使用不同感知方式的各种任务都属于感知的范畴。基于数十年的计算机视觉研究,相机是最常用的感知传感器,3D视觉成为强有力的替代/补充。
本节的提醒被分为核心感知任务。我们在第V-A1节讨论基于图像的对象检测,在第V-A2节讨论语义分割,在第V-A3节讨论3D目标检测,在第V-C节讨论道路和车道检测,在第V-B节讨论目标跟踪。
A. Detection
1) Image-based Object Detection: 目标检测是指识别感兴趣目标的位置和大小。从交通信号灯和标志到马路交叉口的静态对象,以及其他车辆、行人或骑自行车的人等动态对象,都受到ADS的关注。广义目标检测作为计算机视觉的中心问题有着悠久的历史,其目标是确定图像中是否存在特定类别的目标,然后通过矩形边界框确定它们的大小。本节主要讨论最先进的目标检测方法,因为它们代表了ADS管道中其他几个任务的起点,例如目标跟踪和场景理解。
目标识别研究始于50多年前,但直到最近,在1990年代末和2000年代初,算法性能才达到与驾驶自动化相关的水平。2012年,深度卷积神经网络(DCNN) AlexNet [12]打破了ImageNet图像识别挑战[132]。这导致焦点几乎完全转移到监督学习,特别是目标检测的深度学习。关于基于图像的一般目标检测存在许多广泛的调查[133]-[135]。在此,重点是可以应用于ADS的最先进的方法。
虽然最先进的方法都依赖于DCNN,但目前它们之间存在明显的区别:
1)单阶段检测框架使用单个网络同时产生目标检测位置和类别预测。
2)区域提议检测框架有两个不同的阶段,首先提出一般感兴趣区域,然后通过单独的分类器网络进行分类。
区域提议方法目前是领先的检测基准,但代价是需要高计算能力,并且通常难以实现、训练和微调。同时,单阶段检测算法往往具有快速的推理时间和较低的内存成本,非常适合实时驾驶自动化。YOLO (You Only Look Once)[136]是一种流行的单级检测器,它一直在不断改进[123][137]。他们的网络使用DCNN在粗网格上提取图像特征,显著降低了输入图像的分辨率。然后,一个全连接的神经网络预测每个网格单元和类的类概率和边界框参数。这种设计使YOLO速度非常快,整个模型以45 FPS运行,而较小的模型以155 FPS运行,以进行较小的精度权衡。该方法的最新版本YOLOv2、YOLO9000 [137]和YOLOv3 [123]在保持低计算和内存成本的同时短暂接管了PASCAL VOC和MS COCO基准。另一种被广泛使用的算法,甚至比YOLO更快,是单次检测器(Single Shot Detector, SSD)[138],它使用标准DC??NN架构(如VGG [131])在公共基准测试中获得有竞争力的结果。SSD在类似于YOLO的粗略网格上执行检测,但也使用在DCNN早期获得的更高分辨率特征来改进小物体的检测和定位。
考虑准确性和计算成本对于ADS中的检测至关重要;检测需要可靠,但运行得比实时更好,以便规划和控制模块有尽可能多的时间对这些物体做出反应。因此,单级检测器通常是ADS的首选检测算法。然而,如表VI所示,在两阶段检测框架中使用的区域提议网络(RPN)在目标识别和定位精度方面已被证明是无与伦比的,并且近年来计算成本有了很大提高。它们也更适合与检测相关的其他任务,例如第V-A2节中讨论的语义分割。通过迁移学习,RPN同时实现多个感知任务对于在线应用变得越来越可行[124]。在不久的将来,RPN可以取代用于ADS应用的单级检测网络。
全向相机(Omnidirectional Cameras): 360度视觉,或者至少是全景视觉,是更高水平的自动化所必需的。这可以通过摄像头阵列来实现,尽管每个摄像头之间需要进行精确的外部校准才能使图像拼接成为可能。或者,可以使用全向相机,或具有广角鱼眼镜头的较小相机阵列。然而,这些很难从本质上校准;球面图像高度失真,使用的相机模型必须考虑镜面反射或鱼眼镜头失真,这取决于产生全景图像的相机模型[139][140]。模型和校准的准确性决定了生成的未失真图像的质量,在这些图像上使用了上述2D视觉算法。图3显示了鱼眼镜头产生两个球面图像然后组合成一个全景图像的示例。一些失真不可避免地仍然存在,但尽管在校准方面存在这些挑战,但全向相机已被用于许多应用,例如SLAM [141]和3D重建[142]。
事件相机(Event Cameras):事件相机是一种相当新的模式,它输出通常由观察场景中的移动引起的异步事件,如图4所示。这使得传感模式对于动态物体检测很有趣。另一个吸引人的因素是它们的微秒级响应时间[86],因为帧速率是高速驱动的重要限制。传感器分辨率仍然是一个问题,但新型号正在迅速改进。
它们已被用于与ADS密切相关的各种应用。最近的一项调查概述了姿势估计和SLAM、视觉惯性里程计和3D重建以及其他应用的进展[143]。最值得注意的是,最近发布了一个使用事件相机进行端到端驾驶的数据集,初步实验表明,事件相机的输出在某种程度上可以用于预测汽车转向角[85]。
光照差与外观变化(Poor Illumination and Changing Appearance): 使用相机的主要缺点是光照条件的变化会显著影响其性能。弱光条件本来就难以处理,而由于阴影变化、不温不火的天气或季节变化导致的光照变化可能导致算法失败,尤其是监督学习方法。例如,雪极大地改变了场景的外观并隐藏了潜在的关键特征,例如车道标记。一个简单的替代方法是使用替代传感模式进行感知,但激光雷达在雪等天气条件下也有困难[144],而且雷达缺乏许多感知任务所需的分辨率[47]。通常采用传感器融合策略来避免任何单点故障[145]。
通过红外传感器进行的热成像也用于低光照条件下的目标检测,这对于行人检测特别有效[146]。还开发了尝试直接处理动态照明条件的仅相机方法。已经提出了尝试提取光照不变特征[147]和评估特征质量[148]的方法。预处理的光照不变图像已应用于ADS [149],并被证明可以在很长一段时间内提高定位、映射和场景分类能力。尽管如此,处理照明不足或变化带来的不可预测的条件仍然是阻碍ADS广泛实施的核心挑战。
2) Semantic Segmentation:
3) 3D Object Detection:
雷达(Radar):
B. Object Tracking
C. Road and Lane Detection
VI. ASSESSMENT
A. Risk and uncertainty assessment
B. Surrounding driving behavior assessment
C. Driving style recognition
VII. PLANNING AND DECISION MAKING
A. Global planning
B. Local planning
VIII. HUMAN MACHINE INTERFACE
IX. DATASETS AND AVAILABLE TOOLS
A. Datasets and Benchmarks
数据集对研究人员和开发人员至关重要,因为大多数算法和工具在上路之前都必须经过测试和训练。
通常,感官输入被输入到具有各种目标的算法堆栈中。一种常见的做法是在带注释的数据集上分别测试和验证这些函数。例如,摄像机的输出(2D视觉)可以输入目标检测算法,以检测周围的车辆和行人。然后,此信息可用于另一种算法以用于规划目的。即使这两种算法在本示例的堆栈中连接,目标检测部分也可以在开发过程中单独工作和验证。由于计算机视觉是一个经过充分研究的领域,因此有专门用于目标检测和跟踪的注释数据集。这些数据集的存在增加了开发过程,并使跨学科研究团队能够更有效地相互合作。对于端到端系统,数据集必须包括额外的自我车辆信号,主要是转向和纵向控制信号。
随着学习方法的出现,支持它们的训练数据集也出现了。从2005年到2012年增长的PASCAL VOC数据集[288]是第一个具有大量具有ADS相关类别的数据的数据集。然而,这些图像通常以单个物体为特征,在场景和尺度上并不代表在驾驶场景中遇到的情况。2012年,KITTI Vision Benchmark [174]通过提供相对大量的标记驾驶场景来纠正这种情况。它现在仍然是与驾驶自动化相关的应用程序中使用最广泛的数据集之一。然而,就数据量和标记类的数量而言,它远不如ImageNet [132]和COCO [150]等通用图像数据库。虽然毫无疑问对训练很有用,但通用图像数据库仍然缺乏足够的上下文来测试ADS的功能。UC Berkeley DeepDrive [271]是一个带有注释图像数据的最新数据集。Oxford RobotCar [49]用于在英国通过六个摄像头、激光雷达、GPS和INS收集超过1000公里的驾驶数据。数据集虽然没有注释。ApolloScape是一个非常新的数据集,尚未完全公开[274]。Cityscapes [270]通常用于计算机视觉算法作为基准集。Mapillary Vistas是一个带有注释的大型图像数据集[272]。TorontoCity benchmark [282]是一个非常详细的数据集;但是它尚未公开。nuScenes数据集是最新的带有激光雷达和图像传感器的城市驾驶数据集[175]。Comma.ai发布了他们的数据集[289]的一部分,其中包括7.25小时的驾驶时间。在DDD17 [85]中记录了大约12小时的驾驶数据。LiVi-Set [277]是一个具有激光雷达、图像和驾驶行为的新数据集。
自然驾驶数据是另一种类型的数据集,专注于驾驶的单个元素:驾驶员。SHRP2 [279]包括超过3000名志愿者在3年收集期内的驾驶数据。其他自然驾驶数据集是100-Car study [280]、euroFOT [281]和NUDrive [278]。表X显示了这些数据集的比较。
B. Open-source frameworks and simulators
开源框架对研究人员和行业都非常有用。这些框架可以使ADS开发"民主化"。Autoware [110]、Apollo [290]、Nvidia DriveWorks [291]和openpilot [292]是能够在现实世界中运行ADS平台的最常用的软件堆栈。我们利用Autoware [110]来实现本研究中的核心自动驾驶功能。
模拟在ADS开发中也占有重要地位。由于实验车辆的仪表成本仍然很高,并且在公共道路网络上进行实验受到高度监管,因此模拟环境有利于在道路测试之前开发某些算法/模块。此外,可以轻松地在模拟中测试高度危险的场景,例如与行人碰撞。CARLA [264]是为此目的开发的城市驾驶模拟器。TORCS [293]是为赛道模拟而开发的。一些研究人员甚至使用了电脑游戏,例如侠盗猎车手V [294]。Gazebo [295]是机器人技术的常见模拟环境。对于交通模拟,SUMO [296]是一个广泛使用的开源平台。[297]提出了将真实世界的测量结果集成到模拟环境中的不同概念。
X. CONCLUSIONS
在这项关于自动驾驶系统的调查中,我们概述了一些关键创新以及现有系统。虽然自动驾驶的前景很诱人并且已经向消费者推销,但这项调查表明,研究中仍然存在明显的差距。已经提出了几种架构模型,从完全模块化到完全端到端,每种都有自己的缺点。定位、映射和感知的最佳传感模式仍然存在分歧,算法仍然缺乏准确性和效率,并且对适当的在线评估的需求已经变得明显。不太理想的路况仍然是一个悬而未决的问题,以及应对不温不火的天气。车对车通信仍处于起步阶段,而由于所需的复杂基础设施,尚未实施集中的、基于云的信息管理。人机交互是一个研究不足的领域,存在许多未解决的问题。
自动驾驶系统的发展依赖于科学学科和新技术的进步。因此,我们在最近的研究进展中讨论了可能对自动驾驶技术产生重大影响的方法,无论是通过克服先前方法的弱点还是通过提出替代方法。这项调查表明,通过跨学科的学术合作以及行业和公众的支持,可以解决剩余的挑战。在努力确保各级自动驾驶系统的稳健性方面,安全高效的道路已经遥遥无期。