在学习自动驾驶感知算法的过程中,经常会遇到一系列看起来有些“零散”的名词:
CenterPoint
LSS / BEVDet
BEVFormer
BEVFusion
Sparse4D
刚接触这些算法时,很容易产生一种感觉:
为什么会有这么多方法?
这些算法之间到底是什么关系?
如果只是从论文角度看,它们似乎是彼此独立的一些模型。但当逐渐深入理解之后,会发现这些方法其实并不是孤立存在的,它们构成了一条非常清晰的技术演进路径。
这篇文章尝试从一个更直观的角度出发,把这条路径串联起来:
自动驾驶视觉到底在解决什么问题
为什么 BEV 会成为主流表达
为什么算法会从 Dense BEV 逐渐走向 Sparse 表达
为什么 Transformer 在自动驾驶中变得越来越重要
当这些问题放在同一条逻辑线上来看时,会发现很多技术选择其实并不是偶然,而是工程约束下的一种自然结果。
一、自动驾驶视觉到底在解决什么问题
自动驾驶系统需要完成一件看似简单但实际上非常复杂的事情:
理解车辆周围的真实世界。
当人类驾驶车辆时,我们会下意识地判断很多空间信息,例如:
- 前方车辆距离我们 多少米
- 行人位于道路的 哪个位置
- 周围车辆是否在 靠近或远离
- 前方是否存在 障碍物
这些判断看起来很自然,但它们背后都依赖一个非常重要的能力:
换句话说,人类驾驶时其实是在理解一个类似这样的世界模型:
只有知道这些对象在空间中的真实位置关系,车辆才能做出合理决策,例如:
是否需要减速
是否可以变道
是否存在碰撞风险
但传感器看到的世界其实是二维的
这里出现了一个关键矛盾。
自动驾驶系统所依赖的很多传感器,例如摄像头,其实只能获取:
因此系统面对的是一个典型的问题:
例如,在图像中看到一辆车时,我们可以得到:
但系统并不知道:
因此,自动驾驶视觉系统需要解决的核心问题可以简单描述为:
也就是:
从二维传感器数据恢复出真实世界的空间结构。
二、BEV:连接 2D 感知与 3D 世界的一座桥梁
如果直接在完整三维空间中建模,会遇到一个非常现实的问题:
计算量巨大。
例如,如果要描述一个:
的空间,即使使用较粗的分辨率,也会产生数千万个体素。
但交通场景其实有一个非常重要的先验:
大多数交通参与者都位于地面附近。
例如:
车辆
行人
自行车
路障
它们的高度变化相对有限。
因此,人们提出了一种更加合理的表达方式:
也就是:
BEV(俯视视角)
在 BEV 表达中,世界被表示为一张俯视地图:
这样一来:
既保留了空间结构,又大幅降低了计算复杂度。
因此 BEV 可以理解为:
连接二维图像感知与三维世界理解的一座桥梁。
三、自动驾驶感知算法的技术演进
理解了 BEV 的作用之后,再回头看自动驾驶感知算法的发展,会发现它们其实形成了一条非常清晰的技术演进路径。
这些算法的目标始终没有改变:
但在不同阶段,人们采用了不同的技术路线。
从整体上看,这条路径可以概括为:
下面按照这条路径逐步展开。
3.1 第一阶段:点云 BEV
激光雷达可以直接测量空间中的三维点:
这些点被称为:
典型流程是:
这一类方法的代表算法是:
CenterPoint。
它在 BEV 上使用类似目标检测的方式寻找目标中心点,从而得到 3D 目标框。
这一阶段的特点是:
优点:
深度准确
几何稳定
缺点:
强依赖激光雷达
成本较高
因此,研究者开始思考一个问题:
能不能只用摄像头来做 BEV?
3.2 第二阶段:视觉 BEV(Dense BEV)
为了让摄像头也能构建 BEV,人们提出了一类新的方法:
从图像中恢复深度信息。
典型流程是:
这类方法的代表是:
LSS
BEVDet
BEVDepth
这种方法的核心思想是:
这种方法直观且有效,但也存在一个关键问题:
单目深度预测本身是一个困难问题。
如果深度预测出现误差,就会导致:
因此,人们开始思考:
能不能不显式预测深度?
3.3 第三阶段:Transformer BEV
BEVFormer 提出了一个新的思路。
它不再采用:
而是反过来:
具体来说:
每一个 BEV query 表示:
流程变成:
这种方式有几个优势:
2)多相机融合更自然
3)时序信息更容易整合
3.4 第四阶段:Sparse 表达
虽然 BEVFormer 已经非常有效,但它仍然存在一个问题:
例如:
但真实交通场景中的目标数量可能只有:
于是出现了一种新的思路:
不再维护整个 BEV 网格,而只关注可能存在目标的位置。
Sparse4D 就属于这一类方法。
它维护的是:
而不是:
流程变成:
这种方式不仅计算效率更高,也更适合做时序建模。
四、为什么 Transformer 在自动驾驶中如此重要
例如:
BEVFormer
Sparse4D
UniAD
那么问题就出现了:
为什么 Transformer 在自动驾驶视觉中如此重要?
要理解这一点,其实不需要深入复杂的数学公式,只需要从一个更直观的角度理解 Transformer 的核心能力。
4.1 Transformer 在做什么
如果用一句非常简单的话来描述 Transformer,可以这样理解:
Transformer 是一种非常灵活的信息融合机制。
它允许系统在大量信息中:
找到最相关的信息
决定哪些信息更重要
把这些信息融合在一起
在传统卷积网络中,信息通常是通过固定结构逐层传播的,例如:
每一个位置都可以根据需要,从整个系统中选择最相关的信息。
4.2 自动驾驶感知系统的一个核心特点
自动驾驶系统需要同时处理多种不同来源的信息。
例如:
多相机
车辆通常会安装多个摄像头,例如:
每个摄像头看到的是不同方向的环境。
系统需要把这些信息融合成一个统一的世界模型。
多时间帧
自动驾驶不仅需要理解当前画面,还需要利用历史信息:
例如:
判断车辆是否在移动
预测行人运动方向
处理短暂遮挡
多对象关系
在道路环境中,还存在各种复杂的空间关系:
这些对象之间并不是孤立的,而是相互关联的。
4.3 Transformer 与自动驾驶问题的天然匹配
如果把自动驾驶系统的特点与 Transformer 的能力进行对比,会发现两者之间存在非常自然的匹配关系。
自动驾驶感知系统需要解决的问题,本质上是:
而 Transformer 的 attention 机制正好提供了一种非常灵活的方式来完成这种融合。
它允许系统根据数据内容:
例如:
- 某个 BEV 位置可能更依赖 前方摄像头的信息
- 某个目标可能更依赖 历史帧的信息
- 某个场景可能更依赖 侧方摄像头的信息
4.4 Cross Attention:多源信息融合的关键
在自动驾驶感知模型中,最常见的一种 attention 形式是:
可以简单理解为:
从一种数据中提出问题,再从另一种数据中寻找答案。
例如在 BEVFormer 中:
也就是说:
这种方式可以非常自然地完成:
多摄像头融合
多尺度特征融合
时序信息融合
五、为什么 BEV + Transformer 会成为一种自然组合
如果把前面讨论的内容放在一起看,会发现自动驾驶视觉系统始终在面对两个核心问题:
BEV 和 Transformer,恰好分别对应这两个问题。
5.1 BEV 解决的是“空间表达问题”
例如:
这些信息本质上都是:
BEV 表达的优势在于:
5.2 Transformer 解决的是“信息融合问题”
虽然 BEV 提供了一种很好的空间表达方式,但构建 BEV 仍然需要解决一个问题:
如何融合来自不同来源的信息?
例如:
Transformer 的 attention 机制恰好提供了一种非常灵活的方式来完成这种融合。
5.3 一种技术演进的必然结果
从这个角度回头看自动驾驶感知算法的发展,就会发现一条非常清晰的逻辑:
这些技术看似不断变化,但其实始终围绕着同一个目标:
Transformer 提供信息融合。
两者结合之后,逐渐形成了一种非常自然的技术体系。
某种程度上说:
BEV + Transformer 并不是一种偶然的设计,而是一种工程问题驱动下逐渐形成的自然结构。
学习这些算法的过程中,很容易被各种模型名字淹没:
但当把这些方法放在同一条技术演进线上来看时,其实都很多设计都有非常清晰的动机,这些动机也代表了行业的需求和技术的发展方向。
