相机技术

浅析避免色彩伪影及其对帧速率和计算负荷的影响

色彩是工业图像处理中的一个重要因素,在印刷图像检测等应用中,色彩可以为准确的错误检测提供支持。应用需要防止出现颜色误差,以确保检测结果准确可靠。然而,防止这些错误的出现会影响其他系统参数,例如帧速率和主机系统的计算负荷。

在印刷图像检测等任务中,必须避免在彩色图像中出现色彩误差,以确保检测结果准确可靠。

避免色彩误差 - 理论

执行彩色图像计算的位置和方式,以及图像从相机传输到主机系统所用的格式——这些因素都会影响色彩误差。

成像芯片输出的BG-Bayer拜尔阵列原始图像
成像芯片输出的BG-Bayer拜尔阵列原始图像

原始图像

完成调试后,工业相机会以Bayer 8-bit标准格式(即成像芯片的Bayer拜尔阵列原始图像)向主机系统传输图像信息。

当Basler彩色相机投入运行时,pylon Viewer不会显示原始图像,而是显示在主机系统上执行的基本彩色图像计算(2x2去拜尔化)结果。这一简单的处理步骤可能会产生可见的色彩伪影,而直接在相机中进行去拜尔化处理,则可以避免这些伪影。

经过简单彩色图像计算后获得的图像,条码彩色边缘存在颜色误差
经过简单彩色图像计算后获得的图像,条码彩色边缘存在颜色误差

去拜尔化的位置

利用成像芯片输出的拜尔阵列原始数据来进行彩色图像计算的这一过程被称为去拜尔化。此过程可以在相机传输数据之前进行(输出格式:RGB8、YCbCr变体),也可以在主机系统传输数据之后进行(输出格式:Bayer RAW格式)。

如果在主机系统上进行去拜尔化,则会对系统资源造成更大的负担。此外,要避免色彩误差,尤其是色彩边缘的误差,这需要使用非常复杂的去拜尔化算法。因此,通常的首选是在相机的FPGA上进行去拜尔化。

不同的去拜尔化方法在计算中所包含的像素数量各有不同。
左图:2x2简单去拜尔化环境 | 右图:PGI图像优化功能包中的5x5去拜尔化环境

去拜尔化算法

去拜尔化是一种算法,它在拜尔芯片原始数据的基础上,使用插值法来计算出彩色图像。通过简单的2x2去拜尔化,该算法可将最近的像素考虑在内。借助Basler专利的相机内置PGI图像优化功能包中提供的5x5去拜尔化,计算时将包含24个像素。

计算所用的像素越多,效果就越好:不同颜色之间的过渡就越清晰,伪影也会相应地消失。

不同的像素格式包含的色彩信息量各异,因此数据大小也有所差异。
不同的像素格式包含的色彩信息量各异,因此数据大小也有所差异。

图像数据传输

然后,相机会将处理后的彩色图像传输到主机系统。有多种像素格式可供选择,包括RGB8、YCbCr422_8和YCbCr420_8。RGB8提供的颜色信息最多,数据量也最大。YCbCr422_8传输的颜色信息相对较少,数据量也较小,而YCbCr420_8传输的颜色信息最少,因此数据量也是最小的。

如果传输的色彩信息较少,此时就会出现色彩伪影。

结论:避免色彩误差的关键在于选择正确的去拜尔化方法,并以正确的方式来传输彩色图像数据。不妨先在相机中进行5x5去拜尔化,然后以RGB8像素格式传输数据,这样就可以获得出色的彩色图像。


色彩误差、帧速率和计算负荷之间的相互作用

根据您对彩色图像的完美程度的具体要求,您的应用所用的主机系统在帧速率和计算负载方面也会发生相应的变化。这可以分为三种方案。

将5x5去拜尔化与RGB8像素格式相结合,可生成完美的彩色图像,帧速率低,主机系统的计算负荷小。
将5x5去拜尔化与RGB8像素格式相结合,可生成完美的彩色图像,帧速率低,主机系统的计算负荷小。

最高成像质量

