CloudCompare——CANUPO点云分类

1.CANUPO点云分类

  CANUPO插件是一种自动分类点云的简单而有效的方法。它允许用户创建自己的分类器(通过在小样本上训练它们)和/或在点云上一次应用一个分类器,以便将其分成两个子集。它还为每个点输出分类置信度值,以便用户可以快速识别有问题的案例(问题一般出现在边界上)。
在这里插入图片描述
分类结果示例如下图所示:
在这里插入图片描述

2.获取工作分类器

使用现有的“.prm”文件
  分类器存储在独立的“.prm”文件中。它们可以应用于任何与分类器单位一致的点云数据处理中。例如:如果分类器已经训练过定期采样在0.05~0.3 m之间的比例,那么用于分类的点云也必须是以“米”为单位。
  所以任何人都可以与他人分享分类器。共享分类器可以通过以下途径获得:

3.训练自己的分类器

准备数据
  获取一个可以正常使用的分类器也是很容易的。首先,手动分割代表每个类的一些点组(使用CloudCompare的剪刀工具)。对于每个类,应该采用几个典型的点子集,并将它们重新组合在一个云中(使用CloudCompare的Edit> Merge方法)。然后,尝试对每个分类可能遇到的各种案例进行详尽的抽样,还要确保所有子集的点数大致相同(或者至少相对数量代表它们在数据中的出现次数)。
在这里插入图片描述

提示:确保两者都具有唯一且清晰的名称,以便在其余过程中区分它们(使用F2可以直接对选定分类进行重命名)。

训练分类器
  手动分类完毕即可使用'Plugins> qCANUPO > Train classifier'功能对数据进行训练。
在这里插入图片描述

主要参数及功能如下所示:
在这里插入图片描述
  在class#1class#2组合框中选择正确的点云。然后输入希望用于多尺度描述符的比例范围(有关如何选择正确值的更多信息,参阅canupo原教程和文章)。

  • ramp方法:缩放值将在间隔内均匀采样
  • list方法:自定义缩放列表方法,自定义参数由空格字符分隔,例如:“0.05 0.1 0.2 0.5 1.0”。

注意:设置的比例越多,结果可能越具有辨别力,但计算时间也越长(特别是最大比例相对于点云密度较大时)。

  还可以选择在对话框的下半部分设置更高级的参数:

  • Use original cloud for descriptors:计算的描述符的类型(目前只有“Dimensionality”是可用的,该类型由Brodu和Lague在CANUPO的原始论文中提出)
  • Show classifier behavior on:从输入点云中随机提取的核心点的最大数量(在大多数情况下,10000或20000个就绰绰有余)
  • 可以指定使用原始点云(不是分段的云)来计算描述符(根据其大小,计算时间会更长一些,但可以在边界上提供更好的结果)
  • 最终可以指定另一个用于显示分类器行为的点云(见下文)

  完成以上准备工作之后,即可单击“确定”按钮开始培训。插件将开始计算每个点云上的描述符,然后尝试在自定义2D空间中找到最佳分类边界。
  分类器行为通过将分类空间中的所有描述符投影到其间(作为品红色线)来表示。如果已设置自定义云以显示分类器行为,则其所有描述符将以灰色表示。否则,对应于第一类的描述符将以蓝色显示,而其他描述符将以红色显示。
在这里插入图片描述
上述界面中可以进行以下操作:

  • 可以减少用于训练分类器的比例数(默认情况下,首先删除最大比例)。这使您可以调整分类器,以便尽可能使用较小的比例(具有最小的比例半径,以便最小化描述符的计算时间),同时保持足够的区分行为。
  • 也可以编辑边界位置。可以移动边界线的顶点(右键单击+按住按钮);可以添加新的顶点(通过单击任意位置- 在这种情况下,顶点将被添加到最近的线的末端- 或者通过在线上精确点击- 在这种情况下,将在鼠标光标附近的线上创建新的顶点);顶点可以被删除(左键单击- 只有在线条有多于2个顶点时才考虑)。通过单击“重置边界”按钮,可以随时将边界重置为其原始状态。

准备好后,将分类器保存在.prm文件中。该文件将用作“Classify”方法的输入(见下文)。

4.在点云上应用分类器

  一旦有了有效的分类器文件(见上文),就可以在任何点云上应用它(点云的单位需要与分类器一致- 见上文)。
选择要分类的点云,并调用插件的“分类”方法((‘Plugins > qCANUPO > Classify’)。
在这里插入图片描述
在这里插入图片描述
  首先加载分类器文件(文件字段旁边有“…”按钮)。

在这里插入图片描述

  然后选择应该进行计算的“核心点”:对于这样的过程使用云的所有点并不总是必要的(此外它可能很长)。因此,特别是对于第一次尝试,您可以通过对原始云进行二次采样或通过提供自己的核心点(例如输入点云的栅格化版本)来使用更少的点。可以直接打开由Nicolas Brodu开发的原始CANUPO插件生成的“.msc”文件。最终,无论对核心点做出何种选择,所有点都将被分类。给定核心点的分类结果传播到其最近的邻居。因此,使用核心点而不是整个云可能只是在边界上不太准确。
在这里插入图片描述

注意:插件最终在输入点云上生成一个额外的标量字段,其分类为“confidence”。

5.根据分类标签提取点云

  1.首先激活CANUPO分类字段
在这里插入图片描述
  2.然后使用Filter By Value功能提取对应分类标签的点云
在这里插入图片描述

  3.色带条上显示的标签字段是小数的形式
在这里插入图片描述
  4.但实际保存在点云中的字段是浮点类型的整数
在这里插入图片描述
  5.因此,在使用Filter By Value功能时,输入标签范围的都输入待提取标签的整数部分即可,如下图所示,提取标签为6的分类块。
在这里插入图片描述

  6.提取分类结果
在这里插入图片描述

6.相关链接

[1] C A N U P O
[2] CloudCompare forum
[3] OrangeMo0n/canupo

猜你喜欢

转载自blog.csdn.net/qq_36686437/article/details/131497478