特斯拉自动驾驶软件系统解析

2022-05-19 06:50安徽程增木
汽车维修与保养 2022年1期
关键词:特斯拉摄像头神经网络

◆文/安徽 程增木

本文主要为读者解析特斯拉自动驾驶软件相关系统组成,笔者将从模型架构、模型训练、信号传输方式等方面进行说明。

一、综述

特斯拉的Autopilot系统搭载了8个摄像头,这8个摄像头可以进行超过1 000种不同任务的感知预测。在Tesla自研的FSD计算平台上,这些感知功能可以检测移动物体(例如行人、车辆、自行车、动物等),静态物体(车道线、路标、道路边缘、交通信号灯等),行驶环境区域(例如学校区域、住宅区、收费站等)。其中每个主功能下边还有若干附属功能,例如车辆检测还包括车辆的静止,朝向,开门等子任务的检测,停止标志检测包括如右转无需停车等细分类检测等。

二、特斯拉的摄像头搭载情况

特斯拉的Autopilot系统搭载了8个摄像头,其中前方摄像头模组共由3个摄像头组成,这3个摄像头都是基于2015年安森美半导体公司发布的120万像素图像传感器开发的,其配备了3个AR0136A上的CMOS图像传感器,像素大小为3.75μm,分辨率为1 280×960(1.2MP)。

主视野摄像头:视野能覆盖大部分交通场景。

鱼眼镜头:视野达120°的鱼眼镜头能够拍摄到交通信号灯、行驶路线上的障碍物和距离较近的物体,非常适用于城市街道、低速缓行的交通场景。

长焦距镜头:视野相对较窄,适用于高速行驶的交通场景,并可以清晰拍摄远达250m的物体。其前方摄像头模组如图1所示。

前方侧视摄像头:视场角为90°,前方侧视摄像头分别位于特斯拉两侧的B柱上,最大探测距离为80m。其能够探测到高速公路上突然并入当前车道的车辆,以及在进入视野受限的交叉路口时进行探测。前方侧视摄像头如图2所示。

侧方后视摄像头:最大探测距离为100m,能监测车辆两侧的后方盲区,在变道和汇入高速公路时起着重要作用。侧方后视摄像头如图3所示。

后视摄像头:探测距离为50m,主要进行泊车辅助(图4)。

三、模型架构

特斯拉的各个相机是一种松耦合的状态,即各个相机单独进行感知,然后把不同相机的感知结果通过滤波器或者其他技术进行拼接。特斯拉在其Autopilot2.0系统中针对8个相机的特征层(Feature layer)输入了融合层来对特征层进行融合,随后得到鸟瞰图,最终在鸟瞰图的基础上再进行目标检测、道路分割、边缘检测等功能输出。如图5和图6所示。

特斯拉的Autopilot系统使用了规模巨大的多神经网络结构,不同相机根据不同的网络负责不同功能,并且不同网络引入RNN神经网络实现了跨时间的感知任务。前摄像头模组可以感知车道线并且进行目标跟踪,B柱摄像头和侧翼子板摄像头可以结合上一时刻的图像输入以及本时刻的图像输入一起负责对于加塞工况的判断,并且与前摄像头模组是跨时间的任务组合配合。特斯拉的无人驾驶除了图像检测之外,还有很多训练功能网络,包括图像深度估计网络、坐标投影网络、道路元素及布局推理网络、道路元素关联网络。利用上述网络特斯拉可以更方便的进行模型感知及推理。特斯拉自动驾驶的感知网络结构如图7所示。

FSD计算平台处理完摄像头的数据后,将数据传输给负责车辆控制的模块,车辆控制模块根据摄像头识别的结果,控制车辆的方向盘转角、油门、刹车、转向灯等来控制车辆。

四、模型训练

特斯拉的自动驾驶技术高度依赖于神经网络,对于车载系统,如果实时运算一个拥有48个网络,1 000多个感知输出的庞大神经网络模型是无法完成的事情。对于模型训练,特斯拉研发了专门用于模型训练的Dojo超级计算机群,如图8所示。

对于神经网络的模型训练,我们最关注模型的损失函数、跨任务训练、数据优化三个部分。

1.损失函数

