当前位置: 首页 > 科技观察

特斯拉自动驾驶算法及模型解读

时间:2023-03-17 20:26:57 科技观察

特斯拉是一家典型的AI公司。在过去的一年里,它已经训练了75,000个神经网络,这意味着每8分钟就会产生一个新模型。总共使用了281个模型。到特斯拉汽车。接下来,我们将从几个方面来解读TeslaFSD的算法和模型进展。01PerceptionOccupancyNetwork特斯拉今年在感知上的关键技术之一是OccupancyNetwork(占用网络)。学习机器人的同学一定对占用网格不陌生。occupancy表示空间中的每个3D体素(voxel)是否被占用。它可以是0/1的二进制表示,也可以是[0,1]之间的值。概率值。为什么估计自动驾驶感知的占用率很重要?因为在驾驶中,除了车辆、行人等常见障碍物,我们可以通过3D物体检测来估计它们的位置和大小,而更多的长尾障碍物也会对驾驶产生重要影响。例如:1.可变形障碍物,如两节拖车,不适合使用3Dboundingboxes;2.有形状的障碍物,比如翻倒的车辆,3D姿态估计会失败;3.不属于已知类别道路上的石头、垃圾等障碍物无法归类。因此,我们希望找到更好的表达方式来描述这些长尾障碍物,充分估计每个位置在3D空间中的占有率(occupancy),甚至是语义(semantics)和运动(flow)。特斯拉用下图中的具体例子来展示OccupancyNetwork的强大。与3Dboxes不同,occupancy没有太多关于物体的几何假设,因此它可以对任何形状的物体和任何形式的物体运动进行建模。图为两段式公交车发车的场景。蓝色表示移动体素,红色表示静止体素。OccupancyNetwork准确估计第一节公交车已经开始移动,而第二节Section还处于静止状态。对于正在启动的两辆公交车的占用率估计,蓝色代表移动体素,红色代表静止体素。OccupancyNetwork的模型结构如下图所示。首先,该模型使用RegNet和BiFPN从多个摄像头获取特征。这个结构和去年AIDay分享的网络结构一致,说明主干没有太大变化。然后该模型通过具有3D空间位置的空间查询对2D图像特征执行基于注意力的多相机融合。如何实现3D空间查询与2D特征图的连接?具体的融合方法图中没有详细说明,但是有很多公开的论文可以参考。我认为最有可能采用两种方案中的一种。第一种叫做3D-to-2Dquery,就是根据每个相机的内外参数,将3D空间查询投影到2D特征图上,提取对应位置的特征。这个方法是在DETR3D中提出的,BEVFormer和PolarFormer也采用了这个思路。第二种是使用positionalembedding进行implicitmapping,也就是在2D特征图的每个位置加上一个合理的positionalembedding,比如相机内外参数,像素坐标等,然后让模型学习对应关系介于2D和3D特征之间。.接下来,模型进行时序融合,根据已知的车辆位置和姿态变化拼接3D特征空间来实现。在OccupancyNetwork的结构特征融合后,基于反卷积的解码器将解码每个3D空间位置的占用、语义和流。发布会强调,由于这个网络的输出是密集的,输出的分辨率会受到内存的限制。相信这也是所有做图像分割的同学比较头疼的,这里的3D分割就更不用说了,但是自动驾驶对分辨率的要求是非常高的(~10cm)。因此,受神经隐式表示的启发,在模型末尾额外设计了一个隐式可查询MLP解码器,可以输入任意坐标值(x,y,z)来解码空间位置的信息,即occupancy,语义,流动。这种方法打破了模型分辨率的限制,我认为这是设计的一个亮点。02PlanningInteractivePlanningPlanning是自动驾驶的另一个重要模块。这一次,特斯拉主要强调了复杂交叉路口交互的建模。为什么交互建模如此重要?由于其他车辆和行人未来的行为具有一定的不确定性,智能规划模块需要在线预测本车与其他车辆的多次交互,并评估每次交互带来的风险,最终决定采取何种策略。特斯拉将他们使用的规划模型称为InteractionSearch,它包括三个主要步骤:树搜索、神经网络轨迹规划和轨迹评分。1.树搜索是一种常用的轨迹规划算法。它可以有效地发现各种交互情况并找到最优解。然而,用搜索方法解决轨迹规划问题遇到的最大困难是搜索空间太大。例如,一个复杂的路口可能有20辆与egovehicle相关的车辆,可以组合成100多种交互方式,每种交互方式可能有几十条时空轨迹作为候选。因此,特斯拉没有采用轨迹搜索的方法,而是利用神经网络对一段时间后可能到达的目标位置(goal)进行打分,获得少量较好的目标。2.确定了目标后,我们需要确定一条到达目标的轨迹。传统的规划方法通常使用优化来解决这个问题。解决优化并不难。每次优化大约需要1到5毫秒。但是,当上一步树搜索给出的候选目标很多时,时间成本无法解决。负担。因此,特斯拉提出使用另一个神经网络进行轨迹规划,从而实现对多个候选目标的高度并行规划。训练这个神经网络的轨迹标签有两个来源:第一个是人类真实驾驶的轨迹,但我们知道人类驾驶的轨迹可能只是许多更好的解决方案中的一个,所以第二个来源是通过离线优化.算法生成的其他轨迹解。3.在得到一系列可行轨迹后,我们需要选择一个最优解。这里采用的方案是对获得的轨迹进行评分。该评分方案集成了人工制定的风险指标、舒适度指标,还包括神经网络评分器。通过以上三个步骤的解耦,特斯拉实现了高效交互的轨迹规划模块。基于神经网络的轨迹规划可以参考的论文不多。我已经发表了一篇与此方法相关的论文TNT[5]。同理,将轨迹预测问题分解为以上三步求解:目标评分、轨迹规划、轨迹评分。有兴趣的读者可以去看看详情。此外,我们的研究小组一直在探索与行为交互和规划相关的问题。欢迎大家关注我们的最新作品InterSim[6]。交互搜索规划模型结构03VectorMapLanesNetwork个人认为本次AIDay的另一大技术亮点是在线矢量图构建模型LanesNetwork。去年关注过AIDay的同学可能还记得,特斯拉在BEV空间进行了完整的在线分割和地图识别。那么为什么要做车道网络呢?因为通过分割得到的像素级车道不足以进行轨迹规划,我们还需要得到车道线的拓扑结构才能知道我们的车可以从一条车道变到另一条车道。让我们来看看什么是矢量图。如图所示,特斯拉的矢量图由一系列蓝色车道中心线和一些关键点(connection、fork、merge)组成,它们的连接关系以图形的形式表示。矢量图,圆点是车道线的关键点,蓝色是车道中心线LanesNetwork在模型结构上是一个基于感知网络主干的解码器。与解码每个体素的占用和语义相比,解码一系列稀疏的、连接的车道线更困难,因为输出的数量不固定,输出之间存在逻辑关系。Tesla参考了自然语言模型中的Transformer解码器,按顺序自回归输出结果。具体实现上,我们首先需要选择一个生成顺序(比如从左到右,从上到下)来对空间进行离散化(tokenization)。然后我们可以使用LanesNetwork来预测一系列离散的标记。如图所示,网络会先预测一个节点的粗略位置(index:18),精确位置(index:31),然后预测节点的语义(“Start”,即起点的车道线),最后预测连接特征,如分叉/合并/曲率参数等。网络将以这种自回归的方式生成所有车道线节点。LanesNetwork网络结构需要注意的是,自回归序列生成并不是语言Transformer模型的专利。我们课题组这几年也有两篇关于矢量图生成的相关论文,HDMapGen[7]和VectorMapNet[8]。HDMapGen使用带有注意力的图神经网络(GAT)自回归生成矢量图的关键点,类似于特斯拉的方案。VectorMapNet使用DetectionTransformer(DETR)来解决这个问题,即使用集合预测方案来更快地生成矢量图。HDMapGen矢量图生成结果VectorMapNet矢量图生成结果04自动标注Autolabeling自动标注也是特斯拉在去年AIDay上讲解的一项技术。今年的自动标注重点是LanesNetwork的自动标注。特斯拉的汽车每天可以产生50万次驾驶行程,利用好这些驾驶数据可以更好地帮助预测车道线。特斯拉的自动车道标线分为三个步骤:1.通过视觉惯性里程计(visualinertialodometry)技术对所有行程进行高精度的轨迹估计。2、多车多行程的地图重构是方案中最关键的一步。这一步的基本动机是不同的车辆可能对同一位置有不同的空间角度和时间观测,所以这些信息的聚合可以用于更好的地图重建。该步骤的技术要点包括地图之间的几何匹配和结果的联合优化。3.新旅程的自动车道标记。当我们有了高精度的离线地图重建结果后,当有新的旅程发生时,我们可以进行简单的几何匹配,得到新旅程车道线的伪标签。这种获取虚假真值的方法有时(晚上、雨雾天)甚至比人工标注效果更好。LanesNetworkAutomaticLabeling05Simulation仿真视觉图像仿真是近年来计算机视觉的一个热门方向。在自动驾驶中,视觉模拟的主要目的是有针对性地生成一些罕见的场景,避免在真实路测中碰运气。比如一辆大货车停在马路中间的场景,这一直是特斯拉常年头疼的问题。然而,视觉模拟并不是一个简单的问题。对于一个复杂的十字路口(旧金山的MarketStreet),设计师需要2周的时间来使用传统建模来渲染解决方案。而特斯拉基于AI的解决方案现在只需要5分钟。视觉仿真重建路口具体来说,视觉仿真的前提是准备自动标注的真实世界道路信息和丰富的图文素材库。然后依次进行以下步骤:1.路面生成:根据路边填充路面,包括路面坡度、材质等详细信息。2.车道线生成:在路面上绘制车道线信息。3.植物和建筑生成:在道路和路边之间随机生成和渲染植物和房屋。生成植物和建筑物的目的不仅仅是为了视觉上的美感,还要模拟现实世界中这些物体造成的遮挡效果。4.生成其他道路元素:如信号灯、路牌、导入车道和连接关系。5.添加车辆、行人等动态元素。06Infrastructure最后简单说一下特斯拉一系列软件技术的基础,就是强大的基础设施。特斯拉的超级计算中心拥有14,000个GPU和总共30PB的数据缓存,每天有500,000个新视频流入这些超级计算机。为了更高效地处理这些海量数据,特斯拉专门开发了加速视频解码库,以及加速读写中间特征的文件格式。.smol文件格式。此外,特斯拉还自研了超算中心的Dojo芯片,这里不再赘述。超算视频模型训练中心07总结随着近两年TeslaAIDay的发布,我们慢慢看到了Tesla在自动(辅助)驾驶方向的技术版图。同时,我们也看到特殊的特斯拉本身也在不断迭代,比如从2D感知、BEV感知,到OccupancyNetwork。自动驾驶是一场长征。是什么支撑着特斯拉的技术演进?我觉得无外乎三点:视觉算法带来的全场景理解能力,强大计算能力支撑的模型迭代速度,海量数据带来的泛化能力。这不就是深度学习时代的三大支柱吗?