万字长文解析特斯拉自动驾驶体系

汽车革命的上半场是电动化,下半场是智能化,电动化只是改变了汽车的动力供给方式,并没有改变汽车的性质,而智能化才是这场革命的主菜,将对汽车带来颠覆性变化,汽车将由传统的机械体,变为拥有强大计算能力的智能体

 

在汽车智能化的道路上,有一个拥有绝对实力的引领者,那就是Elon Musk领导下的特斯拉,其打造的自动驾驶体系是全球关注的焦点,马斯克曾在微博上发文称特斯拉打造的人工智能是世界上最为先进的。

 

马斯克3月6日发布微博内容

 

特斯拉是截止目前全球唯一一家实现了自动驾驶核心领域全栈自研自产的科技公司,数据、算法、算力等各个层面打造了一套包含感知、规控、执行在内的全链路自动驾驶软硬件架构

 

整体而言,特斯拉的自动驾驶架构是采用纯视觉方案实现对世界的感知,并基于原始视频数据通过神经网络构建出真实世界的三维向量空间,在向量空间中通过传统规控方法与神经网络相结合的混合规划系统实现汽车的行为与路径规划,生成控制信号传递给执行机构,同时通过完善的数据闭环体系和仿真平台实现自动驾驶能力的持续迭代。

 

下面将分别按照感知、规划与控制、数据与仿真、算力四个部分对特斯拉实现FSD(Full Self-Drive,完全自动驾驶)的核心体系进行全面解析。

 

 

 

01 感知

根据2021年8月Tesla AI Day上的展示,特斯拉最新的感知方案采用纯视觉感知方案,完全摒弃掉激光雷达、毫米波雷达等非摄像头传感器,仅采用摄像头进行感知,在自动驾驶领域独树一帜。

 

人类通过眼睛感知世界的原理为:光线通过眼睛被视网膜采集信息,经过传递与预处理,信息抵达大脑视觉皮层,神经元从视网膜传递的信息中提取出颜色、方向、边缘等特征结构,再传递给下颞叶皮层,然后经过认知神经网络的复杂处理最终输出感知结果。

 

人类视觉感知原理

 

自动驾驶视觉感知方案是效仿人类视觉系统原理,摄像头便是“汽车之眼”,特斯拉汽车共计采用八个摄像头分布在车体四周,车身前部有三个摄像头,分别为前视主视野摄像头、前视宽视野摄像头(鱼眼镜头)以及前视窄视野摄像头(长聚焦镜头),左右两侧各有两个摄像头,分别为侧方前视摄像头和侧方后视摄像头,车身后部有一个后视摄像头,整体实现360度全局环视视野,最大监测距离可以达到250米。

 

特斯拉车身摄像头环视视野

通过“汽车之眼”采集到的真实世界图像数据,经过复杂的感知神经网络架构进行处理,构建真实世界的三维向量空间,其中包含汽车、行人等动态交通参与物,道路线、交通标识、红绿灯、建筑物等静态环境物,以及各元素的坐标位置、方向角、距离、速度、加速度等属性参数,这个向量空间不需要和真实世界的模样完全保持一致,更倾向于是供机器理解的数学表达。

 

利用摄像头采集数据通过神经网络输出三维向量空间

 

根据特斯拉在AI DAY的公开信息,经过多轮升级迭代,特斯拉目前所采用的视觉感知框架如下图所示,这是一套基于视频流数据的共享特征多任务型神经网络架构,拥有物体深度识别能力和短时记忆能力。

 

特斯拉视觉感知网络架构

 

 

网络基础结构:HydraNet多头网络

 

特斯拉视觉感知网络的基础结构是由主干(Backbone)、颈部(Neck)与多个分支头部(Head)共同组成,特斯拉取名为“HydraNet”,取意自古希腊神话中的九头蛇。

 

主干层将原始视频数据通过残差神经网络(RegNet)及BiFPN多尺度特征融合结构完成端到端训练,提取出颈部层的多尺度视觉特征空间(feature map),最后在头部层根据不同任务类型完成子网络训练并输出感知结果,共计支持包括物体检测、交通信号灯识别、车道线识别在内的1000多个任务。

 

HydraNet多任务网络结构

