BEVDet 论文解读

BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View

作者单位

PhiGent Robotics

目的

2D 的视觉感知在过去的几年里有了急速的发展,涌现出一些优秀的范式工作,这些工作有较高的性能,可扩展性,以及多任务的兼容性(比如 Mask R-CNN)。
但是在自动驾驶感知领域,最新的一些 benchmarks 还是有很多不同的范式。比如在 nusences 数据集上,就有一些 基于图像的方法,比如 FCOS3D,PGD等,还有一些基于 BEV 的方法,比如 PON,LSS,VPN。
因此本文提出了 BEVDet,尝试以一种统一的框架解决不同的任务。

方法

网络结构

BEVDet 论文解读_第1张图片

BEVDet采用了模块化的设计,共由四个模块组成:

  1. image-view 编码器
  2. view transfomer
  3. BEV encoder
  4. task-specific head

Image-view Encoder

backbone + neck 的结构
backone:resnet,SwinTransformer
neck:FPN,FPN-LSS,FPN-LSS只是将1/32输入分辨率的特征上采样到1/16输入分辨率,并将其与 backbone 生成的 concat 起来。

View Transformer

view transfomer 的作用是将图像特征 转换到 BEV 空间下。这里采用的是 LSS

BEV Encoder

BEV encoder 进一步 编码 BEV 空间中的的特征。bev encoder 的结构与 backone 和 neck 类似,就是一些残差块组成的网络。

Head

就是一些基于不同任务的head。3D目标检测的 head 的目标是检测出 可移动物体的位置,scale,方向和移动速度等属性。
这里直接使用了 centerpoint中的 第一阶段的head,基于 LiDAR 的head PointPillar 和 VoxelNet。

数据增强策略

图像空间下的增强策略:

对于一些常见的数据增强策略,比如 翻转, 裁剪,旋转,都可以使用一个 3x3的转换矩阵来表示。
当我们将图像空间的坐标投影到3D空间时,可以通过数据在增强的转换矩阵,来实现数据增强的操作,这样不会改变数据的在BEV空间分布。

BEV空间下的数据增强策略

多个view 图像只能生成一个 BEV 空间下的样本,所以模型容易拟合 BEV空间下的特征。于是采用了一些 2D空间下的增强策略,包括翻转,缩放,旋转。在实践中,需要同时在 view transformer 输出的特征 和 3D目标 上作相应的操作,以保证空间一致性。需要注意的是,这种增强方法的先决条件是 view transfomer 可以将 image view encoder 和 后续的模块解耦、

Scale-NMS

在2D图像空间下,因为透视关系的存在,多个物体之间存在遮挡重叠,所以使用 经典的 nms 可以降低冗余的预测。但是在 BEV空间下,预测的物体几乎是没用重叠的,也就是说 物体的 iou 几乎是0,所以传统的 iou 就失效了。
于是本文提出了 scale-nms,在执行 nms 之前先对不同类别的物体 乘上各自的 scale(除了障碍物类别之外,因为障碍物的大小范围太过),这样就可以使 nms 重新发挥作用了。

相关资料

https://zhuanlan.zhihu.com/p/557613388

你可能感兴趣的:(BEV,BEVDet)