Cluster Filter(聚类过滤器)

The Cluster Filter removes floating points and isolated clusters from the point cloud.

小技巧

This filter is especially useful if you use collision avoidance while picking objects. Let’s say there is a cluster of points above an object, but that cluster doesn’t exist in the reality. The robot can interpret such floating clusters as real obstacles instead of something it can physically collide with. That can lead to undesirable picking poses of the object or even the inability to pick it.

如何控制聚类过滤器

Enabled

打开/关闭过滤器

MaxNeighborDistance

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

MinArea

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

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

参数

数值

条件

Enabled

no

If you do not have floating points, isolated clusters, or if you cannot afford the added processing time

yes

If you want to remove floating points or isolated clusters

MaxNeighborDistance

10 - 8.5

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

8.5 - 5.5

密集的聚集噪点

5.5 - 4

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

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

移除幽灵面

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

警告

When using the cluster filter to remove ghost planes, carefully observe whether any critical data is removed.

In the following example scene, a ghost plane above the cylinder appears due to the reflection between the top of the cylinder and the bin wall. Notice that in the color image, we can see the reflection of the cylinder on the top bin wall.

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

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

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

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

Cluster Filter off - Ghost planes

Cluster Filter on - No ghost planes

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

处理时间

警告

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

备注

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

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

过滤器

Zivid One+

Zivid Two

Intel UHD 750

Intel UHD G1

NVIDIA 3070

Intel UHD 750

Intel UHD G1

NVIDIA 3070

High-end [1]

Low-end [2]

High-end [3]

High-end [1]

Low-end [2]

High-end [3]

聚类过滤器

88 (±2) ms

218 (±2) ms

8 (±0.8) ms

94 (±1) ms

222 (±400) ms

8 (±0.9) ms

版本历史

SDK

变更

2.9.0

增加了聚类过滤器