专栏名称: 智能车情报局
聚焦智能汽车关键技术与创新产品
目录
相关文章推荐
新华网财经  ·  微信又出新功能!网友:好方便,但…… ·  昨天  
新华网财经  ·  微信又出新功能!网友:好方便,但…… ·  昨天  
山西高院  ·  山河来信,待你启封! ·  昨天  
山西高院  ·  山河来信,待你启封! ·  昨天  
西安头条  ·  被指吃相难看!爱奇艺回应 ·  昨天  
法治网  ·  “DeepSeek告诉我得用什么药”,人工智 ... ·  2 天前  
法治网  ·  “DeepSeek告诉我得用什么药”,人工智 ... ·  2 天前  
政法频道  ·  长沙奥体中心首次曝光! ·  3 天前  
政法频道  ·  长沙奥体中心首次曝光! ·  3 天前  
51好读  ›  专栏  ›  智能车情报局

端到端自动驾驶:挑战与前沿(上)

智能车情报局  · 公众号  ·  · 2025-02-09 21:35

正文

直播预告

智猩猩「DeepSeek大解读」系列公开课来喽! 前两期分别直播讲解《DeepSeek V3/R1架构的深度分析与深度思考》、《PTX与CUDA:性能、兼容性与生态系统》。扫码申请直播观看或入群交流。


文章转载自公众号:MLSys2024。本文只做学术/技术分享,如有侵权,联系删文。


图片


01

摘要


自动驾驶社区见证了快速发展的趋势,许多方法采用端到端算法框架,利用原始传感器输入生成车辆运动规划,而不是集中在诸如检测和运动预测等单个任务上。


与模块化流水线相比,端到端系统通过感知和规划的联合特征优化受益。由于大规模数据集的可用性、闭环评估以及自主驾驶算法在复杂场景中有效运行的日益需求,这一领域得到了快速发展。


解释

1. 端到端自动驾驶的优势:模块化流水线通常是把自动驾驶任务拆解成多个单独的子任务,比如分别处理感知(识别物体、检测道路等)、决策(规划行驶路径)、控制(控制车速和方向)等每个环节。这些环节通常是独立处理的,可能每个环节的优化效果有限。


而端到端系统则是把所有这些任务整合为一个统一的系统,它直接从原始传感器数据(例如相机、雷达等)中学习到如何做出驾驶决策。通过这种方式,端到端系统能够更好地通过“感知”和“规划”这两个功能的联合优化,提升整体性能。这意味着,感知和规划在同一个框架下互相作用和优化,能够使整个系统更加高效、协同。


2.端到端自动驾驶快速发展的关键因素:大规模数据的可用性 & 闭环评估技术(模拟&实际)& 复杂驾驶环境需求;


在本综述中,我们对270多篇论文进行了全面分析,涵盖了端到端自主驾驶的动机、路线图、方法论、挑战和未来趋势。我们深入探讨了多个关键挑战,包括多模态性、可解释性、因果混淆、鲁棒性和世界模型等。此外,我们讨论了基础模型和视觉预训练的当前进展,以及如何将这些技术融入端到端驾驶框架。


我们维护一个活跃的仓库,包含最新的文献和开源项目,网址为 https://github.com/OpenDriveLab/End-to-end-Autonomous-Driving。


02

引言


传统的自动驾驶系统采用模块化设计策略,将每个功能模块(如感知、预测和规划)单独开发并集成到车载系统中。 负责生成转向和加速度输出的规划或控制模块在决定驾驶体验中起着至关重要的作用。


模块化流水线中最常见的规划方法是使用复杂的基于规则的设计,但这种方法往往无法有效应对道路上发生的各种复杂情况。因此,越来越多的研究开始利用大规模数据,并采用基于学习的规划作为一种可行的替代方案。


图片


我们将端到端自主驾驶系统定义为完全可微分的程序,能够将原始传感器数据作为输入,并输出规划和/或低级控制动作。上图展示了传统方法与端到端方法的区别。 传统方法将每个组件的输出(如边界框和车辆轨迹)直接输入到后续模块(虚线箭头)。而端到端方法则通过组件之间传播特征表示(实线灰色箭头) 。优化函数通常设定为规划性能,通过反向传播(红色箭头)来最小化损失。在这一过程中,所有任务是联合优化的。


