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

PVRCNN是一种新型3D目标检测模型,结合了3D Voxel CNNs和PointNet的优势,通过Voxel-to-keypoint场景编码和keypoint-to-grid RoI特征抽象,提高了检测精度和目标定位准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

《动手学无人驾驶(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算法

在目前的点云目标检测中,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的方式有着更高的召回率。

在这里插入图片描述


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
    在这里插入图片描述
    具体地操作如下,其中 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之间地相对位置。

在这里插入图片描述
然后是对 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
    在这里插入图片描述

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

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

为了进一步优化,作者在这里提出了keypoint-to-grid RoI feature abstraction,如下图4所示。
在这里插入图片描述
首先在每一个候选方案(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)表示为关键点特征。
在这里插入图片描述
然后使用一个PointNet-block得到grid point特征,具体方法如下:
在这里插入图片描述
最后通过两层MLP网络,得到256维的特征向量。


2. Experiments

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

总的来说,作者提出的voxel-basedPointNet-based方法还是很创新的,值得借鉴。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值