0%
URL
TL;DR
- 传统
BEV 算法中 View Transform 都是通过 LSS 实现 Image View 到 BEV View 的转变,这种视角转换方法依赖于图像视角的深度估计(显式(例如 BEVDepth)或隐式(例如 LSS / BEVDet 等))。
- 本文提出一种新的通过时空注意力机制实现的
View Transform 方法,在 Neuscenes 数据集上取得了不错的 3D 目标检测成绩(略差于 BEVDet4D)。
Algorithm

整体架构
1. 输入
- 输入包含两部分,分别是:
- 环视图(
6 张)
BEV Queries(shape = [num_voxel, dim])
History BEV Feature(上一帧的 BEV Feature 输出,shape = [num_voxel, dim])
2. 输出
- 输出为当前帧的
BEV Feature(shape = [num_voxel, dim]),记作 Bt
- 暂时不考虑任务头
3. 网络模块
- 图像特征提取
6 张图片单独做 CNN base 特征提取,输出记作 Ft
- 时序信息融合:
- 将构造的
BEV Queries(记作 Q),和上一帧的 BEV Feature(记作 Bt−1)做 Self-Attention
- 其中
Q 作为 Query,Bt−1 作为 Key / value,做 Attention 运算
- 虽然这里的
Query / Key / Value 并不同源,但依然被称为是 Self-Attention 而不是 Cross-Attention,是因为 Q 和 Bt−1 都属于 BEV 语义
- 输出记作
Q'
- 空间交叉注意力(视角转换)
- 此步骤是本文的重点,
BEVFormer 通过这一步将透视图特征转换为俯视图特征
- 输入为:
- 做
Cross-Attention 运算,其中:
Q' 作为 Queries
- Ft 作为
Key / Value
- 用预设的无意义且可学习的
BEV Queries 去查询图片总体特征,得到 BEV Feature 输出,记作 Bt
- 任务相关头
- 输入为:
BEV Feature
- 输出为:
BEV 视角下的检测 / 分割等任务预测结果
- 模型结构:可以是
CNN base 也可以是 Transformer base 的
- 以上提到的所有
Attention 过程都需要额外添加 Position embedding
Thought
- 过程并不复杂,只要看过经典的
DETR,都熟悉这种套路:预设一个无意义的(随机初始化但可学习) pattern 序列作为 Query 去查询 image features,得到有意义的结果(或者说是可监督的结果)
- 后续的部分工作对其改进是:将随机初始化预设的
Query 有意义化(例如通过一个轻量化 2D 检测头预检测,得到 proposal 并编码为 Query)