BEVFormer 是一种基于 Transformer 的鸟瞰图(Bird's-Eye-View, BEV)感知模型,专为自动驾驶多相机 3D 检测与环境感知设计,由香港中文大学和商汤科技团队在 2022 年提出。其核心创新是通过时空注意力机制将多视角图像特征高效融合到 BEV 空间,实现对周围环境的全局鸟瞰视角理解。以下是其网络结构的详细解析:
BEVFormer 的整体流程可分为 3 个核心阶段:
- 图像特征提取:从多相机图像中提取 2D 特征;
- BEV 特征编码:通过 Transformer 编码器将图像特征投影到 BEV 空间,并融合时间信息;
- 下游任务头:基于 BEV 特征进行 3D 目标检测、语义分割等任务。
其结构示意图可概括为:
多相机图像 → 图像主干网络 → 特征增强 → BEV Transformer 编码器 → BEV 特征 → 检测/分割头
- 输入:自动驾驶车辆周围的多个相机(通常 6-8 个,覆盖 360° 视野)拍摄的 RGB 图像。
- 主干网络(Backbone):采用预训练的 2D 卷积网络(如 ResNet-50、VoVNet)提取图像的多尺度特征(如 1/8、1/16、1/32 分辨率)。
- 特征增强(Neck):通过 FPN(Feature Pyramid Network)融合不同尺度的图像特征,输出高分辨率(如 1/8 或 1/16)的特征图,保留更多细节信息。
- 图像特征与位置编码:
- 每个相机的特征图被视为图像特征序列(展平为二维网格的向量);
- 为图像特征添加相机内参 + 外参编码(即该像素在世界坐标系中的位置信息),帮助模型理解像素的空间位置。
BEV 编码器是模型的核心,其作用是将多视角图像特征 “lift” 到 BEV 空间(即鸟瞰图视角,通常是一个 H×W 的网格,代表地面上的区域),并融合历史帧信息。
编码器由 N 个堆叠的 BEV 注意力层 组成,每个注意力层包含两个关键子模块:
BEVFormer 中位置编码的设计对注意力机制至关重要,包括:
- 图像特征的位置编码:结合像素的 2D 图像坐标和 3D 世界坐标(通过相机参数转换),使模型理解像素的空间位置。
- BEV 查询的位置编码:为每个 BEV 网格点添加 3D 世界坐标(x, y, z=0,因 BEV 是地面视角),帮助模型区分不同 BEV 位置的语义。
- 时间位置编码:为历史帧的 BEV 特征添加时间戳编码,区分不同时刻的特征。
基于编码后的 BEV 特征,可接入不同的任务头:
- 3D 目标检测头:通过卷积或 Transformer 解码器预测目标的类别(如车、行人)、3D 边界框(中心坐标、尺寸、朝向)。
- BEV 语义分割头:对 BEV 网格进行逐点分类(如道路、人行道、植被)。
- 全局视角融合:通过 BEV 空间统一多相机信息,避免视角转换的歧义性;
- 时空联合建模:时间自注意力有效利用历史信息,提升动态场景鲁棒性;
- 高效计算:空间交叉注意力通过 “感兴趣区域” 限制交互范围,降低计算复杂度。
在 nuScenes 数据集(自动驾驶主流 benchmark)上,BEVFormer 显著超越同期方法:
- 3D 目标检测任务中,NDS(平均检测分数)达到 60.9%,mAP(平均精度)达到 53.3%;
- 结合时序信息后,对远距离小目标(如远处行人)的检测精度提升 10% 以上。
BEVFormer 奠定了 “图像→BEV” 转换的主流框架,后续许多工作(如 BEVDet、PETR)均在此基础上优化注意力机制或特征提取方式,推动了自动驾驶视觉感知的发展。