文献总结:TPAMI端到端自动驾驶综述——End-to-End Autonomous Driving: Challenges and Frontiers

端到端自动驾驶综述

  • 1. 文章基本信息
  • 2. 背景介绍
  • 3. 端到端自动驾驶主要使用方法
    • 3. 1 模仿学习
    • 3.2 强化学习
  • 4. 测试基准
    • 4.1 真实世界评估
    • 4.2 在线/闭环仿真测试
    • 4.3 离线/开环测试评价
  • 5. 端到端自动驾驶面临的挑战
    • 5.1 多模态输入
    • 5.2 对视觉表征的依赖
    • 5.3 基于模型的强化学习的世界模型复杂性
    • 5.4 对多任务学习的依赖
    • 5.5 专家模型与策略蒸馏低效
    • 5.6 缺乏可解释性
    • 5.7 缺乏安全保障
    • 5.8 因果混淆
    • 5.9 缺乏鲁棒性
  • 6. 未来研究方向
    • 6.1 零样本与小样本学习
    • 6.2 模块化端到端规划
    • 6.3 数据引擎
    • 6.4 基础模型
  • 总结

1. 文章基本信息

标题End-to-End Autonomous Driving: Challenges and Frontiers
期刊IEEE Transcations on Pattern Analysis and Machine Intelligence (IF=20.4)
作者Li Chen;Penghao Wu;Kashyap Chitta;Bernhard Jaeger;Andreas Geiger;Hongyang Li
主要单位Shanghai AI Laboratory;University of Hong Kong
关键词Autonomous driving; end-to-end system design; policy learning; simulation
日期收稿日期: 24 June 2023;接收日期: 22 July 2024
文章链接https://arxiv.org/abs/2306.16927
项目地址https://github.com/OpenDriveLab/End-to-end-Autonomous-Driving

在这里插入图片描述

摘要: 自动驾驶社区见证了端到端自动驾驶算法的快速发展,这种利用原始摄像头输入生成车辆运动规划的方法,代替了集中于单一任务(检测、运动规划)的方法。与模块化流程相比,端到端系统受益于感知和规划的联合特征优化。由于大规模数据集、闭环测试和自动驾驶在挑战场景有效性需求的增加,端到端自动驾驶领域正在呈现一种快速发展的趋势。在这篇综述中,作者提供了超过270篇文献的全面分析,涵盖端到端自动驾驶领域的动机、路线、方法论、挑战和未来发展趋势等多个方面。本文深入探讨了其中的几个挑战,包括多模态、可解释性、因果混淆、鲁棒性和世界模型等等。此外,本文还讨论了基础模型和预训练视觉模型的运用,以及如何在端到端自动驾驶框架中协调这些技术。

2. 背景介绍

传统的自动驾驶系统采用模块化的设计策略,这使得自动驾驶系统的感知、预测、规划等功能是单独发展的,最后再整合到自车上。规划或控制模块负责生成方向和加速度输出,在决定驾驶体验方面扮演了一个重要的角色。模块化自动驾驶中大部分规划方法是采用复杂的基于规则的设置方法,在面对实际路况时显得效率低下。因此,采用大规模数据和基于学习的规划成为了发展的可能。

本文定义的端到端自动驾驶系统是指采用原始传感器数据作为输入,采用规划或底层控制作为输出的系统。下图证明了经典算法和端到端框架的区别:

  • 模块化的自动驾驶算法:每个子模块生成对应输出,并输入到下一个任务中。如图中所示,感知模块生成3D目标检测框,传入到轨迹预测模块,生成周围车辆的预测轨迹,并转入到规划模块,生成最终的自车规划。
  • 端到端自动驾驶算法:输入传感器的图片,通过特征流一步步传到规划,在规划模块计算损失,再通过反向传播将损失函数梯度传递给每一个子模块,以优化各模块的权重。这里只在规划模块计算损失值,不在其他模块产生损失计算。