图片


在本综述中,我们对这一新兴话题进行了广泛的回顾。图1概述了我们的工作内容。 我们首先讨论端到端自主驾驶系统的动机和发展路线 。端到端方法可以大致分为模仿学习和强化学习,我们对这两种方法进行了简要回顾。接 着,我们介绍了适用于闭环和开环评估的数据集和基准测试 。我们总结了一系列关键挑战,包括可解释性、泛化能力、世界模型、因果混淆等问题。 最后,我们讨论了未来的发展趋势 ,重点是如何结合数据引擎、大型基础模型等最新进展,推动这一领域的进一步发展。


需要注意的是,本综述主要从理论角度进行阐述。工程方面的工作,如版本控制、单元测试、数据服务器、数据清理、软硬件协同设计等,对于端到端技术的部署至关重要。但关于这些主题的公开信息相对有限。我们呼吁社区在未来的讨论中更加开放和分享相关经验。


1.1 端到端系统的动机


传统流水线 中,每个模型作为独立组件,负责执行特定任务(例如,交通信号灯检测)。这种设计 在可解释性和调试方面具有优势 。然而, 由于各个模块的优化目标不同 ,例如检测任务追求平均精度(mAP),而规划任务则侧重于驾驶安全和舒适性, 整个系统可能无法对齐到一个统一的目标,即最终的规划/控制任务 。在这种情况下,每个模块的错误可能在顺序处理过程中逐步累积,从而导致信息丢失。此外,相较于一个端到端的神经网络,涉及多个编码器和信息传递系统的多任务、多模型部署可能增加计算负担,并可能导致 计算资源的非最优利用


与传统方法相比, 端到端自主系统 具有多个优势:(a) 最明显的优点是能够 将感知、预测和规划 结合为一个单一模型,并且可以 共同训练 。(b) 整个系统,包括其中间表示,都是 针对最终任务进行优化 的。(c) 共享的骨干网络可以 提高计算效率 。(d) 数据驱动的优化有潜力通过简单地扩展训练资源来改善系统性能。


需要注意的是,端到端范式并不一定意味着一个只有规划/控制输出的黑箱系统。它仍然可以包含中间表示和输出,类似于传统方法。事实上,一些先进的系统[1,2]提出了模块化设计,但优化所有组件以实现更优的性能。


1.2 发展路线


图片


图2展示了端到端自动驾驶的关键成就的时间发展路线图,每个部分标示了一个重要的范式转变或性能提升。


端到端自主驾驶的历史可以追溯到1988年,当时ALVINN系统使用来自相机和激光测距仪的两个“视网膜”作为输入,并通过一个简单的神经网络生成转向输出。


NVIDIA设计了一个端到端的CNN原型系统,重新在GPU计算时代推动了这一想法。随着深度神经网络的发展,端到端自主驾驶取得了显著进展,尤其是在模仿学习和强化学习方面。LBC中提出的策略蒸馏范式和相关方法通过模仿表现良好的专家,显著提高了闭环性能。


为了增强系统的泛化能力,尤其是由于专家策略和学习策略之间的差异,一些研究提出了在训练过程中聚合在线数据的策略。 2021年左右,端到端自主驾驶的一个重要转折点出现了 。随着各种传感器配置在合理的计算预算内变得可用,研究重点开始转向集成更多的感知模态和先进的架构(例如,Transformer [27]),以便捕捉全局上下文和代表性特征,这在TransFuser及其多个变体中得到了体现。这些先进设计结合了对仿真环境的更多理解,导致在CARLA基准测试上取得了显著的性能提升。


为了提高自主系统的可解释性和安全性,一些方法显式地引入了各种辅助模块,以更好地监督学习过程,或利用注意力可视化。近期的工作重点包括生成安全关键数据、为策略学习预训练基础模型或骨干网络,并倡导一种模块化的端到端规划理念。与此同时,新的、更具挑战性的CARLAv2和nuPlan基准测试已被引入,以促进该领域的研究。

02

方法


