调整过滤器

介绍

在如 调整合适的曝光以获取好的点云 所描述的那样调整好曝光值和图像帧之后,下一步应该调整过滤器了。有关过滤器的更多信息可查看: Processing(处理)设置

Noise filter(噪声过滤器)

The purpose of Noise Filter is to clean up a noisy point cloud.

Removal

The Signal-to-Noise-Ratio (SNR) filter removes points where the SNR of the projected pattern signal is below the specified limit (see 相机捕获中可检测到的光强度). Points with low SNR values will be noisier (e.g. due to ambient light), and the SNR filter can, therefore, be used to preserve only the points that are deemed acceptable.

In some inspection cases, it may be desired to only preserve points with high confidence. In bin-picking scenarios, however, noisier points are typically regarded as better than no points at all. This is because, ultimately, the matching algorithm will decide whether or not the match it found is satisfactory or not.

参数

数值

条件

Enabled

no

If you want to keep all points regardless of their SNR values (rarely)

yes

If you want to control the quality of the point cloud by filtering out the points with low SNR values (usually)

Threshold

1

If you want to maximize the surface coverage but still filter out some points with low confidence, e.g., for Parcel Picking

2-6

If you want to keep only decent quality points, for most applications, e.g., Manufacturing (Bin Picking) and E-commerce (Piece Picking). Use lower threshold values (2-3) to get points in the following scenes: dark parts, strong ambient light, and large distance.

7+

If you want to keep only points with high confidence, e.g., Quality Inspection

提示

SNR threshold value of 3 yields a good tradeoff between discarded points and noise.

备注

Noise Removal (SNR) filter adds close to no additional processing time.

For more information about the SNR value see SNR值.

Repair

This filter repairs the regions of missing data due to noisy points.

数值

条件

Enabled::no

If you require all points in your point cloud to be of high confidence.

Enabled::yes

If you want to maximize the surface coverage.

备注

Noise Repair adds additional processing time. Enabling Noise Repair and Noise Suppression adds the same processing time as enabling only one of them.

Suppression

This filter reduces noise and outliers in the point cloud.

数值

条件

Enabled::no

If you need to distinguish very fine details and thus need to avoid any smoothing effects.

Enabled::yes

If you want to reduce noise and outliers in the point cloud or reduce ripple effects caused by interreflections.

备注

Noise Suppression adds additional processing time. Enabling Noise Suppression and Noise Repair adds the same processing time as enabling only one of them.

Outlier filter(离群值过滤器)

离群值过滤器会移除它认为是相邻像素的小局部区域内的离群值的像素点。 离群值是通过它们和其最近的点有多远来衡量的。 如果距离超过离群值过滤器的阈值,则将该像素识别为离群值,并从最终点云中将其移除。 离群过滤器阈值的单位为毫米,阈值越小,移除的像素越多。 建议从较大的阈值开始调试,然后不断减小阈值,直到对密度/噪声水平满意为止。

值(mm)

Considerations

1-3

适用于Zivid One+ Small的典型值

3-10

适用于Zivid One+ Medium的典型值

5-10

Typical for Zivid 2+ M60

5-20

Typical for Zivid 2 M70

10-20

Typical for Zivid 2+ L110/M130 and Zivid 2 L100

10-30

适用于Zivid One+ Large的典型值

50-100

在以下情况可考虑该设置:

  • 图像散焦严重(查看studio中的2D图像)

  • 深色物体

  • 环境光强度比投影仪强

  • 场景距离远(>2m)

OFF

如果场景具有*极端*噪声,但只想要您想要获得任何能够获取的点,那么可以关闭过滤器。这可能是在非常黑暗的场景中,非常远(> 2m)或户外。

备注

离群值过滤器的单位是毫米

备注

离群值过滤器几乎不会增加额外的处理时间。

Reflection filter(反射过滤器)

反射过滤器将移除Zivid认为受到反射影响而产生的错误的点。这些通常在点云中被视为"幽灵平面"——漂浮在半空中的不应该存在的小点区域。

备注

启用反射过滤器后,每次采集会增加一定的处理时间,详见下文。

建议使用以下设定值:

数值

条件

Enabled::no

如果场景中没有反射现象,并且您想优化采集时间。

Enabled::yes

如果您在检测反光部件或置于光反射性容器内的部件时遇到问题,请打开该过滤器。