在这里插入图片描述
下图展示了本综述的大纲,通过总结最近文献对端到端自动驾驶的方法、基准、挑战、未来趋势进行了总结。端到端自动驾驶优点:

  • 将多个模块融合到一个模型中进行联合训练,减少训练步骤
  • 整个系统面向最终任务来优化,增强模型使用性
  • 共享主干网络提升计算效率
  • 数据驱动优化,来提升系统潜力
    在这里插入图片描述

下图按时间顺序整理了端到端自动驾驶算法的关键事件:
在这里插入图片描述

  • 最早的端到端自动驾驶可以追溯到1988年的ALVINN,其输入是来自摄像头的两个 “视网膜” 图像以及激光测距仪的数据,通过一个简单的神经网络生成方向的输出。

  • 2016年,NVIDIA设计了一款端到端的卷积神经网络原型系统,在GPU计算这一时代重新确立了端到端自动驾驶的理念。随着深度神经网络的发展,模仿学习和强化学习在端到端自动驾驶中都取得了显著进展。

  • 2019年,LBC提出了策略蒸馏范式,通过模仿表现良好的专家,显著提高了端到端自动驾驶在闭环测试下的性能。

  • 2021年,在合理的计算预算范围内,各种传感器配置可用,学者们的注意力集中在纳入更多的模态和先进的架构(如Transformer)上,来捕捉全局上下文和代表性特征,该时期的代表作是TransFuser。结合对模拟环境的更多理解,这些先进设计在CARLA基准测试中显著提升了性能。为了提高自动驾驶系统的可解释性和安全性,该时期的方法引入了各种辅助模块、以更好地监督学习过程或利用注意力可视化技术。

  • 2022年,学者们考虑到测试过程中存在很多数据分布不平衡的问题,于是考虑生成安全关键场景数据。同时,具有挑战性的新基准测试CARLA v2成功引入到该领域。

  • 2023年,出现了模块化的端到端自动驾驶,旨在提高模型的可解释性,同时,nuPlan也被引入做新基准测试中。

3. 端到端自动驾驶主要使用方法

在这里插入图片描述
📷 图 3. 端到端自动驾驶方法概述。本图展示了三种流行的范式,包括两种模仿学习框架(行为克隆和逆最优控制),以及在线强化学习。

3. 1 模仿学习

模仿学习(imitation learning, IL),也称为从示范中学习,它训练一个智能体通过模仿专家的行为来学习策略。模仿学习需要一个数据集 D = { ξ i } D=\{ \xi_{i} \} D={ξi} ,其中包含根据专家策略 π β \pi_{\beta} πβ 收集的轨迹,每条轨迹都是一系列状态 - 动作对。模仿学习的目标是学习一个与 π β \pi_{\beta} πβ相匹配的智能体策略 π \pi π

1)行为克隆(Behavior cloning, BC):在行为克隆中,通过在收集的数据集上进行监督学习,最小化规划损失,从而使智能体的策略与专家的策略相匹配: E ( s , a ) ℓ ( π θ ( s ) , a ) \mathbb{E}_{(s, a)} \ell(\pi_{\theta}(s), a) E(s,a)(πθ(s),a)。这里, ℓ ( π θ ( s ) , a ) \ell(\pi_{\theta}(s), a) (πθ(s),a) 表示一个损失函数,用于衡量智能体动作与专家动作之间的差异。

2)逆最优控制(Inverse optimal control):传统的逆最优控制算法从专家演示中学习未知的奖励函数 R ( s , a ) R(s, a) R(s,a) ,其中专家的奖励函数可以表示为特征的线性组合。然而,在连续的、高维的自动驾驶场景中,奖励的定义是隐含的,且难以优化。

3.2 强化学习

强化学习(Reinforcement learning, RL)是一个通过试错进行学习的领域。深度Q网络(Deep Q networks, DQN)在雅达利(Atari)基准测试中成功实现了人类水平的控制,这使得深度强化学习得到了广泛应用。DQN训练一个名为评论家(或Q网络)的神经网络,该网络以当前状态和一个动作为输入,并预测该动作的折扣回报。然后,通过选择预测回报最高的动作来隐式定义策略。

4. 测试基准

4.1 真实世界评估

