文章目录
一. 介绍
作者首先介绍了目前两种主流点云提取特征方法的缺点:
Voxel-base 方法的缺点
- Large Memory Footprint
With low resolutions, there will be information loss during voxelization: multiple points will be merged together if they lie in the same grid. Therefore, a high-resolution representation is needed to preserve the fine details in the input data. However, the computational cost and memory requirement both increase cubically with voxel resolution.
在将点云voxelization的过程中,信息的丢失程度和resolution大小有关。
- 分辨率小的时候,许多在同一个grid里的点云都被合并在一起,造成了信息的丢失。
- 分辨率大的时候,虽然会得到细粒度信息,但是计算的时间复杂度和内存消耗是三次方的增长。
下图给出了一个实验:在一块TitanXp (12GB 显存)上训练体素卷积神经网络,只能容纳分辨率为64x64x64的栅格输入,此时会有42%的信息损失(即只有58%的点是可区分的),而增加七倍的计算资源才能让可区分的点数超过90%。
Point-base 方法的缺点
-
Irregular Memory Access
由于输入的是无序的点云,所以在空间上相邻的点云,在内存里并不一定是相邻的。
例如在前向计算的过程中,需要找到某些点邻域内的所有点,但是点云是无序的,就不能通过index直接进行查找,需要通过KNN进行查找,速度就很慢。Unlike the voxel-based representation, neighboring points xi 2 N (xk) in the point-based representation are not laid out contiguously in memory. Besides, 3D points are scattered in R3; thus, we need to explicitly identify who are in the neighboring set N (xk), rather than by direct indexing.
-
Dynamic Kernel Computation
因为临近点相对中心点的坐标也不是固定的,所以需要根据每个临近点的相对坐标来动态生成卷积核的权重,这样同样会带来额外开销。
However, for the point-based convolution, the points are scattered over the entire 3D space irregularly; therefore,the relative positions of neighbors become unpredictable, and we will have to calculate the kernelK(xk; xi) for each neighbor xi on the fly.
作者也对比了一些SOTA的点云深度学习的方法,可以看到这些方法大量的时间都花费在了非规则数据访问和动态卷积核计算,实际计算时间很低,从运行时间的角度,基于点云的方法也具有极大的优化空间。
二. PV-CNN
PVCNN combines the advantages of point-based models (small memory footprint) and voxel-based models (regularity).
PV-CNN分为两个部分:
Voxel-Based Feature Aggregation
-
Normalization.
将所有点都转换至voxel局部坐标系,坐标归一化[0,1]之间,这个过程中不改变点云的特征。 -
Voxelization.
对体素内的所有点特征取平均,得到voxel的特征。
在这里可以使用较低的分辨率,是因为下一个部分(Point-Based)保留了完整的点云,不用担心信息的丢失,同时由于Voxel的分辨率较低,减少了内存的占用,更加高效。As the voxel resolution r does not have to be large to be effective in our formulation ,the voxelized representation will not introduce very large memory footprint.
-
Feature Aggregation.
就是3d Conv -
Devoxelization
使用三次线性插值,将voxel的特征转化到每个点上去。
三线性插值不清楚的话,看这个就可以了,讲的很详细:三线性插值
Point-Based Feature Transformation
上面一个分支,提供了点云之前的局部信息,获得了邻域特征。 然后还有有每个点的特征,就直接采用MLP,提取每个点的features,然后将二者融合,获得比较丰富的特征信息
Feature Fusion
把每个点的两种feature相加。
With both individual point features and aggregated neighborhood information, we can efficiently fuse two branches with an addition as they are providing complementary information and discriminative features.
三. 实验效果
Object Part Segmentation Visualization
作者给出了利用PV-CNN进行物体分割的可视化效果:
(其中暖色调代表权重更大,冷色调权重较小)
- Voxel-based branch 提取到了大的,连续的,粗粒度信息(例如桌面,台灯头)
- Point-based branch 提取到了孤立的,不连续的细粒度信息(例如桌腿,台灯颈)
四. 结论
We believe that our research will break the stereotype that the voxel-based convolution is naturally inefficient and shed light on co-designing the voxel-based and point-based architectures for fast and efficient 3D deep learning.