特斯拉在2022年AI Day上更新了感知规控算法模型,核心引入了Occupancy技术。下图是特斯拉活动日展示的主题内容,本文主要解读Planning和Neural Network部分。
1 规划决策
Interaction search-交互搜索
特斯拉在自动驾驶规划中使用了一种高度复杂和优化的搜索算法,结合了多种先进的技术,包括图搜索、轨迹优化和神经网络的应用。这一套方法的核心思想是系统首先基于车道和非结构化区域(如开放空间)生成多个可能的目标位置;然后使用轨迹优化技术和神经网络规划生成初始轨迹作为并行化树搜索的起点;之后通过高效的并行化树搜索(Parallelized Tree Search)来探索多种可能的路径,并结合成本函数和神经网络来优化最终的驾驶决策。
并行化树搜索(Parallelized Tree Search)
1)搜索树的构建
从初始状态(根节点)开始,每个节点代表某个时间点的车辆状态,每条边代表车辆从一个状态到另一个状态的可能路径或动作。搜索树的每一层表示时间的推进,不同的分支代表不同的路径选择。
2)路径评估和选择
依赖成本函数(Cost Function),系统使用一个综合的成本函数来评估每条路径,包含以下几个部分:
St=Stego+Stobj+SOccupancy+SLanes+STrafficControls
- Stego车辆自身状态的成本,包括速度、加速度等。,
- Stobj与其他对象的相对成本,避免碰撞和保持安全距离。
- SOccupancy考虑道路上静态和动态障碍物的成本。
- SLanes遵守车道规则和变道策略的成本。
- STrafficControls遵守交通信号和标志的成本。
3)并行计算
并行化树搜索允许同时评估多个路径,提高了计算效率和路径评估的速度。使用多核处理器和GPU的并行计算能力,处理大量数据并生成最佳路径。
工作步骤
- 从多个目标候选开始:系统首先识别多个目标候选位置,这些位置可能是潜在的行驶终点或者中间目标点。
- 生成初始轨迹:使用轨迹优化和神经网络规划生成多个初始轨迹,这些初始轨迹考虑了道路信息、占用信息和移动对象,确保初始路径是合理和安全的。
- 并行化树搜索进行路径优化:从初始轨迹开始,系统进行并行化树搜索,每个节点表示车辆在某个时间点的状态,每条边表示可能的路径选择。搜索过程中,系统评估每条路径的综合成本,并选择最优路径。
- 实时调整:系统能够实时获取传感器数据,动态更新路径规划确保车辆能够应对复杂和动态的行驶环境。
2 占用网络Occupancy Network
特斯拉自动驾驶系统中的占用网络利用了多传感器数据融合和深度学习技术来生成3D环境模型。
1)数据采集和校准
感知系统从车辆上的8个摄像头采集图像数据(使用12位图像输入,相较于传统的8位图像,12位图像具有更大的动态范围,能够捕捉更多的细节),通过图像校准(Rectify),校准摄像头图像以纠正畸变和对齐不同摄像头的视角,确保数据的一致性和准确性。校准后的图像数据会被送入下一阶段Backbone中。(这部分和AI Day2021介绍的一样)
2)特征提取
Backbone由RegNet-BiFPN组成,使用RegNet对校准后的图像数据进行处理,提取图像的多尺度特征;BiFPN能够有效地融合不同尺度的特征,提高了特征提取的精度和效率。(这部分和AI Day2021介绍的一样)
3)特征融合
空间注意力网络(Spatial Attention Network)对8个摄像头的图像特征进行融合处理,通过对多摄像头图像数据 Query Embedding提取图像特征,作为注意力机制的Key和Value,送入Attention将2D图像特征融合为3D向量空间特征。空间注意力机制帮助网络关注重要的区域,提高了3D建模的准确性。(这部分和AI Day2021介绍的一样)
4)时空上下文处理(Temporal Context Processing)
时序对齐(Temporal Frame Alignment):通过队列中的空间特征进行时序对齐,利用时间维度上的信息,能帮助网络理解物体的动态变化和轨迹。时空特征提取(Spatiotemporal Feature Extraction):将对齐后的时空特征进行处理,进一步整合时间和空间维度的信息。(这部分和AI Day2021介绍的一样)
5)反卷积(Deconvolution)
对时空上下文处理后得到的时空特征进行反卷积操作,能够帮助恢复更高分辨率的特征图,从而生成更精细的占用图和占用流输出。反卷积也称为转置卷积,其基本思想是将低分辨率的特征图通过特定的数学操作还原或放大到更高的分辨率,从而保留和增强图像中的细节信息生成更细致的特征图。反卷积与卷积操作类似,但其目标是进行上采样,具体步骤如下:
- 填充(Padding):在输入特征图的每个元素之间插入零,以增加特征图的尺寸。
- 卷积(Convolution):对填充后的特征图进行卷积操作,通常使用与正向卷积相同的卷积核,但卷积核在反卷积过程中被翻转。
- 去填充(Unpadding):根据需要移除额外的填充部分,获得期望的高分辨率输出。
6)体积网格输出
对反卷积后得到的整个高分辨率稠密的3D空间进行分割和特征提取,通过Voxel Feature Maps(体素特征图)算法形成体素网格(Voxel Grid),每个体素包含一定的特征信息,代表一个小的立方体区域。对每个体素内的点云或图像数据进行特征提取,生成对应的特征向量,组合成特征图形成体积网格输出,表示3D空间中的物体和环境信息。
7)多层感知器(MLP)
将体积网格输出送入MLP,进一步特征转换和精细化处理,最终生成可用于决策和规划的占用图生成可查询输出(Queryable Output)。工作步骤如下:
- 特征映射:将每个体素的特征图映射到MLP的输入向量中,形成输入特征向量。
- 非线性变换:通过多层感知器(MLP)的各层进行非线性变换,每层通常包括线性变换(全连接层)和非线性激活函数(如ReLU)。
- 查询操作:使用3D空间点查询,通过MLP将体素特征图中的特征映射到任意位置的位置信息和语义信息。
- 输出生成:MLP输出查询点的特征向量,包含位置和语义信息,即为可查询输出。
8)路面输出(Surface Output)
将反卷积之后得到的高分辨率3D空间特征进行处理生成连续的表面表示,在生成的表面中包含了道路的形状、标志等重要特征,使用高级神经网络技术对这些信息进行对齐和优化,确保表面的高精度和高可用性;消除可能的噪声和误差,确保表面的平滑和连续性;结合场景中的动态信息,如车辆运动轨迹和环境变化,对表面进行实时调整和优化,确保语义信息(如道路标志、边界等)与几何信息(如道路曲率、坡度等)一致且准确,帮助自动驾驶系统做出更精确的决策。
9)NeRF(Neural Radiance Fields)
NeRF是一种用于生成高质量3D场景的技术,通过神经网络对场景的光照和颜色进行建模,生成逼真的3D渲染效果。在特斯拉的Occupancy Network中,NeRF State用于结合光照和颜色特征,提高3D空间特征的质量。
NeRF State的原理:
- 光照建模:NeRF通过神经网络对场景中的光照进行建模,生成不同光照条件下的场景渲染。
- 颜色特征:NeRF还对场景中的颜色信息进行建模,使得生成的3D场景更加逼真和准确。
- 密集表示:NeRF生成的3D场景是一个稠密的体积表示,包含了场景中的几何和光照信息。
3 FSD车道神经网络
特斯拉的全自动驾驶(FSD)车道神经网络(Lane Neural Network)通过复杂的神经网络架构和处理管道来预测未来的道路情况。以下是其工作原理:
数据输入
来自8个摄像头的图像数据首先经过校准,以纠正图像的几何失真并确保多摄像头数据的对齐。
特征提取
校准后的图像数据进入主干网络(backbone),RegNet加上BiFPN以提取多层次的丰富的特征表示。
数据融合
提取到的特征通过transformer和视频模块进行融合处理。这些模块通过叠加时间维度,将来自不同时刻的特征进行整合,生成时空一致的3D向量空间特征,以便更好地表示车辆周围的环境信息。
地图组件
3D向量空间特征输入到地图组件中,地图组件包括车道引导模块(Lane Guidance Module),利用输入的3D特征图和导航地图信息(低精度)结合处理,生成Dense World Tensor,这是一个密集的三维张量,包含了详细的道路和环境信息。
语言组件
Dense World Tensor输入到语言组件中,通过自回归解码器(autoregressive decoder)处理,类似于图像描述任务,其中输入是密集的张量,输出是用特殊语言表示的稀疏车道输出。自回归解码器生成稀疏的车道输出,包括车道实例和邻接矩阵,用词语和标记表示3D空间中的车道位置。
4 目标检测网络
特斯拉目标检测,为了最小化推理延迟,神经网络的推理过程被分为两个阶段:
第一阶段:通过感知系统(参照上一篇AI Day2021的感知系统架构,未加入占用网络)Backbone+Transformer来实现识别3D向量空间中head任务检测。使用摄像头数据校准后进入backbone(RegNet+BiFPN),然后通过spatial attention模块将2D图像特征融合为3D向量空间特征,再通过temporal video module获得特征张量集合。
第二阶段 :叠加车辆数据例如里程计、备选轨迹、车道交通控制等,通过video module进行多头任务检测,这一步确保了各head任务在感兴趣的区域进行详细处理。
5 FSD神经网络汇总
到现在我们已经接触到了特斯拉多种神经网络,占用网络,规划控制,车道神经网络等,那么特斯拉FSD上到底运行了多少网络模型呢?
上图是特斯拉给出的一张汇总的跑在FSD计算单元上的神经网络集合,可以看到两种运动目标网络、占用网络、路径规划网络和交通控制道路标志网络。
左上角的运动目标网络,就是第4章节介绍的目标检测网络,主要是在AI Day 2021介绍的感知系统基础上增加了分阶段设计,降低推理延迟。
中间的运动目标网络,就是第3章节介绍的车道神经网络,引入了语言组件通过自回归解码器处理给出车道表示。
占用网络就是第2章节介绍的内容,可以看到生成的占用图可查询输出会送到路径规划网络,用于规划行车轨迹,只是图中规划网络显示的是MLP,没有体现第一章节的并行树搜索算法,笔者猜想规划模块内部占比大的还是用到了很多基于感知机的传统神经网络算法协助路径规划。
交通控制和道路标志网络是基于目标检测网络输出Detection head再次用到了RegNet进行图像数据特征提取,推理出相应的交通标志等head 任务输出。
按照特斯拉的这张图,FSD似乎针对8摄像头输入的raw数据做了3次HydraNet网络计算(笔者对此存疑,不确定是图的逻辑表达方式其实还是1次HydraNet,抑或是考虑到计算性能延迟并行做了3次?笔者会持续跟进研究,一有确认即刻更新此部分内容)。