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