Transformer 是谷歌 2017 年提出的 AI 大模型,最早用于自然语言处理领域。
人工智能的核心技术是神经网络模型,较为主流和有效的神经网络模型主要包括卷积神经网络(CNN)、循环神经网络(RNN)、深度神经网络(DNN)和脉冲神经网络(SNN)等,主要应用于自然语言处理(NLP)和计算机视觉(CV)等领域。2017 年谷歌在论文《Attention is all you need》提出Transformer 大模型,在众多自然语言处理问题中取得了非常好的效果。Transformer 模型属于Encoder-Decoder 类模型,举例来说,Bert 侧重 Encoder,GPT2 侧重Decoder。
Transformer 模型的核心在于引入了多头注意力机制(Multi-Head Attention)。 注意力机制:通过找到查询(Query)键(Key)的相关性,去找到最合适的值(Value)。当 Q,K,V 的来源相同时,就是自注意力机制。自注意力机制:向量矩阵 X 与可训练的三个权重参数W(q)、W(k)、W(v)相乘得到 Q,K,V(如 q1=X1×W(q1)),然后通过Q 和K 的计算得到相似度,经过 Softmax 的归一化后与 V 相乘,计算加权求和。在智能驾驶的感知环节,自注意力机制可以理解为用于提取一类特征。 多头注意力机制:定义和训练多组权重参数矩阵W,生成多组Q、K、V,最后学习到不同的参数 Z1-Zn。通过形状变换进行合并,得到多头注意力的最终输出结果。在智能驾驶的感知环节,多头注意力机制可以理解为提取多个特征。
Transformer 模型包括编码器(Encoder)和解码器(Decoder)两个部分。编码器用于将序列转换为一组向量表示,包括多头注意力和前馈,解码器用于将向量解码为输出序列,包括多头注意力、编码器-解码器注意力和前馈。(1)在编码器中,数据到达 Multi-Head Attention 时,会分为三部分输入(k、v、q),v 表示输入特征的向量,k 和 q 是用于计算输入向量之间彼此的关联程度。k、v、q 都是张量,是通过输入向量本身相应权重 W(q)、W(k)、W(v)获得的。多头对应多个特征,即为每个输入数据匹配多个 k、v、q,多头之间的计算互不影响。(2)解码器中的 Multi-Head Attention 也是自注意力机制,和编码器的过程类似。(3)连接 encoder 和 decoder 的 Multi-Head Attention 是非自注意力机制,这里的q 是来源于上一个 Output 经过一个 Masked Multi-Head Attention 和Add&Norm层之后的输出,k、v 来源于 encoder 编码器。
Transformer 模型通过注意力机制,整合了 CNN 易于并行化的优势和RNN模型可以捕捉长序列内的依赖关系的优势。神经网络模型可以分为前馈神经网络和反馈神经网络两类:(1)前馈神经网络中,信息从输入层开始输入,每层的神经元接收前一级输入,并输出到下一级,直至输出层。整个网络信息输入传输中无反馈(循环)。常见的前馈神经网络如卷积神经网络(CNN)。(2)反馈神经网络中,神经元不但可以接收其他神经元的信号,而且可以接收自己的反馈信号,常见的反馈神经网络如循环神经网络(RNN)。Transformer 模型利用注意力机制实现了并行化捕捉序列依赖,并且同时处理序列的每个位置的Tokens。因此相对于CNN 模型,Transformer 模型可以捕捉长序列内的依赖关系,相对于RNN模型,Transformer 模型有更高的并行度,且能保存更多的前期数据。

2020 年的 VIT 模型开拓了 Transformer 在 CV 领域的应用。Transformer 作为序列到序列学习的神经网络大模型,最早用于自然语言处理,如机器翻译等场景中。2020 年 谷 歌 论 文 《 An Image Is Worth 16x16 Words: Transformers For ImageRecognition At Scale》提出的 VIT 模型(Vision Transformer)以Transformer 为backbone,在 CV 领域起到了很好的效果。由于 Transformer 主要是处理序列,VIT 模型首先将图片分割成多个 patch,再将每个 patch 投影为固定长度的向量送入 Transformer,再进行 Encoder 等操作。相较于 CNN 中的卷积操作只能捕获局部信息,而不能建立全局图像的长距离连接,视觉Transformer 的多头注意力通过 qkv 去捕捉全局的特征与特征之间的关系,可以获取更多上下文信息,扩大图像的全局感知。
与 VIT 同年,特斯拉将 Transformer 引入自动驾驶领域。2020 年特斯拉重写智能驾驶软件架构,2021 年特斯拉 AI DAY 上展示了基于Transformer 的BEV感知方案,核心是用 BEV+Transformer 将各个摄像头的信息进行特征提取和融合。目前主流用 BEV+Transformer 的方法包括 DETR3D,PETR,BEVFormer 等,以BEVFormer 为例,首先在 BEV 视角下重构特征空间,然后利用Attention提取和对齐时间和空间维度的特征。在摄像头视觉融合的基础上,Transformer 也可以实现摄像头视觉信息和激光雷达的多模融合。
目前国内外头部企业利用 BEV+Transformer 做感知环节的特征融合。自特斯拉2020 年提出应用 BEV(Bird’s Eye View)鸟瞰图的3D 坐标系空间,把各个摄像头的信息进行融合,在 BEV 空间内做特征融合已经成为视觉感知融合的前沿主流方案。BEV+Transformer 可分成五步:(1)将摄像头数据输入到共享的骨干网络(Backbone),提取每个摄像头的数据特征(feature)。(2)把所有的摄像头数据(跨摄)进行融合,并转换到 BEV 空间。(3)在 BEV 空间内,进行跨模态融合,将像素级的视觉数据和激光雷达点云进行融合。(4)进行时序融合,形成4D时空维度的感知信息。(5)多任务输出,如静态语义地图、动态检测等。目前,特斯拉,小鹏,理想与华为等企业利用 Transformer+BEV 等大模型进行视觉感知融合,可以识别车身周围的各类物体,构建动态实时地图,在理论上可以摆脱或者减轻对高精地图的依赖。

