如何处理光晕问题
问题
正如 在 光晕 - 点云中的亮点 中讨论的那样,光晕是当来自一个点或区域的极强光照射到成像传感器并导致过饱和时产生的一种效果。在本文中,我们将讨论如何避免场景中的光晕。
潜在的解决方案
有多种方法可以处理光晕问题。本教程中介绍的方法包括:更改背景,更改相机的安装位置和方向,使用HDR,使用色彩模式或进行单独的2D捕获。
更改背景
如果背景是泛光源,请将背景材质更改为漫射性能强和光吸收性更强的材质 (材料的光学特性)。
Scene with white background with blooming |
Same scene with black background and effect from blooming removed from the point cloud |
调整相机角度
改变相机的位置和方向是一种简单高效的处理光晕的方法。最好将相机偏移并倾斜,以使投影仪和其他光源不会直接反射到相机中。就像下面右侧的图所显示的那样。
只需倾斜相机,就可以恢复在过饱和区域丢失的数据,如上图右侧所示。下面的左图显示了当相机垂直于表面安装时拍摄的点云,而右图显示了稍微倾斜拍摄的场景。
一个简单的经验法则是安装相机时,调整相机位置和角度以使目标区域位于相机的前方,如下图所示:
HDR捕获
通过添加一个或多个3D采集项来覆盖光晕的高光,使用多次采集3D HDR来捕获图像。请记住,这是以增加捕获时间为代价的。
Scene with blooming (single capture) |
Same scene with effect from blooming removed from the point cloud (HDR) |
遵循上述步骤很可能会恢复点云中由于光晕效应而丢失的点。但是,过饱和区域仍有可能保留在彩色图像中。
如果您只关心3D点云质量,彩色图像中的过度饱和可能不是问题。但是,如果您在彩色图像上使用机器视觉算法(例如模板匹配),过饱和可能会成为问题。
备注
默认的颜色模式(Color Mode)为Automatic,对于多次采集HDR,相当于ToneMapping。用于HDR捕获的颜色融合(色调映射)算法是彩色图像中过饱和的根源。该算法解决了将不同动态范围的彩色图像映射为具有有限动态范围的彩色图像的挑战性问题。然而,色调映射算法有其局限性:过饱和问题。
使用UseFirstAcquisition颜色模式进行HDR捕获
备注
This solution can be used only with SDK 2.7 and higher. Change the KB to an older version in the top left corner to see a solution for SDK 2.6 or lower.
克服过饱和的一种尝试是确认或找到针对场景中最亮对象优化的采集项。然后,将该采集项设置为采集设置中的第一个。最后,使用UseFirstAcquisition颜色模式来捕获HDR。
提示
在Zivid Studio的采集设置中依次点击 … → Move to top 即可将选定的采集项移动到序列中的第一个位置。
在某些情况下,可以消除或至少显著减少过饱和情况。
如果成像对象的材料是镜面的,这种方法可能无法消除过饱和。在这种情况下,建议考虑在投影仪关闭的情况下进行额外的捕获。请参阅以下潜在解决方案(不启用投影仪)。
额外的捕获
克服彩色图像过饱和的另一种解决方案是添加单独的捕获并优化其设置,专门用于避免这种图像伪像。这种方法将使用来自主捕获的点云数据和来自附加捕获的彩色图像。附加的捕获可以是2D或3D捕获,启用或关闭投影仪。如果您使用3D捕获,则必须关闭色调映射(Color Mode设置为UseFirstAcquisition)。
备注
可以在主要捕获之前或之后进行附加捕获。如果您对使用2D图像和3D点云的算法使用了不同的线程,请根据算法执行时间来决定。
小技巧
在进行单独的2D图像捕获时,您可以优化采集设置来获得高质量的彩色图像(在大多数情况下,我们会优化设置以获得出色的点云质量)。
启用投影仪
在某些情况下,可以通过使用投影仪来消除过饱和。
没有启用投影仪
如果成像对象的材料是镜面的,则不太可能消除过饱和。因此可以考虑关闭投影仪。
如果不启用投影仪进行拍摄,您必须确保相机能够获得足够的光线。可选的方法包括使用具有更长曝光时间、更高增益值和更低光圈值的设置,或者在场景中添加额外的光源。可以使用漫射照明并仅在彩色图像采集期间将其打开。如果在主采集期间打开,附加光源可能会降低点云质量。
关闭投影仪并调节色彩平衡
当不使用投影仪时,也很可能需要平衡图像颜色。如需了解相关的示例,请查 看 调整色彩平衡 教程。该教程展示了如何通过循环拍摄白色表面(一张纸、墙壁或类似物)的图像来平衡2D图像的颜色。
备注
使用单独的2D捕获作为附加捕获是直观且概念上正确的。如果使用的是Zivid Two相机,请始终考虑进行单独的2D捕获。但是如果使用的是Zivid One+,请考虑以下在2D和3D捕获调用之间切换的限制。
局限性
下面我们将说明在2D和3D捕获调用之间切换时按顺序执行捕获的限制。
小心
如果您使用了在2D和3D捕获之间进行切换的顺序捕获,则Zivid One+(不是 Zivid Two)相机会有切换时间损失。仅当2D捕获设置使用了>0的亮度时才会发生这种时间损失,因为需要将不同的投影模式载入到投影仪控制器中,这会需要一定的时间。因此,在切换捕获模式(2D和3D)时,捕获之间存在延迟。从 3D切换到2D时的延迟约为350毫秒,从2D切换到3D时的延迟约为650毫秒。因此,除了2D捕获时间和3D捕获时间之外,可能还有大约1秒的额外时间开销。在SDK 2.6及更高版本中,此限制仅在使用亮度>0的2D捕获时发生。
2D捕获设置 |
||
投影仪亮度 = 0 |
投影机亮度 > 0 |
|
Zivid Two |
没有 |
没有 |
Zivid One+ |
没有 |
350-900ms的切换时间损失 |
小技巧
Zivid Two相机没有Zivid One+相机的切换时间损失问题,使用Zivid Two在2D和3D捕获模式之间切换会立即执行。
备注
2.6版本的SDK移除了Zivid One+相机在3D和2D捕获模式之间切换的时间。这适用于在投影仪关闭的情况下使用2D捕获(投影仪亮度设置为0)。
对于Zivid One+相机,如果您必须使用投影仪,为了获取彩色图像而额外拍摄一张3D图像可能比使用投影仪额外拍摄一张2D图像耗时更少。此方法假定您使用来自主3D捕获(单次曝光或HDR)的点云数据和来自附加3D捕获的彩色图像。如果您的主3D捕获使用的是单次捕获,则可以对附加3D捕获使用相同的曝光时间以优化捕获时间。如果使用的是HDR,则最后一次HDR采集的曝光时间应与附加的3D采集的曝光时间相同。