欧式聚类点云分割

功能描述

该算子基于点与点之间的欧氏距离对输入的点云进行聚类分割。它将空间位置上相互靠近的点聚合为独立的簇,如果一个点与某个已存在的簇中任意一点的距离小于设定的“搜索半径”,或者它可以连接到某个在半径内的点,那么这个点就被归入该簇。算子最终输出一个点云列表,列表中的每个点云代表一个分割出来的簇。

使用场景

  • 实例分割 : 将场景中物理上分离的物体分割成独立的点云簇。例如,分割出输送带上的多个零件,或桌子上的多个杯子。

  • 噪声去除 : 通过设置“聚类最少点数”,可以有效过滤掉那些点数过少的、可能是背景噪声或传感器误差产生的点云簇。

  • 点云预处理 : 在进行目标识别、位姿估计等任务前,将原始点云或ROI内的点云分割成代表不同物体的单元。

  • 与“连通域分割”算子功能非常相似,通常都利用空间邻近性进行聚类

输入输出

输入项

点云:输入的待分割的点云或点云列表。

输出项

分割点云:分割后得到的点云簇列表。

参数说明

该算子有两个版本:

  • 欧式聚类点云分割 : 处理不带法线信息的点云。

  • 欧式聚类点云分割(带法向) : 处理带有法线信息的点云。

两者核心功能和参数完全相同,仅处理的点云数据类型不同。

搜索半径

参数说明

定义了在聚类过程中,一个点可以被添加到某个簇的最大距离阈值。这也是查找邻近点时的搜索半径。

调参说明

  • 减小该值 : 会使得聚类条件更严格,只有非常靠近的点才会被分到同一簇,可能导致一个物体被分成多个小簇,或者更容易分离距离很近的物体。

  • 增大该值 : 会使得聚类条件更宽松,距离稍远的点也可能被归为一簇,可能将不同的物体合并。

参数范围

[0, 200],默认值:5,单位:mm

聚类最少点数

参数说明

一个有效的聚类簇必须包含的最小点数。

调参说明

用于过滤掉过小的点云簇。增大此值可以去除更多的小簇(通常被认为是噪声),但如果设置过大,可能会过滤掉尺寸较小的有效物体。

参数范围

[1, 4000000],默认值:100

聚类最多点数

参数说明

一个有效的聚类簇允许包含的最大点数。

调参说明

用于过滤掉过大的点云簇。适用于需要排除背景、地面等超大聚类结果的场景。通常保持默认值(一个很大的数)即可,除非有特殊需求。

参数范围

[1, 4000000],默认值:4000000

是否保留全部结果

参数说明

决定是否输出所有满足大小条件的聚类结果。

调参说明

  • 开启(默认): 保留所有通过最小/最大点数过滤后的聚类簇。

  • 关闭: 只保留点数最多的前 N 个聚类簇,N 由“保留结果数量”参数指定。

保留结果数量

参数说明

当“是否保留全部结果”设置为关闭时生效。指定要保留的点数最多的聚类簇的数量。

调参说明

算子会先按点云数量从大到小对所有分割结果进行排序。此参数设置为 N,则只输出排序后的前 N 个点云簇。例如,设置为 1 表示只输出点数最多的那个簇。

参数范围

[1, 1000],默认值:1

是否排序

参数说明

决定是否对最终输出的点云簇列表按照点云数量从大到小进行排序。

调参说明

  • 开启(默认): 输出的点云列表按点数从多到少排序。

  • 关闭: 输出的点云列表顺序不确定。

如果后续处理依赖于点云簇的大小顺序,应保持此项为开启状态。

使能节点

参数说明

控制该算子是否执行运算。

调参说明

  • 开启(默认):正常运行该算子功能。

  • 关闭:算子不执行任何操作,直接将输入的数据输出。