早期对自动驾驶进行基准测试的尝试涉及到真实世界评估。值得注意的是,美国国防高级研究计划局(DARPA)发起了一系列比赛来推动自动驾驶技术的发展。第一场比赛为能自主导航穿越莫哈韦沙漠240公里路线的团队提供100万美元奖金,但没有团队成功完成。最后一场系列赛事——DARPA城市挑战赛,要求车辆在96公里的模拟城镇路线中行驶,同时遵守交通规则并避开障碍物。这些比赛促进了自动驾驶领域的重要发展,例如激光雷达传感器的应用。受此启发,密歇根大学建立了MCity,这是一个大型的可控真实世界环境,旨在方便进行自动驾驶汽车的测试。然而,由于缺乏数据和车辆,这类学术项目并未在端到端系统中得到广泛应用。相比之下,有资源部署无人驾驶车队的企业可以依靠真实世界评估来衡量其算法的改进效果。
在这里插入图片描述
图片来源:聊聊无人驾驶汽车的发展历史(三)——DARPA无人驾驶挑战赛

4.2 在线/闭环仿真测试

闭环评估涉及构建一个能紧密模拟现实世界驾驶环境的仿真环境。评估工作包括在模拟环境中部署驾驶系统,并衡量其性能。该系统必须在驶向指定目标位置的过程中,安全地在车流中行驶。开发这类模拟器主要涉及四项子任务:参数初始化、交通模拟、传感器模拟和车辆动力学模拟。我们将在下面简要介绍这些子任务,随后总结目前可用于闭环基准测试的开源模拟器。

1)参数初始化:模拟具有高度可控环境的优势,可控的内容包括天气、地图、三维资产,以及诸如交通场景中物体布局之类的底层属性。尽管功能强大,但这些参数的数量众多,从而带来了一个具有挑战性的设计问题。目前的模拟器通过两种方式来解决这一问题:程序生成与数据驱动。

2)交通模拟:交通模拟涉及在环境中生成虚拟实体并为其定位,同时让它们具有逼真的运动状态。这些实体通常包括车辆(如汽车、摩托车、自行车等)和行人。交通模拟器必须考虑速度、加速度、制动、障碍物以及其他实体的行为所产生的影响。此外,必须定期更新交通信号灯的状态,以模拟真实的城市驾驶情况。目前有两种流行的交通模拟方法:基于规则的方法和数据驱动的方法。

3)传感器模拟:对于评估端到端自动驾驶系统而言,传感器模拟至关重要。这包括生成模拟的原始传感器数据,比如驾驶系统在模拟器中从不同视角接收到的摄像头图像或激光雷达扫描数据。这一过程需要考虑噪声和遮挡情况,以便对自动驾驶系统进行真实的评估。关于传感器模拟,主要有以下两大思路分支:基于图形的和数据驱动的。

4)车辆动力学模拟:驾驶模拟的最后一个方面是要确保模拟车辆的运动符合物理上的合理性。大多数现有的公开可用模拟器使用高度简化的车辆模型,例如独轮车模型或自行车模型。然而,为了使算法能够顺利地从模拟环境转移到现实世界中,纳入更精确的车辆动力学物理建模至关重要。例如,CARLA采用了多体系统方法,将车辆表示为由四个车轮支撑的多个弹性质量块的组合。

5)目前主要的两个测试模拟器为CARLA和nuPlan,部分测试场景已经被现有算法很好的解决,所以这些模拟器的维护方也推出了一些比较用挑战性的场景,涉及泛化性、unseen scenes等

📊用于自动驾驶闭环评估且带有活跃基准测试的开源模拟器
在这里插入图片描述

4.3 离线/开环测试评价

开环评估主要是根据预先记录的专家驾驶行为来评估一个系统的性能。这种方法需要评估数据集,其中包括
(1)传感器读数
(2)目标位置,
(3)相应的未来驾驶轨迹

以传感器输入和目标位置作为输入,通过将系统预测的未来轨迹与驾驶记录中的轨迹进行比较来衡量性能。系统的评估依据是其轨迹预测与人类真实情况的匹配程度,以及其他辅助指标,比如与其他智能体发生碰撞的概率。

