自动驾驶汽车如何看懂道路?

这是一辆自动驾驶汽车,车身周围通常分布着 8 个摄像头,持续不断地捕捉着道路信息 。
但这 8 个独立的 2D 视频流,就像 8 个坐在不同位置的人,对同一个房间的描述。要让汽车安全行驶,就必须将这 8 个视角的信息,整合成一张统一、精确的地图。
在过去几年,行业的主流答案是 BEV,也就是鸟瞰图(Bird's-Eye View)。
1. 什么是 BEV?
简单来说,BEV 就是一张从车顶正上方俯瞰的 2D 地图。这张地图直观地展示了车道线、障碍物以及其他车辆的相对位置和大小,是下游规划模块制定决策的理想依据。
为了生成这张地图,系统必须解决一个核心难题:如何从平面的 2D 图像,推断出带有深度信息的 3D 空间?

在数学上,这是一个典型的欠约束问题,因为同一个 2D 图像可以对应无数种 3D 场景 。
而主流的解决方法主要有两种。
第一种是前向投影,代表是 LSS 模型。它会先预测图像中每个像素的深度,再根据这个深度,把 2D 图像的特征投射到 3D 空间中,最后压缩成一张 BEV 地图。
缺点:这种方法的缺点是,它只在有把握的地方放置特征,导致生成的 BEV 地图是稀疏的,充满了信息空洞。
第二种是后向投影,代表是 BEVFormer。它从 BEV 地图上的每个网格点出发,反向投影回 2D 图像中采样特征。
缺点:这种方法能生成更密集的地图,但由于缺乏明确的深度信息,尤其在处理遮挡问题时,很容易产生错误的投影,在地图上生成不存在的鬼影特征。
一张有空洞的地图,和一张有鬼影的地图,无论哪一种,对于需要精确决策的自动驾驶系统来说,都是一个麻烦的起点。

更重要的是,这些转换过程严重依赖一些理想化的几何假设,比如地面必须是平的,摄像头的位置必须精确固定。一旦车辆行驶在有坡度的弯道,或者剐蹭后摄像头的位置发生微小偏移,这些假设就会失效,导致 BEV 地图的质量严重降低,这也就是为什么早期的智驾系统在出现任何一点小小的问题之后都需要进行一次价格昂贵的标定,才能继续用。
BEV 最大的问题在于,它让整个系统优化的目标发生了偏移。我们只能用交并比等指标,来衡量 BEV 地图画得有多准 ,但这并不等同于车开得有多好 。
一张对人类来说清晰漂亮的地图,可能恰好过滤掉了神经网络规划时最需要的一些信息,比如物体边缘的具体位置,或路面湿滑的纹理细节 。

我们为了得到一张好看的中间地图,限制了智驾系统学习如何开好车的真正潜力。
2. 另一种思路:端到端
那么,有没有可能让汽车完全跳过画地图这一步,直接学习开车?
这就是端到端的思路。
端到端系统是一个单一的、完整的神经网络,它的输入是原始的摄像头数据,输出就是方向盘转角、油门、刹车等控制指令。
这种架构的核心优势在于从处理图像的第一个网络层,到输出控制指令的最后一个网络层,整个系统都为了自动驾驶的最终目标而优化 。
神经网络可以自由学习任何它认为对驾驶有用的特征,而无需在乎这些特征是否能被人类理解。这从根本上解决了模块化系统里,因为目标不一致和信息翻译失真,导致的错误累积问题 。
3. 两种路线的现状
目前,行业内主要有两种实践端到端理念的路线。
第一种:以早期特斯拉为代表的混合路线
早期特斯拉的 FSD 架构中,BEV 依然扮演着重要角色 。系统会从摄像头图像生成 BEV 空间下的占据栅格,用于多摄像头和激光雷达融合和空间理解,规划也是在这个 BEV 空间中进行。
也就是卓这种路线将自动驾驶问题拆解为:第一步,构建一幅精确的世界地图;第二步,在这张地图上规划一条路径。
第二种:以目前的特斯拉为代表的纯粹路线
目前特斯拉致力于构建一个单一的AI 驾驶员模型,直接从数据中学习驾驶 。他们的系统不依赖高精地图,并且硬件无关。因此问题只剩下了:学会开车。
我在路口左转时,并不会在脑海中生成一张厘米级精度的俯视图。我们依赖的是对整个场景动态、直观、整体的理解。
自动驾驶的终极目标,或许不是为汽车打造一张更完美的地图去遵循,而是打造一个能像人类一样,真正理解道路的驾驶员。而 BEV 这张曾经完美的地图,可能只是这个过程中,一个我们必须学会扔掉的拐杖。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
