现有方法不足:
尽管基于体素的卷积对于特征聚合很有用,但是如果体素包含来自不同类的点,则它们会产生模棱两可或错误的预测。其他方法(例如PointNet和逐点卷积)可能会采用不规则点进行特征学习。但是它们的高内存和计算成本(例如用于邻域搜索和球查询)限制了它们进行大规模点云处理的能力和准确性。
将许多原始点转移到一个体素上,当体素由不同类别的点组成时,这将在对象边界处产生模棱两可或错误的预测(图1(c))。
在训练大规模点云的深度和鲁棒网络方面受到限制(图1(a)),因为它们在邻域搜索,采样和球查询操作中具有很高的内存和计算复杂性。
基于点的卷积的方法学习近似权重函数或内插卷积权重。与可以直接索引具有固定邻域相对位置的内核的体积卷积相比,在这些点状卷积中,随着点的不规则散布,邻居的位置变得不可预测。因此,必须动态计算相邻点的内核。额外的存储成本和矩阵乘法将限制对大规模点云有效网络的训练,并且由于特征聚合不足而在某些对象中可能产生错误的预测(图1(b))。
有两种类型的特征聚合可以将信息从邻域体素传播到当前体素:
体素特征聚合点特征聚合。体素特征聚合:
将常规卷积用于体素特征聚合, 常规的基于体素的卷积也比许多现有的逐点卷积模型更有效。这些模型需要额外的内存和计算来学习或内插点卷积的权重核,以及通过KNN搜索或球查询从不规则点云中定位邻点。
为了减少内存占用并开发深度神经网络以用于大规模点云的分割,使用稀疏子流形卷积层进行基于体素的聚合,以仅在激活的体素上计算卷积(图2(a)的步骤ii)。这种方法有助于最大程度地减少所需的内存。
点特征聚合:
Voxel-MLP(图3(b))类似于在PointNets 和逐点卷积中广泛使用的原始MLP模块(图3(a))进行分割。但是,这些现有模型中的球查询,采样或KNN邻域搜索需要O(n2)时间复杂度来进行不规则点云中的点选择。尽管可以使用k-d树来加快O(nlog(n))复杂度,但为每层构建k-d树也将花费额外的内存和计算量。
在Voxel-MLP中,可以从邻域体素中更有效地直接访问所有邻域点(通过对每个点使用O(1)时间复杂度的哈希映射-总O(n))。Voxel-MLP的感受野由与卷积聚合相同的内核大小控制。例如,将内核大小设置为3时,将从27个邻域体素中选择邻域点。挑战:
体素级聚合仅学习粗粒度体素特征,当体素由不同类别的点组成时,这些特征通常会在对象边界处产生模糊/错误的预测。
解决方案:
设计了内部体素聚合,用于细粒度点级特征聚合和标签预测。
内部体素集合循环后,体素级特征和点特征被融合。然后将它们发送到下一个FusionNet模块/层以进行进一步聚合。
下采样和上采样在神经网络中进行分割至关重要,因为它们有助于捕获不同分辨率和感受野中的金字塔特征。对于常规体素,使用卷积和步长(例如2)的转置卷积进行下采样和上采样。这些类似于现有图像分割模型(例如UNet )。
图4说明了严格遵循体素水平采样的点特征下采样。体素级下采样后,体素的大小将扩大以获得较低分辨率的表示形式。
为了实现点级下采样,通过重新采样以获取新的“ mini-PointNet”来减少每个体素中的点数。
将每个体素的点数减半,同时确保至少一个有效点以避免新的空体素(图4(c))。与慢速迭代最远采样策略[37](对于大型点云有时需要1-2秒)相比,FusionNet中的点采样是在每个体素中独立实现的,并且可以由GPU并行计算,速度快(比最远的采样策略快10–100倍)。基于体素的采样可确保每个有效体素至少具有一个点,并避免出现新的空体素。这对于稀疏点云或区域(例如,距离远的点非常稀疏的LiDAR点云)尤其重要。基于体素的下采样可以保持点级和体素级网络之间的一致性,这是随机采样和最远采样策略无法实现的。对于点向上采样,使用PointNet 中提出的点插值来恢复高分辨率点表示。Architecture:
使用的3D UNet主干网与<<4d spatio-temporal convnets: Minkowski convolutional neural networks>>和<< 3d semantic segmentation with submanifold sparse convolutional networks.>>相同。在每个金字塔级别,都使用一个FusionNet模块来替换卷积层。点级和体素级要素都通过串联紧密连接到先前的图层。
Sparse Implementation:
图5说明了稀疏数据结构中的点和体素的存储。每个体素及其点可以通过哈希映射快速访问。
体素的坐标(包括batch ID)用作哈希图的键,查询坐标直接指向每个体素和“ mini-PointNet”的位置。与密集的常规卷积网络相比,FusionNet充分利用了稀疏性以最大程度地减少其内存需求。PointNets 和逐点卷积网络不同,后者需要较高的计算复杂度才能进行邻域搜索。由于FusionNet利用regular- voxel representation和哈希映射来实现O(1)点/体素索引,因此它更适合于大规模的点云分割任务。