禁用和启用了反射过滤器
反射过滤器有两种模式:Global(默认)和Local。

模式

优点

Mode::local

  • 能够移除反射伪像,如幽灵平面和高光(见下图)

  • 可以保留细的和尖锐物体的3D数据(见下图,或阅读 如何在点云中保留细的或者尖锐的对象 了解更多详情)

  • 处理时间(最多快三倍,请参阅下面的global(全局)处理时间)

Mode::global

  • 移除点云中的异常点(见下图)

  • 保留对象的边缘

禁用反射过滤器(幽灵平面)

启用反射过滤器 - Global模式(较小的幽灵平面)

启用反射过滤器 - Local模式(无幽灵平面)

Reflection Filter disabled (ghost plane)

Reflection Filter enabled - Global mode (smaller ghost plane)

Reflection Filter enabled - Local mode (no ghost plane)

反射过滤器 - Global模式(在细窄的对象上没有数据)

反射过滤器 - Local模式(保留了细窄的对象上的数据)

Reflection Filter - Global mode (no data on thin objects)

Reflection Filter - Local mode (data preserved on thin objects)

反射过滤器 - Global模式(在尖锐的物体上没有数据)

反射过滤器 - Local模式(保留了尖锐的对象上的数据)

Reflection Filter - Global mode (no data on pointy objects)

Reflection Filter - Local mode (data preserved on pointy objects)

反射过滤器 - Global模式(更少的离群值)

反射过滤器 - Local模式(更多的离群值)

Reflection Filter - Global mode (less outliers)

Reflection Filter - Local mode (more outliers)

提示

反射滤波器的Local模式可能会留下一些孤立的漂浮的点。这是 集群过滤器 可以弥补的。

备注

反射过滤器(Global mode) 在每次3D捕获中将增加以下处理时间:

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

过滤器

Intel UHD i5G1

NVIDIA 4070

Intel UHD 770

Low-end [1]

High-end [2]

Reflection Global

12 (±4) ms

5 (±1) ms

12 (±1) ms

Reflection Local

10 (±4) ms

2 (±1) ms

8 (±2) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [3]

Low-end [4]

High-end [5]

Reflection Global

22 (±4) ms

34 (±71) ms

15 (±2) ms

Reflection Local

14 (±4) ms

17 (±10) ms

4 (±2) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [6]

Low-end [7]

High-end [8]

Reflection Global

23 (±3) ms

35 (±2) ms

12 (±0.7) ms

Reflection Local

13 (±3) ms

19 (±2) ms

4 (±1) ms

Cluster filter(聚类过滤器)

Cluster filter(聚类过滤器)过滤器可以从点云中移除漂浮的点和集聚噪点。

小技巧

如果您在拾取对象时使用了碰撞规避算法,此过滤器会特别有用。假设在一个对象上有一组点,但是这些点在现实中并不存在。机器人可能将这种漂浮的聚集噪点视为真正的障碍物,而不是它可以物理碰撞的东西。这可能导致物体的拾取位姿不理想,甚至无法拾取它。

如何控制聚类过滤器

Enabled

启用/关闭过滤器

MaxNeighborDistance

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

MinArea

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

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

参数

数值

条件

Enabled

no

如果您的图像中没有漂浮的点、孤立的聚集噪点,或者如果您无法接受增加的处理时间

yes

如果你想移除漂浮的点或孤立的聚集噪点

MaxNeighborDistance

10 - 8.5

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

8.5 - 5.5

密集的聚集噪点

5.5 - 2

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

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

移除幽灵面

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

警告

在使用聚类过滤器移除幽灵面时,请仔细观察是否移除了任何关键数据。

在下面的示例场景中,由于圆柱体顶部和箱壁之间的反射,圆柱体上方出现了幽灵面。请注意,在彩色图像中,我们可以看到圆柱体在图像顶部区域的箱壁上的反射。

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

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

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

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

Cluster Filter off - Ghost planes

Cluster Filter on - No ghost planes

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

警告

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

备注

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

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

过滤器

Intel UHD i5G1

NVIDIA 4070

Intel UHD 770

Low-end [9]

High-end [10]

聚类过滤器

116 (±5) ms

3 (±1) ms

48 (±2) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [11]

Low-end [12]

High-end [13]

聚类过滤器

