URL
TL;DR
- 本文介绍了一种
BEV视角下的3D障碍物检测算法,该算法的输入是由多张(6张)图片组成的车身环视视角,输出为车身周围障碍物的3D bbox - 与
LSS(lift-splat-shoot)算法较为相似,但任务不同,LSS想要解决的是BEV视角下的分割问题,BEVDet想要解决的是3D障碍物检测问题 - 与
FCOS3D等单目3D障碍物检测的任务类型相似,区别在于:单目3D障碍物检测对每个视角做3D障碍物检测后,需要使用后处理融合跨视角的物体,BEVDet可以将跨视角融合问题内嵌到模型中(BEV)
Algorithm
总体结构

由上图可以看出,模型主要由四个部分组成,分别是:
Image-view Encoder:图像特征提取(backbone + neck),6个视角分别做特征提取,不做视角间特征融合View Transformer:视角变换(同时也实现了图像间信息融合),从图像视角转换为BEV视角,使用的方法和LSS方法一样,输出为BEV featureBEV Encoder:对BEV feature用一个较小的BEV backbone做特征提取Head:任务头,预测3D bbox等,本文使用了CenterPoint Head
算法流程的伪代码表示
1 | # 定义输入,shape: (8, 6, 256, 704, 3) [batch, camera, H, W, C] |
数据增广方法
- 独立图片空间数据增广:图片的翻转、裁剪和旋转可以用
3x3矩阵表示,在View Transformer的时候需要做对应逆变换,即 同时更改图片和 View Transformer 过程 - BEV视角下的数据增广:在BEV空间的学习中,数据量少于图像视图空间,因为每个样本包含多个摄像机图像,所以更容易过拟合;该增广方法遵循常见的
LiDAR方法,采用了2D空间中的常见数据增广操作,如翻转、缩放和旋转,需要对应修改目标3D bbox,即 同时更改 BEV Feature 和 3D bbox GT
Scale-NMS
- 由于
BEV空间中不同类别的空间分布与图像视图空间中的分布非常不同,所以作者提出了Scale-NMS,在执行经典的NMS算法之前根据每个对象的类别来缩放每个对象的大小,可显著提高了对小面积类别(如行人和交通锥)的预测性能
Thought
- 从模型结构和数据增广方式看
BEVDet本质是一个二阶段算法:image Encode + View Transformer:环视图像编码到BEV空间BEV Encoder + Task Head:BEV空间下的3D障碍物检测
- 但第一阶段输出的
BEV Feature没有用LiDAR点云监督就有点怪…(后续的改进算法加了)