查看原文
其他

独家|特斯拉Autopilot负责人+首位号工 Ashok Elluswamy最新自动驾驶、机器人基础模型以及通用世界模型分享!

有新 有新Newin 2023-10-09




Ashok Elluswamy 是特斯拉 Autopilot 团队的第一位员工,在加入特斯拉之前,他曾在WABCO Vehicle Control System工作,并在大众电子研究实验室实习过。


Ashok Elluswamy 拥有卡内基梅隆大学的机器人系统开发硕士学位,在卡内基梅隆大学期间,他的一位老师在LinkedIn上称赞了:“他是顶尖学生之一,并展现出在广泛的主题上学习的积极性。”


这期内容来自 Ashok Elluswamy 上个月在 CVPR2023 上的分享,分为三部分:


  • 自动驾驶中的基础模型

  • 构建通用的世界模型

  • Q&A


大家 enjoy ✌️~



自动驾驶中的基础模型



大家好,我是 Ashok Elluswamy,我在自动驾驶团队中参与了一个竞赛,希望你们能听到我的声音,看到我的屏幕、视频等等;今天我想要介绍我们的工作,这将成为自主驾驶和机器人技术的基础模型,这不仅仅是我一个人的工作,我代表着一个由才华横溢的工程师组成的大团队。



我们的团队已经将完整的自动驾驶测试版软件交付给在美国和加拿大购买的所有用户,大约有4000辆车。到目前为止,这些车辆已经在FSD Beta 平台上行驶了250英里,总共行驶了5000万英里。这个令人兴奋的事情是,这是一个可扩展的自动驾驶系统,你可以带着车子去美国的任何地方,只需要设定目的地,车子就会试图导航到那里,自动处理转弯、购物、交通信号灯以及跟踪其他物体。


这一切主要由车辆周围的八个摄像头驱动,这些摄像头能够提供对车辆的全方位360度覆盖。之所以能够实现这样的效果,是因为我们的系统基于现代机器学习技术构建,许多自动驾驶心理学的能力都融入到了神经网络中。我想说,这与传统的自动驾驶方法不同,传统方法使用本地化地图、雷达、超声波等来进行融合。相反,我们的系统主要依靠摄像头。如果你拥有特斯拉汽车,你可以自己购买并体验,否则请相信我的话或观看一些视频,效果非常好。我们正在努力改进它。



我还分享了关于占据网络(Recap)的一些重要内容,它是我们系统中的一个重要组成部分。我认为这是基础模型任务之一,因为它非常通用,不需要任何特定的本体知识,它只是预测三维空间中的体素是否被占据,它的特点是可以适用于任意场景,不需要标注或设计本体知识。


除了占据情况,我们还预测未来体素的流动情况,这也提供了任意运动的预测。所有的这些都是实时运行的。这与神经网络有些相似,但与神经网络或者多视图重建不同,我们使用八个摄像头实时预测占据情况,而不是在后期进行处理。



网络的架构看起来很复杂,但实际上并不复杂,它可以从多个摄像头的视频流中提取信息,并选择任意的主干模型,然后在一个大型的Transformer块中将所有信息结合起来,通过特殊的注意力机制构建特征,并进行时间注意力,还加入了一些几何特征,最后通过上采样得到最终的预测结果。虽然图表看起来有些复杂,但整个过程其实非常直观。



这个模型的架构和建模方法不仅仅适用于占据情况,还适用于其他与驾驶相关的任务。显然,车道和道路对于驾驶任务非常重要。但是我必须说,预测车道是相当困难的。首先,车道是高维对象,不仅仅是一维或二维的,而且它们具有图形结构。例如,大部分物体(如车辆)都是自包含的,只在局部区域内存在,而车道可以横跨整个道路,你可以在视野中看到数英里的车道,它们可以分叉、合并,给建模带来了各种麻烦。