HydraNet网络的核心特点是多个子任务分支共享同一个特征空间,相比单一任务使用独立的神经网络,具有如下优势:

 

1)使用同一主干统一提取特征并共享给各任务头部使用,可以避免不同任务之间重复计算现象,有效提升网络整体运行效率;

2)不同子任务类型之间可以实现解耦,每项任务独立运行不会影响到其他任务,因此对单项任务的升级可以不必同时验证其他任务是否正常,升级成本更低;

3)生成的特征空间可以进行缓存,便于各任务需求随时调用,具有很强的可扩展性。

 

 

数据校准层:虚拟相机构建标准化数据

 

特斯拉通过不同的汽车采集到的数据共同构建一个通用的感知网络架构,然而不同汽车由于摄像头安装外参的差异,可能导致采集的数据存在微小偏差,为此特斯拉在感知框架中加入了一层“虚拟标准相机”,引入摄像头标定外参将每辆车采集到的图像数据通过去畸变、旋转等方式处理后,统一映射到同一套虚拟标准摄像头坐标中,从而实现各摄像头原始数据的“校准(Rectify)”,消除外参误差,确保数据一致性,将校准后的数据喂养给主干神经网络进行训练。

 

在原始数据进入神经网络前插入虚拟摄像头层

 

 

空间理解层:Transformer实现三维变换

 

由于摄像头采集到的数据为2D图像级,与现实世界的三维空间不在一个维度上,因此要实现完全自动驾驶能力,需要将二维数据变换至三维空间。

 

为了构建出三维向量空间,需要网络能够输出物体深度信息,大部分自动驾驶公司采用的方案是使用激光雷达、毫米波雷达等传感器来获取深度信息,并与视觉感知结果进行融合,而特斯拉坚持使用纯视觉方案获取的视频数据来计算深度信息,其思路是在网络结构中引入一层BEV空间转换层,用以构建网络的空间理解能力,BEV坐标系即鸟瞰俯视图坐标系,是一种忽略高程信息的自车坐标系。

 

早期特斯拉采取的方案是先在二维图像空间实现感知,然后将其映射至三维向量空间,再将所有摄像头的结果进行融合,但图像层面感知是基于地面平面假说,即把地面想象成为无限大的平面,而实际世界中的地面会有坡度,因此会导致深度信息预测不准确,这也是基于摄像头的纯视觉方案面临的最大困难,同时也会存在单个摄像头无法看见完整目标导致“后融合”难以实现的问题。

 

为了应对这一问题,使感知结果更准确,特斯拉采用“前融合”的思路,将车身四周的多个摄像头获得的不同视频数据直接进行融合,然后用同一套神经网络进行训练实现特征从二维图像空间到三维向量空间的变换

 

引入BEV三维空间转化层

实现三维变换的核心模块是Transformer神经网络,这是一种基于注意力机制的深度学习模型,源自于人脑对信息处理的机制,在面对外界大量信息时,人脑会过滤掉不重要的信息,仅将注意力集中在关键信息,可以大大提升信息处理效率,Transformer在应对大规模数据量级的学习任务时具有相当出色的表现。

 

Transformer模型需要的三个核心参数为Query、Key和Value,其中Key和Value由HydraNet主干部分生成的多尺度特征空间经过一层MLP(多层感知机网络)训练得到,而通过对特征空间进行池化处理得到全局描述向量(context summary),同时对输出的BEV空间各栅格进行位置编码(positional encoder),合成描述向量和位置编码后再通过一层MLP可以得到Query。

 

特斯拉通过这种方法,可以将地面坡度、曲率等几何形状的变化情况内化进神经网络的训练参数中,实现对物体深度信息准确感知和预测,这也是特斯拉敢于放弃雷达融合路线走纯视觉路线的底气。

 

 

短时记忆层:视频时空序列特征提取

 

引入空间理解层后,感知网络已经具备对现实世界的三维向量空间描述能力,但仍然是对瞬时的图像片段进行感知,缺乏时空记忆力,也就是说汽车只能根据当前时刻感知到的信息进行判断,这会导致世界空间内部分特征感知不到。

 