特斯拉 2021 年先提出用 BEV+Transformer 实现目标检测,又在2022年提出Occupancy Network 升级到语义分割,进一步提升感知精度,同时避免碰撞。目标检测(Object Detection)和语义分割(Semantic Segmentation)是CV领域的概念,目标检测的任务是对输入的图像进行物体检测,标注物体在图像上的位置,以及该位置上物体属于哪个分类,语义分割的任务是对输入的图像进行逐像素的分类,标记出像素级别的物体。
(1)目标检测(Object Detection):目标检测通用的结构为:Input →Backbone→ Neck → Head → Output。其中 Backbone 指特征提取网络,Head 指在特征提取后的特征图表示,Neck 位于主干和头部之间,用于提取一些更精细的特征。在特斯拉 2021 年 AI DAY 提出的神经网络架构中,Backbone:选择RegNet 和ResNet 为 主 要 架 构 , Neck: 选 择 BiFPN , Head: 选择HydraNets (采用了类Transformer 的架构)。
(2)语义分割(Semantic Segmentation):语义分割是从粗推理到精推理的步骤,一般而言语义分割需要先分类,然后本地化/检测,最后通过对每个像素进行密集的预测、推断标签来实现细粒度的推理。特斯拉2022 年提出OccupancyNetwork(占用网络),将三维空间划分成体素 voxel,对有物体的voxel 赋值为1,表示 voxel 被物体占据;没有物体的 voxel 被赋值为0,在分割后进一步识别和判断。Occupancy 网络最核心的升级正在于从目标检测(Object Detection)升级到语义分割(Semantic Segmentation)。一方面对于白名单的依赖度降低,因此识别异性物体的能力大大增强,另一方面克服了目标检测方法对于目标的外形高度敏感的问题。在特斯拉之后,理想汽车在 2023 年双能战略发布会上也表示利用Occupancy 网络识别通用障碍物,华为提出的 GOD 网络也是基于Occupancy的框架。
未来有望基于 Transformer 大模型实现端到端的辅助驾驶。在模块化的算法框架下 , 辅 助 驾 驶 方 案 分 成 感 知 — 预 测 — 规 划—执行各个环节,目前BEV+Transformer 主要用来做感知环节的特征融合,以替代后融合的方案,提升感知能力并摆脱对高精地图的依赖。但整体而言,感知和预测模块的数据会再输入到规划决策模块,再通过执行模块的计算输出指令,各个模块之间仍然是分离的。我们认为未来基于大模型有望实现端到端的辅助驾驶,即传感器的数据输入大模型后直接输出执行信号。特斯拉 FSD betaV12 版本有望率先实现端到端的大模型,远期国内车企也有望实现端到端。 我们以 CVPR2023 最佳论文《Planning-oriented Autonomous Driving》提出的算法框架 UniAD 为例解释端到端智能驾驶的实现方式。UniAD 由2 个感知模块,2个预测模块和 1 个规划模块组成: (1) TrackFormer:用于动态元素的特征提取,例如车辆和行人的帧间跟踪。(2) MapFormer:用于静态元素的特征提取,以及实例级的地图预测。(3) MotionFormer:将动态与静态元素的特征融合,进行长时序的轨迹预测。(4) OccFormer:基于较短时序的全场景 BEV,进行实例级的预测。(5) Planner:基于自车 query 的轨迹规划和 Occ 的碰撞优化进行规划。可以从图中看到,感知和预测模块都是基于 Transformer 架构,查询向量Q将各个模块串联起来,其中,TrackFormer 的 Query 会一直传递到Planner 模块,以此实现了全栈 Transformer的端到端模型。