拆垛 - 远距离成像

备注

本教程使用 Zivid One+ 相机,但相同的原理可以应用于所有其他 Zivid 相机型号。

介绍

在本文中,我们将说明如何在固定安装的方式下使用Zivid One + Large相机在长距离及工作范围内应用适当的成像技术获取良好的数据。拆垛应用是一种典型的远距离成像场景,视觉引导的机器人将卸下堆叠在托盘上的对象。 这些对象可以是相同或混合的SKU (库存单位) ,并且通常是箱体形式的。 在本文中,我们假定对象是混合放置的,包括其大小和颜色,表面反射特性为几乎没有光泽到中等光泽。 接下来,我们将对假设的规格进行详细表述。

标准拆垛场景

为了说明本文描述的大多数过程和技术,我们将使用下图所示的场景。

拆垛场景

此场景中对象的占地面积大约为 \(1200 \times 1200 \text{ mm}^2\)。由混合的箱子组成,包括具有光泽表面的黑色和白色箱子,普通的纸板箱,用塑料薄膜包裹的箱子,印有商标的箱子和表面粘贴了胶带的箱子。 在我们的示例中,相机的位置应使其与对象中心大致对齐。 但是我们始终建议您将Zivid相机倾斜一定角度,这有助于避免直接反射和相关的伪像,并有助于减小采集所需的动态范围。 相关信息请查看我们关于 camera positioning 的一般性建议。

规格

参数

规格/要求

托盘面积(视野)

\(\leq 1200 \times 1200 \text{ mm}^2\)

托盘高度(工作距离/工作范围)

\(\leq 2000 \text{ mm}\)

对象体积

\(\geq 50 \times 50 \times 50 \text{ mm}^3\)

对象颜色

任何(包括白色和黑色)

物体镜面反射特性

几乎没有光泽到中等光泽(非金属或玻璃材质)

成像时间预算

\(\leq 2.5 \text{ s}\)

相机安装

我们假定Zivid相机将安装在固定位置拍摄整个工作空间。 为了能够对面积为 \(1200 \\times 1200 \\text{ mm}^2\) 的正方形区域进行成像,需要在其上方2.75 m处安装Zivid One + Large相机。您可以使用我们的在线距离(或 FOV)计算器来计算您的应用所需的高度,该计算器可在此处找到: 计算FOV和成像距离。最大堆叠高度设置为 2 米。在此示例中,考虑到所需的整个工作范围(堆放在托盘上的物体的总高度),需要将Zivid相机安装在4.75 m的高度上。这意味着到底层的距离约为4.5m,超出了Zivid One+ Large相机的推荐工作范围。因此,需要格外注意以确保输出点云的质量足够好。

远距离工作的影响

空间分辨率和深度噪声

请务必注意Zivid相机的空间分辨率和噪声水平会随着拍照距离的增加而增加。 在我们假设的示例中,托盘顶部的空间分辨率约为1毫米,而底部的空间分辨率约为1.8毫米。 这意味着底层区域的分辨率几乎是顶层区域的一半,而且噪声将是顶层的5-8倍。 这会导致两个潜在后果:空间分辨率可能会限制使用Zivid的2.3MP传感器时区分紧密堆叠的对象的能力;并且还可能需要姿态评估算法,该算法应表现出对噪声不敏感的更高水平。

焦深

Zivid One + Large相机的焦点在2m的位置,因此从远距离捕获图像的另一个潜在挑战是图像可能会失焦,这将对点云质量产生一定的影响。 通过使用足够小的光圈值,我们可以确保图像获得可接受的聚焦。 在我们对距离最大约4.5 m的物体进行成像的示例中,建议使用小于3.4的f-值。 您可以使用我们 的 Depth of Focus Calculator 来为您的应用计算推荐的最大f-值。 “可接受的模糊半径 (像素) “的合适设定值为1.5。

环境光

我们讨论的最后一项是:在较大距离下拍照,对环境光的敏感性会增加。 请注意,环境光(比如仓库顶层的照明光线)发出的光线会与Zivid相机投射的光线混合。 由于Zivid相机采用的结构光技术依赖于能够看到发射光,因此环境光将直接影响点云中的噪声情况。您可以在此处阅读更多有关环境光的影响的信息: 处理强环境光

最好的做法是尽可能地控制和消除环境光。 建议始终考虑关闭灯光的可能性,或者在某些情况下甚至需要覆盖3D传感器的工作区域以遮挡环境光。这是一个备受争议和敏感的话题,但我们仍强烈建议与客户协商控制环境照明的可能性。

调整远距离成像的相机设置

在本节中,我们将:

  • 提供一组适合介绍中描述的场景的相机设置。

  • 看看各种相机设置如何影响点云。

  • 看看我们是如何设置的。

  • 建立一些成像原理和技术。