例如在行车过程中,如果有行人正在穿过马路,过程中被静止的障碍物遮挡,而汽车仅有瞬时感知能力的话,由于在感知时刻行人正好被汽车遮挡了,则无法识别到行人,导致很大的安全风险。而人类司机在面对类似场景时,则会根据之前时刻看到行人在穿越马路的记忆,预测其当前时刻有很大概率被汽车遮挡,且有继续穿越马路的意图,从而选择减速或者刹车避让。

 

因此自动驾驶感知网络也需要拥有类似的记忆能力,能够记住之前某一时间段的数据特征,从而推演目前场景下可能性最大的结果,而不仅仅是基于当前时刻看到的场景进行判断。

 

为了解决这一问题,特斯拉感知网络架构引入了时空序列特征层,通过使用具有时间维度的视频片段而非静态的图像来训练神经网络,为自动驾驶增添了短时记忆能力。

 

引入时空序列特征提取层以实现短时记忆能力

 

特斯拉同时还引入了IMU传感器获取到的包含速度和加速度在内的自车运动信息,结合三维向量空间特征,分别生成基于时间维度和基于空间维度的特征队列,其中时间维度的特征队列提供了感知在时间上的连续性,而空间特征队列的意义是防止由于部分场景等待时间过长导致的时序信息丢失,并利用三维卷积、Transfomer、RNN等方法实现时序信息融合,进而得到多传感器融合的视频流时空特征空间。

 

此外特斯拉还尝试了一种新的时序信息融合方法——Spatial RNN,可以省略BEV层的位置编码,直接将视觉特征喂给RNN网络,通过隐藏层保留多个时刻的状态编码,指导应对当前环境需要选取哪些记忆片段使用。

 

短时记忆层无疑增加了特斯拉感知网络的鲁棒性,针对恶劣天气、突发事件、遮挡场景等,都能保持良好的感知能力。

 

以上便构成了特斯拉的感知网络架构,通过端到端的训练模型,从视频数据输入到向量空间输出。

 

据特斯拉AI技术总监Karpathy介绍,基于以上架构的特斯拉视觉感知体系,对于深度信息的感知能力甚至可以超过雷达,同时由于具备短时记忆,特斯拉可以实现局部地图的实时构建,通过融合多个局部地图,理论上可以得到任何一个区域的高精地图,这也是特斯拉目前没有采用高精地图作为输入原因。

 

 

 

02 规划与控制

人体在感知到周围世界的信息后,会基于对这些信息的认知做出相应的判断,来规划自己的躯体应该作何反应并下发控制指令,汽车也是如此,在完成感知任务后下一步便是对感知到的信息做出决策方案,指导汽车完成相应执行动作,这便是自动驾驶的规划与控制部分。

 

特斯拉自动驾驶规控的核心目标是基于感知网络输出的三维向量空间,通过规划汽车行为和行车路径使汽车到达指定目的地,同时最大化确保行车安全性、效率性及舒适性。

 

规控是一个非常复杂的问题,一方面汽车的行为空间具有典型的非凸性,同一个目标任务可能对应非常多个解决方案,同时全局最优解难以获得,具体表现就是汽车可能由于陷入局部最优,无法快速做出准确决策;另一方面行为空间具有多维性,要制定针对目标任务的规划方案需要在短时间内快速产生速度、加速度等多个维度的参数。

 

特斯拉采用的解决方案是将传统规划控制方法与神经网络算法相结合,构建一套混合规划系统,以任务分解的方式分别解决上述两大难题,其规划控制逻辑如下图所示。

 

混合规划系统解决方案

在感知获得的三维向量空间中,基于既定的目标位置,先采用粗搜索的方式找到一条初步的路径,然后根据安全性、舒适性等指标,围绕初步路径进行优化,对与障碍物间距、加速度等参数做持续微调,最终获得一条最优的时空轨迹。

在大部分结构化场景下,例如高速公路等,粗搜索选取的是经典的A-Star算法(启发式搜索方法),但针对一些复杂的场景,例如闹市中心、停车场等,由于场景中非结构化元素比较多,搜索空间大,采用传统A-Star算法消耗运算节点过多,导致决策速度缓慢。

由此特斯拉引入强化学习方法,强化学习的机制类似于人类学习模式,通过奖赏正确的行为来引导人类习得某项能力,首先利用神经网络学习全场景特点获得价值函数,然后通过MCTS算法(蒙特卡洛树搜索)引导搜索路径不断靠拢价值函数,这种方法可以大幅度减少搜索空间,有效提高决策实时性。

