Sparse BEV
1. Sparse BEV
多数Sparse BEV方法不生成稠密的BEV网格,而是直接使用稀疏的3D查询(Query)与多视角图像特征交互,从而绕过稠密特征图的构建
优势:降级计算消耗;感知范围远;可达150米甚至更远(Dense只有前后50米左右);
2. DETR3D
GitHub CORL 2021
2.1 图像特征提取
使用ResNet-FPN骨干网络对图像进行特征提取,得到多尺度2D特征图
2.2 2D到3D特征变换
- 维护一组稀疏的、可学习的3D目标查询,queries
- 每一个3D query会通过子网络预测出参考点,作为bbox的三维中心点坐标
- 通过相机外参将参考点变换到相机2D平面上
- 利用双线性插值采样得到2D图像特征,如果3D点投影到了图像外则过滤掉
- 对特征进行聚合,用多头自注意力机制更新queries
2.3 缺点
- 3D参考点难学,将3D参考点投影回相机平面时,如果参考点预测不准会导致投影回的位置位于目标区域外,会采样到无效特征
- 参考点限制了特征提取范围
- 特征采样过程复杂
3. PETR
GitHub ECCV 2022创新点:解决了DETR3D中将参考点投影回2D的缺点,此论文给特征点增加了3D坐标属性

3.1 2D图像特征提取
通过backbone从图像中提取特征
3.2 3D坐标生成
在视锥空间中进行深度估计,并采用线性增加的离散化方法。随后利用相机的内外参将视锥空间中的点云变换到3D空间中
3.3 3D位置编码
将3D坐标通过多层感知机(MLP)转成位置编码并与2D图像特征相加
3.4 Transformer解码
在3D空间中在范围内均匀初始化一组可学习的3D锚点,通过MLP生成3D目标查询query。将3D感知特征压平作为key和value,与锚点进行交互
4. PETRv2
GitHub ICCV 2023
4.1 引入了历史帧
PETR只看单帧,无法估计物体速度,v2引入了历史帧。其中时刻的3D坐标会根据车辆运动姿态变换到帧坐标系下,然后将对其的两帧3D坐标拼接,同时也将两帧的2D特征图拼接
4.2 特征引导位置编码

v2中将value和key分开输出,从2D特征得到value。将2D图像特征与3D位置编码进行加权,从而产生与图像内容绑定的3D位置感知特征,作为key
这样使得图像特征中包含的“隐式深度信息”能够实时修正3D位置编码,显著提高了系统对相机抖动、安装误差等外参噪声的鲁棒性
4.3 定义多种query
根据不同任务的需求定义了多种query,分别用于3D目标检测、BEV分割、3D车道线检测
参考文章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 雯欂の修仙笔记!