开环评估的优点在于,使用真实的交通和传感器数据很容易采集,因为它不需要模拟器。然而,其关键缺点是它无法衡量系统在实际部署测试中所遇到的真实分布情况下的性能。在测试过程中,驾驶系统可能会偏离专家的驾驶路径,而验证系统从这种偏离中恢复的能力是至关重要的。

此外,在多模式场景中,预测轨迹与记录轨迹之间的距离并不是一个理想的衡量指标。例如,在并入转弯车道的情况下,立即并入或稍后并入这两种选择都可能是合理的,但开环评估会对数据中未观察到的那种选择进行扣分。因此,除了衡量碰撞概率和预测误差之外,还提出了一些指标来更全面地涵盖交通违规、行驶进展以及驾驶舒适性等方面。

5. 端到端自动驾驶面临的挑战

5.1 多模态输入

1)感知与多传感器融合。尽管早期的研究成果通过单目摄像头成功实现了车道跟随功能,但这种单一的输入模态无法应对复杂的场景。因此,对于如今的自动驾驶汽车,已经引入了图4中所示的各种传感器。特别是,来自摄像头的RGB图像能够复现人类感知世界的方式,具有丰富的语义细节;激光雷达或立体摄像头则能提供精确的三维空间信息。像毫米波雷达和事件相机这样的新兴传感器在捕捉物体的相对运动方面表现出色。此外,来自速度计和惯性测量单元(IMU)的车辆状态信息,以及导航指令,也是引导驾驶系统的其他输入信息。然而,不同的传感器具有不同的视角、数据分布,并且价格差异巨大,这就给有效地设计传感器布局以及将它们融合起来以实现自动驾驶中的互补带来了挑战。

2)语言作为输入:人类驾驶时既依靠视觉感知,也依靠内在知识,二者共同构成了因果行为。在与自动驾驶相关的领域,比如具身人工智能中,将自然语言作为细粒度的知识和指令来控制视觉运动智能体方面,已经取得了显著进展。然而,与机器人应用相比,驾驶任务更为直接,无需进行任务分解,而且户外环境要复杂得多,存在高度动态的智能体,但可供作为参照的明显标志物却很少。
在这里插入图片描述
📷 图4展示了输入模态和融合策略的示例。我们以点云和图像为例来描述各种融合策略。(不同模态)具有鲜明的特征,这给有效的传感器融合带来了挑战。

5.2 对视觉表征的依赖

端到端自动驾驶系统大致分为两个阶段:将状态编码为潜在特征表示,然后利用中间特征对驾驶策略进行解码。在城市驾驶中,与诸如电子游戏这类常见的策略学习基准相比,输入状态,即周围环境和自身状态,要更加多样化且维度更高,这可能会导致表征与制定策略所需的关注区域之间不匹配。因此,设计 “优质” 的中间感知表征,或者首先使用代理任务对视觉编码器进行预训练是有帮助的。这能使网络有效地提取对驾驶有用的信息,从而为后续的策略制定阶段提供便利。此外,这还可以提高强化学习方法的样本效率。

1)表征设计:简单的表征是通过各种主干网络提取的。经典的卷积神经网络(CNN)仍然占据主导地位,它在平移等变性和高效性方面具有优势。经过深度预训练的卷积神经网络显著提升了感知能力和下游任务的性能。相比之下,基于Transformer的特征提取器在感知任务中展现出了强大的可扩展性,但尚未在端到端驾驶领域被广泛采用。对于驾驶特定的表征,研究人员引入了鸟瞰图(BEV)的概念,在统一的三维空间内融合不同的传感器模态和时间信息。这也便于对下游任务进行适配。此外,基于网格的三维占据(occupancy)表示法被开发出来用于捕捉不规则物体,并在规划过程中用于避免碰撞。然而,与鸟瞰图方法相比,这种密集的表征会带来巨大的计算成本。

在这里插入图片描述

