在分组层中作者提出了3种方案:SSG(single scale grouping)、MSG(multi-scale grouping)多尺度、MRG(multi-resolution grouping)多分辨率。实际上就是采用不同的半径或不同的分辨率进行了多次采样分组。也是为了解决本文中的第三个问题。 SSG:就相当于只有一种半径做了分组采样 MSG:相当于在同分辨率下做了多个半径分...
PointNet中采用TNet来保证点云特征旋转的不变性 ==> PointNet++采用局部相对坐标进行特征提取,剔除了TNet网络 针对稀疏点云导致样本不均匀问题,PointNet未做处理 ==> PointNet++提出多尺度方法MSG和多层级方法MRG来解决样本不均匀问题 对于分割网络来讲,PointNet直接整合global feature和local embedding特征 ==> PointNet...
MSG在每次球查询时使用不同大小的半径,这就是所谓的多尺度multi-scale。对于每个尺度,都对应一个PointNet,也就是说有几个尺度,就有几个不同的PointNet。而在SSG中,只给定了一个尺度大小的半径,因此对所有的邻域只是用一个PointNet进行特征提取。 多尺度的特征提取后,每个尺度得到的特征的channel数是不一样的,但是...
作者在 2D MNIST 数据集和 3D ModelNet40 数据集上进行了实验,分类结果基本达到了 SOTA,而且也验证了 PointNet++ 在不同的点云采样密度下的鲁棒性。下图中 SSG 表示单尺度聚合层(相对于 MSG)。 4.3 场景分割 作者基于 Scannet 框架[3],对比了 3DCNN[4]、PointNet 和 PointNet++ 网络的性能。
在上一节点云处理:基于Paddle2.0实现PointNet++对点云进行分类处理②中,我们一起实现了单尺度PointNet++网络,即PointNet++(SSG)整体网络搭建,并进行训练和测试。 那么在这一节中,我们将会实现PointNet++(MSG)中基础部分的搭建,即PointNetSetAbstractionMsg层的搭建。 在下...
前面介绍的抽象层都只包含单个尺度的分组(single scale grouping,SSG)和特征提取。在PointNet++中,每个抽象层还可以使用多尺度分组(Multi-scale grouping,MSG)、多分辨率分组(Multi-resolution grouping ,MRG),来提取并组合多个局部区域特征。 (1)多尺度分组(Multi-scale grouping,MSG)...
pointnet2_cls_ssg.py和pointnet2_cls_msg.py分别是single-scale-group和multi-scale-group的代码。 核心公共模块 先来看cls和seg公用的核心模块pointnet_sa_module,该函数定义位于./utils/pointnet_util.py pointnet_sa_module (PointNet Set Abstraction Layer) ...
从1024到256个测试点,MSG + DP性能下降不到1%。 此外,与替代品相比,它在几乎所有采样密度上都实现了最佳性能。 PointNet vanilla [20]在密度变化下相当稳健,因为它专注于全局抽象而不是精细细节。 然而,与我们的方法相比,细节的丢失也使其不那么强大。 SSG(在每个级别中使用单一尺度分组的消融PointNet ++)无法推...
我们发现,由于采样密度从均匀点云转移到虚拟扫描场景后,SSG的性能大幅下降。另一方面,MRG网络对于采样密度的转换更加稳健,因为当采样稀疏时,它能够自动切换到描述更加粗粒度的特征。即使在训练数据(具有随机暂弃的均匀点)和非均匀密度的扫描数据之间存在邻域鸿沟,我们的MSG网络也仅仅受到轻微地影响,并且在比较中获得了所...
MSG效果较好,但相对的计算量也较大(经过三次PointNet)。作者在论文中给出了分类实验结果对比图,可以看出多尺度(MSG, MRG)和单一尺度(SSG)相比分类准确率没有什么提升,但当点云很稀疏的时候,使用MSG可以保持很好的鲁棒性。random input dropout(DP)对于鲁棒性提升也很大。 random input dropout(DP)指的是输入的时...