工业彩色相机调节白平衡解决偏色问题

新机器视觉

共 3507字,需浏览 8分钟

 ·

2022-03-06 16:07

点击下方卡片,关注“新机器视觉”公众号

重磅干货,第一时间送达

最近勇哥使用宝盟彩色工业相机,发现其拍照颜色偏蓝色。

我知道这个需要校正白平衡,但是这东西究竟该怎么校正呢?

目前有以下几种调节白平衡的方法:

1.1 简介

白平衡就是通过调整图像中R、G、B分量的比例关系,可以使在各种光线条件下拍摄出的图像色彩还原真实。由于图像传感器(CMOS/CCD)本身没有这种功能,因此就必要对它输出的信号进行一定的修正。

1.2 作用及分类

白平衡是工业相机的重要参数,它直接影响重现图像的彩色效果,工业相机的白平衡参数设置不合时,重现图像就会出现偏色现象,特别是会使原本不带色彩的图像也有了颜色。我们可能通过手动调节白平衡的参数也可以使用软件图像处理算法来自动调节这些参数。


注明:

选择手动调整图像RGB增益的颜色,一次性白平衡和区域白平衡时要将自动白平衡关掉;

选择手动调整图像RGB增益的颜色,一次性白平衡和区域白平衡时请关闭降噪和3D降噪功能以及选择手动曝光模式;

选择一次性白平衡时需对着全白地方白色要均匀并充满整个图像画面;

当使用一次白平衡在矫正图像颜色时,需要使之生效后才可移动产品;

使用区域白平衡时,当截取一部分图像在矫正的过程中,请不要移动产品和改变所拍摄的画面;

在每次相机更换镜头或在显微镜下更换物镜时,请重新进行矫正。


注意:白平衡主要使用该品牌相机的官方程序来校正。上面的说明并不带表其它相机品牌,但是一定有这么一种功能。

在halcon的参数面板中,勇哥暂时不知道有没有白平衡的设置,印象中应该是没有的。

下面摘抄一些白平衡的理论知识备用:

工业视觉之白平衡

1. 为何需要白平衡?

讨论白平衡,那就要从色温(CCT)谈起,色温顾名思义就是色彩的温度,但是这个色温和我们一般所认知的冷色、暖色不同,它指的是一个绝对黑体(物理学家想象出来的)从绝对零度(-273℃)开始持续加温所呈现出来的颜色,譬如在炼钢炉里给一块铁加热,就会从黑->暗红->亮红->金黄,接着就融化了,因为铁的熔点是1535℃,所以更高温度的颜色就看不到。但从焊接用的火可以看到蓝色的火焰,那是更高的温度所辐射出来的颜色。

这些颜色的差异来自于不同波长光线的比例不同,如下图所示,色温低的情况下(红色)波长较长的光线比例较大,反之亦然。那么就造成白色在高色温的光线照射下显得较蓝,在低色温的光线下显得较黄。

将不同色温下的白色在色品图上连接起来就形成了普朗克曲线:

而人眼中的白色总是R = G = B,那么白平衡所做的事情就是在不同色温条件下将图像做归一化,也就是如下将sensor响应的RGB分别乘上一个系数,使得"白色成为白色"。

R‘ = R x R_Gain

G’ = G x G_Gain

B‘ = B x B_Gain

使得R' = G' = B'。

总而言之,白平衡的目的就是让物体在不同光源条件下所呈现出来的颜色,恢复到物体的固有色。

2. 白平衡的几种方法

根据白平衡的进化史,下面由远及近介绍了几种白平衡的方法。

2.1 灰世界

最初的白平衡是由Buchsbaum提出的一个叫灰世界的假说而来。这个假说指的是在一副色彩多样的图像中,最终所有颜色的平均统计值应该是一致的,也就是灰色的。


这个假说是由下列的公式推导而出。

f是图像,e(λ)代表入射光频谱,s(λ)代表物体反射率,c(λ)代表sensor的感光度,λ代表波长。

e代表sensor对光源的响应,在特定光源情况下应该是一个常数。



Buchsbaum就提出:一张普通图像的反射率对图像的积分再求平均会是一个恒定值k,也就是说图像的颜色做整体平均后会是一张灰色,也就是无色的图。