2.1 模仿学习


模仿 学习(Imitation Learning,简称IL),也称为从示范中学习,是一种通过模仿专家行为来训练智能体学习策略的方法。

模仿学习需要一个数据集 D = { ξ i } ,其中包含在专家策略 π β 下收集的轨迹,每条轨迹是一个状态-动作对的序列。模仿学习的目标是学习一个策略 π ,使其尽可能匹配专家策略 π β 。该策略 π 可以输出规划轨迹或控制信号。


早期的工作通常采用控制输出,因为它们较容易收集。然而,在不同时间步预测控制信号可能导致不连续的操控动作,且网络本质上会专注于车辆动力学,这会限制其对其他车辆的泛化能力。


另一类工作则预测路径点(waypoints),它考虑了相对较长的时间跨度。与此同时,将车辆的轨迹转换为控制信号需要额外的控制器,这涉及车辆模型和控制算法,难度较大。


由于这两种范式在性能上没有明显的差距,我们在本综述中并未明确区分它们。


模仿学习中一个广泛使用的类别是行为克隆(Behavior Cloning,BC),它将问题转化为监督学习问题。逆最优控制(Inverse Optimal Control,IOC),也称为逆强化学习(Inverse Reinforcement Learning,IRL),是另一种模仿学习方法,它利用专家示范来学习奖励函数。


2.1.1 行为克隆(Behavior Cloning)


图片


在行为 克隆(BC) 中,通过 最小化规划损失 来实现智能体策略与专家策略的匹配,其中监督学习中的损失函数 ( π θ ( s ) , a ) 用于度量智能体动作与专家动作之间的距离。


早期的BC应用于自动驾驶, 利用端到端神经网络从摄像头输入生成控制信号(如方向盘转动、加速等) 。为了使基于BC的端到端驾驶模型能够应对复杂的城市场景,提出了一些进一步的改进,如多传感器输入、辅助任务和改进的专家设计。


BC的优势在于其简洁性和高效性,因为它不需要手工设计奖励函数,而奖励函数在强化学习中是至关重要的。


然而, BC也存在一些常见的问题 在训练过程中,它将每个状态视为独立且同分布的,这会导致一个重要问题,即协变量偏移(covariate shift,协变量偏差指的是在训练过程中模型训练时所用的数据分布(例如,某些路况、驾驶场景的频率)与实际部署时遇到的数据分布(例如,实际道路的复杂性和多样性)不一致) 。对于一般的模仿学习,一些在线方法已经提出以解决这个问题。在端到端自主驾驶的背景下,DAgger方法已经在中被采用。


BC的另一个常见问题是因果混淆(causal confusion),即模仿者会利用并依赖于输入组件与输出信号之间的错误相关性(模型可能会将某些表面上相关的因素,如天气、交通状况,错误地认为是决定驾驶行为的关键因素,从而导致决策不准确) 。这两个挑战性问题将在第4.9节和第4.8节中进一步讨论。


2.1.2 逆最优控制(Inverse Optimal Control)


图片


逆最优控制(IOC) 是一种从专家示范中学习的算法。想象一下,专家驾驶员已经知道如何安全、舒适地驾驶,那么IOC就是通过观察专家驾驶员的行为来推测出一个“奖励函数”。这个奖励函数可以理解为:专家做出的每一个动作都有一个“奖励值”,这些奖励值反映了每个行为的好坏。


举个例子:如果专家在某个情境下选择了急刹车,可能这个行为会得到较低的奖励值,因为急刹车一般来说不够平稳。而如果专家做出了一个平稳的转弯,可能会得到较高的奖励值。


但在自动驾驶的场景中,奖励函数的定义非常复杂,因为它要考虑很多因素,比如路况、交通规则、其他车辆的行为等等,而且这些因素是动态变化的。所以,优化这个奖励函数非常困难


生成对抗模仿学习(GAIL) 是一种基于对抗学习的算法,属于IOC的一个特殊方法。GAIL的核心思想是:它不仅仅是模仿专家的行为,而是通过让学习系统和专家系统之间“对抗”来学习最佳策略。具体来说,GAIL的目标是让一个“判别器”区分专家行为和学习行为,系统通过不断调整自己的行为,使得这个“判别器”无法再区分专家的行为和系统自己的行为。


