一、背景
在数码相机拍摄过程中,很多初学者会发现荧光灯的光在人眼看起来是白色的,但是用数码相机拍摄出来却有点偏蓝。同样,如果是在白炽灯下,拍出来的图像的色彩就会明显偏黄。人类的眼睛之所以把它们看成白色的,是因为人眼进行了修正。如果能够使相机拍摄出来的图像和人眼所看到的色彩完全一致就好了。这就涉及到数码相机的白平衡问题。
二、概念
白平衡,英文名称为White Balance。物体颜色会因投射光线的颜色发生改变,在不同的场景下拍摄出的照片显示出不同的色温。更重要的是,CCD没有办法像人眼一样会自动修正光线的改变。由于不同的光照条件的光谱特性不同,拍出的照片常常会偏色,例如,在日光灯下会偏蓝,在白炽灯下会偏黄等。为了消除或者减轻这种色偏,数码相机和摄像机可根据不同的光线条件调节色彩设置,以使照片颜色尽量不失真,使眼色还原正常。因为这种调节常常以白色为基准,故称为白平衡。
三、何为平衡?
平衡就是无论环境光线如何,让数码相机默认“白色”,就是让他能认出白色,而平衡其他颜色在有色光线下的色调。颜色实质上就是对光线的解释,在正常光线下看起来是白颜色的东西在较暗的光线下看起来就不是白色。对于这一切如果能调整白平衡,则在所得到的照片中就能正确地以“白”为基色还原其他颜色。
讨论白平衡,就要从色温谈起,色温顾名思义就是色彩的温度,它指的是绝对黑体从绝对零度开始持续加热所呈现出来的颜色。温度升高,颜色开始从红、橙、黄、绿、蓝、靛、紫,逐渐变化。这些颜色的差异来自于不同波长光线的比例不同,如下图所示,色温越低,波长较长的光线比例大,红色成分就多。色温越高,波长较短的光线比例大,蓝色的成分就多。
那么就造成白色在高色温的光线照射下显得较蓝,在低色温下显得较黄。将不同色温下的白色在色品图上连接起来就形成了普朗克曲线:
而人眼中的白色总是R=G=B,那么白平衡所做的事情就是在不同色温条件下将图像做归一化,也就是将sensor上的RGB分布乘上一个系数,使得“白色成为白色”。
简言之,白平衡的目的就是让物体从在不同光源下所呈现出来的颜色,恢复到物体的固有色,以达到减少色偏或者无色偏的效果。
一、灰世界
由Buchsbaum提出的灰世界假说,这个假说指的是在一副色彩多样的图像中,最终所有颜色的平均统计值应该是一致的,也就是灰色的。这个假说由下列的公式推导而出。
f是图像,e代表入射光频谱,s代表物体反射率,c代表sensor的感光度,λ表示波长。
e代表sensor对光源的响应,在特定光源情况下应该是一个常数。
Buchsbaum提出:一张普通图像的反射率对图像积分,再求平均会是一个恒定值k,也就是说图像的颜色做整体平均后会是一张灰色,也就是无色的图。将f(x)带入公式后可以做出如下推导:
这个方法非常简单和直观,也是最经典和传统的算法,后续算法都是在此基础上衍生而来。但是此算法有一个致命的缺陷,当背景有一大片单一颜色时,该算法就会导致严重的色差。
二、完美反射(适用于HDR场景)
完美反射法(perfect reflection)基于白色时将光全部反射这个基础上,也就是说如果图像上有白色区域,那么它就会呈现出该色温条件下光原本的颜色,也就是会落在普朗克曲线上。完美反射法可以很大程度上弥补灰世界法的不足,在HDR场景下效果很好,但是依赖于图像中有白色这个前提条件,倘若图像中没有白色,或者噪声很强,方法就会失效。
三、早期的白块法
接下来的思路就是如何找到白点。早期的思路是将图像先转换到某个色彩空间,譬如下图中YCbCr,Y是垂直于该平面。在原点附近就是色度接近0的区域,也就是我们要找的白点。将这个区域内所有的点做一个平均,平均点的坐标就认为是这个图像色温下可能的白色,然后将图像色彩根据平均点做转换,逐步收敛。这个区域的直径也就是该方法主要考虑的问题,设的太大就会导致将原本不是白色的颜色纳入计算造成偏差,设的太小会造成样本量太小。
四、基于校准的白块法
白块法在对图像要求比较高的情况下就不适用了,后来就产生了基于校准的白块法。折线上的点是在产线上针对不同光源(D65,A光,H光等)使用标准白/灰卡纸拍出照片算出来的B_gain和R_gain坐标,黄色点是使用白点法实时计算出的坐标,那就找到一个靠近的先验值,取该点的gain值。
五、加权重白块法
加权白块法就是将图片分为M块,每块都计算出一个白点,将靠近折线区域的权重加高,远离折线的权重降低,再计算出一个最终的白点,使用折线上的不同点做插值计算出一个最终Gain值。
这个方法的缺点在于校准需要增加产线的大量工作量。
在相同的亮度条件下,机器是无法区分日光灯和白炽灯下的白色纸张。然而人眼却能区分,因为人眼有一个叫做视觉恒常性的特点,人判断物体的颜色还有大脑的参与,大脑会透过对环境物体的先验认知来做校准,比如人知道草是绿色的,香蕉是黄色的。
在传统的白平衡算法都失效的情况下,机器学习带来了模仿人脑视觉恒常性的希望。简而言之就是给机器做大量的图片库训练,从而让机器可以像人脑一样识别不同物体的特征,从而在真正拍摄的图像中筛选这些特殊区域应用上有针对性的白平衡参数。
因为学习系统获得的信息往往是不完全的,所以学习系统所进行的推理并不完全是可靠的,它总结出来的规则可能正确,也可能不正确。这要通过执行效果加以检验。正确的规则能使系统的效能提高,应予保留;不正确的规则应予修改或从数据库中删除。
一、手动模式
当外界条件超出白平衡自动调节功能以外时,图像会略带点红色或者蓝色,即使在白平衡自动调节范围内,如果有一个以上的光源,自动白平衡调节仍然可能无法正常工作,在这种情况下,就需要用手动模式来调节白平衡。
而在这之前需要找一个白色参照物,如白纸一类的东西,其实应该用18%的灰度调整,但是不太好找,只要镜头对着它就可以进行白平衡了。
有人可能要问,为什么白色的纸呢,其他颜色的纸不可以吗?其实只要相机的白平衡系统能正确还原白色,这样就可以正确还原色彩了。
在光源比较复杂,例如彩灯的情况下,自动白平衡就会感觉无所适从,不能正确的反映当时的场景,导致照片偏色,在手动调节照片后,照片反映色彩就能正常了。正常还原景物色彩需用白纸调白。白纸具有不同的色度,有偏青色的复印纸。也有偏黄色的白报纸,不同的色度对画面色调有不同的影响,其规律是白纸的色度和画面的色度成补色关系,例如用发黄的白纸调整白平衡,画面将偏蓝。白纸的色度确定之后,在同一个场面中不应随意更换,更不能随便找一个白色物体就调白,否则画面色调不统一。
分光源类型设定调整白平衡具有直观、快捷的特点,但并非任何条件下调整都能做到非常准确,因为即使用同一类型光源,发光色温也会有差异,比如,同为钨丝灯,供给它大电压不同,灯泡的新旧程度不同,发光颜色就有差别。在运用时可以根据现场光线的色温,选择与其相对应的色温模式就会使被摄物象获得比较准确的色彩还原。
白平衡相对于传统摄影在镜头上加滤镜校正色温,从而获得准确的色彩还原。
二、室外模式
如果在阳光明媚的室外拍摄,可以选择自动或日光模式,数码相机的白平衡功能会加强图像的黄色,以此来校正色偏,此时会得到标准色彩的照片。真实环境的色温比相机设置的色温高,拍出的照片色温就会偏高,就会偏蓝。比如晴朗天气的色温(大约5600K),相机设置的钨丝灯模式的色温(3200K),拍出来的图片就会偏蓝。真实环境的色温比相机设置的色温低,拍出的照片色温就会偏低,就会偏黄。比如晴朗天气的色温(大约5600K),相机设置的闪光灯模式(大约6000K),拍出来的照片就会偏黄。
除了白纸的选择外,白纸放的方向也很重要,比如在外景调白,应和太阳成90°角摆放,这样可以让白纸着一些天空色,若白纸对着太阳调白,画面中阴影部分将偏蓝。环境色对调白影响较大,比如拍内景,室内铺的是红地毯,应考虑到地毯对画面色调的影响,有意让白纸着些红地毯的反射光,这样画面就不会偏青。
如果有意让画面偏色,可选择浅色纸调白,用浅黄色调白可以使画面蓝色调,这是夜景拍摄常用到的方法。相反选择蓝青色纸调白平衡可获得暖色调。但要强调说明不能用很饱和的色纸或物件调白,这样对机器调白电路会有损伤。一般是用调白专用色卡即白平衡色谱进行调白。总之,利用调白平衡控制色调应注意白纸的色度和照射在白纸上光线的色度。
三、特殊模式
某些特殊效果可以通过手动调节白平衡获得,如在拍摄红红的夕阳时,对着蓝色的参照物手动调节白平衡,可以拍出充满温暖气氛的画面;若想拍摄偏冷色的夕阳景象,就对着红色的参照物手动调节白平衡。而如果把白平衡设定在自动位置,照相机会把夕阳的暖调色温误判成室内,因而会补偿画面的蓝色冰减少红色,把夕阳原有的温馨气氛破坏了。
其实数码相机的白平衡调节就相当于传统相机里不同胶卷的选用,它们的本质都是对色温的控制和校正,不同的是数码相机要程序化的选择,而传统摄影中需要更多人为因素。有时可以用灯光型的胶卷拍摄发青的图像以制造特殊影像效果一样,有时不使用白平衡设置还可以强化色彩语言的表义功能,因此并不是说时时都需要进行白平衡调节。