2)表征学习:表征学习通常会纳入某些归纳偏置或先验信息。在学习得到的表征中不可避免地存在可能的信息瓶颈,并且与决策无关的冗余上下文信息可能会被剔除。从大规模无标签数据中进行自监督表征学习以用于策略学习是很有前景的,值得在未来进一步探索。

5.3 基于模型的强化学习的世界模型复杂性

深度强化学习通常存在样本复杂度高的问题,这一问题在自动驾驶领域尤为突出。基于模型的强化学习(model-based reinforcement learning, MBRL)提供了一个很有前景的方向,它允许智能体与学习到的世界模型进行交互,而非与真实环境交互,以此来提高样本效率。基于模型的强化学习方法采用一个明确的世界(环境)模型,该模型由转移动力学和奖励函数组成。这在自动驾驶中特别有用,因为像CARLA这样的模拟器运行相对较慢。

针对端到端自动驾驶的世界模型学习是一个新兴且极具潜力的方向,因为它能大幅降低强化学习的样本复杂度,并且对世界的理解有助于驾驶。然而,由于驾驶环境高度复杂且动态多变,仍需进一步研究来确定哪些内容需要建模,以及如何有效地对世界进行建模。

5.4 对多任务学习的依赖

多任务学习(MTL)是指基于一种共享表征,通过不同的任务头来联合执行多项相关任务。多任务学习具有诸多优势,比如降低计算成本、共享相关领域知识,以及能够利用任务之间的关系来提升模型的泛化能力。因此,多任务学习非常适合端到端的驾驶场景,在这种场景中,最终的策略预测需要对环境有全面的理解。然而,如何选择辅助任务的最佳组合,以及如何对损失进行恰当的加权以实现最佳性能,是一个重大挑战。

5.5 专家模型与策略蒸馏低效

由于模仿学习,或者其主要的子类别——行为克隆,仅仅是模仿专家行为的监督学习,相应的方法通常遵循“teacher-student”范式。这里存在两个主要挑战:(1)“teature”,例如由CARLA提供的人工设计的专家自动驾驶程序,尽管能够获取周围智能体的真实状态和地图信息,但并非是完美的驾驶者。(2)“student”仅通过记录的带有传感器输入的输出来接受监督,这要求他们同时从零开始提取感知特征并学习策略。

尽管人们付出了巨大努力来设计一个强大的专家模型,并在不同层面上进行知识迁移,但“teacher-student”范式仍然存在知识蒸馏效率低下的问题。例如,拥有特殊信息的智能体能够获取交通信号灯的真实状态,而交通信号灯在图像中是小目标物体,因此很难提炼出相应的特征。结果是,视觉运动智能体与拥有特殊信息的智能体相比,表现出较大的性能差距。这也可能会给“student”智能体带来因果关系上的混淆。值得探索的是,如何从机器学习中的通用蒸馏方法中获得更多启发,以缩小这种差距。
在这里插入图片描述
📷 图5. 策略蒸馏。(a) 特权智能体通过获取特权真实信息来学习稳健的策略。图中专家用虚线标注,表明如果特权智能体通过强化学习进行训练,专家并非必需。(b) 感觉运动智能体通过特征蒸馏和输出模仿两种方式来模仿特权智能体。

5.6 缺乏可解释性

可解释性在自动驾驶领域中起着至关重要的作用。它能让工程师更好地调试系统,从社会层面为系统性能提供保障,并且有助于提高公众对自动驾驶的接受度。对于通常被称为“黑箱”的端到端驾驶模型而言,实现其可解释性不仅更为关键,而且极具挑战性。下图展示了用于端到端自动驾驶的集中方法,包括注意力可视化、引入可解释化任务、融合规则和成本的学习、基于自然语言的学习和不确定性建模。
在这里插入图片描述
📷图6. 不同可解释性形式的总结。它们有助于人们理解端到端模型的决策过程以及输出的可靠性。

5.7 缺乏安全保障

