端到端自动驾驶新突破:Nvidia提出全并行PARA-Drive,斩获CVPR挑战赛冠军

news2024/11/16 1:31:54

论文标题:

PARA-Drive: Parallelized Architecture for Real-time Autonomous Driving

论文作者:

Xinshuo Weng, Boris Ivanovic, Yan Wang, Yue Wang, Marco Pavone

导读:

本文系统分析了自动驾驶高级架构的设计空间,提出了关于模块必要性、排列关系和信息流的见解。这些见解推动了新型全并行自动驾驶架构PARA-Drive的开发,该架构在性能和推理速度上均达到行业领先水平。©️【深蓝AI】编译

1. 摘要

最近很多研究提出了由可区分模块组成的端到端自动驾驶汽车(AV)架构,实现了最先进的驾驶性能。与传统的感知-预测-规划架构相比,端到端架构更具有优势(例如,消除了组件之间的信息瓶颈,减轻了模块集成的挑战),但是端到端架构仍然使用传统架构的模块和任务组合。然而,迄今为止还没有研究系统地分析过这些模块的必要性或它们的连接关系、排列顺序和内部表示对整体驾驶系统性能的影响。

针对上述空白,本研究对端到端自动驾驶汽车架构的设计空间进行了全面探索。作者的研究成果最形成了PARA-Drive1 :一种完全并行的端到端自动驾驶架构。PARA-Drive 不仅在感知、预测和规划方面达到了最先进的性能,而且在不影响可解释性或安全性的前提下,将运行速度显著提高了近3倍。

在这里插入图片描述
图1|端到端自动驾驶汽车(AV)模块堆栈设计示意图©️【深蓝AI】编译

2. 引言

由于需要集成检测、跟踪、预测、定位、制图和规划等多个复杂模块,开发全栈式自动驾驶汽车(AV)系统面临着巨大挑战。为应对这些挑战,开发端到端模块化自动驾驶汽车系统的需求日渐显著,如UniAD、VAD和OccNet。这些系统之所以广受欢迎,是因为它们成功地集成了各种模块和任务,并取得了不错的运动规划性能。此外,它们还通过端到端方式优化上游感知和预测模块,提高了安全性和可解释性。

虽然这些端到端自动驾驶汽车(AV)模块堆栈取得了成功,但它们的架构设计存在显著差异(例如,结合占据网络与不结合占据网络、语义 BEV 与矢量化地图、使用查询或输出,见图1),目前仍不清楚哪种设计是最佳的。除了最近的几种架构外,端到端自动驾驶模块化堆栈的巨大设计空间在很大程度上仍未得到充分探索,这主要是由于可能的任务、相关信息表示和模块间连接的多样性。在本文中,作者沿着「模块必要性」「排列顺序」和「信息流」三个关键轴线对这一设计空间进行了系统探索。

为了有效解决这一复杂问题,本文建立了一个多功能框架,能够灵活操作端到端自动驾驶堆栈的计算图,包括启用或停用模块、修改模块间连接关系以及访问不同层上游模块的输出。有了这个框架,作者发现了几个有趣的现象:

  • 通过顺序、混合甚至并行设计,可以获得最先进的性能;

  • 只需将鸟瞰图(BEV)特征作为规划输入(配合适当的辅助任务和高级命令),就能实现最先进的规划性能;

  • 并且按顺序关系放置时冗余的模块,在并行放置情况下实际可能是互补的关系。

作者进一步利用上述见解开发完善了PARA-Drive,即一种全栈并行化自动驾驶架构,其中包含用于联合训练BEV特征的各种模块。通过在nuScenes数据集上进行全面实验,作者发现PARA-Drive在规划性能方面明显优于之前的研究成果(例如,L2错误减少了28.8%,碰撞率降低了43.3%),在地图合规率以及本体车辆转弯或变道的挑战性场景中也有持续改善。

在这里插入图片描述

图2|PARA-Drive与最新的端到端模块化自动驾驶架构之间的视觉比较示意图©️【深蓝AI】编译

3. 相关工作

3.1 端到端运动规划

