Fast-BEV:A Fast and Strong Bird’s-Eye View Perception Baseline——论文笔记
参考代码:Fast-BEV
一稿多投的另一篇:Fast-BEV: Towards Real-time On-vehicle Bird’s-Eye View Perception
1. 概述
介绍:这篇文章提供了一种可实际部署的BEV感知方案,能够在当今车端主流计算单元上(Nvidia Orin)实现不错的帧率。从camera到BEV的转换思想来自于M2BEV,但是对这个转换方法中使用查找表和映射方法改进,使得整体视角转换效率得到提升。同时,在一些细节上增加了多帧数据融合、图像编码器使用FPN优化特征、camera和BEV下的数据增广等操作提升网络性能。
这篇文章是在M2BEV的基础上改进来的,这里顺带提一下M2BEV中对于BEV特征图上分割Loss权重分布的设计,也就是BEV Centerness:
BEV\ Centerness=1+\sqrt{\frac{(x_i-x_c)^2+(y_i-y_c)^2}{(max(x_i)-x_c)^2+(max(y_i)-y_c)^2}}
其中,(x_c,y_c)代表BEV特征图的中心。其原理就是距离中心越远的区域会被设置更大的损失权重。下图体现了添加这个trick之后带来的性能影响:

2. 方法设计
文章的整体pipeline见下图所示:

在上图中可知文章主要的工作集中于如下几点:
- 1)图像编码部分:输出多尺度图像特征
- 2)2D转3D部分:使用查找表和基于camera ray实现2D到一个统一3D空间的转换
- 3)数据增广:在图像和BEV空间下实现数据增广,其实就是相机的内外参数进行调整
- 4)时序数据融合:借鉴BEVDet4D中时域数据融合策略,增加了参与数据融合的帧数
2.2 图像编码
对于backbone输出特征使用下图中的FPN结构实现多尺度输出:

2.3 2D到3D视角转换
在M2BEV中camera为光心射出的射线是以单个camera为基准的,之后这些camera生成的BEV特征再进行融合,这显然有效信息是比较稀疏的,如下图所示:

对此,这里建立一个统一的3D映射空间使得每个camera都向其中投影,从而实现2D到3D的视角转换。同时上述的投影过程可通过预先设置查找表的形式进行加速。将文章的方法于query-based、depth-based方法进行比较,见下图所示:

2.4 数据增广
这里的数据增广包含了2D图像空间和3D BEV空间下的增广,其实对于2D空间下的增广修改的是相机的内参矩阵,对于3D空间的增广修改的是相机的外参矩阵。这里使用到的增广操作包含:翻转、剪裁和旋转。

2.5 时序融合
在BEVDet4D的基础上增加更多帧数据输入(将前3帧的数据concat起来)用以增强网络性能(这里特征对齐使用了帧间pose):

2.6 消融实验
对于上述各个模块其中一些超参数对于整体网络性能的影响见下表所示:

3. 实验结果