车道的预测还存在着很大的不确定性。有时候,由于被遮挡或夜间条件,你可能无法看到车道的全部。而且,即使一切都清晰明了,甚至连人类都无法确定你所看到的是两条车道还是一条车道。所以车道的预测存在很多不确定性,仅仅将其作为某种信息输出是不够的,这会导致在后续的应用中很难使用。



因此,最好的方法是将其预测为某种宏观表达形式,例如多段线、样条曲线、多项式等,以便于使用,并且所有这些都需要在几十毫秒内实时完成。就像我说的,实时预测车道是一个非常困难的问题。在这方面,我们采用了最先进的生成建模技术,具体来说,我们使用了自回归Transformer,它在车道建模方面与GPT非常相似。



我们可以将车道进行标记化,逐个令牌进行预测。与语言不同的是,车道的结构是多样化的,我们需要捕捉到完整的图形结构,并预测分叉点和合并点等。这一切都是端到端进行的,几乎没有后期处理。另一个重要的驾驶任务是移动物体,例如车辆、卡车、行人等。


仅仅检测到它们是不够的,我们需要获取它们的完整运动状态,并预测它们的形状信息和未来轨迹等。前面所描述的模型,包括车道模型和物体模型,从某种意义上说都是多模态模型,因为它们不仅接收摄像头的视频流,还接收其他输入,例如车辆的运动状态(速度、加速度、变速度等),并提供导航指令给车道,以引导车辆选择使用哪条车道等。



所有的一切都在网络内部进行处理,这就是我所说的现代机器学习技术栈的特点,我们将所有的任务结合在一起,实现了端到端的感知。在这里,你可以看到这些模型的预测效果。你看到的车道和车辆都是通过网络预测得到的,并经过一些后期处理,其中没有跟踪等。


总的来说,我可以说这个系统非常稳定,你所看到的车辆预测的绿色轨迹是它们未来的预测轨迹,现在它可以被视为一个固定的任务。所有的这些都在实时环境中非常好地工作,一旦我们拥有了所有这些感知信息,例如车道、占据情况、物体等,我们就可以进行完整的运动规划。



关于具体的实现细节,我不会深入讲解,但基本上可以将其看作是另一个任务,而不是一个独立的部分。那么,所有这些是如何实现的呢?我认为这是因为我们建立了一个复杂的自动标注流程,可以从整个车队获取数据,可以获得全球范围内数百万个视频片段。在左侧,你可以看到多车辆重建的示例,我们选择一些位置,多辆特斯拉汽车驶向该位置,上传视频片段和车辆的运动数据等。


我们将所有数据整合起来,重建整个三维场景。所展示的多条曲线或多边形是不同车辆在不同行程中的路径,它们之间的对齐非常好。这种多行程重建使我们能够直接从全球范围内的车队获取车道等信息。


一旦你拥有了来自所有摄像头的基本轨迹校准结构,你就可以做很多有趣的事情,重建整个场景。视频可能无法流畅播放,但在我的屏幕上,它看起来非常平滑,你可以看到地面表面的重建效果非常好,没有双重视觉或模糊的现象,物体看起来几何正确。



这是一种神经和3D重建的混合方法。有时候,即使渲染的图像看起来很好,底层的几何结构可能仍然模糊不清。所以我们采用了一种混合方法,效果非常好。你可以看到,栅栏、车辆和卡车等都被相当准确地重建出来。



一旦我们完成了这些重建,我们会使用更多的离线神经网络来生成我们想要的标签。正如我之前提到的,对于车道,我们需要某种矢量表示来使其易于使用。因此,我们不仅直接使用光栅图像,而是使用顶部运行的神经网络,然后生成矢量表示,这些表示可以作为在线系统的标签。类似于车道,一旦车道和道路被重建,我们还可以自动标记交通信号灯,你可以看到这里的交通信号灯是由我们的系统在没有人工干预的情况下进行水平化的。