MCTS算法规划停车场行车路线

而在行车过程中,会涉及与其他车辆的博弈问题,例如变道过程、在狭窄路口错车场景,类似场景下一般需要根据对方车辆的反应变化随时调整自车的决策方案。

因此除了单车规划外,特斯拉还做了交通参与者联合轨迹规划,根据其他车的状态参数(速度、加速度、角速度等)规划其路径,进而选择合适的自车方案,待其他车状态发生变化后,随时调整自车方案,尽量避免出现自车愣在原地不做反应的情况,提升自车的smart性。

狭窄路口联合轨迹规划

至此,特斯拉FSD的最终架构浮出水面,首先通过视觉感知网络生成三维向量空间,对于仅有唯一解的问题,可直接生成明确的规控方案,而对于有多个可选方案的复杂问题,使用向量空间和感知网络提取的中间层特征训练神经网络规划器,得到轨迹分布,再融入成本函数、人工干预数据或其他仿真模拟数据,获得最优的规控方案,最终生成汽车转向、加速、刹车等控制指令,由汽车执行模块接受控制指令实现汽车自动驾驶。

特斯拉FSD 感知-规划-控制整体架构

03 数据标注与仿真

 

 

可以看到在特斯拉的自动驾驶方案中,无论是在感知层面还是规控层面,核心算法基本都是由数据驱动的,数据的数量和质量决定了算法的性能,因此构建一套高效获取、标注及仿真训练数据的闭环至关重要。

 

 

数据标注

 

特斯拉每年售出近百万辆汽车,通过这些汽车日常运行,可以采集到超大规模的原始数据集,对这些数据集的标注工作特斯拉最早是外包给合作方,后来发现存在交付延迟和质量不高的情况,因此便在内部发展了上千人的标注团队并独立开发标注基础设施。

 

特斯拉的标注最初是在二维图像中进行的,后来发展为四维实现,除了标注三维空间外还有对时间维度的标注,直接在向量空间中完成标注后再反向投影到摄像头对应的图像空间中。

 

特斯拉的四维标注

随着数据规模的逐渐扩大,人工标注的方式需要消耗大量人力成本,同时人类相对更擅长语义分割之类的标注任务,对于几何图形的标注,反倒是机器更擅长,因此特斯拉引入了自动标注的方法,实现人工与机器相结合的数据标注模式。

 

特斯拉实现自动标注的方案是通过汽车在一段时间内采集到的视频、IMU、GPS、里程表等数据构成最小标注单元(Clip),由离线神经网络系统训练得到中间层结果,如目标物、语义分割、深度、光流等,再通过大量机器算法生成最终用以训练的标签集,包括行车轨迹、静态环境重建、动态物、运动学参数等,人工可以对自动生成的标签集进行调整干预。

 

自动标注方案实现过程

 

对于静态标注物,例如对于某一段道路的标注,以摄像头采集到的路面每个点的平面坐标作为输入,通过神经网络预测出这个点的高度及相关的语义分割、道路线边界等三维中间结果,然后将这个三维点反向投影至各个摄像头的二维空间,并将其与原本在二维图像空间内直接做语义分割的结果进行对比,再基于各个摄像头的对比结果进行跨时空维度的联合优化实现重建,最终得到整个道路在各摄像机画面内及视频前后帧时间序列中的一致性标注结果。

 

通过不同辆车不同时间经过同一路段采集到的视频数据,按照上述方法进行自动标注,再将所有标注结果进行融合后优化,得到该路段的精确标注结果,实现道路重建。

 

自动标注实现道路重建

 

通过这种方式,不仅可以重建道路,还可以重建墙体、屏障、建筑物等所有静态环境物

 

对于动态标注物,核心是要标注其运动学参数及行为轨迹预测,通过不同车辆在同一路段采集的含时间序列的视频标注单元,我们不仅可以知道每个标注物过去时刻的信息,还可以知道未来时刻的信息,因此可以轻易获取每个动态标注物运动轨迹和参数的“真值”,即使被遮挡的运动物体也可以标注出来。

 

动态物体自动标注

 

