如何处理波纹现象

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.

备注

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

为什么点云中会出现波纹?

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

本文中展示的图像都是来自上方2D图像展示的场景,在该场景中,有一些信封被放置在料箱底部,用于展示从料箱侧壁到料箱底板的互相反射。可以清楚地看到,在2D图像中的信封上有来自料箱侧壁的光反射。

波纹

没有波纹

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.

逐步抑制纹波现象

  1. Use the Phase Engine to capture.

    备注

    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. Hence, if your capture time budget allows it, select these engines to better preserve edges since it does not require the same level of Gaussian smoothing. Note that the Omni Engine applies some smoothing by itself.

  2. 在Zivid Studio中,放大点云中带有波纹的区域。

    • 深度图也可用于观察,方法是将Z范围调整为波纹区域的深度。如果深度限制范围设置得足够小,则可以看到Z分量中的颜色差异。然后可以将鼠标悬停在波纹的极值上,来获取波纹的最小值和最大值之间的差异。

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

    • 要验证波纹是否已被移除或减少,请使用前一点中说明的深度图方法。

  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.

    • 请注意,对比度失真校正过滤器会添加额外的平滑效果,如下面最右边的图所示。通常, 对比度失真伪影 会在高对比度场景中出现,例如反光的镜面金属件。对于这些类型的场景,不应关闭对比度失真校正过滤器,因为它对于保持物体的形状非常重要。对于所有其它可以关闭该过滤器的场景,建议关闭 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.