如何处理波纹现象
高斯平滑过滤器 可以帮助消除波纹现象,因为它可以改善点云中的绝对噪声并抑制更加系统性的噪声,例如波纹现象。
备注
为了可持续地抑制波纹现象,在大部分场景中, Sigma 需要设置为比常用的设置值更高的数值。
为什么点云中会出现波纹?
由于互相反射,点云中会出现波纹或波浪现象。您可以在下面看到一个波纹现象的示例,其中波纹的形状、频率和振幅各不相同。因此,这种类型的点云伪影在其行为上比其他类型的噪声更具系统性。对于使用反光料箱的用例,波纹现象通常都是具有挑战性的问题,因为从料箱侧壁到料箱底板的相互反射很容易发生。出于同样的原因,它也会使检测料箱内的物体变得困难,因为物体可能会因波纹现象而发生变形。使用phase engine捕获可能碰到此类问题,因为它不像stripe engine那样具有更强的抵抗反光干扰的性能。然而,对于严格的时间预算要求的应用,由于phase engine的速度非常快,通常是首选的视觉引擎。
本文中展示的图像都是来自上方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. |
逐步抑制纹波现象
使用 Phase Engine 进行捕获。
备注
对于使用 Stripe Engine 拍摄的照片,其中的波纹效应很轻微,所以没有必要抑制波纹。因此,如果您的捕获时间预算允许,请选择stripe engine以更好地保留边缘,因为它不需要相同级别的高斯平滑。
在Zivid Studio中,放大点云中带有波纹的区域。
深度图也可用于观察,方法是将Z范围调整为波纹区域的深度。如果深度限制范围设置得足够小,则可以看到Z分量中的颜色差异。然后可以将鼠标悬停在波纹的极值上,来获取波纹的最小值和最大值之间的差异。
增大
sigma
直到波纹被移除或减少,如上图所示。要验证波纹是否已被移除或减少,请使用前一点中说明的深度图方法。
最后,必须评估高斯过滤器会如何影响场景中的边缘和形状。下图显示了给定场景的平滑如何影响这些特征。
对象的特征是否足够完整以使得您的应用正在运行的算法能够确定有效的拾取位姿?例如,对于基于CAD的匹配算法,这是一个特别重要的主题。因此,在某些情况下,您必须在允许一些波纹效应存在与保持对象形状和边缘的完整性之间进行折衷。对于这种情况,您可以减小
sigma
直到找到平衡。请注意,对比度失真校正过滤器会添加额外的平滑效果,如下面最右边的图所示。通常, 对比度失真伪影 会在高对比度场景中出现,例如反光的镜面金属件。对于这些类型的场景,不应关闭对比度失真校正过滤器,因为它对于保持物体的形状非常重要。对于所有其它可以关闭该过滤器的场景,建议关闭 Contrast Distortion Filter(对比度失真过滤器) 。
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. |
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. |