通过对静态物体和动态物体分别标注,最终得到一个最小标注单元的完整标注结果,如下图所示。

 

自动标注实现Clip的完整标注

 

可以看到,只需要汽车在路上行驶采集到的数据作为输入,然后运行标注模型,再将结果进行融合优化,便可以得到任意场景的标注结果,全过程自动实现,无人工参与。

 

一万个标注单元在一周内即可完成自动化标注,而纯人工标注则需要几个月的时间,自动标注大大提升了标注效率

 

 

仿真

 

由于路测条件的限制,导致积累数据和训练算法的效率偏低且成本高昂,为了更高效的实现数据训练,特斯拉构建了一个真实世界的虚拟仿真空间,来加速FSD能力的训练,仿真对于实现完全自动驾驶的价值如今在行业内已经普遍被认可。

 

自动驾驶的仿真是在模拟环境中,通过调整各类交通参与物及环境的模型参数以构建各种虚拟场景,以训练算法应对不同场景的性能。

 

特斯拉仿真场景

 

价值主要体现在以下几个方面:

 

1、通过仿真可以建立在现实世界中难以遇到的极端场景(corner case),例如高速公路上一家三口在跑步的场景,类似的场景虽然在现实世界中存在的可能性极低,但考虑到自动驾驶的安全性,必须掌握应对此种极端场景的能力,因此可以在仿真环境下进行模拟训练;

 

2、针对部分复杂场景难以直接标注的情况,可以通过仿真进行快速标注,例如在一个路况复杂的十字路口有各种川流不息的汽车、行人,由于元素众多,要直接进行标注难度很大,而在仿真场景中,由于所有的元素的初始参数都是自行设定的,因此在模拟复杂的运动状态时,所需要标注的参数很容易就可以通过计算得到,以此实现快速标注;

 

3、仿真为规控算法的训练和验证提供了一个安全的环境,考虑汽车驾驶安全问题的重要性,自动驾驶规控算法训练和优化过程难以通过实际路测实现,在仿真场景中便具有非常高的自由度;

 

4、可以用以某些闭环场景算法的长期持续训练,例如泊车场景,这个场景下空间是闭环的,参与者有限,因此通过仿真持续模拟各种工况,可以有效地对自动驾驶泊车能力进行训练;

 

5、对于现实世界中FSD失败的场景,可以通过仿真重现失败场景,在仿真环境中寻找失败原因并进行算法训练和优化。

 

一套完整的仿真体系需要包括仿真场景、仿真系统和仿真评估三大部分,这里仅介绍特斯拉在仿真场景层面所做的工作。

 

自动驾驶的实现首先是基于感知能力,因此对感知系统的准确仿真非常关键,特斯拉的感知系统是基于纯摄像头,因此对摄像头的各种属性进行软硬件建模,如传感器噪声、曝光时间、光圈大小、运动模糊、光学畸变等,甚至对于挡风玻璃上的衍射斑这种细节,特斯拉也考虑在内,这套准确的传感器仿真系统不仅可以用以FSD的训练和验证,还可以指导摄像头的硬件选型和设计。

 

准确的传感器仿真

 

为了真实的模拟现实世界场景,要求仿真渲染要尽可能做到逼真,特斯拉利用神经网络渲染技术来提升视觉渲染效果,同时用光线追踪的方法来模拟逼真的光照效果。

 

逼真的视觉渲染

 

为了避免仿真环境过于单一,导致感知系统过拟合的问题,特斯拉对仿真环境参与物进行了充分的建模,包括多元交通参与者(例如车、行人等)和静态环境物(例如建筑、树、道路等)等,截至最新Tesla AI Day公开的信息,特斯拉总共已经绘制了2000+公里的道路环境。

 

多元交通参与者与地理位置

 

针对自动驾驶可能遇到的各种场景,构建了大规模的可扩展场景库,由计算机通过调整参数生成不同的场景形态,例如道路曲度等,同时由于大量的仿真场景可能是无用的,例如实际该场景下汽车的决策已经正确,为了避免计算资源的浪费,特斯拉还引入了MLB等神经网络用来寻找故障点,重点围绕故障点进行仿真数据创建,反哺实际规划网络,形成闭环。

 

大规模场景生成

 