这个方法就像生成对抗网络(GAN)一样,GAN中有一个“生成器”和一个“判别器”互相竞争,最终生成器学会了如何生成足够真实的内容。


在自动驾驶中,GAIL可以用来训练一个驾驶系统,使它的驾驶行为足够接近专家,甚至无法被“判别器”区分。


成本学习(Cost Learning) 是IOC中的一种方法。它的核心是将“奖励函数”替换成“成本函数”,两者类似但含义相反。奖励函数通常表示好的行为,而成本函数表示坏的行为 。比如,急刹车可能是一个高成本的行为,而平稳驾驶是一个低成本的行为。


在成本学习中,自动驾驶系统会学习如何选择最低成本的行为 。例如,在路上行驶时,系统会选择最少危险、最舒适的行驶轨迹,这些轨迹的“成本”是最小的。成本设计方面,成本函数可以有不同的表示方法:


1.鸟瞰图(BEV)中的成本体积:BEV是“鸟瞰视角”(俯视图),用来表示车辆周围的环境。学习成本体积意味着系统会考虑从上方观察到的场景,选择最低成本的驾驶路径。


2.联合能量:在其他车辆的未来运动中计算“联合能量”来选择最佳行动轨迹。


3.概率语义占用层和自由空间层:这些层次表示了道路上的占用空间和空旷空间,系统需要避开占用空间并选择空旷区域行驶。


成本学习方法存在一些挑战。特别是,为了生成更现实的成本,通常需要结合高清地图(HD maps)、辅助感知任务和多传感器数据,这增加了为多模态多任务框架学习和构建数据集的难度。


2.2 强化学习


图片


强化学习是一种通过“试错”学习的方法,简单来说,智能体(比如自动驾驶系统)通过不断地尝试不同的动作,并根据结果得到奖励或惩罚,从而学习哪些动作是好的,哪些是不好的 。这种方法最早通过“深度Q网络”(DQN)在Atari游戏中取得了成功,它可以通过学习来控制游戏中的角色。


在自动驾驶中,强化学习的目标是让车辆学会如何做决策,比如怎么转弯、加速、刹车等 。这是一个复杂的任务,因为驾驶过程中有很多不确定因素,比如交通、路况等。强化学习帮助系统通过与环境互动,不断改进驾驶策略。


尽管强化学习在仿真环境中取得了一些成功(比如车道保持),但它在现实世界中应用面临很大挑战。一个重要原因是,现实中的数据非常复杂,强化学习需要大量的数据来训练,而现实中很难保证所有可能的情况都能被模拟出来。更重要的是,强化学习在训练过程中并不会直接给出一个“正确答案”,它的训练过程需要大量的“试错”,这可能会带来一些不安全的行为。


强化学习已经成功地在空旷街道上的真实汽车中实现了车道跟踪。尽管这一结果令人鼓舞,但必须注意的是,三十年前,类似的任务已经通过模仿学习(IL)成功完成。迄今为止,还没有报告显示强化学习在端到端训练中取得的结果能够与模仿学习竞争。造成这种失败的原因可能是,通过强化学习获得的梯度不足以训练驾驶所需的深度感知架构(如 ResNet)。在像 Atari 这样的基准测试中,强化学习成功应用的模型相对较浅,仅由几层组成。


为了弥补强化学习的不足,许多研究选择将强化学习与监督学习(SL)结合。监督学习通过“标注好的数据”帮助系统更好地理解环境,而强化学习则帮助系统在复杂的环境中逐步优化自己的策略。通过这种结合,系统可以既从已有的知识中学习,又能在实践中不断改进。


隐式效用(implicit affordances)使用监督学习对 CNN 编码器进行预训练,任务包括语义分割等。在第二阶段,冻结该编码器,并在冻结的编码器特征上使用现代 Q 学习训练一个浅层的策略头。强化学习也可以用来微调那些已经通过模仿学习(IL)预训练的完整网络。


