打造全自动驾驶汽车所需的技术栈是什么?公司和研究人员对这个问题的答案存在分歧。自动驾驶的方法范围从单纯的摄像头和计算机视觉到计算机视觉和先进传感器的组合。
特斯拉一直是自动驾驶纯视觉方法的拥护者,在今年的计算机视觉和模式识别会议 (CVPR) 上,其首席人工智能科学家 Andrej Karpathy 解释了原因。
在 CVPR 2021 自动驾驶研讨会上,过去几年一直领导特斯拉自动驾驶工作的 Karpathy详细介绍了该公司如何开发仅需要视频输入即可了解汽车周围环境的深度学习系统。他还解释了为什么特斯拉处于使基于视觉的自动驾驶汽车成为现实的最佳位置。
通用计算机视觉系统
深度神经网络是自动驾驶技术堆栈的主要组成部分之一。神经网络分析道路、标志、汽车、障碍物和人的车载摄像头。
但是深度学习在检测图像中的对象时也会出错。这就是为什么大多数自动驾驶汽车公司,包括Alphabet 子公司 Waymo,使用激光雷达,这是一种通过向各个方向发射激光束来创建汽车周围 3D 地图的设备。激光雷达提供了可以填补神经网络空白的附加信息。
然而,将激光雷达添加到自动驾驶堆栈会带来其自身的复杂性。“你必须用激光雷达预先绘制环境地图,然后你必须创建一张高清地图,你必须插入所有车道及其连接方式以及所有交通灯,”Karpathy说。“在测试时,您只需定位到该地图即可四处行驶。”
创建自动驾驶汽车将要行驶的每个位置的精确地图是极其困难的。“收集、构建和维护这些高清激光雷达地图是不可扩展的,”Karpathy说。“让这个基础设施保持最新状态将是极其困难的。”
特斯拉在其自动驾驶堆栈中不使用激光雷达和高清地图。“根据围绕汽车的八个摄像头拍摄的视频,发生的一切都是第一次发生在车内,”Karpathy说。
自动驾驶技术必须弄清楚车道在哪里,红绿灯在哪里,它们的状态是什么,以及哪些与车辆相关。它必须在没有任何关于它所导航道路的预定义信息的情况下完成所有这些工作。
Karpathy承认,基于视觉的自动驾驶在技术上更加困难,因为它需要神经网络,仅基于视频输入就可以运行得非常好。“但一旦你真正让它工作起来,它就是一个通用的视觉系统,主要可以部署在地球上的任何地方,”他说。
使用通用视觉系统,您的汽车将不再需要任何辅助装备。Karpathy说,特斯拉已经在朝着这个方向前进。此前,该公司的汽车使用雷达和摄像头的组合进行自动驾驶。但它最近开始运送没有雷达的汽车。
“我们删除了雷达,在这些车里只靠视觉驾驶,”Karpathy说,并补充说,原因是特斯拉的深度学习系统已经达到了比雷达好一百倍的地步,现在雷达开始了阻止事情发生并“开始产生噪音”。
监督学习
反对纯计算机视觉方法的主要论点是,在没有激光雷达深度图的帮助下,神经网络是否可以进行测距和深度估计存在不确定性。
Karpathy说:“显然,人类驾驶时有视觉,所以我们的神经网络能够处理视觉输入,以了解我们周围物体的深度和速度。”“但最大的问题是合成神经网络能否做到同样的事情。我认为,在过去几个月我们一直在努力解决这个问题的内部,对我们的回答是明确的“是”。”
特斯拉的工程师想要创建一个深度学习系统,该系统可以执行物体检测以及深度、速度和加速度。他们决定将挑战视为监督学习问题,其中神经网络在对带注释的数据进行训练后学习检测对象及其相关属性。
为了训练他们的深度学习架构,Tesla团队需要一个包含数百万个视频的海量数据集,并用它们包含的对象及其属性仔细注释。为自动驾驶汽车创建数据集特别棘手,工程师必须确保包含不经常发生的各种道路设置和边缘情况。
“当你拥有一个庞大、干净、多样化的数据集,并在其上训练一个大型神经网络时,我在实践中看到的是……成功是有保证的,”Karpathy说。
自动标记数据集
特斯拉在全球销售了数百万辆配备摄像头的汽车,在收集训练汽车视觉深度学习模型所需的数据方面处于有利地位。特斯拉自动驾驶团队积累了1.5 PB的数据,其中包括100万个10秒视频和60亿个用边界框、深度和速度标注的对象。
但是标记这样的数据集是一个巨大的挑战。一种方法是通过数据标记公司或Amazon Turk 等在线平台对其进行手动注释。但这需要大量的手动工作,可能会花费一大笔钱,并且过程非常缓慢。
相反,特斯拉团队使用了一种自动标记技术,该技术涉及神经网络、雷达数据和人工审查的组合。由于数据集是离线注释的,神经网络可以来回运行视频,将它们的预测与真实情况进行比较,并调整它们的参数。这与测试时间推理形成对比,在测试时间推理中,一切都是实时发生的,深度学习模型无法追索。
离线标记还使工程师能够应用非常强大且计算密集型的对象检测网络,这些网络无法部署在汽车上并用于实时、低延迟的应用程序。他们使用雷达传感器数据进一步验证了神经网络的推论。所有这些都提高了标记网络的精度。
“如果您处于离线状态,您可以事后诸葛亮,因此您可以更好地冷静地融合 [不同的传感器数据],”Karpathy 说。“此外,你可以让人类参与进来,他们可以进行清理、验证、编辑等工作。”
根据 Karpathy 在 CVPR 上展示的视频,物体检测网络通过碎片、灰尘和雪云保持一致。
Karpathy 没有说明对自动标记系统进行最终修正需要多少人力。但人类认知在引导自动标签系统朝着正确方向发展方面发挥了关键作用。
在开发数据集时,特斯拉团队发现了200多个触发器,表明对象检测需要调整。其中包括诸如不同相机的检测结果之间或相机与雷达之间的不一致等问题。他们还确定了可能需要特别注意的场景,例如隧道入口和出口以及顶部有物体的汽车。
开发和掌握所有这些触发器花了四个月的时间。随着标签网络变得更好,它以“影子模式”部署,这意味着它安装在消费车辆中并静默运行,无需向汽车发出命令。将网络的输出与传统网络、雷达和驾驶员行为的输出进行比较。
特斯拉团队经历了七次数据工程迭代。他们从一个初始数据集开始,在该数据集上训练他们的神经网络。然后,他们在真实汽车上以影子模式部署深度学习,并使用触发器来检测不一致、错误和特殊场景。然后修改、纠正错误,并在必要时将新数据添加到数据集中。
“我们一遍又一遍地旋转这个循环,直到网络变得非常好,”Karpathy说。
因此,该架构可以更好地描述为具有巧妙分工的半自动标记系统,其中神经网络执行重复性工作,人类处理高级认知问题和极端情况。
有趣的是,当一位与会者问Karpathy是否可以自动生成触发器时,他说,“[自动化触发器] 是一个非常棘手的场景,因为您可以拥有通用触发器,但它们不会正确表示错误模式. 例如,很难自动触发进入和退出隧道的触发器。这是你作为一个人必须直觉[强调我的]这是一个挑战的语义上的东西......目前尚不清楚这将如何运作。”
分层深度学习架构
特斯拉的自动驾驶团队需要一个非常高效且设计精良的神经网络,以充分利用他们收集的高质量数据集。
该公司创建了一个分层深度学习架构,由不同的神经网络组成,这些神经网络处理信息并将其输出提供给下一组网络。
深度学习模型使用卷积神经网络从安装在汽车周围的八个摄像头的视频中提取特征,并使用变压器网络将它们融合在一起。然后跨时间融合它们,这对于诸如轨迹预测和平滑推理不一致的任务很重要。
然后将空间和时间特征输入到神经网络的分支结构中,Karpathy将其描述为头部、躯干和终端。
“你想要这种分支结构的原因是因为你感兴趣的输出数量巨大,而且你不能为每个输出都配备一个单一的神经网络,”Karpathy说。
层次结构可以为不同的任务重用组件,并在不同的推理路径之间实现特征共享。
网络模块化架构的另一个好处是分布式开发的可能性。特斯拉目前雇佣了一个庞大的机器学习工程师团队,致力于自动驾驶神经网络的研究。他们每个人都在网络的一个小组件上工作,并将他们的结果插入到更大的网络中。
“我们有一个大约20人的团队,他们正在全职训练神经网络。他们都在一个单一的神经网络上进行合作,”Karpathy说。
垂直整合
在 CVPR 的演讲中,Karpathy分享了有关特斯拉用来训练和微调其深度学习模型的超级计算机的一些细节。
计算集群由 80 个节点组成,每个节点包含 8 个具有 80 GB 视频内存的 Nvidia A100 GPU,总计 5,760 个 GPU 和超过 450 TB 的 VRAM。这台超级计算机还拥有 10 PB 的 NVME 超高速存储和 640 tbps 的网络容量,可连接所有节点并允许对神经网络进行高效的分布式训练。
特斯拉还拥有并制造安装在其汽车内的人工智能芯片。Karpathy说:“这些芯片是专门为我们想要为[全自动驾驶]应用运行的神经网络而设计的。”
特斯拉的一大优势在于其垂直整合。特斯拉拥有整个自动驾驶汽车堆栈。它制造汽车和用于自动驾驶功能的硬件。它处于独特的位置,可以从已售出的数百万辆汽车中收集各种遥测和视频数据。它还在其专有数据集、其特殊的内部计算集群上创建和训练其神经网络,并通过对其汽车的阴影测试来验证和微调网络。而且,当然,它拥有一支由机器学习工程师、研究人员和硬件设计师组成的非常有才华的团队,可以将所有部分组合在一起。
“您可以在该堆栈的所有层进行协同设计和工程,”Karpathy说。“没有第三方阻止你。你完全掌握自己的命运,我认为这太不可思议了。”
这种创建数据、调整机器学习模型并将其部署在许多汽车上的垂直整合和重复循环使特斯拉处于实现仅视觉自动驾驶汽车功能的独特位置。在他的演讲中,Karpathy展示了几个示例,其中仅新神经网络就超过了与雷达信息结合使用的传统ML模型。
如果系统继续改进,正如Karpathy所说,特斯拉可能会走上淘汰激光雷达的轨道。而且我认为没有任何其他公司能够复制特斯拉的方法。
开放式问题
但问题仍然是,深度学习在目前的状态下是否足以克服自动驾驶的所有挑战。当然,物体检测以及速度和范围估计在驾驶中起着重要作用。但是人类视觉还执行许多其他复杂的功能,科学家将其称为视觉的“暗物质”。这些都是对不同环境的视觉输入和导航进行有意识和潜意识分析的重要组成部分。
度学习模型也很难进行因果推理,当模型面临他们以前从未见过的新情况时,这可能是一个巨大的障碍。因此,虽然特斯拉设法创建了一个非常庞大和多样化的数据集,但开放的道路也是非常复杂的环境,新的和不可预测的事情随时可能发生。
AI社区在是否需要将因果关系和推理明确集成到深度神经网络中存在分歧,或者是否可以通过“直接拟合”克服因果关系障碍,其中大型且分布良好的数据集足以达到通用深度学习。特斯拉基于视觉的自动驾驶团队似乎更喜欢后者(尽管他们完全控制堆栈,他们将来总是可以尝试新的神经网络架构)。这项技术如何经受住时间的考验将会很有趣。