在现实世界场景中部署自动驾驶系统时,确保安全至关重要。然而,与传统的基于规则的方法不同,端到端框架基于学习的本质使得其在安全性方面从根本上缺乏精确的数学推导证明。然而,需要注意的是,模块化驾驶系统已经在其运动规划或速度预测模块中纳入了特定的与安全相关的约束条件或优化措施,以确保安全性。这些机制有可能经过调整后作为后处理步骤或安全检查集成到端到端模型中,从而提供额外的安全保障。

5.8 因果混淆

近二十年来,模仿学习中的因果关系混淆一直是一个长期存在的挑战。最早报道这种现象的是勒昆(LeCun)等人。他们使用单个输入帧来进行转向预测,以避免出现这种外推情况。尽管这种方法比较简单,但在当前最先进的模仿学习(IL)方法中,它仍是一种首选的解决方案。遗憾的是,使用单个帧很难提取周围行为体的运动情况。因果关系混淆的另一个来源是速度测量。图7展示了一辆在红灯前等待的汽车的例子。这辆汽车的动作与其速度可能高度相关,因为在很多帧画面中,它的速度为零且动作是刹车。只有当交通信号灯从红灯变为绿灯时,这种相关性才会被打破。
在这里插入图片描述
📷 图7. 因果混淆。汽车当前的行为与速度或汽车过去的轨迹等低维虚假特征密切相关。端到端模型可能会依赖这些特征,从而导致因果混淆。

5.9 缺乏鲁棒性

1)长尾分布:长尾分布问题的一个重要方面是数据集不均衡,即少数类别占据了大多数,如图8(a)所示。这对模型推广到多样化环境构成了巨大挑战。各种方法通过数据处理来缓解这一问题,包括过采样、欠采样以及数据增强。此外,基于加权的方法也被广泛使用。

2)协变量偏移:正如在模仿学习中所讨论的,行为克隆面临的一个重要挑战是协变量偏移。专家策略下的状态分布与经过训练的智能体策略下的状态分布有所不同,这就导致当将经过训练的智能体部署到未曾见过的测试环境中,或者当其他智能体的反应与训练时不同时,会产生复合误差。这可能会使经过训练的智能体处于专家训练分布之外的状态,从而导致严重的失败。图8(b)展示了一个相关示例。

3)域适应:域适应(DA)是一种迁移学习,其中目标任务与源任务相同,但域不同。在此,我们讨论这样的场景:源域有可用的标签,而目标域没有标签或者只有少量可用的标签。
在这里插入图片描述
📷 图8. 稳健性方面的挑战。与数据集分布差异相关的主要泛化问题有三个,即长尾分布与普通情况、专家演示与测试场景,以及位置、天气等方面的领域转移。

6. 未来研究方向

6.1 零样本与小样本学习

自动驾驶模型最终不可避免地会遇到超出训练数据分布范围的现实世界场景。这就引出了一个问题:我们是否能够成功地让模型适应一个未曾见过的目标领域,而在这个领域中只有有限的标记数据,甚至没有标记数据。对于端到端驾驶领域而言,将这一任务形式化,并融入来自零样本/少样本学习文献中的技术,是实现这一目标的关键步骤。

6.2 模块化端到端规划

模块化端到端规划框架在优化多个模块的同时,将最终的规划任务置于优先地位,这种框架具有可解释性的优势。最近的文献都提倡这种框架,并且某些行业解决方案(如特斯拉、Wayve等)也融入了类似的理念。在设计这些可微感知模块时,会出现一些关于损失函数选择的问题,比如在目标检测中三维边界框的必要性,在静态场景感知中,是选择鸟瞰图(BEV)分割还是车道拓扑结构,或者是在模块数据有限的情况下的训练策略等问题。

6.3 数据引擎

大规模且高质量的数据对于自动驾驶的重要性,怎么强调都不为过。建立一个配备自动标注流水线的数据引擎,能够极大地推动数据和模型的迭代发展。用于自动驾驶的数据引擎,尤其是模块化端到端规划系统,需要借助大型感知模型,以自动化的方式简化高质量感知标签的标注流程。它还应该支持挖掘困难/极端情况、场景生成和编辑,以便进行数据驱动评估,并提高数据的多样性以及模型的泛化能力。一个数据引擎将使自动驾驶模型能够持续地改进。