如果网络能够访问到优先的仿真器信息,强化学习也可以有效应用。优先强化学习(Privileged RL)代理可以用于数据集的策划。Roach 在优先的鸟瞰图(BEV)语义地图上训练强化学习代理,并使用该策略自动收集数据集,然后用于下游的模仿学习代理训练。WoR 使用 Q 函数和表格动态规划为静态数据集生成额外或改进的标签。


该领域的一个挑战是如何将仿真中的研究成果转移到现实世界 。在强化学习中,目标通过奖励函数来表示,许多算法要求这些奖励函数是密集的,并且在每个环境步骤中提供反馈。目前的研究通常使用简单的目标,如进展和避碰。这些简单的设计可能会鼓励风险行为。 设计或学习更好的奖励函数仍然是一个开放问题 。另一个方向是开发能够处理稀疏奖励的强化学习算法,从而直接优化相关的度量指标。强化学习还可以有效地与世界模型(world models)结合,尽管这也带来了特定的挑战(见第4.3节)。目前用于驾驶的强化学习解决方案过于依赖于低维度的场景表示,相关问题将在第4.2.2节中进一步讨论。


03

基准测试


自动驾驶系统需要通过全面的评估来确保安全性 研究人员必须使用合适的数据集、仿真器、评估指标和硬件来对这些系统进行基准测试


本节介绍了三种自动驾驶系统端到端基准测试的方法:(1) 现实世界评估,(2) 在线或闭环仿真评估,(3) 离线或开环评估。我们重点讨论可扩展且有原则的在线仿真评估,同时简要总结现实世界和离线评估以补充说明。


3.1 现实世界评估


早期的自动驾驶基准测试多依赖现实世界评估 。值得注意的是, DARPA发起了一系列竞赛,第一个比赛提供了100万美元的奖金,要求车辆自动驾驶穿越240公里的莫哈维沙漠,但没有车队成功完成。最终的DARPA城市挑战赛要求车辆在96公里的模拟城市赛道上行驶,遵守交通规则并避开障碍物。这些竞赛推动了自动驾驶技术的重要进展,如激光雷达传感器的使用。之后,密歇根大学建立了MCity,这是一个大规模的控制环境,用于测试自动驾驶车辆。然而,由于缺乏数据和车辆,这类学术项目在端到端系统中并未得到广泛应用 。相比之下,拥有部署无人驾驶车队资源的行业,可以通过现实世界评估来基准测试其算法的改进。


3.2 在线/闭环仿真


在现实世界中测试自动驾驶系统成本高且风险大。为了解决这一问题,仿真成为一种可行的替代方案。仿真器有助于快速原型开发和测试,能够快速迭代创意,并以低成本提供多种场景进行单元测试。此外,仿真器还提供了准确测量性能的工具。然而,其主要缺点是,仿真环境中的结果不一定能够推广到现实世界。


闭环评估是指构建一个尽可能接近现实世界驾驶环境的仿真环境 。评估过程中,自动驾驶系统在仿真环境中运行,并测量其表现。系统需要在交通中安全行驶,并朝着指定的目标位置前进。 开发这种仿真器需要涉及四个主要子任务:参数初始化、交通仿真、传感器仿真和车辆动态仿真 。我们将在下文简要描述这些子任务,并总结目前可用的开源仿真器,用于闭环基准测试。


3.2.1 参数初始化


仿真提供了对环境的高度控制,包括天气、地图、3D资源以及低级属性,如交通场景中物体的排列。虽然这种控制非常强大,但这些参数的数量非常庞大,因此设计起来非常具有挑战性。目前的仿真器通过以下两种方式解决这一问题:


程序化生成: 传统上,初始参数是由3D艺术家和工程师手动调节的,这限制了可扩展性。最近,一些仿真属性可以通过计算机算法从概率分布中采样,这种方法被称为程序化生成。程序化生成算法结合了规则、启发式方法和随机化,来创建多样的道路网络、交通模式、光照条件和物体摆放。由于相比完全手动设计,这种方法更高效,因此已经成为视频游戏和仿真中最常用的初始化方法之一。然而,该过程仍然需要预定义的参数和算法来控制生成的可靠性,这既耗时又需要大量的专业知识。







请到「今天看啥」查看全文