1.CANUPO点云分类
CANUPO插件是一种自动分类点云的简单而有效的方法。它允许用户创建自己的分类器(通过在小样本上训练它们)和/或在点云上一次应用一个分类器,以便将其分成两个子集。它还为每个点输出分类置信度值,以便用户可以快速识别有问题的案例(问题一般出现在边界上)。
分类结果示例如下图所示:
2.获取工作分类器
使用现有的“.prm”文件
分类器存储在独立的“.prm
”文件中。它们可以应用于任何与分类器单位一致的点云数据处理中。例如:如果分类器已经训练过定期采样在0.05~0.3 m之间的比例,那么用于分类的点云也必须是以“米”为单位。
所以任何人都可以与他人分享分类器。共享分类器可以通过以下途径获得:
- 可能适合您需求的现有分类器的作者网页(上面的链接- 请参阅“样本数据,分类器和批处理文件”部分)
- CloudCompare论坛上的专用线程:http://www.cloudcompare.org/forum/viewtopic.php?t=808
3.训练自己的分类器
准备数据
获取一个可以正常使用的分类器也是很容易的。首先,手动分割代表每个类的一些点组(使用CloudCompare的剪刀工具)。对于每个类,应该采用几个典型的点子集,并将它们重新组合在一个云中(使用CloudCompare的Edit> Merge方法)。然后,尝试对每个分类可能遇到的各种案例进行详尽的抽样,还要确保所有子集的点数大致相同(或者至少相对数量代表它们在数据中的出现次数)。
提示:确保两者都具有唯一且清晰的名称,以便在其余过程中区分它们(使用F2可以直接对选定分类进行重命名)。
训练分类器
手动分类完毕即可使用'Plugins> qCANUPO > Train classifier'
功能对数据进行训练。
主要参数及功能如下所示:
在class#1
和class#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.提取分类结果
文章来源:https://www.toymoban.com/news/detail-526928.html
6.相关链接
[1] C A N U P O
[2] CloudCompare forum
[3] OrangeMo0n/canupo文章来源地址https://www.toymoban.com/news/detail-526928.html
到了这里,关于CloudCompare——CANUPO点云分类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!