5x5去拜尔化是在相机的FPGA上进行的,这样就能够以高质量RGB8格式,将经过完全处理的彩色图像传输到主机系统。虽然这种格式能提供出色的色彩质量,但也会产生大量数据,导致帧速率降低到最大值的33%。不过,由于图像处理由相机完成,主机系统的全部计算能力仍可用于其他处理或分析任务。

将5x5去拜尔化技术与较小的YCbCr像素格式相结合,可将色彩误差和帧速率控制在适中水平,同时主机系统的计算负荷较低。
将5x5去拜尔化技术与较小的YCbCr像素格式相结合,可将色彩误差和帧速率控制在适中水平,同时主机系统的计算负荷较低。

在成像质量和帧速率之间达到平衡

如果在相机的FPGA上进行5x5去拜尔化,并以压缩率更高的格式(例如YCbCr422_8或YCbCr420_8)来传输图像,则可减少要传输到主机系统的数据量,从而提高帧速率。具体而言,YCbCr422_8的帧速率约为最高值的50%,YCbCr420_8则最高可达67%。然而,由于包含的色彩信息减少,这可能会出现色彩伪影。由于图像处理由相机完成,主机系统的全部计算能力仍可用于其他任务,例如可执行额外的图像分析。

以Bayer 8-bit格式传输图像数据可实现最高帧速率,而主机系统的计算负荷则实际取决于所选的去拜尔化方法。
以Bayer 8-bit格式传输图像数据可实现最高帧速率,而主机系统的计算负荷则因所使用的去拜尔化方法而异。

最大帧速率

在您的应用中,高帧速率是否比避免色彩误差更重要?为了让相机实现最高帧速率,需要在主机系统上进行去拜尔化处理,同时让相机使用Bayer 8-bit标准格式来传输数据。选择使用哪种去拜尔化类型决定了避免色彩伪影的效果以及主机系统的利用率。这两者之间存在反比关系:较低的色彩误差会产生更高的计算负荷,反之亦然。无论是哪种情况,在采用最大帧速率时,主机系统的计算负荷都会高于方案1和方案2,从而导致可用于其他图像处理或分析任务的系统资源减少。

做出合适的选择:用于模拟色彩误差和帧速率的工具

不确定哪种方案更适合您的应用?也不确定是否值得为了追求更高的帧速率而在色彩准确性上稍作妥协?我们提供了两款工具,可以帮助您做出明智的决定。

色彩瑕疵视觉化工具显示了在使用不同像素格式和去拜尔化方法的组合下的色彩误差ΔE。
色彩瑕疵视觉化工具显示了在使用不同像素格式和去拜尔化方法的组合下的色彩误差ΔE。

色彩瑕疵视觉化工具

将您应用中的图像加载到我们的色彩瑕疵视觉化工具中,查看像素格式和去拜尔化方法会如何对色彩误差ΔE产生影响。

  • RGB图像是没有色彩误差的参考图像。在相机中使用5x5去拜尔化计算出的图像会以RGB格式传输到主机系统。

  • YCbCr422_8和YCbCr420_8会显示轻微的色彩误差,这是因为在相机中使用5x5去拜尔化计算出的彩色图像是以较小的格式来传输到主机系统的。

  • 在三种Bayer8格式中,色彩误差都清晰可见,在色彩边缘尤为如此。以Bayer 8-bit标准格式进行传输的图像在主机系统中进行去拜尔化处理。这三种格式展示了不同类型的去拜尔化方法。


选择相机型号和像素格式后,帧速率计算器会计算出可实现的帧速率。
选择相机型号和像素格式后,帧速率计算器会计算出可实现的帧速率。

帧速率计算器

我们的帧速率计算器可提供您相机所能达到的帧速率以及适合您应用的像素格式。

请选择相机型号,并且至少选择像素格式。点击"计算",然后您将得出最大帧速率。

我们的相机可通过内置的PGI图像优化功能包实现5x5去拜尔化

您需要获得什么支持?

我们很乐意提供产品选择建议,并助您为应用找到合适的解决方案。