近些年,越来越多的汽车拥有了自动驾驶功能,特斯拉甚至称其自动驾驶系统 Autopilot 为「完全自动驾驶」。这当然不是现实,而是炒作,因为Autopilot 只是 L2 级别自动驾驶。事实上,目前市场上仍没有无需人工干预就可以在所有条件下自动驾驶的汽车。
除了技术的成熟性以外,高成本成为了实践过程中自动驾驶发展和采用的一个最大阻碍:目前正在生产的自动驾驶汽车仍然非常昂贵,一个实验模型就可能需要花费大约 30 万美元(将近大约 200 万人民币)。
其最昂贵的组件之一就是搭载执行自动驾驶软件系统的硬件,比如,百度的自主驾驶平台由两个计算系统组成,费用高达 3 万美元。
行业内普遍认为,要想运行完全自主(4 级)驾驶软件,设备成本要高出数倍,因为它依赖更多的计算资源来对更大规模和更复杂的软件进行实时响应。但是,完全自动驾驶真的需要那么多计算资源吗?目前观察到的低端全自动驾驶设备性能不足的原因是什么?L4 级自动驾驶是否有可能在一张现成的芯片上实现实时性能?
带着这些疑问,来自AI普适计算公司CoCoPIE以及美国多所高校的华人科学家团队,在单个现成的 AI 芯片产品上对 L4 级别自动驾驶软件进行了探索,并通过论文给出了答案——不需要;资源利用率低;能。
【来自 Autoware 自动驾驶应用程序(ADApp)中的详细任务。感测(蓝色),感知(红色),定位(灰色),跟踪(紫色),预测(绿色),规划(黄色)和最终控制输出(橙色)。】
该团队首次证明了,在满足所有延迟要求的同时,只需单个低于 1000 美元的现成芯片 (NVIDIA Jetson AGX Xavier) ,即可运行 6 个来自 Autoware 的工业级 L4 级自动驾驶应用程序。
除此以外,他们的研究还针对当前自动驾驶行业实践中的重要技术缺陷给出了一系列关键见解,并提供了几个实用的解决方案。这一结果颠覆了业界的一些普遍看法,并为该行业在迅速降低自主驾驶的成本和功耗上指出了有希望的道路。
L4 级别自动驾驶的流程
首先,什么是 L4 级别自动驾驶汽车?
这是一个经常被问到的问题。它指的是构成自动驾驶汽车的自动化水平,总体而言,级别由低到高分为从 0 到 5 。事实上,有一个已发布的标准(SAE J3016)对其进行了准确的描述,它已成为讨论和理解自动驾驶汽车的一个陈旧且经常被引用的基石,但非自动驾驶汽车行业的内部人员很少使用。
总的来说, L0、L1、L2 和 L3 需要人类驾驶员在场,共同分担驾驶任务。这些类型的汽车被描述为半自动驾驶汽车而不是自动驾驶汽车可能更为恰当,并且通常包含各种称为 ADAS(高级驾驶员辅助系统)的自动附加组件。而 L4级别完全依靠人工智能自己驾驶汽车,在驾驶任务期间不需要任何人工协助,是真正的自动驾驶汽车。
那么,L4 级别自动驾驶系统的流程是怎么样的?
(L4 级自动驾驶汽车工作流程的高级结构)
第一步,传感系统从毫米波雷达、激光雷达、摄像头、全球导航卫星系统 (GNSS) 接收器和惯性测量单元 (IMU) 收集足够的原始传感数据,其中,相机以 30 FPS 的速度捕获图像,LiDAR 以 10 FPS 的速度捕获点云,GNSS/IMU 以 100 Hz 的速度生成位置更新。
第二步,通过时间和空间同步,感知组件创建所有检测到的对象的综合感知列表,实时产生 5 MB/s 的数据。
第三步,将感知列表以 10 Hz 的频率馈入跟踪节点,以创建所有检测到的对象的跟踪列表。
第四步,将跟踪列表以 10 Hz 的频率馈入预测节点,以创建所有对象的预测列表,并进一步将数据大小减少到 200 KB/s。
第五步,预测结果和定位结果都以 10 Hz 的频率馈入规划节点以生成导航计划。
第六步,将导航计划以 10 Hz 的频率馈入控制节点以生成控制命令,最终将这些命令发送到机器以 100 Hz 的频率执行。
单卡实现实时 L4 级别自动驾驶
的缺陷及解决方案
研究人员首先在Jetson AGX Xavier 上对 Autoware 的六组算法进行了测试、观察和分析。在实际的应用中,这六组算法是共享的,他们之间的差异在于2-D感知组成部分。感知是自主驾驶软件的性能瓶颈; 其他组件的变化可能会影响用于车辆的推荐行动,但对软件的端到端性能没有可观察的影响,而性能是本次研究的核心。
在探索的过程中,他们发现了 3 个主要缺陷,并针对性地给出了解决方案。
• 缺陷 1:当预先调度方案应用于部署到单个低端设备的自动驾驶应用程序时,会产生计算资源的紧缺。
– 解决方案:文章提出了一个简单的解决方案——即时优先级调整(just-in-time priority adjustment),通过即时调整任务的关联和优先级来解决「算力饥饿」。
• 缺陷 2:由于硬件模型设计和实现的某些原因,某些加速器未被完全利用。
– 解决方案:文章采用一种硬件感知模型定制(hardware-aware model customization)的方法,通过弥合DNN模型与多种类型的加速器之间的差距,显着提高了加速器的利用。
• 缺陷 3:当前的自动驾驶调度算法无法处理可以使用多种类型加速器的混合工作负载。
– 解决方案:我们提出了基于 DAG 实例化的调度(instantiation based scheduling),一种通过基于加速器的 DAG 实例化扩展自动驾驶调度以满足需求的方法。
【Jetson AGX Xavier 上 ADApp 应用程序中每个模块的执行时间(平均值±标准差)和未命中率。∞ 代表超时。Miss Rate是模块错过其预期延迟(显示在表头中的括号中)的频率——允许超过 10% 的系统噪声,列表显示的是最大值。】
我们可以从上表中观察到,第五部分有了显着性能改善。值得一提的是,这并不是来自于单个技术,而是三个措施的协同作用。
如果我们仅应用硬件感知模型定制或迁移到加速器,则应用程序仍会遭受「饥饿」问题。如果我们不将代码迁移应用于加速器,即使DNN模型通过硬件感知自定义,它们也无法在加速器上运行它们的代码。
安全性的考虑会使成本增加,
但仍比现有技术低一个数量级
这项工作的结果是显着的。在这项工作之前,从未有过 4 级自动驾驶可以在单个现成的芯片上实现实时性能。699 美元的成本比当前行业中使用的成本低了一个数量级。那么,它是如何保证安全性的呢?
除了实时性能要求外,L4级自动驾驶系统还必须具备足够的「冗余」,以确保安全。在产品设计的时候,该团队考虑了两种不同添加冗余的方法:一种异构的方法是让多个渠道创建自己独立的、对世界的不同看法以进行交叉检查;另一种同构的方法是在两个相同的设备上运行相同的工作负载,每个设备上都配备了电源。
事实上,虽然该研究关注的是核心AI组件的性能,但是能够在单卡上运行整个应用程序已经奠定了良好的基础——即使增加冗余使成本增加一倍或三倍,结果仍然会比现有最先进技术的成本低一个数量级。
为行业以及学术界的研究开辟了新的方向
除了为行业指出大幅降低自动驾驶系统的成本和功率的有希望的途径外,这项工作颠覆了普遍看法还暗示了一些新的研究机会。
• 架构设计:随着成本和功耗的大幅下降,对各个组件的预分配、安全性或可靠性的加强以及加速。
• 软件设计:对成本和计算资源的改变假设表明需要重新思考自动驾驶软件的设计。
• 优化:已经有很多关于自动驾驶中某些点的优化的研究。
那么,回到开头的问题。当前自动驾驶感知的资源需求远远超过必要;资源利用不足是降低自动驾驶成本的关键;L4 级别自动驾驶可以在一张现成的只需 699 美元的卡上实现实时性能。为了实现这一点,它需要即时关联和优先级调整、适当的代码迁移到所有加速器以及硬件感知模型定制的协同作用。
原文:https://mp.weixin.qq.com/s/2vokV-gN0D0qdzbMn8Ylqg
既然来了,说些什么?