Cluster Filter(聚类过滤器)

Cluster filter(聚类过滤器)过滤器可以从点云中移除漂浮的点和集聚噪点。

小技巧

如果您在拾取对象时使用了碰撞规避算法,此过滤器会特别有用。假设在一个对象上有一组点,但是这些点在现实中并不存在。机器人可能将这种漂浮的聚集噪点视为真正的障碍物,而不是它可以物理碰撞的东西。这可能导致物体的拾取位姿不理想,甚至无法拾取它。

如何控制聚类过滤器

Enabled

打开/关闭过滤器

MaxNeighborDistance

仍归类为属于同一簇的相邻点之间的最大归一化距离。该过滤器会移除相邻点之间的距离比MaxNeighborDistance更远的聚集的噪点(密度低于此阈值的聚集噪点)。设定值越低,过滤越积极。

MinArea

聚集噪点的面积,以平方毫米为单位。过滤器会移除面积低于此阈值的聚集噪点。增大该参数会导致移除更大的聚集噪点。

对于希望移除的点,它必须属于满足 MaxNeighborDistanceMinArea 要求的聚集噪点。

参数

数值

条件

Enabled

no

如果您的图像中没有漂浮的点、孤立的聚集噪点,或者如果您无法接受增加的处理时间

yes

如果你想移除漂浮的点或孤立的聚集噪点

MaxNeighborDistance

10 - 8.5

稀疏的聚集噪点,适用于大多数场景

8.5 - 5.5

密集的聚集噪点

5.5 - 2

非常密集的聚集噪点,通常由反射产生

MinArea

< 50

适用于离群值过滤器未能移除的聚集噪点

50 - 400

适用于典型大小的聚集噪点

> 400

用于移除通常由反射导致的幽灵平面

移除漂浮的聚集噪点

噪声过滤器离群值过滤器 是几乎总是会用到的基本移除过滤器。这些过滤器与 反射过滤器 (尤其是Local模式)可能无法在不移除很多正常点的情况下移除所有的漂浮点和聚集噪点。这通常是具有挑战性的场景的情况。 聚类过滤器可以移除剩余的错误点,而不会从场景的其余部分移除好的数据。

对离群值过滤器的补充

在下图中,聚类过滤器已关闭,我们可以看到不同大小和密度的漂浮的聚集噪点。

带有浮点和簇的点云示例,在没有移除过滤器的情况下捕获以演示这些伪像。

在左下角的图像中,我们可以看到离群值过滤器在设置为最严格的情况下的表现,会保留一些漂浮的噪点,同时移除了一些正常的点。在右下角的图像中,我们看到聚类过滤器(在本例中使用默认值)是如何移除这些漂浮噪点,同时保留正常的点。

严格的离群值过滤器设置(阈值设置为1毫米);聚类过滤器处于关闭状态 - 聚集的噪点未被移除

启用聚类过滤器(使用默认值)- 聚集的噪点被移除了

Strict Outlier Filter settings (Threshold set to 1 mm); Cluster Filter turned off - Clusters not removed

Cluster Filter (with default values) - Clusters removed

对反射滤波器 - Local模式的补充

反射过滤器 ,尤其是在Local模式下,可能会遗留更多的漂浮的聚集噪点,如左下角的图像所示。在右下角的图像中,我们可以看到使用了聚类过滤器后(在本例中使用默认值),这些漂浮的噪点被移除了。

启用Local模式反射过滤器并关闭聚类过滤器 - 聚集的噪点未被移除

启用Local模式反射过滤器及聚类过滤器(默认值)- 聚集的噪点被移除了

Reflection Filter with Local mode and Cluster Filter turned off - Clusters are not removed

Reflection Filter with Local mode and Cluster Filter turned on (default values) - Clusters removed

移除幽灵面

幽灵面是现实中不存在的虚假点云数据,通常是由物体之间的互相反射或与箱壁的互相反射造成的。这些漂浮的聚集噪点的一端通常与由正常数据组成的点云表面相连。有时可以通过微调聚类过滤器来移除幽灵面。这些伪影通常密度和面积都较大。因此,必须调整较为严格的过滤器设置才能将其移除,但是这可能会导致移除一些正常的数据,包括部分对象或整个(较小的)对象。

警告

在使用聚类过滤器移除幽灵面时,请仔细观察是否移除了任何关键数据。

在下面的示例场景中,由于圆柱体顶部和箱壁之间的反射,圆柱体上方出现了幽灵面。请注意,在彩色图像中,我们可以看到圆柱体在图像顶部区域的箱壁上的反射。

展示幽灵位面伪影的场景。

该幽灵面(左下图)可能被视为机器人拾取物体的障碍物。这些障碍可能导致得出不佳的抓取位姿,甚至根本没有合适的抓取位姿。在右下角的图像中,我们可以看到通过积极地调整聚类过滤器,最终移除了该幽灵面。在此示例中, MaxNeighborDistance 被设置为5.00, MinArea 被设置为1400.00。作为权衡,圆柱体底部的部分数据也被移除了。

聚类过滤器关闭 - 图像中存在幽灵面

聚类过滤器被启用 - 幽灵面被移除

Cluster Filter off - Ghost planes

Cluster Filter on - No ghost planes

如果料箱中仅存在单一类型的物体,那么调整聚类过滤器来移除幽灵面会更加容易。这是因为可以确定点云中需要保留的最小对象特征的区域。然后,可以相应地设置 MinArea

处理时间

警告

使用Intel或AMD GPU时,聚类过滤器会显着增加处理时间。

备注

聚类过滤器在每个3D捕获中将增加以下处理时间:

以毫秒为单位的预期中位数 (±stddev)

过滤器

Intel UHD i5G1

NVIDIA 4070

Intel UHD 770

Low-end [1]

High-end [2]

聚类过滤器

116 (±5) ms

3 (±1) ms

48 (±2) ms

以毫秒为单位的预期中位数 (±stddev)

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [3]

Low-end [4]

High-end [5]

聚类过滤器

113 (±4) ms

244 (±9) ms

9 (±2) ms

以毫秒为单位的预期中位数 (±stddev)

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [6]

Low-end [7]

High-end [8]

聚类过滤器

109 (±3) ms

239 (±2) ms

9 (±0.9) ms

版本历史

SDK

变更

2.9.0

增加了聚类过滤器

2.10.1

Minimum value of the MaxNeighborDistance from Cluster filter is reduced from 4 to 2