它们具有一致的多视图,在再投影时,你可以看到侧面的白色交通信号灯在所有摄像头视角中都能正确重现。这得益于我们的良好自动校准系统,它能够联合校准所有摄像头,像素级精确地在三维空间中对齐。所以,所有这些预测结果结合在一起,给我们提供了对世界的超强理解。我已经尝试称之为一种条件模型,可以在许多不同的领域中使用。这些预测结果真正有助于自动驾驶,在任何地方都能够行驶,不必受地理限制,甚至有时可以建造一条新的道路,开启它,它也会很好地工作。



此外,它们还有助于人工驾驶,因为人类并不是完美的驾驶员,有时需要一些帮助。例如,在左侧,自动驾驶车辆由于某种原因忽略了停车标志,几乎要撞到红车。我们的系统进行干预,并自动刹车。在右侧的情况下,我们直行,然后有车突然插入并切入我们的车道,这是非常危险的,但系统及时刹车。这种情况与你认为自动驾驶系统自1980年代以来一直存在的情况有所不同。


我认为特斯拉是第一家将此类紧急刹车技术交付给消费者的公司(根据我所了解的情况)。与在同一车道行驶的车辆不同,穿越的对象更难处理,因为你不知道它们是否能够及时停下来。我们需要考虑停车线、交通信号灯以及它们可能转弯的车道等许多因素,了解穿越对象的行驶路径和可能的行驶方向。这不像指导一辆车那么简单,只需要速度和其他相关信息。


正如我所说的,我相信特斯拉是第一家将穿越刹车技术应用于自动驾驶的公司,并且在过去几个月中已经交付给了消费者。但基础模型真的只是将许多这些任务串联在一起吗?还是还有更多呢?我们认为,我们可以激励这些任务,例如获取占据情况,虽然它很通用,但在某些情况下,一些东西在该空间中更难以表示。



构建通用的世界模型



我们正在努力学习更加通用的世界模型,能够真正表示任意事物。在这种情况下,我们通过神经网络对过去或其他因素进行条件化,以预测未来。我相信每个人都一直希望能够做到这一点,而且我认为随着最近通用模型(如Transformer、扩散等)的兴起,我们终于有了机会。


你在这里看到的纯粹是生成的视频序列,给定过去的视频,网络会预测出一些未来的样本,希望是最可能的样本。你可以看到它不仅仅为一个摄像头预测,它同时预测了车辆周围所有八个摄像头的情况,你可以看到车辆的颜色在所有摄像头中是一致的,物体的运动在三维空间中也是一致的。



尽管我们没有明确要求它在三维空间中进行任何操作,也没有预先定义任何三维先验知识,但网络可以自主理解深度和运动。因此,由于所有预测只是对未来RGB值的预测,所以本体是非常通用的,你可以使用任何驾驶视频片段,无论是来自行驶中的视频、YouTube还是你自己的手机,都可以用来训练这个通用的世界动力学模型。



此外,它还可以与动作相结合,例如在左侧,车辆保持在当前车道行驶,我们要求它继续在该车道行驶,你可以看到模型能够非常好地预测几何形状和运动,对三维进行了很好的理解。在右侧,我们要求车辆向右换道,也许我们可以再回放一下。在左侧,车辆直行,我们要求它继续直行,模型直行;然后在右侧,我们要求车辆换道,它也换道了。两种输出的过去上下文是相同的,这是相同的测试。



当我们请求不同的未来样本时,它们能够产生不同的预测,这非常强大,因为现在你实际上拥有了一个神经网络的模拟器,可以根据不同的动作模拟不同的未来。与传统的游戏模拟器不同,这更加强大,因为它可以表示一些很难用显式系统描述的事物。我将展示更多示例,但是这非常强大,同时运动、意图和其他对象的自然行为(例如车辆)很难用显式方式表示,但在这个世界中很容易表示。



它不仅仅局限于RGB图像,你当然也可以在对象分割或连接等其他特征上进行这种预测任务,在三维空间中,你可以基于过去和你的动作提示甚至在没有提示的情况下,预测不同的未来。我个人对其工作效果感到惊讶,这是我们正在努力的令人兴奋的未来。


