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