113 (±4) ms

244 (±9) ms

9 (±2) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [14]

Low-end [15]

High-end [16]

聚类过滤器

109 (±3) ms

239 (±2) ms

9 (±0.9) ms

Gaussian smoothing(高斯平滑)

高斯滤波器会基于3D距离对较小局部区域内的点进行平滑处理。这可用于抑制稀疏噪声、校正异常值以及将点与网格对齐。 Sigma 参数决定了过滤器的平滑程度。Sigma值越高,平滑越积极。请注意,在许多情况下,高斯滤波器可以修正离群值,但较高的Sigma值也会平滑边缘。

数值

条件

<1.0

如果您想保留尽可能多的细节和特征。拍摄小型物体时建议使用该设置(亚厘米级特征)。

1.5

适用于大多数条件和中型尺寸的物体。

2.5-5

如果您关注更平滑和更大的表面,例如平面的平面度。

Gaussian filter OFF

fig_gaussian_off_boxes

fig_gaussian_off_edge

Gaussian filter with sigma=1.5

fig_gaussian_low_boxes

fig_gaussian_low_edge

Gaussian filter with sigma=4.0

fig_gaussian_high_boxes

fig_gaussian_high_edge

备注

高斯过滤器在每次3D捕获中将增加以下处理时间:

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

过滤器

Intel UHD i5G1

NVIDIA 4070

Intel UHD 770

Low-end [17]

High-end [18]

平滑

7 (±4) ms

1 (±1) ms

3 (±1) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [19]

Low-end [20]

High-end [21]

平滑

7 (±4) ms

14 (±10) ms

2 (±2) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [22]

Low-end [23]

High-end [24]

平滑

7 (±3) ms

13 (±2) ms

2 (±1) ms

对比度失真过滤器

对比度失真过滤器可修正和/或移除受相机镜头模糊影响的点。 在点云中,这通常发生在具有高对比度(强镜面反射)的区域以及具有大纹理梯度的区域。关于这类伪像的详细说明,请查看 对比度失真伪像

过滤器参数strength(强度)表示在3D空间中修正一个点的程度,threshold(阈值)表示在移除某个点之前(如果启用了移除模式)的最大距离。 由于强度和移除效果取决于相机的焦点和物体的方向(相对于相机基线),因此建议在调整对比度失真过滤器参数之前先调整曝光设置 Contrast Distortion Filter(对比度失真过滤器) 参数。

警告

如果 strength 值非常高,可能会过度补偿修正。

小技巧

Turning off Contrast Distortion helps to preserve the sharpness of 3D edges.

数值

条件

0.1-0.2

如果对比度失真现象不严重,则仅需要进行少量修正。

0.3-0.5

“几乎总是” ,如果相机对焦良好,但存在对比度失真。只需要进行一些修正。

0.6-0.7

“常见情况”,如果点云受较大的对比度失真影响,可能是相机有一些失焦。

0.8-1.0

“不常见的情况” ,如果有非常严重的对比度失真现象, 这通常表明相机失焦!

备注

对比度失真过滤器在每次3D捕获将增加以下处理时间:

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

过滤器

Intel UHD i5G1

NVIDIA 4070

Intel UHD 770

Low-end [25]

High-end [26]

Contrast Distortion Correction(对比度失真校正)

20 (±4) ms

1 (±1) ms

15 (±1) ms

Contrast Distortion Removal(对比度失真移除)

5 (±4) ms

0 (±1) ms

7 (±1) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [27]

Low-end [28]

High-end [29]

Contrast Distortion Correction(对比度失真校正)

79 (±3) ms

90 (±74) ms

7 (±2) ms

Contrast Distortion Removal(对比度失真移除)

58 (±4) ms

57 (±72) ms

5 (±2) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [30]

Low-end [31]

High-end [32]

Contrast Distortion Correction(对比度失真校正)

77 (±3) ms

91 (±3) ms

7 (±0.9) 毫秒

Contrast Distortion Removal(对比度失真移除)

58 (±2) ms

58 (±2) ms

4 (±0.8) ms

小技巧

如果已启用对比度失真修正过滤器,则对比度失真移除过滤器增加的处理时间可以忽略不计。

在调整对比度失真过滤器之前调整光圈

