【论文阅读】【三维目标检测】PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
文章目录
-
PV-RCNN
- RPN
- Backbone: 基于Feature Pyramid Network的3D稀疏卷积模块
- 分类头与回归头
- Backbone: 基于Feature Pyramid Network的3D稀疏卷积模块
- RPN
-
体素集合抽象模块(VSA)
-
讨论
-
VSA模块
-
预测关键点权重(PKW模块)
-
RCNN
-
Experiments
-
思考
-
目前本论文在KITti平台上的排名位居榜首,并由香港中文大学与商汤科技合作推出。此外,该研究者还开发了PointRCNN以及Part-A^2Net等模型。
PV-RCNN
该文综合考虑了Voxel-based方法与Point-Based方法各自的优劣并加以有机融合。本文系统地分析了Grid-Based与Point-Based方法各自的优劣:Theoretically, Grid-Based approaches generally exhibit superior computational efficiency; however, this efficiency comes at the cost of reduced fine-grained localization accuracy due to inevitable information loss. In contrast, Point-Based methods, though computationally intensive, can more flexibly attain a broader coverage area through their abstraction mechanism.
网络的结构图如下:

RPN
Backbone: 3D Sparse Convolution
在本文未对相关内容进行详细阐述,在另一篇论文"Part-A^2 Net: 3D Part-Aware and Aggregation Neural Network for Object"中对此进行了较为深入的探讨。由于其作为backbone网络,在某种程度上来说也是通用的。那么作者为何选择使用3D Sparse Convolution呢?在文中提及了这一观点。
Classification & Regression Head
通过将三维特征图转换为俯视图,并将高度维度转化为通道来处理数据。接着,在每个单元格和类别之间设定两个anchor点:一个位于水平方向(对应0度),另一个位于垂直方向(对应90度)。
通过采用该3D Voxel CNN backbone与锚定机制结合的方式进行实验研究,在表4中可观察到显著提升的Recall值(如表4所示)。该方法在实现更高Recall表现方面超越了基于PointNet的方法(参考文献[25, 37])
但这里有个问题是anchor的角度是0或者90度,那-90度是怎么处理的?这相当于是怎么处理相反方向的车?车辆朝向的这个量这个在Proposal生成的过程中是否考虑?如果考虑,则怎么回归相反方向的车,这种anchor设置看起来不合理;如果不考虑,那么在通过Proposal生成6x6x6的grids的时候的顺序怎么确定,难道就一直不考虑?这个得通过具体Loss或者代码中看了。
这一点,Part-A^2Net也没有细讲,但引文可以追溯到SECOND: Sparsely Embedded Convolutional Detection。这样子其实也可以理解,就相当于在图像处理中,网络要学会对左右翻转的鲁邦性。
Voxel Set Abastraction Module(VSA)
Discussion
获得一个Proposal后,则需从中提取相应的特征并形成一个固定大小(如3×3)的feature map以便后续处理。本文将这一过程划分为一个包含36(即6×6)个栅格的区域以便更好地组织数据结构。接下来的问题是如何为每个栅格计算其对应的特征值呢?
然后作者讨论了现有方法存在的问题:
(i) 这些特征体积通常具有较低的空间分辨率(因为它们经过最多8倍的下采样处理),这使得在输入场景中准确定位物体变得困难。
(ii) 即使通过上采样技术可以恢复出较大空间尺寸的特征体积/图谱(但它们仍然普遍缺乏足够的密度)。
换句话说采用差值方法类似于图像目标检测中的RoI Align方法的效果并不理想。
作者就提出了一种思路,使用PointNet++中的SA层,对每个cell,使用SA层,综合这个cell一定范围内的BackBone输出的feature map中的feature。但作者提出,这种方法,计算量太高。
“A naive solution of using the set abstraction operation for pooling the scene feature voxels would be directly aggregating the multi-scale feature volume in a scene to the RoI grids. However, this intuitive strategy simply occupies much memory and is inefficient to be used in practice. For instance, a common scene from the KITTI dataset might result in 18, 000 voxels in the 4×downsampled feature volumes. If one uses 100 box proposal for each scene and each
box proposal has 3 × 3 × 3 grids. The 2, 700 × 18, 000 pairwise distances and feature aggregations cannot be efficiently computed, even after distance thresholding.”
为了解决这个问题,作者提出了VSA Module,来减少要聚集的feature的总数量,也就是上例子中的18000。
VSA Module
VSA模块已经在示例图中表现得非常清晰了。具体步骤如下:(公式1,2,3)
- 在原始数据集中采用Furthest Point Sampling方法选取n个关键采样点;
- 在每一层的特征图中运用SA模块整合每个采样点附近区域内的特征信息;
- 将所有提取到的特征进行拼接处理以形成最终特征向量;
此外,在扩展版本中还增加了两种额外的特征维度
该系统将Backbone网络输出的特征图映射到BEV图中,并通过2D双线性插值方法生成相应的特征。
基于原始点云数据并通过Set Abstraction模块处理后得到的特征。
PKW Module(Predicted Keypoint Weighting)
问题涉及n个样本点中的一部分作为前景点具有重要意义,而另一部分则作为背景区域具有较少的关注度.需要对这些样本进行分类处理,以便分别提取具有代表性的特征向量.利用这些样本的特征向量,通过某种机制生成对应的权重向量.这些权重值将被利用真实标签矩阵进行监督学习训练,从而得到每个样本的新特征表示.(公式5)这一系列操作被统称为Point-wise Kernel Weighting (PKW)模块.