将f(x)带入公式后可以做出如下推导:

这个方法非常的简单和直观,也是最经典和传统的算法,后续算法都是在此基础上衍生而来。但是此算法有一个致命的缺陷,当背景有大片单一颜色时(比如草地,蓝天等),该算法就会导致严重的色差。

2.2 完美反射

完美反射法(perfect reflection)基于白色是将光全部反射这个基础上,也就是说图像上如果有白色区域,那么它就会呈现出该色温条件下光原本的颜色,也就是会落在普朗克曲线上。完美反射法可以很大程度的弥补灰世界法的不足,在HDR场景下效果很好,但是依赖于图像中有白色这个前提条件,倘若图像中没有白色,或者噪声很强,方法就会失效。

2.3 早期的白块法

接下来的思路就是如何找到白点/白块。早期的思路是将RGB图像先转换到某个色彩空间,譬如下图中YCbCr,Y是垂直于该平面晚些考虑,那么在原点附近就是色度接近0的区域,也就是我们要寻找的白块。将这个区域内的所有点做一个平均,平均点的坐标就认为是这个图像色温下可能的白色,然后将图像色彩根据平均点做转换,逐步收敛。

设定了区域直径后再考虑Y轴方向,只将最亮的点筛选出来认为是白点。

这个区域的直径也就是该方法主要考虑的问题,设的太大就会导致将原本不是白色的颜色纳入计算也会造成偏差,设的太小就会造成样本量太小。

2.4 基于校准的白块法

白块法在对图像要求比较高的情况下就不适用了,后来就产生了基于校准的白块法。

折线上的点是在产线上针对不同光源(D65, A光,H光等)使用标准白/灰卡纸拍出照片算出来的B_gain和R_gain坐标,黄色点是使用白点法实时计算出的坐标,那就找到一个靠近的先验值(红色点),取该点的gain值。

2.5 加权重白块法

加权白块法就是将图片分为M块,每块都计算出一个白点,将靠近折线区域(红色)的权重加高,远离的(蓝色)权重降低,再计算出一个最终白点,使用折线上的不同点做插值计算出一个最终Gain值。

这个方法的缺点在于校准需要增加产线的大量工作量。

3. 无解的白平衡场景

根据国际电联的标准ITU P910, ITU-R BT500-11,可以归纳出24个典型场景。基本可以分为“有无灰色”,“有无人”,“有无混合光源”,以及“有无大色块”这几种。

以大色块为例,在相同的亮度条件下,机器是无法区分在日光灯下的黄色纸张与白炽灯下的白色纸张。

然而人却能区分,因为人眼有一个叫做视觉恒常性的特点,人判断物体的颜色还有大脑的参与,大脑会透过对环境物体的先验认知来做校准,比如人知道草是绿色,香蕉是黄色。人脑通过这些物体来感知当前的光源情况。

很典型的如下图,实际上图中没有任何红色的像素点,然而人凭借着“草莓是红色的”这个认知做了校准,看到红色草莓,白色盘子和黄色花纹的桌子。这就是根据先验知识来做白平衡的例子。

4. 机器学习带来的希望

在传统的白平衡算法都失效的情况下,机器学习带来了模仿人脑视觉恒常性的希望。

简而言之就是给机器做大量的图片库训练,从而让机器可以像人脑一样识别不同物体的特征(草地,花朵等),从而在真正拍摄的图片中筛选出这些特殊区域应用上有针对性的白平衡参数。

参考文献

https://zhuanlan.zhihu.com/p/27165715

http://www.allinimaging.com/forum.php?mod=viewthread&tid=36&extra=page%3D2

http://www.allinimaging.com/forum.php?mod=viewthread&tid=24&extra=page%3D2

http://www.allinimaging.com/forum.php?mod=viewthread&tid=25&extra=page%3D2

http://www.allinimaging.com/forum.php?mod=viewthread&tid=37&extra=page%3D1

然而人却能区分,因为人眼有一个叫做视觉恒常性的特点,人判断物体的颜色还有大脑的会透过环境物体来做校准,

————————————————

版权声明:本文为CSDN博主「代码搬运工行业才重要」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_20848403/article/details/81198240

#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。


本文仅做学术分享,如有侵权,请联系删文。

—THE END—
浏览 268
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报