调整对比度失真过滤器有时不足以消除对比度失真伪像。当彩色图像模糊时,伪像会变得更糟。因此,在调整过滤器之前,通过调整光圈来确保彩色图像清晰对焦是非常重要的。

我们将通过一个示例来演示如何通过调整Aperture(光圈)来消除对比度失真伪像的过程。

下图显示了失焦的彩色图像和带有可见对比度失真伪像的点云。彩色图像模糊,因为光圈使用了较低的f-值 (2.38)。设置的Contrast Distortion strength(对比度失真强度)为0.35。

彩色图像失焦

Color image out of focus

产生对比度失真的点云

Resulting point cloud with contrast distortion

将Aperture(光圈)从2.0更改为8.0,以消除对比度失真伪像,并通过更长的曝光时间来补偿这种变化。得到的结果是一个聚焦的彩色图像和一个没有任何对比度失真伪像的点云,如下图所示。

聚焦的彩色图像

Color image in focus

生成的没有对比度失真的点云

Resulting point cloud without contrast distortion

此示例中使用的点云可供下载以供进一步观察:

Hole Filling(空洞填充)

Hole Filling(空洞填充)过滤器可以填充点云中的缺失点。它会在点云中缺失点周围的圆形邻域中插入被认为是丢失的点。缺失点可能是被其他过滤器移除的,或者一开始就没有重建。

备注

建议在添加空洞填充过滤器之前应用 移除过滤器 。这样可以防止噪点的插值。

Enabled

启用/关闭过滤器

HoleSize

将要填充的孔的相对直径。增加该值会填充更多的点,但需要更多的计算时间。允许填充的最大孔尺寸与成像距离是比例关系,因此我们允许在更远的距离(以毫米为单位)处填充更大的孔。

Strictness

该参数表示考虑是否应填充一个点时的严格程度。更高级别的严格程度将要求缺失点被更多边上的有效点包围,该缺失点才会被填充。增加这个值会填充更少的点,但填充非圆形间隙的可能性较小,例如两条边之间的间隙。

建议使用以下设定值:

参数

数值

条件

Enabled

no

如果您不接受推断出来的数据,或者如果您负担不了额外增加的处理时间。

yes

如果您的算法需要更高的点云密度,而您目前遇到了点云较为稀疏的问题。

HoleSize

0.01

只填充最小的空洞(快速)

0.2

(默认值)在1000毫米距离处以至多约8毫米的近似半径填充空洞 [33]

0.7

在1000毫米距离处填充半径至多约为25毫米的较大空洞 [33] (慢)

Strictness

1

即使在圆形邻域中几乎没有有效点时也可以填充空洞

4

仅填充圆形邻域中被有效点包围的空洞

考虑以下场景,其中有一个装满消费品的箱子:

装有消费品的箱子

在使用消费品(Consumer Goods)类别的快速预设参数时,您将获得下方左侧显示的结果。现在,将其与*默认(default)*和*强(strong)* 空洞填充设置下的结果进行比较。这可能是计算针对所有物体的良好抓取位姿成为可能的原因。

空洞填充过滤器被关闭

空洞填充过滤器被关闭

Hole Filling filter disabled

空洞填充过滤器 0.2(default)

空洞填充过滤器 0.2(default)

Hole Filling filter 0.2 (default)

孔空洞填充过滤器 0.7(strong)

孔空洞填充过滤器 0.7(strong)

Hole Filling 0.7 (strong)

备注

空洞填充过滤器在每个3D捕获中会增加以下处理时间:

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

过滤器

Intel UHD i5G1

NVIDIA 4070

Intel UHD 770

Low-end [34]

High-end [35]

Hole Filling(空洞填充)

65 (±3) ms

9 (±1) ms

40 (±2) 毫秒

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [36]

Low-end [37]

High-end [38]

Hole Filling(空洞填充)

129 (±4) ms

199 (±103) ms

22 (±3) ms

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

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [39]

Low-end [40]

High-end [41]

Hole Filling(空洞填充)

212 (±3) ms

335 (±2) ms

23 (±3) ms

进一步阅读

继续查看 优化彩色图像

版本历史

SDK

变更

2.9.0

添加了Cluster filter(聚类过滤器) 和 Hole Filling filter(空洞填充过滤器)的内容,并根据SDK 2.9.0中引入的新行为更新了Gaussian(高斯过滤器)的内容。