这里有一些例子,我认为这种模型将需要来表示场景中发生的事情,例如,烟雾弥漫在所有图片中,纸张飞舞,即使对于占据情况,当纸张飞舞时,它可能很难识别,它可能对光传输也有一定的影响,驾驶中有许多微妙之处,我们需要解决所有这些问题,构建一个通用的驾驶技术栈,可以在世界上的任何地方行驶,具有人类般的行为,快速高效,同时又非常安全。我认为我们正在寻找正确的解决方案。



显然,训练所有这些模型需要大量的计算资源。这就是为什么特斯拉致力于成为计算领域的世界领导者,我们自定义的训练硬件称为Compute Dojo,将在7月开始生产。通过这个硬件,我们认为我们正在成为全球顶级计算平台之一。


我们还认为,为了训练这些视觉的基础模型,我们需要大量的计算资源,不仅仅是为了训练一个模型所需的计算资源,还需要计算资源来尝试许多不同的实验,以确定哪些模型的效果最好。这对我们来说非常令人兴奋,因为计算资源将变得丰富,并且将由工程师和技术人员的创意监控。



这不仅仅是为了汽车而建立的,也是为了机器人。我们已经在汽车和机器人之间共享占据情况网络等一些其他网络,并且在这两个平台上都非常好地通用。我们希望将这个理念扩展到我们所拥有的所有任务上,不仅仅是车道和车辆等,如果机器人走到路上,环顾四周,它应该能够理解道路和车辆,以及它们可能的行驶方式等。所有这些都将被构建为这两个平台以及未来的其他机器人平台所使用。



总而言之,我们正在为视觉构建这些超酷的基础模型,它们真正理解一切,并且应该适用于汽车和机器人。它们将通过来自车队的大量多样化数据和大量计算来进行训练。所以,我对接下来的12到18个月非常兴奋,看看这里会发生什么。



QA环节

观众:你能多分享一些关于世界模型的细节吗?例如,它是否类似于BQ、GAN Tokenizer,然后在这些标记上进行自回归,或者MASCOT或其他详细信息?

Ashok:我想说,这还在研究中,目前的架构并不是固定的。我认为主要的信息是这种未来预测任务现在开始发挥作用了。这既提供了一个可以模拟不同结果的模拟器,也通过进行这些预测来学习表示。我认为这是关键信息。


观众:我有一个小问题,我对细节很感兴趣。我注意到当你预测线或车道时,你使用了自回归模型。我想知道在这里选择自回归的逻辑是什么,而不是同时预测所有内容?你能解释一下这里的逻辑吗?

Ashok:当然,如你所说,车道可以分叉、合并和做其他动作,它们有一个图形结构。你可以同时预测它们,但这很困难,因为我们希望对高维空间中的分布进行建模,对于像车道数量这样的事物,存在着不确定性。我们不希望预测出两个半车道,我们希望预测一个车道或两个车道。因此,我们希望从分布中进行采样。如果你没有一个适当的三值模型来给出好的样本,你将得到模糊的结果,对于下游任务来说非常难以使用。因此,这种方法对于获得好的样本非常有用。


观众:我有一些关于技术细节的问题。我想看一下占据网络输出的可视化结果,它看起来是一个三维体素,并且我有一个关于实际体素大小的问题。在你们的领域和长距离上,体素大小会有所改变吗?

Ashok:是的,这些都是超参数,任何人都可以尝试不同的体素大小。这实际上是在内存、计算和其他需求之间进行权衡。所以,它并不是固定的,不是一成不变的,它根据应用的需求,可以在机器人和汽车之间进行不同的配置,它们有不同的需求。所以它是可以进行配置的,也可以作为一个可变的参数,通过一些小的多层感知器之类的方式查询到任意位置,这样你就可以计算任意位置的结果。基于下游任务的设计来确定基本尺寸是需要的,你是否需要单个单元块以及是否可以使用一些简单的公式进行计算,这完全取决于具体的实现。


