Cluster Filter
The Cluster Filter removes floating points and isolated clusters from the point cloud.
Tip
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.
How to control the Cluster Filter
Enabled
Turn the filter On/Off
MaxNeighborDistance
Maximum normalized distance between neighboring points that are still classified as belonging to the same cluster. The filter removes clusters whose neighboring points are further away than the MaxNeighborDistance (clusters less dense than this threshold). The lower the value, the more aggressive the filtering.
MinArea
Area of the cluster, in square millimeters. The filter removes clusters with an area below this threshold. Increasing this parameter results in removing larger clusters.
For a point to be removed, it must belong to a cluster that meets the MaxNeighborDistance
and the MinArea
requirements.
Parameter |
Value |
Condition |
---|---|---|
|
|
If you do not have floating points, isolated clusters, or if you cannot afford the added processing time |
|
If you want to remove floating points or isolated clusters |
|
|
|
Sparse clusters, works for most scenes |
|
Dense clusters |
|
|
Very dense clusters, normally originated by reflections |
|
|
|
For clusters that the Outlier Filter failed to remove |
|
For clusters of typical size |
|
|
For removing ghost planes, typically caused by reflections |
Removing floating clusters
The Noise Filter and the Outlier Filter are basic removal filters that are almost always used. These filters together with the Reflection Filter (especially the local mode) may not be able to remove all the floating points and clusters without removing too many good points. This is typically the case for challenging scenes. The Cluster filter can remove the remaining erroneous points without removing good data from the rest of the scene.
Complementing the Outlier Filter
In the following image, the Cluster Filter is turned off and we can see collections of floating points in different sizes and densities.
In the bottom left image, we see how the Outlier filter behaves when it’s the most strict possible, keeping some floating points while removing good points. In the bottom right image, we see how the Cluster filter (with default values in this case) removes these floating points while keeping the good points intact.
Strict Outlier Filter settings (Threshold set to 1 mm); Cluster Filter turned off - Clusters not removed |
Cluster Filter (with default values) - Clusters removed |
Complementing the Reflection Filter - Local mode
The Reflection Filter, especially with the Local mode, can leave more groups of points floating; take a look at the bottom left image. In the bottom right image, we can see that these floating points are removed using the Cluster Filter (with default values in this case).
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 |
Removing ghost planes
Ghost planes are false point cloud data that do not exist in reality and usually result from interreflections between the objects or interreflections with the bin wall. One end of these clusters of floating points is typically connected with a point cloud surface comprised of good data. Removing ghost planes is sometimes possible by fine-tuning the Cluster Filter. These artifacts are usually dense and have a large area. Therefore, the filter must be tuned aggressively, which can result in removing some good data, including parts of objects or whole objects.
Warning
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.
This ghost plane (bottom left image) may be interpreted as an obstacle for the robot to pick the object.
Such obstacles can result in getting an undesirable picking pose or even no picking pose at all.
In the bottom right image, we can see that the ghost plane is removed by tuning the Cluster Filter aggressively.
In this example, the MaxNeighborDistance
is set to 5.00 and the MinArea
to 1400.00.
As a trade-off, the bottom part of the cylinder is removed as well.
Cluster Filter off - Ghost planes |
Cluster Filter on - No ghost planes |
Tuning the cluster filter to remove ghost planes is easier if the bin contains a single type of object.
This is because it is possible to determine the area of the smallest object feature in the point cloud that needs to be kept.
Then, the MinArea
can be set accordingly.
Processing time
Warning
When using Intel or AMD GPU, the Cluster Filter can significantly increase the processing time.
Note
Cluster Filter adds the following processing time per 3D capture:
Filter |
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] |
|
Cluster |
88 (±2) ms |
218 (±2) ms |
8 (±0.8) ms |
94 (±1) ms |
222 (±400) ms |
8 (±0.9) ms |
Version History
SDK |
Changes |
---|---|
2.9.0 |
Cluster filter added |