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