传统的自动驾驶系统开发主要侧重于训练独立的模块,并将它们整合成一个完整的自动驾驶系统。然而,这种方法在部署过程中面临着巨大的集成挑战。信息瓶颈问题尤为常见,在模块间通信过程中,阈值和过滤可能导致信息丢失。此外,模块之间的单独训练会造成学习目标不一致,从而导致上游任务无法为下游感知学习提供最佳定制特征。

为了克服这些挑战,端到端规划方法也有了许多针对性的进展,这些方法借鉴以前传统工作的训练和部署经验。最近的端到端规划方法极具吸引力,因为它们提供了高效的运行时间,并消除了集成挑战和信息瓶颈。最近在端到端规划上的工作取得发展,具体是提升了端到端方法在闭环驾驶中的成功率。例如,通过提取特权专家的信息,改进了端到端驾驶,抑或是引入以高级驾驶指令为条件的规划网络。除了图像输入,Transfuser还扩展了激光雷达数据输入,而 TCP则通过同时考虑轨迹和行动来改进规划的输出表示。

尽管取得了许多进展,端到端规划方法在实际部署的可解释性、可验证性和安全性方面仍面临巨大挑战。因此,人们越来越关注设计端到端但又是模块化的自动驾驶架构,旨在将传统方法和端到端方法的优势结合起来。

3.2 端到端模块化架构

端到端模块化架构是将模块化设计与端到端训练相结合,从而区别于传统的端到端规划方法。因此,它在保持安全性和可解释性的同时,还优化了下游规划的所有模块。

设计端到端模块化堆栈极具挑战,因为这些架构中模块的组成和交互会导致不同的设计变化。例如,针对顺序设计,P3和ST-P3利用语义占据预测的输出进行下游规划。也有算法没有使用监督学习来学习占据特征,而是开发了自监督占据预测来预测空闲空间,然后针对路径规划结果进行优化。混合设计在后续模块中直接利用BEV特征,将模块间的顺序连接和并行连接结合起来。这一趋势在之前的许多研究中得到了进一步体现,这些研究通常采用并行头进行在线映射。

为了展示这些设计变化,本文在图2中将最新的先进架构与作者提出的PARADrive进行了比较。这些架构在模块组成、输出表示和流向规划模块的信息流方面各不相同。例如,UniAD和OccNet将预测占据图纳入规划,VAD则没有。UniAD和OccNet将在线见图视为密集预测任务,预测地图元素的每像素或每象素语义,而VAD则选择矢量化地图表示法。此外,UniAD和VAD采用多头架构,规划头访问感知头的中间输出,如潜在查询特征,而OccNet则依赖感知头的最终输出进行规划。

作者的工作侧重于堆栈级设计,系统地探索了端到端自动驾驶设计空间的关键维度,相关成果或能有助于端到端模块化设计的未来发展。此外,与现有架构不同,作者的PARA-Drive是专为并行操作而设计的,只在需要时才启动并行头,从而大大提高了效率。

3.3 多任务学习(MTL)

MTL并不是自动驾驶领域的全新课题,而且已经有了长足的发展。除了侧重于感知和预测的MTL,MTL还被应用于端到端自动驾驶规划,最新的方法通常基于BEV特征来完成各种辅助任务。例如,有通过并行检测和预测物体的边界框来学习规划的成本。此外,Transfuser的扩展将建图、深度预测和物体检测头并行纳入运动规划。不过,这些研究都没有采用占据预测任务,而作者认为这在并行化自动驾驶架构中至关重要。相比之下,NEAT和ReasonNet在MTL风格的自动驾驶架构中采用了BEV占据预测,但并不预测实例中的物体运动。此外,ReasonNet无法预测语义地图,只能依靠从传感器输入中隐含学习地图信息。

与MTL领域的先前研究不同,UniAD等混合设计已经证明了将实例运动预测与场景级占据预测相结合以提高端到端驾驶性能的有效性。作者的研究结果证实了这一论点,即除了在混合设计中观察到的增量改进外,要想在纯并行化设计中实现最先进的规划性能,还必须采用实例运动预测和场景级占据预测以及在线建图。基于这些见解,作者提出了PARA-Drive,这是首个并行化自动驾驶架构,其性能和实时效率均优于采用混合设计的自动驾驶架构。