6.4 基础模型

近期,在语言领域和视觉领域的基础模型方面取得的进展已经证明,大规模的数据和模型容量能够释放人工智能在高级推理任务中的巨大潜力。微调或提示学习的范式、以自监督重建或对比对等形式的优化方法,都适用于端到端的驾驶领域。然而,我们认为直接将大型语言模型(LLMs)应用于驾驶可能会存在问题。自动驾驶智能体的输出需要稳定且准确的测量结果,而语言模型的生成式输出旨在表现得像人类一样,却并不太在意其准确性。开发一个“基础”驾驶模型的可行解决方案是训练一个世界模型,该模型能够在二维、三维或潜在空间中预测环境合理的未来状况。为了在诸如规划等下游任务中表现良好,对于该模型而言,需要优化的目标必须足够完善,不能仅仅局限于帧级别的感知。

总结

Research Question
本文主要提出并回答了下面三个研究问题:

  • 端到端自动驾驶主要的技术路线是什么?
  • 目前端到端自动驾驶面临着什么样的困难与挑战?
  • 未来可能的发展方向是什么?

总结: 本文通过文献综述的方式,梳理了目前端到端自动驾驶常用的一些技术路线及方法:模仿学习与强化学习。同时,详细地总结了端到端自动驾驶面临着的挑战,包括传感器输入模态、视觉表征、可解释性、因果混淆、数据泛化性与鲁棒性等。并且指明了未来可能的4个发展方向,包括端到端自动驾驶中的零样本与小样本学习、模块化端到端规划、数据引擎以及基础模型的运用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/81625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL:pgAdmin 4 使用教程

pgAdmin 4 是一个用于管理和维护 PostgreSQL 数据库的强大工具。它提供了一个图形化界面,使用户能够轻松地连接到数据库、创建表、运行 SQL 语句以及执行其他数据库管理任务。 安装和使用 安装 pgAdmin 4 安装 pgAdmin 4 非常简单。下载并运行安装程序&#xff0…

Java学习手册:关系型数据库基础

一、关系型数据库概述 关系型数据库是一种基于关系模型的数据库,它将数据组织成一个或多个表(或称为关系),每个表由行和列组成。每一列都有一个唯一的名字,称为属性,表中的每一行是一个元组,代…

wpf CommandParameter 传递MouseWheelEventArgs参数

在 WPF 中通过 CommandParameter 传递 MouseWheelEventArgs 参数时,需结合 ‌事件到命令的转换机制‌ 和 ‌参数转换器‌ 来实现。以下是具体实现方案及注意事项: 一、核心实现方法 1. ‌使用 EventToCommand 传递原始事件参数‌ 通过 Interaction.Tr…

八大排序之选择排序

本篇文章将带你详细了解八大基本排序中的选择排序 目录 (一)选择排序的时间复杂度和空间复杂度及稳定性分析 (二)代码实现 (三)输出结果 选择排序的基本原理是:每次从待排序的数组中找出最大值和最小值。具体流程是…

【算法学习】哈希表篇:哈希表的使用场景和使用方法

算法学习: https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言: 在之前学习数据结构时我们就学习了哈希表的使用方法,这里我们主要是针对哈希表的做题方法进行讲解,都是leetcode上的经典…

Java 中如何实现自定义类加载器,应用场景是什么?

在 Java 中,可以通过继承 java.lang.ClassLoader 类来实现自定义类加载器。自定义类加载器可以控制类的加载方式,实现一些特殊的应用场景。 实现自定义类加载器的步骤: 继承 java.lang.ClassLoader 类。 重写 findClass(String name) 方法 …

信创开发中跨平台开发框架的选择与实践指南

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…

WebRTC 服务器之Janus架构分析

1. Webrtc三种类型通信架构 1.1 1 对 1 通信 1 对 1 通信模型设计的主要⽬标是尽量让两个终端进⾏直联,这样即可以节省服务器的资源,⼜可以提⾼ ⾳视频的服务质量。WebRTC ⾸先尝试两个终端之间是否可以通过 P2P 直接进⾏通信,如果⽆法直接…

