详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection

详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第1张图片

在《动手学无人驾驶(4):基于激光雷达点云数据3D目标检测》一文中介绍了3D目标检测网络PointRCNN。今天介绍该作者新提出的3D检测模型:PVRCNN,论文已收录于CVPR2020
作者个人主页为:https://sshaoshuai.github.io/。
知乎ID为:https://www.zhihu.com/people/yilu-kuang-shuai。
PVRCNN论文链接为:https://arxiv.org/pdf/1912.13192.pdf。
代码链接为:https://github.com/open-mmlab/OpenPCDet。

在介绍论文前,大家可以先看看作者此前分享的3D目标检测报告:https://www.bilibili.com/video/av89811975?zw

基于点云场景的三维物体检测算法及应用

文章目录

      • 1. PVRCNN算法
        • 1.1 3D Voxel CNN for Efficient Feature Encoding and Proposal Generation
        • 1.2 Voxel-to-keypoint Scene Encoding via Voxel Set Abstraction
        • 1.3 Keypoint-to-grid RoI Feature Abstraction for Proposal Refinement
      • 2. Experiments

1. PVRCNN算法

在目前的点云目标检测中,3D voxel CNNs可以生成高质量的proposals;而基于PointNet的方法由于其感受野灵活,可以捕获更准确的目标位置信息。

在本文中,作者对这两种检测方法进行集成,首先使用3D voxel CNNs作为主干网来生成高质量的proposalas,然后在每一个proposal中,为了充分有效池化点云特征,作者提出了两种新的池化方式:Voxel-to-keypoint scene encodingkeypoint-to-grid ROI feature abstraction。通过这两种池化方法,能够有效提高预测可信度以及对目标位置进行优化。

1.1 3D Voxel CNN for Efficient Feature Encoding and Proposal Generation

这部分相对比较好理解,使用3D CNNs作为主干网,将输入的点云划分为一个个voxel。作者总共进行了4次下采样,最后投影到鸟瞰图上,生成proposal。从结果可以看出,这种生成proposal的方式有着更高的召回率。

详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第2张图片


1.2 Voxel-to-keypoint Scene Encoding via Voxel Set Abstraction

PointNet中提出的set abstraction operation显示出了强大的特征提取能力,能够对任意空间尺寸的点云集进行特征抽取。受此启发,作者提出了将多个voxels的特征聚合到keypoints上。

  1. 首先是Keypoints Sampling,和PointRCNN一样,作者使用最远点采样法(FPS)在所有点云中选取出 n n n个关键点,在KITTI数据中 n = 2048 n=2048 n=2048
  2. 然后是Voxel Set Abstraction Module(VSA),如下图所示,作者在每一次进行下采样时都进行了一次VSA操作,将不同尺度范围的voxel特征汇聚到keypoints
    详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第3张图片
    具体地操作如下,其中 l k l_k lk表示第 k k k层网络, p i p_i pi表示为keypoint v j ( l k ) v_{j}^{(l_k)} vj(lk)表示为第 k k k层网络中voxel坐标, f j ( l k ) f_{j}^{(l_k)} fj(lk)表示为voxel队以应地特征向量。这样就组成每个keypoint邻域集 S i l k S_{i}^{l_k} Silk:包括voxel特征向量及voxelkeypoint之间地相对位置。

详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第4张图片
然后是对 S i l k S_{i}^{l_k} Silk进行一次 m a x max max操作。具体操作如下,其中 M M M表示在集合 S i l k S_{i}^{l_k} Silk中最多选取出 T k T_k Tkvoxels G G G表示进行多层感知机操作,最外层是 m a x max max操作。最终生成地每个keypoint特征为 f i p v k f_{i}^{{pv}_k} fipvk

在这里插入图片描述
对每一层3D CNNs网络都进行上述VSA操作,这样就得到了keypoint结合后地特征 f i ( p v ) f_{i}^{{(pv)}} fi(pv)
在这里插入图片描述

  1. 现在将VSA模块进行扩展,我们对原始点云进行公示(2)的操作,得到特征 f i r a w f_{i}^{raw} firaw。对鸟瞰图上的keypoint进行二项插值得到特征 f i ( b e v ) f_{i}^{(bev)} fi(bev),最终,关键点 k e y p o i n t keypoint keypoint特征为 f i ( p ) f_{i}^{(p)} fi(p)
    在这里插入图片描述
  2. 这里作者还设计了一个predicted keypoint weighting模块,如下图所示。在训练时,可以根据annotation来判断选取地关键点是不是属于前景点,这里训练使用地损失函数为focal loss
    详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第5张图片

1.3 Keypoint-to-grid RoI Feature Abstraction for Proposal Refinement

经过上面的处理,得到了一组含有多尺度语义特征的关键点集(keypoints with multi-scale semantic features)

为了进一步优化,作者在这里提出了keypoint-to-grid RoI feature abstraction,如下图4所示。
详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第6张图片
首先在每一个候选方案(proposal)中,统一采样 6 × 6 × 6 6\times6\times6 6×6×6个gird points。这里的采样公式如下,其中 g i g_i gi表示为grid points, p j p_j pj表示为keypoint, f ~ j ( p ) \widetilde f^{(p)}_{j} f j(p)表示为关键点特征。
详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第7张图片
然后使用一个PointNet-block得到grid point特征,具体方法如下:
在这里插入图片描述
最后通过两层MLP网络,得到256维的特征向量。


2. Experiments

下图是论文作者在KITTI数据集提交的结果(截至2020年11月22日),目前排在第15位,是榜上唯一开源的方案。

总的来说,作者提出的voxel-basedPointNet-based方法还是很创新的,值得借鉴。
详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection_第8张图片

你可能感兴趣的:(论文笔记)