【点云识别】Grid-GCN for Fast and Scalable Point Cloud Learning (CVPR 2020)
Grid-GCN for Fast and Scalable Point Cloud Learning
本文综述了CVPR 2020上一篇关于三维点云数据的识别技术的文章。论文 代码
1. 问题
自PointNet++和DGCNN发布以来,在现有的所有点云处理模型中都依赖于采样操作或基于近邻的查询过程
- Sampling
- Neighbor points querying
然而上述两种操作的计算资源消耗过高,并且这正是为了解决这一问题而设计的一种方法,并且具有类似的优化效果
2. 思想
开发了一种高效的Voxel采样方法,并通过Voxel实现近似计算以支持快速的Points Querying

该基础模块不仅包含了Coverage-aware Grid Query (CAGQ) 数据构建这一部分功能,还包含有图卷积计算机制的实现。
数据构建Coverage-aware Grid Query(CAGQ)

CAGQ基于采样过程以及邻居点查询机制,在数据处理方面同样耗时长。在高效执行这两项操作方面也展现出了显著的能力作为本文的核心创新点。
设定voxeL的空间尺寸为(V_x, V_y, V_z)之后,在此基础上实现对整个点云数据集(x,y,z)的投射过程;在此过程中确保每个voxeL单元内的样本数量均为n_v;从而可计算出每一点对应的voxeL单元索引值Vid(u,v,w) = \lfloor x/V_x, y/V_y, z/V_z \rfloor
设 O_{v} 为非空的 voxels 集合,则需选取其子集 O_{c} \subseteq O_{v} 包含 M 个 voxels。对于任意一个 voxel v_{i} \in O_{v} ,我们将其周边 voxels 的集合定义为 π(v_{i}) ,其中每一个点均被称为 context points。
Sampling:提取体素集合 O_{c} \subseteq O_{v};Points Querying:从Context Points中选择K个点;
图卷积Grid Context Aggregation(GCA)

其实就是各种attention,不是很强的创新。
3. 算法
3.1 Sampling
本文提出了两种基于 voxel 的采样方法
- Random Voxel Sampling (RVS)
每个被占据的voxel等概率被抽中,这种随机采样的方式会使点云分布更均匀。
Coverage-Aware Sampling (CAS)的目标是识别或选择能够覆盖占据的空间区域的center voxels O_c.
CAS使用了一个贪心算法来求解,先随机采样 M 个 voxel,即(RVS)

3.2 Points Querying
本文在 voxel 基础上来快速寻找邻近点,提供了两种方法:
Cube Query 这属于一种近似计算的方法,主要通过在Context Points中随机抽取K个样本来进行最近邻的估算。
K-Nearest Neighbor(Closest Neighbors)
在Context Points中寻找与该点最近的邻居,在全点云中的邻居进行比较时,这种定位方法定位效率更高。
时间复杂度的对比

4 实验结果

分类精度还不错,特意强调他们没有使用voting的方式!!

大量实验展示自己的速度有多快。期待开源代码!
总结
文章在实践上表现出很强的实力,并且所解决的问题与我在此前关注的一致。
值得学习的关键点在于:
- 对采样问题进行了系统性的分析与总结,并提出了若干具体的方式;例如DGCNN将PointNet视为自身的一种特例情况。
- 提出了解决方案的方式简洁且具有高效性;
- 通过大量实验验证表明:运行速度显著提升,并且实验结果显示出较高的准确性。
