1、BEV感知概览:从2D视觉到BEV的演进、BEV感知的核心优势、主流BEV方案对比(LSS、Transformer、IPM)
各位同学,咱们今天聊聊BEV感知。说实话,我刚入行那会儿,大家还在2D图像上画框框。那时候的感知系统,说白了就是“看图说话”——摄像头拍到什么,就在图像上标出目标。但自动驾驶这玩意儿,光看2D图像远远不够。你想想看,车要变道、要转弯,它得知道周围物体在三维空间里的真实位置,而不是仅仅在像素坐标里。
所以,从2D视觉到BEV(Bird‘s Eye View,鸟瞰视角)的演进,其实是自动驾驶感知系统的一次“升维”。我个人习惯把BEV理解为“上帝视角”——把摄像头、激光雷达、毫米波雷达这些传感器的数据,统统投影到一个统一的俯视平面上去。这样一来,车就能像看地图一样,一目了然地知道周围发生了什么。
1.1 从2D视觉到BEV的演进
早期的感知方案,基本是“各玩各的”。每个摄像头独立做检测,然后靠后处理把结果拼起来。我在项目中遇到过这种方案,说实话,效果很糟糕。为什么?因为2D图像天生缺乏深度信息,你没法准确知道一个物体离车有多远。而且,不同摄像头之间的视野重叠区域,经常出现同一个目标被检测两次的情况,融合起来特别头疼。
后来大家开始尝试用IPM(Inverse Perspective Mapping,逆透视映射)把图像投影到地面。这个方法简单粗暴——假设地面是平的,然后通过相机内外参,把图像像素映射到俯视图上。嗯,这里要注意:IPM对地面平坦的假设太强了。一旦遇到坡道、颠簸路面,投影出来的结果就变形得厉害。我记得有一次测试,车刚过一个减速带,IPM投影出来的车道线直接歪成了S形……
再后来,LSS(Lift-Splat-Shoot)方案出现了。它把图像特征“提升”到3D空间,再“拍平”到BEV平面。这个思路很巧妙,它不再依赖地面平坦假设,而是通过网络学习深度分布。我刚开始看LSS论文时,觉得这个“Lift”操作有点玄学,但实际跑起来效果确实比IPM好很多。
到了Transformer时代,BEV感知彻底爆发了。Transformer的注意力机制天然适合做多传感器融合——它可以在BEV空间里,让不同传感器的特征互相“打招呼”。我个人觉得,这是BEV感知真正走向成熟的关键一步。
1.2 BEV感知的核心优势
BEV感知为什么这么香?说白了,它解决了几个核心痛点:
- 统一空间表达:所有传感器数据都投影到同一个BEV坐标系下,融合变得简单直接。你不需要再头疼“这个摄像头看到的车和那个激光雷达看到的车是不是同一个”。
- 时序融合自然:在BEV空间里做时序融合,天然就是对齐的。车在运动,但BEV空间是相对静止的(如果你做自车运动补偿的话)。我在项目中做过一个实验,同样的模型,加上时序融合后,检测召回率提升了将近8个点。
- 端到端可学习:从图像到BEV的转换,可以通过网络端到端地学习,不需要手工设计复杂的几何变换规则。这意味着模型可以自己适应各种复杂的道路场景。
- 便于下游任务:规划、控制模块直接吃BEV特征,不需要再处理原始传感器数据。整个系统架构变得清晰、解耦。
核心观点:BEV感知的本质,是把“感知”从传感器坐标系中解放出来,放到一个对自动驾驶更友好的“规划坐标系”中。这个转变,让整个感知-规划-控制链路变得更加顺畅。
1.3 主流BEV方案对比:LSS、Transformer、IPM
目前主流的BEV方案,我把它分成三大流派。咱们用一张表来对比一下:
| 方案 | 核心思想 | 优点 | 缺点 | 典型代表 |
|---|---|---|---|---|
| IPM | 基于几何投影,利用相机内外参将图像映射到地面 | 计算量小,实现简单,无需训练 | 依赖地面平坦假设,对坡道、颠簸鲁棒性差;远距离投影精度低 | 早期ADAS方案 |
| LSS | 通过深度估计网络,将图像特征“提升”到3D空间,再“拍平”到BEV | 不依赖地面假设,深度估计可学习;适合多相机融合 | 计算量大,需要预训练深度估计网络;对深度分布敏感 | BEVDet、BEVDepth |
| Transformer | 利用注意力机制,在BEV Query和图像特征之间建立全局关联 | 端到端可学习,融合效果好;支持多模态输入 | 训练收敛慢,对数据量要求高;推理速度受限于注意力计算 | BEVFormer、PETR |
我来展开说说每个方案的特点。
IPM方案
IPM是最早的BEV方案,它的核心就是几何投影。你只需要知道相机内参和外参,就能把图像像素映射到地面坐标系。我曾经在一个封闭园区项目里用过IPM,效果还行——因为园区地面确实很平。但一旦上了开放道路,遇到坡道、桥梁,IPM就彻底崩了。说白了,IPM只适合“理想化”的场景。
LSS方案
LSS的核心思想是“先升维,再降维”。它先为每个像素预测一个深度分布,然后把图像特征沿着深度方向“撒”到3D空间,最后通过一个“拍平”操作得到BEV特征。我在项目中复现过BEVDet,训练过程挺折腾的——深度估计网络如果训不好,整个BEV特征都是乱的。但一旦训好了,效果确实比IPM强很多。尤其是遇到坡道时,LSS能通过深度估计自动调整投影位置,不会像IPM那样变形。
避坑指南:我曾经在LSS的深度分布预测上踩过坑。如果你用LSS方案,建议给深度估计分支加一个辅助监督信号(比如激光雷达点云投影的深度真值),否则纯靠图像学深度,收敛速度会很慢。
Transformer方案
Transformer方案是目前最火的。它的核心是用一组可学习的BEV Query,通过注意力机制从图像特征中“查询”出对应位置的信息。BEVFormer就是典型代表。我个人觉得,Transformer方案最大的优势是“全局感知”——它不像LSS那样需要显式地预测深度,而是让网络自己学会在图像和BEV之间建立对应关系。当然,代价就是计算量大,训练起来也慢。我记得第一次训BEVFormer,8张A100跑了整整一周才收敛……
不过,Transformer方案也有它的局限性。它对数据量的要求很高,小数据集上容易过拟合。而且,注意力机制的“黑盒”特性,让调试变得困难。你很难说清楚“为什么这个位置的特征没学到”。
小结
好了,咱们把BEV感知的演进脉络捋了一遍。从IPM到LSS再到Transformer,本质上是从“手工几何”到“数据驱动”再到“端到端学习”的进化。我个人建议,如果你刚入门BEV感知,可以先从LSS方案入手——它既有可解释性(深度估计),又有学习能力,适合理解BEV的核心思想。等把LSS吃透了,再上Transformer,你会对注意力机制在BEV中的作用有更深的理解。
下一章,咱们会深入LSS方案的细节,聊聊那个“Lift”操作到底是怎么实现的。到时候我会带上代码,咱们一起手撕LSS。