点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者丨初光
来源丨糖果Autosar
打造全自动驾驶汽车所需的技术堆栈是什么?公司和研究人员对该问题的答案存在分歧。自动驾驶的方法范围从相机和计算机视觉到计算机视觉和高级传感器的组合。
特斯拉一直是纯视觉自动驾驶方法的拥护者,在今年的计算机视觉和模式识别会议 (CVPR) 上,其首席人工智能科学家 Andrej Karpathy 解释了原因。
在 CVPR 2021 自动驾驶研讨会上,过去几年一直领导特斯拉自动驾驶工作的 Karpathy 详细介绍了该公司如何开发只需要视频输入来理解汽车周围环境的深度学习系统。他还解释了为什么特斯拉处于使基于视觉的自动驾驶汽车成为现实的最佳位置。
“周末在 CVPR 上就我们最近在 Tesla Autopilot 的工作进行了一次演讲,以通过视觉神经网络估计非常准确的深度、速度和加速度。必要的成分包括:1M 车队数据引擎、强大的 AI 团队和超级计算机https://t.co/osmEEgkgtL pic.twitter.com/A3F4i948pD
- 安德烈·卡帕斯 (@karpathy)
2021 年 6 月 21 日
”
通用计算机视觉系统
深度神经网络是自动驾驶技术栈的主要组成部分之一。神经网络分析道路、标志、汽车、障碍物和人的车载摄像头信息。
但深度学习在检测图像中的物体时也会出错。这就是为什么包括 Alphabet 子公司Waymo在内的大多数自动驾驶汽车公司都使用激光雷达的原因,这种设备通过向各个方向发射激光束来创建汽车周围环境的 3D 地图。激光雷达提供了可以填补神经网络空白的附加信息。
然而,将激光雷达添加到自动驾驶堆栈也有其自身的复杂性。“你必须用激光雷达预先映射环境,然后你必须创建一个高清地图,你必须插入所有车道以及它们如何连接以及所有红绿灯,”Karpathy 说。“在测试时,您只需定位到该地图即可四处行驶。”
创建自动驾驶汽车将要行驶的每个位置的精确地图是极其困难的。“收集、构建和维护这些高清激光雷达地图是不可扩展的,”Karpathy 说。“让这个基础设施保持最新状态是极其困难的。”
特斯拉在其自动驾驶堆栈中不使用激光雷达和高清地图。“所有发生的事情,都是第一次发生在车内,基于汽车周围八个摄像头的视频,”Karpathy 说。
自动驾驶技术必须弄清楚车道在哪里,红绿灯在哪里,它们的状态是什么,以及哪些与车辆相关。它必须在没有任何关于它正在导航的道路的预定义信息的情况下完成所有这些工作。
Karpathy 承认,基于视觉的自动驾驶在技术上更加困难,因为它需要仅基于视频源运行得非常好的神经网络。“但一旦你真正开始工作,它就是一个通用的视觉系统,主要可以部署在地球上的任何地方,”他说。
使用通用视觉系统,您的汽车将不再需要任何辅助装备。Karpathy 说,特斯拉已经在朝着这个方向发展。此前,该公司的汽车结合使用雷达和摄像头进行自动驾驶。但它最近开始运送没有雷达的汽车。
“我们删除了雷达,在这些车上只靠视觉行驶,”Karpathy 说,并补充说,原因是特斯拉的深度学习系统已经到了比雷达好一百倍的地步,现在雷达正在启动阻止事情并“开始制造噪音”。
监督学习
反对纯计算机视觉方法的主要论点是,在没有激光雷达深度图帮助的情况下,神经网络是否可以进行测距和深度估计存在不确定性。
“显然,人类是靠视觉四处行驶的,因此我们的神经网络能够处理视觉输入以了解我们周围物体的深度和速度,”Karpathy 说。“但最大的问题是合成神经网络能否做到这一点。我认为,在过去几个月我们一直在努力解决这个问题时,我们内部的答案是肯定的。”
特斯拉的工程师想要创建一个深度学习系统,该系统可以执行物体检测以及深度、速度和加速度。他们决定将挑战视为监督学习问题,其中神经网络在对带注释的数据进行训练后学会检测对象及其相关属性。
为了训练他们的深度学习架构,特斯拉团队需要一个包含数百万视频的海量数据集,并用它们包含的对象及其属性进行仔细注释。为自动驾驶汽车创建数据集尤其棘手,工程师必须确保包含不经常发生的各种道路设置和边缘情况。
“当你拥有一个大型、干净、多样化的数据集,并在其上训练一个大型神经网络时,我在实践中看到的是......成功是有保证的,”Karpathy 说。
自动标记的数据集
随着全球销售数百万辆配备摄像头的汽车,特斯拉在收集训练汽车视觉深度学习模型所需的数据方面处于有利地位。特斯拉自动驾驶团队积累了 1.5 PB 的数据,其中包括 100 万个 10 秒的视频和 60 亿个标有边界框、深度和速度的对象。
但是标记这样的数据集是一个巨大的挑战。一种方法是通过数据标记公司或 Amazon Turk 等在线平台手动对其进行注释。但这需要大量的手动工作,可能会花费一大笔钱,而且过程非常缓慢。
相反,特斯拉团队使用了一种自动标记技术,该技术结合了神经网络、雷达数据和人工评论。由于数据集是离线注释的,神经网络可以来回运行视频,将它们的预测与基本事实进行比较,并调整它们的参数。这与测试时推理形成对比,在测试时推理中,一切都是实时发生的,深度学习模型无法追索。
离线标记还使工程师能够应用非常强大且计算密集型的对象检测网络,这些网络无法部署在汽车上,也无法用于实时、低延迟的应用程序。他们使用雷达传感器数据进一步验证了神经网络的推论。所有这些都提高了标注网络的精度。
“如果您处于离线状态,您将受益于事后诸葛亮,因此您可以更好地冷静地融合 [不同的传感器数据],”Karpathy 说。“此外,你可以让人类参与进来,他们可以进行清理、验证、编辑等工作。”
根据 Karpathy 在 CVPR 上展示的视频,物体检测网络在碎片、灰尘和雪云中保持一致。
特斯拉的神经网络可以始终如一地检测各种可见度条件下的物体。
Karpathy 没有说明需要多少人力才能对自动标签系统进行最终修正。但人类认知在引导自动标签系统朝着正确方向发展方面发挥了关键作用。
在开发数据集时,Tesla 团队发现了 200 多个触发器,表明对象检测需要调整。其中包括不同摄像头检测结果不一致或摄像头与雷达检测结果不一致等问题。他们还确定了可能需要特别注意的场景,例如隧道入口和出口以及顶部有物体的汽车。
开发和掌握所有这些触发器花了四个月的时间。随着标签网络变得更好,它以“影子模式”部署,这意味着它安装在消费车辆中,并且无需向汽车发出命令即可静默运行。该网络的输出与传统网络、雷达和驾驶员行为的输出进行比较。
特斯拉团队经历了七次数据工程迭代。他们从训练神经网络的初始数据集开始。然后,他们在真实汽车上以影子模式部署深度学习,并使用触发器来检测不一致、错误和特殊场景。然后修改、纠正错误,如有必要,将新数据添加到数据集中。
“我们一遍又一遍地旋转这个循环,直到网络变得非常好,”Karpathy 说。
因此,该架构可以更好地描述为具有巧妙分工的半自动标签系统,其中神经网络执行重复性工作,而人类负责处理高级认知问题和极端情况。
有趣的是,当一位与会者问 Karpathy 是否可以自动生成触发器时,他说:“[使触发器自动化] 是一个非常棘手的场景,因为您可以拥有通用触发器,但它们不能正确表示错误模式. 例如,很难自动设置一个触发进入和退出隧道的触发器。这是一个语义上的东西,你作为一个人必须直觉[强调我的]这是一个挑战......目前尚不清楚这将如何运作。
分层深度学习架构
特斯拉的自动驾驶团队需要一个非常高效且设计良好的神经网络,以充分利用他们收集的高质量数据集。
该公司创建了一个由不同的神经网络组成的分层深度学习架构,这些神经网络处理信息并将其输出提供给下一组网络。
深度学习模型使用卷积神经网络从安装在汽车周围的八个摄像头的视频中提取特征,并使用变压器网络将它们融合在一起。然后它会跨时间融合它们,这对于轨迹预测等任务和消除推理不一致非常重要。
然后将空间和时间特征输入到神经网络的分支结构中,Karpathy 将其描述为头部、躯干和终端。
“你想要这种分支结构的原因是因为有大量你感兴趣的输出,而且你不能为每个输出都拥有一个单一的神经网络,”Karpathy 说。
层次结构使得可以为不同的任务重用组件,并在不同的推理路径之间实现特征共享。
网络模块化架构的另一个好处是分布式开发的可能性。特斯拉目前正在雇佣一个庞大的机器学习工程师团队来研究自动驾驶神经网络。他们每个人都在网络的一个小组件上工作,并将他们的结果插入到更大的网络中。
“我们有一个大约 20 人的团队,他们正在全职训练神经网络。他们都在一个单一的神经网络上进行合作,”Karpathy 说。
垂直整合
在 CVPR 的演讲中,Karpathy 分享了特斯拉用来训练和微调其深度学习模型的超级计算机的一些细节。
计算集群由 80 个节点组成,每个节点包含 8 个 Nvidia A100 GPU,具有 80 GB 的视频内存,总计 5,760 个 GPU 和超过 450 TB 的 VRAM。该超级计算机还具有 10 PB 的 NVME 超高速存储和 640 tbps 的网络容量,可连接所有节点并实现神经网络的高效分布式训练。
特斯拉还拥有并制造安装在汽车内部的人工智能芯片。“这些芯片专为我们想要为 [全自动驾驶] 应用程序运行的神经网络而设计,”Karpathy 说。
特斯拉最大的优势在于其垂直整合。特斯拉拥有整个自动驾驶汽车堆栈。它制造汽车和用于自动驾驶功能的硬件。它具有独特的优势,可以从已售出的数百万辆汽车中收集各种遥测和视频数据。它还在其专有数据集、其特殊的内部计算集群上创建和训练其神经网络,并通过对其汽车的影子测试来验证和微调网络。当然,它拥有一支由机器学习工程师、研究人员和硬件设计师组成的非常有才华的团队,可以将所有部分组合在一起。
“你可以在堆栈的所有层上进行共同设计和工程,”Karpathy 说。“没有第三方阻碍你。你完全掌握了自己的命运,我认为这太不可思议了。”
这种创建数据、调整机器学习模型并将其部署到许多汽车上的垂直整合和重复循环使特斯拉处于实现仅视觉自动驾驶汽车功能的独特位置。在他的演讲中,Karpathy 展示了几个例子,其中新的神经网络本身就胜过与雷达信息结合使用的传统 ML 模型。
如果系统继续改进,正如 Karpathy 所说,特斯拉可能正在淘汰激光雷达。而且我没有看到任何其他公司能够复制特斯拉的方法。
开放式问题
但问题在于,当前状态下的深度学习是否足以克服自动驾驶的所有挑战。当然,物体检测以及速度和距离估计在驾驶中起着重要作用。但人类视觉还执行许多其他复杂的功能,科学家称之为视觉的“暗物质”。这些都是对不同环境的视觉输入和导航进行有意识和潜意识分析的重要组成部分。
深度学习模型也很难做出因果推理,当模型面临他们以前从未见过的新情况时,这可能是一个巨大的障碍。因此,虽然特斯拉已经设法创建了一个非常庞大和多样化的数据集,但开放的道路也是非常复杂的环境,新的和不可预测的事情总是会发生。
AI 社区对于是否需要明确地将因果关系和推理集成到深度神经网络中,或者是否可以通过“直接拟合”克服因果关系障碍存在分歧,在这种情况下,大型且分布良好的数据集足以达到通用深度学习。特斯拉基于视觉的自动驾驶团队似乎更倾向于后者(尽管鉴于他们对堆栈的完全控制,他们将来总是可以尝试新的神经网络架构)。这项技术如何经受时间的考验将会很有趣。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉精品课程推荐:
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~