4. 端到端自动驾驶堆栈的设计空间

4.1 关键维度

为了系统地探索设计空间,本文首先确定并分析了设计空间的关键维度。

1)模块的必要性:

在端到端模块化堆栈中,哪些模块是必不可少的?对于给定的任务,不同的模块在设计时可能会有不同的表现形式(例如,占据预测与轨迹预测)。本文需要考虑的是,尽管可能存在冗余,但同时包含这两种模块是否比只选择其中一种模块更有利。

2)模块排列顺序:

模块选定后,应如何在堆栈中排列?这包括各种设计配置方面的考虑,如顺序排列和并行排列设计,或包含顺序和并行排列的混合设计。

3)信息流:

当一个模块依赖于前一个模块的输出时,算法应该只传递维度相对较低的最终紧凑输出(如边界框或 BEV 分割图),还是传递维度较高的中间特征(如标记查询)?两者的传递是否有益?

对设计空间的探索面临着一个重大挑战:多个维度的组合可能会产生复杂性,而每个维度单独看来都是可以管理的。这种复杂性导致设计空间包含了广泛的配置,从直接输入传感器数据进行运动规划的非模块化自动驾驶堆栈,到各种高度模块化的端到端方法。

在这里插入图片描述
表1|规划性能分析©️【深蓝AI】编译

4.2 标准化评估方法

◆数据集和指标

根据此前在端到端自动驾驶领域的研究成果,本文利用nuScenes驾驶数据集,对端到端模块化自动驾驶架构的各种变体进行实验,以探索设计空间的差异。由于本文的重点是架构设计对整体驾驶性能的影响,因此在大部分实验对比中,本文使用指标来评估规划性能。尤其需要注意的是,作者沿用先前的工作方法,以2Hz的频率计算3秒范围内地面实况(GT)与本体车辆预测轨迹之间的L2误差,并以鸟瞰视角计算与周围动态代理的碰撞率。此外,作者还将1秒、2秒和3秒时间范围内的平均误差定义为 A v e 1 , 2 , 3 s Ave_{1,2,3s} Ave1,2,3s(在之前的工作中使用),并将整个时间范围内的平均误差定义为 A v e a l l Ave_{all} Aveall

◆评估协议

要严格探索设计空间,必须确保评估的稳健性和一致性。然而,由于nuScenes缺乏标准化的规划基准,之前的工作都是单独制定评估协议,从而带来了不一致性。为了缓解这一问题,本文没有直接比较之前工作中的结果和数字,而是对现有的评估方法进行了全面分析,主要是UniAD 、VAD和AD-MLP中使用的方法。作者的分析揭示了这些实现方法中明显的不一致之处,包括:

1)时间维度上的平均值:以3秒视距下的L2误差为例,UniAD通过对验证集中的 N N N个样本进行平均计算得出 L 2 3 s L_2^{3s} L23s,而VAD和AD-MLP则通过对样本和时间间隔进行平均计算:

L 2 3 s = 1 N ∑ N 1 6 ∑ t ∈ 0.5 s , 1 s , 1.5 s , 2 s , 2.5 s , 3 s L 2 t L_2^{3s}= \frac{1}{N}{\sum^{N}}\frac{1}{6} \sum_{t \in {0.5s, 1s, 1.5s, 2s, 2.5s, 3s}} L_{2}^{t} L23s=N1N61t0.5s,1s,1.5s,2s,2.5s,3sL2t

因此,与UniAD相比,VAD和AD-MLP的L2误差和碰撞率明显更小。

2)过滤代理:一方面,与VAD和AD-MLP相比,UniAD从全局真值占据图中排除了行人,从而降低了碰撞率。另一方面,UniAD在每个帧中都包含了不可见的物体,这使得评估更具挑战性。

3)帧屏蔽策略:VAD和AD-MLP排除数据序列中任何一个无效帧的数据片段,而UniAD则包括这些片段,并为其中的无效帧分配零错误。将这些片段与指定为零错误的帧一起包含,可以降低评估中的整体错误率。

4)首帧的随机噪音: 最先进的端到端自动驾驶堆栈在输入中使用时间信息,因此,由于输入特征和本体车辆状态的初始化为零,首帧的性能较差。AD-MLP通过在其评估协议中排除前两帧来解决这一问题,而UniAD和VAD却没有这样做,从而导致UniAD和VAD的评估误差增大。