观众:我有一个关于你刚刚提到的通用世界模型的问题,例如,如何将其应用于人形机器人的任务,例如操纵?你们使用了哪些方法,使其从自动驾驶泛化到其他人形机器人任务?

Ashok:是的,我认为对于人形机器人来说,同样的原理适用。你可以让它完成任意任务,比如拿起一杯子,或者走进一扇门之类的。然后模型应该能够想象拿起杯子的样子,或者走进门的样子。我认为在汽车和机器人之间没有什么不同。因为它们都是像素,形状也都是一样的。所以最终展示的可能是一段视频,看起来像是手伸向杯子,或者机器人的第一人称视角,走向门口。我认为这应该是可行的。


观众:你向我们展示了许多独立的模块,我想知道你是如何将这些模块统一到FST的端到端系统中的。例如,在FST 12中,如何将占据模块用于端到端系统?

Ashok:占据模块已经用于许多避碰任务。有时当出现一些奇怪的车辆或者施工车辆时,它们的臂杆可能会上下移动,然后抓起物体。用立方体之类的方式很难对其建模。当然你可以用网格表示,但是这样它们也变成了高维对象,其分布比较复杂。而占据模块可以被视为一种相对较低级别或者更简单的任务,你可以预测物体是否存在以及它们的移动轨迹。这已经足够用于避免碰撞。我们确保规划系统遵守占据模块提供的避碰信息。


观众:我对你们的通用世界模型非常感兴趣。我是特斯拉的忠实粉丝,我想知道这个模型的推理时间是多少?我能否在不久的将来在汽车上看到它的应用?

Ashok:我能说的只是它尚未交付给客户,我们仍在进行优化。可能在今年晚些时候。


观众:我在你的架构图中没有看到地图组件和融合步骤?它是否已经被移除了?如果还存在,那么在将地图信息与感知信息进行融合时,如何处理对齐问题?因为你们没有使用高精度地图,对吗?在融合过程中,你们是如何处理的?

Ashok:是的,这些不是高精度地图,因此对齐并不是非常关键。在某种程度上,你可以有20米或50米的误差,仍然可以工作正常。实际上,它更像是你在手机上使用导航时看到的东西,比如Google Maps或其他地图应用程序给出的一些路线表示,这已经足够告诉模型我们应该去哪里。所以它实际上是低精度地图。这样设计是为了避免过度依赖地图,它只是大致指导我们选择哪条道路、哪条车道等等。

Reference:

https://www.youtube.com/watch?v=6x-Xb_uT7ts


----- End -----

AI Random Walk 

本周六晚活动,下方扫码报名🤳



AI Vanguard Random Walk 是 AI Vanguard 开设的散步栏目,本期与有新联合举办,我们坚信伟大的创新在散步中产生。Great innovation comes from “Random Walk“


我们欢迎不同背景的人加入我们的 “Random walk“,你明面上的身份可以是工程师、产品经理、艺术家、设计师、金融从业者、音乐人,只要你暗地里(明面上)对 AI 感兴趣,无论是想发起应用层面还是哲学层面的讨论,我们都十分欢迎。


“交叉创新” 源于一次次的 “跨界讨论“,在被“信息茧房”所包裹的时代,缺乏跨界对话的平台,因此我们想要开设这样一个栏目,推动大家进行自由的探索和讨论。


这期 Random Walk,我们会从宁波外滩的天主教堂漫步至白沙公园,路程总耗时预计 25 分钟,交流总耗时预计 1 个小时。我们会在晚上 7:00 在天主教堂集合,运气好的话,或许会看到落日。开始散步前,我们互相会做一个简单的自我介绍,为了更好的了解彼此。



SOTA.AI 大模型系列直播

今晚8点不见不散,下方扫码报名🤳










您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存