除了直接在虚拟场景中进行仿真训练,特斯拉还希望可以在仿真环境中重现真实世界场景,以便可以复现FSD失败的场景,实现在仿真环境下的优化迭代后再反哺汽车算法模型,实现“数据闭环”,因此在完成真实世界片段的自动标注重建后,再叠加视觉图像信息,生成与真实世界“孪生”的虚拟世界

 

场景重现

 

特斯拉通过仿真获得的虚拟数据规模已达到37.1亿张图片及4.8亿标注,且已实际融入车端模型中,用以提升FSD性能。

 

 

 

04 算力

 

 

上面对特斯拉自动驾驶所采用的算法架构和数据闭环进行了介绍,而超大规模的数据和高性能的算法均需要强大的算力支撑,特斯拉为此自研打造了服务于自动驾驶的全球最强超级计算机——Dojo

 

Dojo是一种通过网络结构连接的分布式计算架构,具有大型计算平面、极高带宽、低延迟、可扩展性极强等特点,去年8月的AI Day,特斯拉公布了为Dojo超算打造的自研AI训练芯片D1

 

Dojo D1芯片

 

D1芯片采用分布式结构和7纳米制造工艺,单片面积仅645平方毫米,具有500亿个晶体管和354个训练节点,内部电路长达17.7公里,单片FP32算力可达22.6 TOPs,BF16 算力可达362 TOPs1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作,同时具有GPU级的计算能力和CPU的连接能力,I/O带宽是最先进的网络芯片的2倍

同时D1芯片之间可以实现无缝连接,特斯拉将25个D1芯片连接起来组成了独立的训练模块,模块算力高达9 PFLOPs(每秒处理9千万亿次),I/O带宽最大达每秒36TB。

 

D1组成的训练模块

那么将120个训练模块(包含3000颗D1芯片)集成在一块,就组成了AI训练计算机柜——Dojo ExaPOD,其包含超过100万个训练节点,BF16/CFP8算力高达1.1 EFLOPs(每秒110京次的浮点运算,1京=10^18),超越了当时排名全球第一的日本富士通0.415 EFLOPs,且在相同成本下,ExaPOD具有4倍性能和1.3倍能耗节约,碳排放仅占1/5。

Dojo ExaPOD 超级计算机

 

而且由于DI芯片的无限连接特性,理论上由其组成的Dojo计算机性能拓展无上限,因此目前的算力不是终点,特斯拉预计下一代Dojo还会有10倍性能提升

超强算力将持续服务于特斯拉大规模数据训练、自动驾驶算法、云计算能力和其他AI方向。

 

 

 

05 写在最后

 

 

特斯拉全栈自研自动驾驶体系在全球已经处于领先地位,却也仍然有非常大的提升空间,例如:

 

1、感知层面进一步逼近人类甚至超越人类,马斯克曾在采访中提到过特斯拉已经在使用摄像头采集可见光的光子信息,跳过图像信号处理阶段,直接将最原始的光子数据输入给神经网络训练,这将使纯视觉方案获得远超人类的夜间视距。

 

2、规控层面提升自动驾驶的“老司机”属性,特斯拉目前公开的决策规划的技术方案并不多,从已公开的部分可以看到整体比较中规中矩,如何进一步发展规控能力,让人类对自动驾驶拥有更多信任感,是一个非常重要的课题。

 

3、仿真层面打造自动驾驶“数字孪生”,仿真是实现完全自动驾驶的关键一环,主要由于仿真的试错成本非常低,可以加速自动驾驶能力训练,促进L4级以上自动驾驶提早到来。

 

自动驾驶作为人工智能技术的“皇冠”,可以说是智能时代的“核弹”,是全球高科技企业竞相追逐的科技高地,自动驾驶的持续发展最终很有可能将引发汽车交通行业乃至整个人类社会运行方式的巨大变革。

 

数据、算法、算力是驱动自动驾驶的三驾马车,特斯拉通过大规模汽车生产获取数据、持续迭代FSD算法反哺汽车性能、自研超级算力服务AI训练的模式成功打造了实现完全自动驾驶的良性飞轮。

 

特斯拉正在并将持续引领智能汽车革命。

 

作者:极客石头

在搞事情的路上越走越远。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注