乍看之下,上述评估中不一致之处似乎并不严重,但本文在表1中的实证分析表明,每种不一致之处都会严重影响对现有技术的比较分析。考虑到nuScenes数据集的结构,这一点尤为重要,该数据集由相对较短的数据片段组成–通常每个片段只有40帧。即使排除每个数据片段中的几个帧,也会导致5%到10%的性能变化。因此,建立标准化的评估方法对于确保可信的比较至关重要。

在这里插入图片描述
图3|本体车辆边界框和BEV离散化引发的碰撞示意图©️【深蓝AI】编译

◆缺失的部分

除了不一致的地方,真值还在图3中发现了现有评估方法中的几个问题,这些问题也会严重扭曲分析结果:

1)轴对齐的本体车辆表示法:由于忽略了本体车辆在边界框中的方向,现有的碰撞率计算评估可能会产生人为的假阳性和假阴性;

2)BEV离散化:普遍使用的200 × 200分辨率网格(每个网格单元0.5米)在模型性能和训练效率之间取得了良好的平衡。然而,这种低分辨率会在评估中产生人为的假阳性碰撞,即使是全局真值轨迹也是如此。

3)地图合规性指标是对L2错误和碰撞率的重要补充。作者的研究结果表明,省略在线建图网络会降低定性结果(如偏离车道或道路行驶),但不一定会影响L2和碰撞率。

4)目标场景评估:鉴于大多数驾驶记录都涉及“直行”,即使是没有感知的简单模型也能在L2指标中表现出色。因此,在涉及转弯和变道等复杂场景的数据集子集中进行评估至关重要。

在这里插入图片描述
图5|PARA-Drive架构图©️【深蓝AI】编译

具体来说,本文的地图合规性指标计算的是偏离人行道率和偏离车道率,后者衡量的是每个预测的航点是否与相应的全局真值轨迹在同一条车道上。为了进行有针对性的场景评估,本文排除了带有“保持前进”指令的帧,因此在nuScenes val集上总共有686个具有挑战性的关键帧。

在这里插入图片描述
表2|标准化评估方法如何改进现有的评估规程©️【深蓝AI】编译

为了衡量每项评估变化对规划任务性能的影响,表2总结了相关实验结果。首先,从第一区块的碰撞率表现来看,作者发现即使是全局真值轨迹也有很高的碰撞率,例如在UniAD评估协议中碰撞率为0.38%,这削弱了评估的鲁棒性。在改用定向盒和分辨率更高的BEV网格后,作者将GT轨迹的误报碰撞率降至0%。在将行人纳入碰撞率评估的考虑范围后,作者得出了标准化的评估方法。一个有趣的发现是,尽管AD-MLP在val数据集中的L2性能很强,但在目标场景中的碰撞率却明显较差,而且在地图合规错误率方面也相对较弱。这很直观,因为AD-MLP只依赖于本体车辆的状态和过去的轨迹,而无法感知周围的物体和地图元素,这可能会导致严重的安全问题。这说明有必要在标准化评估中纳入有针对性的场景评估和地图合规率。

结合这些发现可以看出,作者的标准化评估有效地解决了现有评估方法之间的不一致性,解决了碰撞率的误报问题,还纳入了地图合规率和有针对性的场景评估,为 nuScenes提供了一个更强大的评估框架。除非另有说明,作者将以标准化评估为基础进行后续实验。本文的标准化评估方法实施方案将与作者的方法一起发布,以帮助未来在此方向上的研究。

在这里插入图片描述
表3|系统内部模块连接性消融实验分析©️【深蓝AI】编译

4.3 探索架构设计空间

作者基于 UniAD构建框架出于两个目的:

1)UniAD包含了最广泛的任务和模块;

2)UniAD一开始就具有很强的规划性能。

为了确定模块位置关系和信息流,需要确定哪些模块间的依赖关系是有用的。为此,本文首先对UniAD中的所有模块间连接进行了系统消融分析,并在表3中对结果进行了总结。