数字化转型进阶:26页华为数字化转型实践分享【附全文阅读】

本文分享了华为数字化转型的实践经验和体会。华为通过数字化变革,致力于在客户服务、供应链、产品管理等方面提高效率,并把数字世界带入每个组织,构建万物互联的智能世界。华为的数字化转型愿景是成为行业标杆,通过推进数字化战略、构建面向业务数字化转型的IT组织阵型、坚…

Hal库下备份寄存器

首先要确保有外部电源给VBAT供电 生成后应该会有这两个文件(不知道为什么生成了好几次都没有,复制工程在试一次就有了) 可以看到stm32f407有20个备份寄存器 读写函数 void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t Backup…

使用 Vue3 + Webpack 和 Vue3 + Vite 实现微前端架构(基于 Qiankun)

在现代前端开发中,微前端架构逐渐成为一种流行的解决方案,尤其是在大型项目中。通过微前端,我们可以将一个复杂的单体应用拆分为多个独立的小型应用,每个子应用可以独立开发、部署和运行,同时共享主应用的基础设施。本…

【c++】【STL】list详解

目录 list的作用list的接口构造函数赋值运算符重载迭代器相关sizeemptyfrontbackassignpush_frontpop_frontpush_backpop_backinserteraseswapresizeclearspliceremoveremove_ifuniquemergesortreverse关系运算符重载(非成员函数) list的模拟实现结点类迭…

Redis持久化:

什么是Redis持久化: Redis 持久化是指将 Redis 内存中的数据保存到硬盘等持久化存储介质中,以便在 Redis 服务器重启或出现故障时能够恢复数据,保证数据的可靠性和持续性。Redis 提供了两种主要的持久化方式:RDB(Redi…

VBA 64位API声明语句第009讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

在pycharm profession 2020.3将.py程序使用pyinstaller打包成exe

一、安装pyinstaller 在pycharm的项目的Terminal中运行pip3 install pyinstaller即可。 安装后在Terminal中输入pip3 list看一下是否成功 二、务必在在项目的Terminal中输入命令打包,命令如下: python3 -m PyInstaller --noconsole --onefile xxx.py …

Unity SpriteRenderer(精灵渲染器)

🏆 个人愚见,没事写写笔记 🏆《博客内容》:Unity3D开发内容 🏆🎉欢迎 👍点赞✍评论⭐收藏 🔎SpriteRenderer:精灵渲染器 💡Sprite Renderer是精灵渲染器,所有…

2.LED灯的控制和按键检测

目录 STM32F103的GPIO口 GPIO口的作用 GPIO口的工作模式 input输入检测 -- 向内检测 output控制输出 -- 向外输出 寄存器 寄存器地址的确定 配置GPIO口的工作模式 时钟的开启和关闭 软件编程驱动 LED 灯 硬件 软件 软件编程驱动 KEY 按键 硬件 软件 按键消抖 代码 STM32F…

Flink 的状态机制

在实时流处理领域,状态管理是构建复杂业务逻辑的核心能力。Apache Flink 通过统一的状态抽象和高效的容错机制,为开发者提供了从毫秒级窗口聚合到 TB 级历史数据关联的全场景支持。本文将深入剖析 Flink 状态机制的底层原理,结合实际案例展示…

【查看.ipynp 文件】

目录 如何打开 .ipynb 文件? 如果确实是 .ipynp 文件: .ipynp 并不是常见的 Jupyter Notebook 文件格式。通常,Jupyter Notebook 文件的扩展名是 .ipynb(即 Interactive Python Notebook)。如果你遇到的是 .ipynb 文…

Runnable组件重试机制降低程序错误率

一、LangChain 重试机制深度解析 当构建生产级AI应用时,with_retry() 机制可有效提升系统容错性,典型应用场景包括: API调用频率限制时的自动恢复模型服务临时不可用的故障转移网络波动导致的瞬时异常处理 参数详解与配置策略 1. 参数配置…