参考文献:
Vision-Centric BEV Perception A Survey
Delving into the Devils of Bird s-eye-view
什么是BEV
1. 什么是BEV :
BEV的全称是Bird's-Eye-View,翻译就是鸟瞰图或者上帝视角。你可以把它想象成我们在玩即时战略游戏(如《星际争霸》或《红警》)时看地图的视角。
2. BEV 的作用:
BEV 能将分散的2D 图像融合成一个统一的 BEV 特征图 。
BEV 场景具备丰富语义信息、精准定位能力与真实物理尺度。
激光雷达、毫米波雷达等主流车载传感器采集的三维空间数据,也能便捷转换至 BEV 空间。
BEV 图可以直接送给下游的算法模块,轻松进行目标检测或者地图语义分割。
3. BEV 的输入:
视觉主导鸟瞰图(BEV)感知的定义为:输入图像序列
式中 \(N、V、H、W\) 分别代表输入图像的帧数、相机视角数量、图像高度与图像宽度。
3. BEV 的局限性
BEV 本质上是将三维世界“拍扁”到了一个二维的平面上,所以在这个过程中,垂直方向的高度信息(Z 轴)会被严重压缩甚至完全丢失 。
所以目前自动驾驶正在从 BEV 演进到能够捕捉物理高度的3D 占据感知(3D Occupancy)
将相机图片(透视图)转换成bev的方法分类
传统:基于单应性矩阵:通过单应性矩阵直接将透视图在数学上“拍扁”到地面上。这种方法的前提是假设地面绝对平坦,一旦遇到上下坡或立体障碍物,图像就会严重失真,这种方法要求严格,畸变严重。所以后续的改进中引入了生成对抗网络,有的负责修畸变,有的负责补盲区,试图把鸟瞰图画得更逼真。
基于深度估计:这是深度学习非常经典的一派。思路是先让模型预测出 2D 图像中每个像素与相机的距离,从而将 2D 像素反投影回 3D 空间。根据生成的 3D 特征如何分布,它又细分为基于点(Point based)和基于体素(Voxel based)两种转换方式。
基于多层感知机:这种方法简单粗暴,直接利用神经网络(MLP)自己去探索透视图和鸟瞰图之间的映射关系。
基于 Transformer:这类方法利用 Transformer 的注意力机制(Attention)去主动搜寻和融合图像特征。后续会详细说明(Bevformer)
根据 Query(查询向量)的形态,它被进一步细分为:
Sparse Query(稀疏查询):数量较少,通常针对特定的目标物体(如直接寻找画面中的几辆车)。
Dense Query(密集查询):像网格一样铺满整个 BEV 空间,无论那个位置有没有东西都会进行查询(BEVFormer 就使用了这种思想) 。
Hybrid Query(混合查询):结合了上述两者的优势。
BEV任务常用数据集与评估指标
KITTI 数据集 [2]、nuScenes 数据集 [6]、Waymo 开放数据集(WOD)
通用评价指标
- BEV 目标检测:主流指标为各类别 / 各难度下的平均精度 AP、均值平均精度 mAP;
- BEV 地图分割:单类别交并比 IoU、全部类别的均值交并比 mIoU。
BEV任务常用评估指标
IoU:IoU 就是“交并比”,也就是 AI 画的框和真实的框“重合的比例”。
BEV AP:则是站在上帝视角(鸟瞰图),忽略高度,只看地平面上的重合度。在马路上,一辆车到底有多高(Z轴)其实对避障的影响相对较小,只要它在地平面上的长和宽、位置是对的,自车就不会撞上去。所以单列出一个 BEV 指标,能更务实地评价避障能力。
精准率P与召回率R:
AOS(平均朝向相似度):用来评价 AI 判断其他车辆“车头朝向”准不准的指标。
中心点距离:如果一辆车在 100 米外,AI 预测的位置偏了半米,两个框可能完全不重叠(IoU=0,得零分),但对自动驾驶来说,知道 100 米外有辆车已经非常有用了!只要 AI 预测的车辆“中心点”,和真实车辆的“中心点”在一定距离内(比如相差不到 2 米),就算及格(匹配成功)。
mAP(平均精度):衡量目标检测任务中是否找的又全又准
五大 mTP 分项指标:衡量具体的几何、运动属性估得准不准
平均平移误差:2D 地平面上,预测框中心点与真值框中心点的绝对欧氏距离
平均尺度误差:预测 3D 框的长、宽、高尺寸,与真值 3D 框的三维尺寸差异。
平均航向误差:车头朝向预测得准不准。
平均速度误差:目标当前行驶得有多快。
平均属性误差:目标当前的状态分类。(静止/运动)