在这里插入图片描述
图4|系统内部模块连接性关系©️【深蓝AI】编译

◆模块放置

鉴于现有的四个模块间连接(即图4中边(1)(2)(3)(4))可以观察到,删除图4中的边(1)(2)实际上可以带来更稳健的性能,如表3中的第1-4行所示。对于(1),作者发现这是因为UniAD使用了第一阶段建图头的车道查询特征,这些特征很嘈杂,因此删除车道和运动查询之间的交互可以提高性能。对于边(2),这是因为测试时间优化(TTO)不在训练过程中,它往往会生成偏离人类驾驶日志的轨迹。在本文的补充材料中,作者展示了可视化效果,显示TTO通常会导致多个物体附近的锯齿状轨迹,从而增加L2误差并且不能保证避免碰撞。消除(1)(2)后,作者建立了一个改进的基线,如图4(左)所示,实现了更好的规划性能。

有趣的是,根据改进后的基线,作者发现在表3的其余部分中,移除和添加其他模块间连接并不能提高规划性能。事实上,添加带有查询特征的边(6)和带有紧凑语义BEV地图的边(7)会降低性能。此外,对于边 (1),作者尝试使用过滤后来自最后阶段transformer的噪音较小的查询。虽然与使用噪声查询特征的情况相比,作者取得了更好的性能,但与改进后的基线相比,添加这条边的性能仍然略差。由此可以发现,作者可以消除所有这些边缘,同时保持与改进基线相同的性能,并减少模块依赖性。

在这里插入图片描述
表4|系统内部模块信息流消融实验分析©️【深蓝AI】编译

◆信息流

在表3中,作者还比较了针对同一条边向规划模块传递不同信息表示法的规划性能。例如,在边(5)的第8-9行中,作者将表示道路和车道几何信息的紧凑型BEV语义地图或地图元素的潜在查询传递给下游规划。同样,在边(6)的第10-11行中,作者比较了在规划中使用紧凑型BEV占据图或对象查询的情况。有趣的是,尽管传递紧凑型BEV输出比传递高维查询特征的性能略高,但本文发现,由于BEV特征图中的信息已通过边(0)流入规划模块,因此潜在的冗余信息使得紧凑型输出或每模块潜在查询都没有必要传递。

为了进一步验证下游规划中应使用何种表示法的信息流,作者在改进基线的基础上,取消使用BEV特征图来规划边(0),并比较表4中添加边(4)(5)(6)的性能。对比第1-2行,作者再次确认,移除BEV特征会导致端到端规划性能显著下降。在随后的实验中,可以观察到,尽管上游模块与规划之间存在依赖关系,但与仅将紧凑的输出表示作为规划的输入相比,传递高维信息的潜在查询往往能带来更强的性能提升。

在这里插入图片描述
表5|系统内部关键模块消融实验分析©️【深蓝AI】编译

◆模块的必要性

作者在表5中总结了结果:由于上文从基线中移除了边(4),因此规划模块只使用BEV特征图,而不影响其他上游模块。在这种情况下,作者发现移除任何辅助任务都会导致规划任务的性能大幅下降。特别是,尽管移除在线映射任务不会导致更高的L2误差和碰撞率,但地图合规性误差却增加了很多。这些实验证明,有必要使用所有这些模块对 BEV 特征进行适当的联合训练,以实现并行设计。有趣的是,作者还发现占据预测任务和运动预测任务对于顺序设计或混合设计来说确实有些多余。具体来说,如果作者在移除占据率任务的情况下,在运动预测和规划之间添加边(4),本文就可以通过明确传递上游模块的查询特征来恢复性能。在移除运动预测任务的情况下,本文也观察到了类似的结果。

在这里插入图片描述
图6|PARA-Drive系统架构图©️【深蓝AI】编译

5. PARA-Drive

5.1 PARA-Drive实现细节

总的来说,PARA-Drive架构是一种并行化模块化自动驾驶堆栈,其中包含用于联合训练BEV特征的各种模块。该BEV特征图与来自本体车辆的数据(如高级指令、CAN总线、历史轨迹)共同构成了规划头的唯一输入。

