🟠 按轴向聚类

功能描述

该算子按照指定方向(如高度方向)对点云进行分组。提供两种分组方式:

K-Means方式:只考虑点在指定方向上的位置值进行分组,将这个三维问题简化为一维处理。

DBSCAN方式:在考虑指定方向的同时,还会保持点云的三维空间结构信息,确保分组结果在空间上更合理。

使用场景

适合处理沿特定方向分层、堆叠或排列的物体。

  • 分层物体分割:完美适用于分割货架上不同层级的物品、托盘中堆叠的工件或任何按层分布的场景。此时,通常将“聚类轴”设置为垂直方向(如Z轴)。

  • 阵列物体分离:当多个物体沿一条直线排列时,可以将“聚类轴”设为该直线的方向,从而将每个物体分离出来。

  • 剔除特定区域:通过设定轴向和排序,可以方便地保留或剔除最高/最低、最左/最右的物体。

输入输出

输入项

场景点云:输入的待进行轴向聚类的点云或点云列表。

输出项

聚类后点云:返回根据指定轴向聚类后的点云簇列表。

参数说明

该算子有两个版本:

  • 按轴向聚类:处理不带法向信息的点云。

  • 按轴向聚类(带法向):处理带有法向信息的点云。

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

聚类方法

参数说明

选择聚类算法:

  • K均值聚类:需要预先指定期望分割出的聚类数量,强制将点云分成指定数量的簇。

  • 密度聚类:无需预设聚类数量,根据点沿轴向的密度自动寻找簇。

调参说明

  • K均值聚类:适用于明确知道目标层数或堆叠数量的场景。

  • 密度聚类:适用于层数或数量未知,但层间有明显间隙的场景。

K均值聚类特定参数

聚类数量

参数说明

指定期望得到的聚类簇的确切数量。

参数范围

[1,500],默认值:3

迭代次数

参数说明

算法最大迭代次数,迭代次数越大,效果可能越好,但是耗时也会增加。

参数范围

[1,5000],默认值:10

批数量

参数说明

单次迭代中使用的样本数量,增大此值可能会在数据量大时提升速度,但会增加内存消耗。

参数范围

[1,5000],默认值:10

密度聚类特定参数

搜索半径

参数说明

设置沿“聚类轴”方向的搜索距离,如果两个点在轴向上的投影距离小于此值,则可能被归为一类。

调参说明

需要根据层间或物体间的实际轴向距离来设置。如果设置得太大,可能会把不同的层合并;如果太小,一个层内部可能被错误地分割。

参数范围

[1,5000],默认值:5

密度条件

参数说明

在“搜索半径”定义的轴向距离内,至少需要有多少个点,才认为该区域是一个稠密的“核心区域”。

调参说明

用于区分有效点云层和稀疏的噪声,增大此值会使聚类条件更严格,有助于滤除噪声。

参数范围

[1,5000],默认值:100

聚类轴

参数说明

定义一个三维向量[x,y,z],作为进行聚类的方向基准。

调参说明

设置期望分层的方向。

参数范围

[0,0,1]

聚类最少点数

参数说明

后处理筛选条件,聚类完成后,点数少于此值的簇都将会被过滤。

调参说明

适用于过滤掉那些由少量点组成的、无意义的小噪声簇,适当提高此值来确保输出的是有意义的聚类结果。

参数范围

[1,4000000],默认值:100

聚类最多点数

参数说明

后处理筛选条件,聚类完成后,点数多于此值的簇都将会被过滤。

调参说明

适用于需要排除某个非常大的背景或支撑面的场景。例如,如果想忽略掉桌面,只分析桌面上的小物体,可以设置一个上限来过滤掉代表桌面的那个最大的点云簇。

参数范围

[1,4000000],默认值:4000000

排序顺序

参数说明

设定输出的点云簇列表的排序规则。

调参说明

算子会计算每个簇的中心点在“聚类轴”上的位置,然后根据该位置进行排序。

“由小到大”指沿着聚类轴负方向到正方向排序,反之沿着聚类轴正方向到负方向排序。

保留全部结果

参数说明

控制对于输入的每一块点云,是输出其全部分割结果,还是只保留部分。

调参说明

开启(True):默认选项,保留所有找到的、且满足点数限制的簇。

关闭(False):将只保留由“保留结果数量”参数指定的前N个最大的簇。

保留结果数量

参数说明

设置输出的点云数量。

调参说明

对输入的每块点云,将分割结果按点云数量从大到小进行排序,保留前几个点云,例如设置为1表示只保留最大的结果,设置为2表示保留前2个结果,设置为3表示保留前3个结果,以此类推。

参数范围

[1,1000],默认值:1

使能节点

参数说明

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

调参说明

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

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