损失函数(Loss Function)也可称为代价函数(Cost Function)或误差函数(Error Function),用于衡量预测值与实际值的偏离程度。一般来说,我们在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(Loss Function)作为其目标函数。机器学习的目标就是希望预测值与实际值偏离较小,希望损失函数较小,也就是所谓的最小化损失函数。特斯拉把所有的子任务最终都加权平均到一个损失函数中,对这个损失函数进行优化。特斯拉在训练过程中,主要存在如下几点问题的思考:

(1)不同任务的损失函数的范围不同,并且分类和回归权重也不同。例如感知人和道路边缘是两个任务,其范围不同并且权重也不同,损失函数的归一化是一个重要的问题。

(2)不同任务有着不同的重要性,例如行人检测就有着比限速标志牌更高的优先级。

(3)有些任务比较简单,有些比较困难,例如道路标示牌在不同场景下的变化不大,模型可以快速训练到很好的效果,但是车道是一个很复杂的任务,道路模型具有多样性的特点。

(4)模型的长尾数据较少(例如特殊车辆,事故检测等数据量较少,对于十分依赖数据输入的神经网络来说是一个很大的挑战)。

2.跨任务训练

因为模型在不同任务间进行不同程度的参数共享,因此利用不同的数据对一些子任务进行训练的时候,并不是整个网络模型都会得到训练,而是根据任务和数据样本整体网络的一部分进行训练。特斯拉的软件架构中也使用了这种方法来训练神经网络。此外,特斯拉还使用了分布式模型进行模型训练,以此来减少模型训练时间。例如此时正在训练任务1(车道线模型训练),任务2(道路标志识别模型训练)此时也进入训练队列,系统会自动停止任务1的训练并记录停止节点,优先训练任务2(因为任务2训练更快,且训练结果无需重复标注),任务2结束后继续训练任务1,提升网络的训练效率。

3.数据优化

为了解决长尾任务的训练,采用数据过采样来保证任务内的数据优化以及任务间的数据平衡。例如,在现实交通灯数据中,黄灯的时间及出现频率非常有限,通过过采样达到在一项任务内基本的一个数据分布的平衡。另外在特斯拉任务间也通过不同任务的优先级,重要程度等设定过采样率来调节不同任务的性能。对于数据量不同的训练任务,应该对长尾任务(例如特殊车辆,事故检测等数据量较少的任务)以及噪声影响较多的任务进行大量数据优化。

五、特斯拉FSD软件信号传输的流程

特斯拉FSD软件信号传输的流程如图9所示。

特斯拉的8个摄像头进行数据感知,可以以每秒25亿像素的最大速度采集输入到FSD中,摄像头的数据进入到FSD的DRAM。然后通过图像信号处理器ISP进行图像数据的预处理,每秒可以处理10亿像素(大约8个全高清1080P屏幕,每秒60帧)。这一阶段芯片将来自摄像头传感器的原始RGB数据转换成除了增强色调和消除噪音之外实际上有用的数据。随后数据进入LPDDR中进行存储,影响此阶段的关键要素就是内存带宽,FSD除了要处理摄像头的内存数据,还需要处理毫米波雷达及其他传感器的数据。数据随后存储与SRAM中,最终通过特斯拉的NPU/GPU/CPU进行数据处理,Dojo的训练结果会通过OTA定义更新到FSD上,特斯拉可以对目标进行识别并进行跟踪,并把识别及跟踪结果传输给车辆控制模块,车辆控制模块通过控制方向盘、加速踏板、制动装置等其他执行机构对车辆进行控制。

六、总结与展望

特斯拉后续会持续升级其软件系统,包括感知神经网络的训练及部署,并有可能使用新一代毫米波雷达或者使用4D毫米波雷达融合感知。特斯拉的自动驾驶软件系统为自动驾驶提供了新的实现方法,现在各大主机厂、各大供应商均开始大力研究自动驾驶的软件系统及架构,相信这会让未来自动驾驶功能更加完善,可靠性更高。

猜你喜欢
特斯拉摄像头神经网络
特斯拉Model S Plaid
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
神经网络抑制无线通信干扰探究
真的“很香” 特斯拉Model3
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定