具体来说,PARA-Drive包含四个模块:在线建图、跟踪和运动预测、占据预测、运动规划,这些模块都是并行协同训练的。受之前工作的启发,作者为每个模块配备了适合其任务的可学习查询特征集。PARA-Drive将一系列摄像头图像作为输入,构建当前和历史BEV特征。通过交叉注意力,每个模块的查询特征与BEV特征相互作用,确保每个任务都能捕捉到相关信息。

PARA-Drive别于之前的混合设计,其显著优势在于规划模块的操作独立性。共同训练后,规划头的运行独立于其他感知和预测模块。这就为推理过程提供了极大的灵活性:建图、运动和占据等模块可以停用,或者仅在需要可解释性、进行安全检查或用户显示时以较低的帧速率运行。因此,这种设计大大提高了运动规划模块的运行效率,使重新规划更加频繁,从而增强了部署的整体安全性。

基干网络和BEV特征。作者在内存中保留一帧历史BEV特征,以执行交叉注意力,获取时间信息。作者主要使用R50主干网,发现它足以获取最先进的规划性能。

在线建图。作者使用Panoptic Segformer ,将建图视为像素分割任务。具体来说,输出是一个4通道语义BEV地图,每个通道代表像素被归类为以下四个类别之一的可能性:道路边界、车道分隔线、人行横道区域和可驾驶区域。为了优化建图头,作者采用了L1损失、Dice损失和GIoU损失的组合,以学习每个地图元素的边界框和像素掩码。

运动预测和占据预测在概念上相似,但在输出表示上有所不同–前者侧重于稀疏的对象级输出,而后者则生成场景级的概率BEV占据图。根据之前的研究成果,除了与BEV特征交叉注意力外,作者还在查询特征之间采用了自注意力,以促进代理之间的互动。对于这两个模块,作者使用匈牙利算法将查询特征与全局真值匹配,并应用负对数似然、Dice和二元交叉熵损失进行训练。借鉴之前工作,运动预测模块也使用跟踪物体的边界框及其潜在特征作为输入,因此作者将跟踪预测视为一个整体模块,并在图5中省略了单独的跟踪头,以简化说明。

运动规划。除了可选择使用CAN总线数据外,作者的运动规划模块还采用了高级指令和可学习查询功能。高级指令选择与相应驾驶行为模式相对应的特征嵌入,然后与规划查询进行串联。在与BEV特征图交叉注意力操作后,多层感知器(MLP)被用来回归规划的未来轨迹。

在这里插入图片描述
表6|PARA-Drive与其他方法对比结果©️【深蓝AI】编译

5.2 实验分析结果

表6总结了近期所有先进方法的性能。根据作者的标准化评估指标,PARA-Drive在所有指标上都达到了最优水平。同时,作者的结果重新确立了更加公平比较的基准。根据新的基准,虽然观察到VAD在碰撞和L2误差的估值集上仍然优于UniAD,但UniAD似乎在建图方面表现更好,实现了更低的建图合规性错误率,并在更复杂场景的目标评估中实现了更低的误差。

使用本体车辆状态。先前的研究表明,使用CAN总线(速度、加速度、角速度等)和历史轨迹可以改进规划。作者在PARA-Drive中也观察到了这一点,尤其是在目标评估中。然而,在规划中使用BEV特征的情况下,通过适当的协同训练,可以发现CAN总线和历史轨迹带来的改进在值集中变得微不足道,如表6所示。

此外,之前的研究也声称,仅使用本体车辆的信息(不使用输入图像和感知的任何信息)就能实现不错的规划性能。虽然本文在表6中也观察到了类似的情况,尤其是在碰撞率和L2误差方面。可以发现,在目标场景和地图合规误差率方面,AD-MLP的性能明显不如PARA-Drive。这表明开环评估方案仍然非常有参考价值,并再次强调了本文标准化和增强型评估方法的重要性。

在这里插入图片描述
表7|对比感知和预测结果©️【深蓝AI】编译

感知和预测方面的表现。作者在表7中总结了结果。令人惊讶的是,本文发现,在使用相同的R101基干网络时,PARA-Drive中除规划之外的其他模块的性能与UniAD相当或略胜一筹,尽管PARA-Drive是一种并行架构。这表明,与其他任务一起联合训练BEV特征进行规划可能不一定会导致负迁移问题。