曝光设置

下表展示了该应用的曝光设置。它们在动态范围和信噪比之间实现了很好的平衡,同时可以满足在高性能计算机上运行时的时序要求。 这将增加从相机接收到高质量点云的可能性。

Acquisition #

Exposure Time (曝光时间)

Aperture (f-number) (光圈(f-值))

Brightness (亮度)

Gain (获得)

说明

1

40 000

5.66

1.8

1.0

高光采集旨在覆盖白色/明亮的物体,例如透明/反射的薄膜和包装纸。

2

40 000

4.0

1.8

2.0

中间色调采集旨在覆盖场景的大部分区域。

3

40 000

2.8

1.8

4.0

低光采集旨在在远距离成像时覆盖特别暗的物体

4

40 000

4.0

1.8

2.0

重复acquisition #2 以抑制噪声并提高点云质量

5

40 000

5.66

1.8

1.0

重复acquisition #1 以抑制噪声并提高点云质量

下面我们将介绍进行这些设置应用的技术和原理。

  • Zivid的HDR算法具有固有噪声抑制效果,通过多次采集来捕获点云。 因此,建议在给定的时间预算内使用尽可能多的采集次数,以实现最佳的噪声性能。 在我们的应用中,我们将受益于复制相同的采集项(通常是中间色区和/或低光)进行图像采集,而不是进一步扩大动态范围。 对于我们的应用,通常使用2-3次采集即可达到可接受的动态范围。 如果在这2-3次采集之外还有更多的拍照时间可用,我们将通过尽可能多地复制这些采集项来进一步提高点云质量。

    下图显示了应用此HDR技术的效果。最左边的点云通过单次采集捕获。使用2次采集的HDR捕获第了二个点云。第三个是则是使用了5次采集的HDR捕获的。最右边的点云是使用了8次采集的HDR捕获的。

    在点云上显示HDR的效果

    下表说明了使用此噪声抑制技术的HDR集的示例(上图中右侧的点云):

    Acquisition #

    Exposure Time (曝光时间)

    Aperture (f-number) (光圈(f-值))

    Brightness (亮度)

    Gain (获得)

    Stops

    1

    40 000

    5.66

    1.8

    1.0

    0(标准化)

    2(重复采集#1)

    40 000

    5.66

    1.8

    1.0

    0(标准化)

    3(重复采集#1)

    40 000

    5.66

    1.8

    1.0

    0(标准化)

    4

    40 000

    4.0

    1.8

    2.0

    +2

    5(重复采集#4)

    40 000

    4.0

    1.8

    2.0

    +2

    6(重复采集#4)

    40 000

    4.0

    1.8

    2.0

    +2

    7(重复采集#4)

    40 000

    4.0

    1.8

    2.0

    +2

    8

    40 000

    2.8

    1.8

    4.0

    +4

  • Exposure Time(曝光时间) - 如果在箱子表面观察到波纹图案,则说明存在使用交流电源的光源导致的干扰。 可以通过关闭附近的光源来确认。 如果您的电网频率为50 Hz,请使用10000 us的倍数作为曝光时间,如果您的电网频率为60 Hz,请使用8333 us的倍数。

  • Projector Brightness(投影仪亮度) - 通过将投影仪的亮度值设置到最大 (1.8) 来增加信号强度,这样可以提高SNR,从而减少环境光的负面影响。

  • Aperture(光圈) - 随着f-值的减小, depth of focus 变窄。这意味着您需要找到f-值的下限值,以使箱子保持在焦点深度内,请查看 Depth of Focus Calculator。 例如,对于f-值4.27,如果设置的可接受的模糊半径为1像素,则景深范围为1.4到4m的工作距离,可以完全覆盖所有箱子。

    下面是使用不同光圈设置拍摄的两张图像的比较。第一张图像是用非常低的f-值拍摄的,图像很模糊。第二张图像是使用了可保持箱子处于焦深范围内的f-值拍摄的。当图像散焦时,伪像更加明显,因此噪声更严重。

    失焦的拆垛场景 正常聚焦的拆垛场景

过滤器设置

我们将使用以下过滤器设置:

过滤器

过滤器设定值

说明

Hole Repair(空洞修复)

Enabled

默认值( HoleSize=0.2Strictness=2 )将填充直径约为20mm @ 2750mm和32mm @ 4500mm的空洞。

Noise (噪声过滤器)

7.0

这些值使相关点云的密度在整个工作范围内保持一致。

Outlier (离群值过滤器)

75

Gaussian (高斯平滑)

2.5

在远距离成像时,此参数值将执行噪声平均化。

Reflection (反射过滤器)

Enabled

并非严格必要,但是我们在此应用中将其用于应对反射的预防措施。

我们建议您也尝试在应用中禁用它以节省捕获时间。

下面我们将介绍进行这些设置应用的技术和原理。

  • Gaussian Smoothing(高斯平滑)

    使用此过滤器可以抑制噪声并将点与网格对齐。对于本文中的应用而言,为了估计物体的拾取/抓取位置,在盒子上获得光滑的表面可能比获得准确的点更为重要。高斯过滤器也应该有助于计算法线。远距离成像很可能需要使用高斯过滤器。

    下图显示了应用高斯滤波器的效果,强度(或 sigma)从左到右增加。

    高斯过滤器对点云的影响
  • Outlier Filter(离群值过滤器)

    由于我们是在很远的距离成像,因此我们需要增大此阈值以保留尽可能多的点。 在我们的示例中,我们将使用75mm的离群值阈值。 相对于25毫米的离群值,75mm的离群值意味着箱子上和场景中的其它地方会产生更多的噪点。 但是这可以通过使用诸如噪声过滤器和高斯过滤器来处理。

    下图展示了在约4.5m处使用两个不同的离群值阈值拍摄的同一场景的两个点云的深度图。 左图使用的离群值阈值为25mm, 右图为75mm。我们可以看到,使用了25 mm的离群值阈值的点云更加稀疏,左上方的箱子尤为明显。

    离群值过滤器对点云的影响
  • Noise Filter(噪声过滤器)

    建议设置较小的阈值以获得尽可能多的点。尽管环境光对点云中噪声的影响随成像距离增大而增多,但这仍然是有必要的。 使用较低的SNR值将确保获得所有可能的点,尤其对于深色/黑色物体。 通过降低阈值重新获取的图像会有更多噪声,但是可以使用高斯过滤器和上述的HDR的固有噪声抑制效果对此进行补偿。 当对具有漫反射和明亮表面的对象(例如没有透明胶带或包装薄膜的白色或纸板箱)进行成像时,可以使用较高的SNR值(例如SNR=10)。 在我们假定的应用中,我们将SNR值设置为7来获取有关黑色物体的更多数据。

    下图展示了降低噪声阈值获取更多点的效果。左侧图像使用的噪声阈值为14,中间图像使用的噪声阈值为10,右侧图像使用的噪声阈值为7。 可以看出,最右边的点云明显更密集,尤其是在有黑色箱子的区域。

    噪声过滤器对点云的影响
  • Hole Repair Filter(空洞修复过滤器)

    仅当您的算法需要非常密集的点云时才需要使用此过滤器。请注意,它会在低端硬件上增加大量的处理时间。

    在上面的截图中,你可以看到一些黑点。这些黑点代表可以用 “空洞修复” 过滤器填充的洞。

结果

当我们使用以上相机设置时,我们发现能够对场景中所有的混合对象进行成像,并获得良好的噪声表现。 下面是采用建议的设置和配置在最近距离和最远距离拍摄的两张点云图像。

从2.75m距离成像的点云

从4.5m距离成像的点云

每个采集项的作用

下方的图片展示了3个单独的采集项设置,以及它们如何对2D图像中所标注的场景做出贡献。

显示不同采集的贡献

我们可以看到,低光采集(具有最高的曝光值)清楚地照亮了深色区域。但同时许多区域变得过饱和,因此需要通过中间色调采集来捕获。中间色调采集是最重要的采集项,因为它可以显示我们的目标的点云的大部分区域。高光采集有助于从诸如胶带等具有很多反射的区域中获取数据。

其他注意事项

裁剪点云

为了不在工作区域之外的点的处理上上浪费算力,我们建议您裁剪点云。除了太近或太远的裁剪点外,裁剪还可以大致基于托盘相对于 Zivid 相机的位置。例如。动态更改托盘上每一层的深度公差。

手臂安装

如果在建议的工作范围内使用Zivid相机,Zivid相机总能保持更好的性能和对环境光的适应性。 其结果是能在在较短的时间内获取有更大密度和更好质量的点云。 在本文的示例中,我们使用了大约2.5秒的时间来获取点云,而在手臂安装方式配置下,采集图像通常仅需要0.3到1秒。 这意味着在拆垛应用中固定安装和手臂安装实现的循环时间是非常接近的。 手臂安装的另一个好处是灵活度更高,并且地面覆盖范围更大,因为同一台相机可以用于多个工作站的拍摄。

总结

在本文中,我们学习了一种在建议的工作范围之外使用Zivid相机时以低噪声代价捕获高密度点云的方法。通过应用平均和过滤技术,我们能够揭示同一场景中的各种对象。即使在最大距离为4.5m的情况下,我们也可以获取具有低噪声和其它伪像的同一场景中的各种对象。