如何处理光晕问题

问题

正如 在 光晕 - 点云中的亮点 中讨论的那样,光晕是当来自一个点或区域的极强光照射到成像传感器并导致过饱和时产生的一种效果。在本文中,我们将讨论如何避免场景中的光晕。

潜在的解决方案

有多种方法可以处理光晕问题。本教程中介绍的方法包括:更改背景,更改相机的安装位置和方向,使用HDR,使用色彩模式或进行单独的2D捕获。

更改背景

如果背景是泛光源,请将背景材质更改为漫射性能强和光吸收性更强的材质 (材料的光学特性)。

白色背景产生光晕现象的场景

不会产生光晕现象的黑色背景的相同场景

Scene with white background with blooming

Same scene with black background and effect from blooming removed from the point cloud

调整相机角度

改变相机的位置和方向是一种简单高效的处理光晕的方法。最好将相机偏移并倾斜,以使投影仪和其他光源不会直接反射到相机中。就像下面右侧的图所显示的那样。

定位相机以避免光晕

只需倾斜相机,就可以恢复在过饱和区域丢失的数据,如上图右侧所示。下面的左图显示了当相机垂直于表面安装时拍摄的点云,而右图显示了稍微倾斜拍摄的场景。

在 Zivid 点云中开花以及如何修复它

一个简单的经验法则是安装相机时,调整相机位置和角度以使目标区域位于相机的前方,如下图所示:

根据感兴趣区域定位相机以避免光晕

HDR捕获

通过添加一个或多个3D采集项来覆盖光晕的高光,使用多次采集3D HDR来捕获图像。请记住,这是以增加捕获时间为代价的。

有光晕现象的场景(单次采集)

消除了光晕效果的相同场景(多次采集HDR)

Scene with blooming (single acquisition)

Same scene with effect from blooming removed from the point cloud (multi-acquisition HDR)

遵循上述步骤很可能会恢复点云中由于光晕效应而丢失的点。但是,过饱和区域仍有可能保留在彩色图像中。

溢出导致彩色图像过饱和

如果您只关心3D点云质量,彩色图像中的过度饱和可能不是问题。但是,如果您在彩色图像上使用机器视觉算法(例如模板匹配),过饱和可能会成为问题。

备注

默认的颜色模式(Color Mode)为Automatic,对于多次采集HDR,相当于ToneMapping。用于HDR捕获的颜色融合(色调映射)算法是彩色图像中过饱和的根源。该算法解决了将不同动态范围的彩色图像映射为具有有限动态范围的彩色图像的挑战性问题。然而,色调映射算法有其局限性:过饱和问题。

使用UseFirstAcquisition颜色模式进行HDR捕获

备注

此解决方案只能与SDK 2.7及更高版本一起使用。在左上角将KB更改为旧版本以查看SDK 2.6或更低版本的解决方案。

克服过饱和的一种尝试是确认或找到针对场景中最亮对象优化的采集项。然后,将该采集项设置为采集设置中的第一个。最后,使用UseFirstAcquisition颜色模式来捕获HDR。

提示

在Zivid Studio的采集设置中依次点击 Move to top 即可将选定的采集项移动到序列中的第一个位置。

将采集移到顶部,使其成为序列中的第一个

在某些情况下,可以消除或至少显著减少过饱和情况。

使用UseFirstAcquisition颜色模式的HDR捕获消除了彩色图像中的过饱和

如果成像对象的材料是镜面的,这种方法可能无法消除过饱和。在这种情况下,建议考虑在投影仪关闭的情况下进行额外的捕获。请参阅以下潜在解决方案(不启用投影仪)。

额外的捕获

克服彩色图像过饱和的另一种解决方案是添加单独的捕获并优化其设置,专门用于避免这种图像伪像。这种方法将使用来自主捕获的点云数据和来自附加捕获的彩色图像。附加的捕获可以是2D或3D捕获,启用或关闭投影仪。如果您使用3D捕获,则必须关闭色调映射(Color Mode设置为UseFirstAcquisition)。

备注

可以在主要捕获之前或之后进行附加捕获。如果您对使用2D图像和3D点云的算法使用了不同的线程,请根据算法执行时间来决定。

小技巧

在进行单独的2D图像捕获时,您可以优化采集设置来获得高质量的彩色图像(在大多数情况下,我们会优化设置以获得出色的点云质量)。

启用投影仪

在某些情况下,可以通过使用投影仪来消除过饱和。

通过使用投影仪进行额外的 2D 捕获,消除了彩色图像中的过饱和

没有启用投影仪

如果成像对象的材料是镜面的,则不太可能消除过饱和。因此可以考虑关闭投影仪。

在不使用投影仪的情况下通过额外的 2D 捕获消除了彩色图像中的过饱和

如果不启用投影仪进行拍摄,您必须确保相机能够获得足够的光线。可选的方法包括使用具有更长曝光时间、更高增益值和更低光圈值的设置,或者在场景中添加额外的光源。可以使用漫射照明并仅在彩色图像采集期间将其打开。如果在主采集期间打开,附加光源可能会降低点云质量。

关闭投影仪并调节色彩平衡

当不使用投影仪时,也很可能需要平衡图像颜色。如需了解相关的示例,请查 看 调整色彩平衡 教程。该教程展示了如何通过循环拍摄白色表面(一张纸、墙壁或类似物)的图像来平衡2D图像的颜色。

在关闭投影仪和调节白平衡的情况下,通过额外的 2D 捕获消除了彩色图像中的过饱和

备注

It is intuitive and conceptually correct to use a 2D capture as the additional capture. If using a Zivid 2 or 2+ camera, always go for the 2D capture. However, if using Zivid One+, consider the limitation below on switching between 2D and 3D capture calls.

局限性

下面我们将说明在2D和3D捕获调用之间切换时按顺序执行捕获的限制。

小心

If you perform captures in a sequence where you switch between 2D and 3D capture calls, the Zivid One+ (not Zivid 2 and 2+) cameras have a switching time penalty. This time-penalty only happens if the 2D capture settings use projector brightness > 0. As a result, there is a delay between the captures when switching the capture mode (2D and 3D). The delay is approximately 350 ms when switching from 3D to 2D and 650 ms when switching from 2D to 3D. Therefore, there can be roughly 1 s overhead in addition to the 2D capture time and 3D capture time. In SDK 2.6 and beyond, this limitation only happens when using 2D captures with brightness > 0.

2D捕获设置

投影仪亮度 = 0

投影机亮度 > 0

Zivid 2 / 2+

没有

没有

Zivid One+

没有

350-900ms的切换时间损失

小技巧

Zivid 2 and 2+ cameras do not have the time penalty that Zivid One+ cameras have; switching between 2D and 3D capture modes with Zivid 2/2+ happens instantly.

备注

2.6版本的SDK移除了Zivid One+相机在3D和2D捕获模式之间切换的时间。这适用于在投影仪关闭的情况下使用2D捕获(投影仪亮度设置为0)。

对于Zivid One+相机,如果您必须使用投影仪,为了获取彩色图像而额外拍摄一张3D图像可能比使用投影仪额外拍摄一张2D图像耗时更少。此方法假定您使用来自主3D捕获(单次曝光或多次采集HDR)的点云数据和来自附加3D捕获的彩色图像。如果您的主3D捕获使用的是单次采集,则可以对附加3D捕获使用相同的曝光时间以优化捕获时间。如果使用的是多次采集HDR,则最后一次HDR采集的曝光时间应与附加的3D采集的曝光时间相同。