在这里插入图片描述
表8|当前存在验证指标的性能结果©️【深蓝AI】编译

现有评估方法的性能。本文在表8中总结了基于UniAD和VAD评估方法的结果。尽管在使用这些评估方法时,由于假阳性碰撞,结果会产生噪音,且鲁棒性较差,但PARA-Drive的性能仍持续优于现有技术。

运行速度。由于可以关闭除基干网络和规划头之外的所有模块,PARA-Drive的速度比UniAD-base提高了2.77倍,计算主要用于基干网络。如果换成更轻量级的,如R50-tiny,PARA-Drive就能达到接近实时的速度。作者相信,他们的模型有可能为嵌入式设备的实时部署进行优化。

6. 总结和不足

本文对自动驾驶高级架构中的设计空间进行了系统分析,对模块的必要性、模块的排列以及模块之间的信息流提出了见解,这些见解促成了新型全并行自动驾驶架构PARA-Drive的开发,该架构不仅在感知、预测和规划方面达到了最先进的性能,而且大大加快了推理速度。尽管前景广阔,但目前的结果仅限于开环设置,为此作者正在努力将实验扩展到模拟闭环设置。

编译|匡吉

审核|Los

移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。

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

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

相关文章

单片机软件架构连载(3)-typedef

今天给大家讲typedef,这个关键字在实际产品开发中,也是海量应用。 技术涉及知识点比较多,有些并不常用,我们以贴近实际为原则,让大家把学习时间都花在重点上。 1.typedef的概念 typedef 是 C 语言中的一个关键字&…

artts升级版本后常见的编译错误(定期更新......)

1、设置泛型将参数配置为 null 时抛出了如下异常: Type null is not assignable to type T. T could be instantiated with an arbitrary type which could be unrelated to null. <ArkTSCheck> 解决办法 在 null 后面添加 ! 即可,以表示该值不会为 null data: T null!…

【可能是全网最丝滑的LangChain教程】十七、LangChain进阶之Retrievers

人生不能像做菜&#xff0c;把所有的料都准备好了才下锅。 01 Retrievers介绍 检索器&#xff08;Retrievers&#xff09; 是一种接口&#xff0c;用于根据非结构化查询返回文档&#xff0c;它比向量存储更为通用&#xff0c;既可以使用向量存储作为底层&#xff0c;也可以是其…

C++11右值引用及移动构造

区分左值和右值 在学习c11的右值引用前&#xff0c;大家肯定会有点陌生什么是右值&#xff1f;什么是左值&#xff1f;现在我先来带大家熟悉一下概念。 左值 可以被取地址&#xff0c;也可被修改&#xff08;const修饰的除外&#xff09; 可以出现在等号左边&#xff0c;也可…

华为HCIP Datacom H12-821 卷29

1.多选题 下面关于LSA age字段&#xff0c;描述正确的是∶ A、LSA age的单位为秒&#xff0c;在LSDB中的LSA的LS age随时间增长而增长 B、LSA age的单位为秒&#xff0c;在LSDB中的LSA的LS age随时间增长而减少 C、如果一条LSA的LS age达到了LS RefreshTime&#xff08…

【C++】AVL树(旋转、平衡因子)

&#x1f308;个人主页&#xff1a;秦jh_-CSDN博客&#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 ​ 目录 前言 AVL树的概念 节点 插入 AVL树的旋转 新节点插入较高左子树的左侧---左左&#xff1a;…

Spring的AOP基础以及AOP的核心概念

2. AOP基础 学习完spring的事务管理之后&#xff0c;接下来我们进入到AOP的学习。 AOP也是spring框架的第二大核心&#xff0c;我们先来学习AOP的基础。 在AOP基础这个阶段&#xff0c;我们首先介绍一下什么是AOP&#xff0c;再通过一个快速入门程序&#xff0c;让大家快速体…

高级RAG检索中的五种查询重写策略_用于检索增强的大型语言模型的查询重写

一、前言 检索增强生成 (RAG) 作为人工智能 (AI) 领域的一项重要技术&#xff0c;近年来得到了飞速发展。它将基于检索模型和基于生成的模型相结合&#xff0c;利用海量外部数据&#xff0c;生成更具信息量、更准确、更具语境相关性的回复。检索策略是 RAG 系统的关键组成部分…

