论文标题:
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=N1∑N61t∈0.5s,1s,1.5s,2s,2.5s,3s∑L2t
因此,与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】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。