在该过程中采用了n个关键点来代表整个场景,在学术文献中这一技术被称作voxel-to-keypoint scene encoding;这些关键点被称为key-points
到此,我们有了Proposal和n个点的坐标和对应的feature。
RCNN
通过引入Proposal方案,则能够生成一个由6×6×6个小单元组成的三维空间网格。针对每个细胞中心位置,在之前获得的n个数据点中筛选出位于该区域内的数据,并随后利用SA模块整合相关特征信息以确定该单元格的具体特征。(公式6,7)

从Proposal中获得了具有固定尺寸的特征描述后,就可以实施信心度预测和边界框校准的具体操作流程。需要注意的一点是,在计算信心度预测的真实值时,我们采用的是IOU指标作为评估标准。
Experiments
在KITTI上和Waymo Open Dataset上效果都很好。
Ablation Studies:
- 证实其有效性,并对其所依据的不同思路进行了系统分析。
- 证实该模块具备多样化的特征。
- 证实该模块具有良好的性能。
- 显示出在RoI-grid pooling模块相较于PointRCNN中的方法(即RoI-aware pooling)显著的优势。
思考
这篇论文中提到的作者之前的相关研究中已经包含了PointRCNN和Part-A^2Net两种方法。在此研究中主要采用了STD方法,并为了进一步探讨网络的发展脉络进行了系统性对比分析。以期全面了解网络发展的演变历程。
PointNet++作为PointRCNN的基础模块被广泛应用于特征提取过程。该系统由两个关键组件构成:第一部分是RPN中的backbone模块(通常采用C^2卷积神经网络),第二部分则是经典的RCNN架构中负责特征提取的部分。
STD相较于PointCNN,在功能上增加了RoI-grid相关的内容。基于RCNN的设计基础,在其架构中采用voxel表示的方式下,其特征提取过程也演变为三维卷积操作。
与STD相比,Part-A²Net最初采用的是Voxel表征方法,并将其主体网络部分也转换为了三维卷积结构。(当然还有提出了一种基于Part位置的表征方法等)在忽略细节特征表征的前提下,在这种简化假设下,我认为这种方法的核心思路非常朴素。
PV-RCNN解决了本文提出的Part-A^2Net计算效率低的问题。
阅读本文令人感到十分愉悦;它仿佛在讲述一个引人入胜的故事;撰写学术论文的方法可以在一定程度上借鉴本文的经验