2024年最适合高级网工的11款Linux

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 你们好&#xff0c;我的网工朋友。 Linux作为一个免费且开源的操作系统&#xff0c;随着时间的推移催生了多个发行版&#xff0c;并且得到了庞大…

golang验证Etherscan上的智能合约

文章目录 golang验证Etherscan上的智能合约为什么要验证智能合约如何使用golang去验证合约获取EtherscanAPI密钥Verify Source Code接口Check Source Code Verification Status接口演示示例及注意事项网络问题无法调用Etherscan接口&#xff08;最重要的步骤&#xff09; golan…

应用层协议原理——因特网提供的运输服务

我们已经考虑了计算机网络能够一般性地提供的运输服务。现在我们要更为具体地考察由因特网提供的运输服务类型。因特网(更一般的是TCP/IP网络)为应用程序提供两个运输层协议&#xff0c;即UDP和TCP。当软件开发者为因特网创建一个新的应用时&#xff0c;首先要做出的决定是&…

js逆向案例 | 加速乐反爬逆向

前言 加速乐作为一种常见的反爬虫技术&#xff0c;在网络上已有大量详尽深入的教程可供参考。然而&#xff0c;对于那些初次接触的人来说&#xff0c;直接面对它可能仍会感到困惑。 声明 本文仅用于学习交流&#xff0c;学习探讨逆向知识&#xff0c;欢迎私信共享学习心得。如…

收银系统源码-商品报损管理

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

ESXi6.7 update 3主机实现新硬件运行老环境

server 2003 SQL server 2000 SQL SP4 vmware tools 一、适用场景 1、运行多年的老企业&#xff0c;积累的数据量庞大&#xff0c;其中的数据库并不一定都是现在开发的平台或系统&#xff0c;而是已经正在运行&#xff0c;不能停业务的状态。 2、老系统老应用平台&#xf…

day01:项目概述,环境搭建

文章目录 软件开发整体介绍软件开发流程角色分工软件环境 外卖平台项目介绍项目介绍定位功能架构 产品原型技术选型 开发环境搭建整体结构&#xff1a;前后端分离开发前后端混合开发缺点前后端分离开发 前端环境搭建Nginx 后端环境搭建熟悉项目结构使用Git进行版本控制数据库环…

Day06-01-lvs

Day06-01-lvs 0. 核心内容1.负载均衡项目 选择故障: 2.lvs 预备姿势-arp3.lvs 概述4. lvs工作模式4.1 预备姿势4.2 lvs-dr模式4.3 lvs-nat模式4.4 小结 5. lvs-dr模式5.1 环境准备5.2 lvs-dr模式配置流程1) lvs服务端配置2) web服务器 RS服务端配置3) 小结4) 调试 5.3 抓包查看…

电脑清理软件用哪个好?这款工具有些饱受争议

电脑清理软件用哪个好?电脑作为我们工作和娱乐的重要工具&#xff0c;其运行速度和安全性直接影响着我们的生活质量。然而&#xff0c;随着时间的推移&#xff0c;电脑系统会积累大量垃圾文件、注册表错误、恶意软件等&#xff0c;导致电脑运行缓慢甚至崩溃。 这时&#xff0c…

el-tree 获取当前勾选节点的选中状态以及选中值对象 触发check-change多次事件问题原因

1.需求 现在需要一个树状结构的资产树 但是现在需求是 获取当前选中的值的状态是选中还是取消选中 然后再用当前选中 or 取消选中的值 进行 选中 or 取消选中的操作 一开始使用的是 check-change 方法 接收参数如图 但是我勾选父节点 或者 子节点后 他会打印一堆数据 是因…

基于Java+SpringMvc+Vue技术的智慧校园系统设计与实现

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

昇思25天学习打卡营第11天 | LLM原理和实践:基于MindSpore实现BERT对话情绪识别

1. 基于MindSpore实现BERT对话情绪识别 1.1 环境配置 # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspore版本&#xff0c;可更改下面mindspore的版本号 !pip uninstall mindspore -y !pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore2.2…