如何处理光晕问题
问题
正如 在 光晕 - 点云中的亮点 中讨论的那样,光晕是当来自一个点或区域的极强光照射到成像传感器并导致过饱和时产生的一种效果。在本文中,我们将讨论如何避免场景中的光晕。
潜在的解决方案
有多种方法可以处理光晕问题。本教程中介绍的方法包括:更改背景,更改相机的安装位置和方向,使用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 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 即可将选定的采集项移动到序列中的第一个位置。
在某些情况下,可以消除或至少显著减少过饱和情况。
如果成像对象的材料是镜面的,这种方法可能无法消除过饱和。在这种情况下,建议考虑在投影仪关闭的情况下进行额外的捕获。请参阅以下潜在解决方案(不启用投影仪)。
额外的捕获
克服彩色图像过饱和的另一种解决方案是添加单独的捕获并优化其设置,专门用于避免这种图像伪像。这种方法将使用来自主捕获的点云数据和来自附加捕获的彩色图像。附加的捕获可以是2D或3D捕获,启用或关闭投影仪。如果您使用3D捕获,则必须关闭色调映射(Color Mode设置为UseFirstAcquisition)。
备注
可以在主要捕获之前或之后进行附加捕获。如果您对使用2D图像和3D点云的算法使用了不同的线程,请根据算法执行时间来决定。
小技巧
在进行单独的2D图像捕获时,您可以优化采集设置来获得高质量的彩色图像(在大多数情况下,我们会优化设置以获得出色的点云质量)。
启用投影仪
在某些情况下,可以通过使用投影仪来消除过饱和。
没有启用投影仪
如果成像对象的材料是镜面的,则不太可能消除过饱和。因此可以考虑关闭投影仪。
如果不启用投影仪进行拍摄,您必须确保相机能够获得足够的光线。可选的方法包括使用具有更长曝光时间、更高增益值和更低光圈值的设置,或者在场景中添加额外的光源。可以使用漫射照明并仅在彩色图像采集期间将其打开。如果在主采集期间打开,附加光源可能会降低点云质量。
关闭投影仪并调节色彩平衡
当不使用投影仪时,也很可能需要平衡图像颜色。如需了解相关的示例,请查 看 调整色彩平衡 教程。该教程展示了如何通过循环拍摄白色表面(一张纸、墙壁或类似物)的图像来平衡2D图像的颜色。