How to deal with ripples

The Gaussian Smoothing Filter and Noise Suppression Filter can help in removing ripples because they improve absolute noise in the point cloud and suppress more systematic noise, like ripples.

Note

To suppress ripples sustainably, Sigma is in most scenarios set higher than what is often used with the Gaussian filter.

Why can ripples occur in the point cloud?

Ripples or waves in the point cloud occur due to interreflections. An example of ripples can be seen below where the ripples vary in their shape, frequency and amplitude. Hence, this type of point cloud artifact is more systematic in its behavior than other types of noise. Ripples are often challenging for use cases using shiny bins because interreflections from the outer bin wall onto the bin floor easily occur. For the same reason, it can also make it difficult to detect objects within the bin because the objects may be deformed by ripples. This can be an issue for captures taken with the Phase Engine since it is not as resilient against reflections as the Stripe Engine or Omni Engine. However, for strict time budgets, the Phase Engine is often preferred due to its speed.

../_images/ripple-suppression-shiny-bin.png

The images shown in this article are based on the scenario given in the above 2D image where interreflections from the outer bin wall onto the bin floor are emphasized by placing envelopes on the bin floor. It is clearly seen that there are light reflections from the bin wall on the envelopes in the 2D image.

ripples

no_ripples

For very shiny bins, ripples often occur due to interreflections from the outer bin wall onto the bin floor and objects.

The ripples on the bin floor are smoothed out with the Gaussian filter. A sigma value of 2 is applied in this scenario.

Ripple suppression step by step

  1. Use the Phase Engine to capture.

    Note

    For captures taken with the Stripe Engine or Omni Engine, the ripple effect is minimal and it should therefore not be necessary to suppress ripples. If your capture time budget allows it, select the Stripe engine to better preserve edges since it does not require the same level of Gaussian smoothing as the Phase engine. Note that the Omni Engine applies some smoothing by itself. If you still have the ripples with these engines, enable Noise Filter Suppression.

  2. In Zivid Studio, zoom in on the areas in the point cloud with ripples.

    • The depth map can also be used for this by adjusting the Z-range to the depth of the areas where there are ripples. Color differences in the Z-component will then be seen if the depth limits are set tightly enough. It is then possible to hover over the extrema of the ripples to get an indication of the difference between the minima and the maxima of the ripples.

  3. Enable Noise Filter Suppression and check whether the ripples are removed or reduced like shown in the above figure.

    • To verify that the ripples are either removed or reduced, use the depth map as explained in the former point.

  4. If not sufficient, increase the Gaussian Filter sigma until the ripples are either removed or reduced.

  5. Finally, it is essential to evaluate how the filtering has impacted the edges and shapes in the scene. The figures below show how these features are affected by smoothing for the given scenario.

    • Are the objects intact enough for the algorithms that your application is running to be able to determine valid pick poses? For instance, for CAD-based matching, this is an especially important topic. Hence, in some scenarios, you must compromise between allowing some ripple effects to keep the object shapes and edges intact. For such scenarios, decrease sigma or disable Suppression until a tradeoff is found.

    • Note that the contrast distortion correction filter adds additional smoothing as shown in the rightmost figure below. Typically, contrast distortion artifacts are encountered for high-contrast scenes, such as for shiny metal cylinders. For these types of scenes, the contrast distortion correction filter should not be turned off since it is important for maintaining cylindrical shape. For all other scenarios where your scene allows it, it is recommended to turn off the Contrast Distortion Filter.

edge

edge_gaussian

edge_contrast_dist

An example of an edge where there are data points on both the upper surface and adjacent surfaces.

This type of edge is smoothed when the Gaussian filter is used for ripple suppression.

The edge is more smoothed when the Gaussian filter and the contrast distortion filter are combined.

edge_2

edge_2_gaussian

An example of an edge where there are only data points on the top surface due to its position relative to the projector.

This type of edge is minimally smoothed when the Gaussian filter is used for ripple suppression.