胡勇
(金陵科技学院 信息技术学院,江苏 南京 211169)
颜色是图像的重要特征之一,也是图像处理与分析的重要依据。从物理意义上说,物体之所以呈现出某种特定的颜色,是因为光线照射物体时,物体所反射的光在人类视觉系统中呈现出这种特定的颜色。也就是说,物体被人眼观测到的颜色不仅仅是由其反射特性所决定的,同时也取决于射向物体的光线颜色。
人类的视觉系统具有颜色恒常性,能够在一定程度上消除光照条件等因素对颜色的影响,正确地感知物体的颜色。但成像设备却不具有这种“调节”功能,其采集的图像往往与物体表面的真实颜色之间存在一定程度的误差,即偏色。这种偏色的现象是由外部光源的不同色温决定的,偏色的程度与外部光源的色温变化有直接关系。在不同外部光源的照射下,物体所呈现的颜色是不同的。其中,白色物体变化最为明显,在室内钨丝灯光这样低色温的照射下,白色物体看起来会带有橘黄色的色调,而在这样的光照条件下拍摄出来的景物就会偏黄;但如果是在蔚蓝天空这样高色温的照射下,则会带有蓝色色调。
自动白平衡的目的就是尽可能地减少外部光源所造成的色彩差异影响,在不同的色温条件下均能还原出被摄目标本来的色彩,使得拍摄出的图片尽量符合人类视觉的习惯。经典的自动白平衡算法主要有灰度世界算法[1]GW(Gray World)、完美反射算法[2]PF(Perfect Reflector)、模糊神经网络算法[3]FNN(Fuzzy Neural Network)、基于边缘的白平衡算法[4]以及基于上述几种算法的改进算法[5-7]等。灰色世界算法基于Von-Kries系数理论的灰色世界假设,但是当图像的色彩并不丰富时,灰度世界算法得到的数值往往是不真实的。完美反射法的理论基础是,搜寻图像中最亮的区域作为白色区域,并将此区域视为标准白色,对图像进行偏色校正;但当所拍摄物体最亮部分并非白色时,此方法往往失效。而较新的模糊神经网络算法存在着逻辑单元消耗多、功耗高等难题;基于边缘的白平衡算法对大多数图像都能很好地进行自动白平衡,但是当图像出现大范围有色纹理时,由于该颜色纹理边缘占主导地位,导致白平衡失效。
针对以上算法的种种不足,结合灰度世界算法和白点检测算法的优点,本文提出了一种基于高斯分布的自动白平衡算法。该算法通过对图像灰度直方图的高斯分解,自适应获取白点检测条件,从而得到较准确的增益曲线,提高了算法的适应性。实验结果表明,该算法能有效校正图像的偏色问题,适用于多种不同场景。
灰色世界算法基于Von-Kries系数理论的灰色世界假设,该假设认为,对于一幅有足够色彩变化的图像,R、G、B三色分量的统计平均值应趋于相同的灰色值,也就是说图像的 R、G、B 3个通道的均值应该相等,即。
如果图像是在非经典光源下拍摄的,那么均值就会大于或者小于灰色值,且该均值对于灰色的偏离程度反映了未知光源相对于已知光源的特性。由图像的灰度统计特性即可确定各通道的调整系数。其基本方法如下:
(1)采用整幅图像的平均灰度作为灰色值:
(2)确定灰色值后,根据式(2)计算调整系数:
(3)根据得到的调整系数调整图像,得到最终结果:
其中,R′、G′、B′分别为调整后图像 R、G、B 3 个通道的灰度值。
对于色彩丰富的图像,灰色世界法的校正效果比较明显;但对颜色单调的图像,其算法效果很差,有时会出现过度校正。
完美反射法又称镜面法,其基本理论为,假设图像中存在一个镜面,那么图像中镜面的亮度是最大的,且该镜面可以反射光源色彩,而其本身又不带有任何色彩。因此,该方法通过寻找图像的镜面并将这个高亮度的物体或区域视为标准白色,计算所有参考白点的平均色差,以此对图像进行偏色校正。
完美反射法的优点是计算非常简便,当图像中存在高亮度区域时还原效果很好。但是白点的检测往往缺乏通用性,当图像中不存在镜面或者图像亮度较低时表现不佳。
将目标和背景分别对应到灰度直方图中的两个高斯分布是进行图像分割的一种常用方法。统计表明,在目标和背景对比较强的图像中,其灰度直方图呈现双峰形态,一个对应于背景的灰度区,另一个对应目标的灰度区。
在室外场景图像中,其灰度直方图也呈现双峰或多峰形态,可以通过拟合这种复杂图像直方图的双峰或多峰特性,确定每个高斯分布的权重、均值和方差,进而计算出图像中的镜面区域,实现对图像的偏色校正。
设图像的灰度级为 L,其灰度直方图 P(x)可以表示为多个高斯分布的叠加,即:
其中,N 是高斯分布的个数,μi、σi和 ki分别是各个高斯分布的均值、方差和权重。
本文仅讨论直方图的双峰形态,多峰形态的直方图分解可以以此类推。
本算法基本思路如下:首先,对R、G、B 3个通道的灰度分布进行高斯分解,得到两个高斯分布的均值和方差等参数;然后,求取每个高斯分布的3σ区间,将其设定为白色候选区域的下界;最后,计算R、G、B 3个通道内参考白点的平均色差,求取增益曲线函数。
(1)高斯分解。分别对 R、G、B 3个通道内的灰度分布概率进行高斯分解,得到通道内高斯分布的均值和方差等参数。实际步骤中,为得到较为准确的高斯分布,采用了期望最大EM(Expectation Maximization)算法进行优化,并设定了最大错误阈值为迭代终止条件,实验中此参数取值为0.000 1。
图1显示了一幅偏色图像R通道的灰度分布概率情况及其高斯分解结果,其中,图1(a)是该通道的灰度分布概率,图1(b)是高斯分解得到的结果,对应的两个高斯分布参数为:μ1=42.3,μ2=134.7,σ1=7.5,σ2=25.9。
(2)确定高亮区域。在高亮区域的选择上,不同的方法提供了不同的依据。本文提出了一种基于RGB色彩空间的约束条件,即:在RGB色彩空间中定义一个三维结构,将落在这个区域内的像素认为是高亮区域,而区域外的像素被认为是非高亮区域。在进行色差计算时,只需计算高亮区域像素的平均色差以取代整个图像的色差,从而提高色温估计的准确度。本文提出的约束条件可以表述为:
其中,μi和σi分别代表某通道灰度分布概率的高斯分解结果。
该约束条件的物理含义是:在RGB色彩空间中定义一个区域,该区域是图像目标或背景中的高亮点像素集合,将该区域中的所有像素看作是白色的,用以参与色差的计算。
(3)确定增益系数。确定好约束条件后,统计所有满足条件的像素点,将其对应的R、G、B 3个通道值分别累加并求取平均,则可得到3个通道的平均值
因此,各通道的增益系数为:
(4)得到各通道的增益系数后,采用下式(7)进行白平衡校正:
为检验算法的有效性,本文对多幅实际自然场景图像进行了实验,并将实验结果与采用灰度世界算法和完美反射算法的结果进行了对比。
限于篇幅,这里只选取了两组白平衡的结果进行比较,如图2和图3所示。图2(a)是一幅低色温下的自然场景图像,有明显的偏红现象;图2(b)是采用本文算法的校正结果,图像的色彩、亮度都很均匀,非常接近人眼的视觉效果;图2(c)是采用灰度世界算法的校正结果,图像偏蓝,有较严重的过度校正情况出现;图2(d)是采用完美反射算法的校正结果,效果稍好于灰度世界算法,但仍有过度校正现象。图3(a)是一幅高色温下的自然场景图像,有明显的偏蓝现象;图3(b)是采用本文算法的校正结果,天空和绿地的色彩很纯正,符合人眼的视觉效果;图3(c)是采用灰度世界算法的校正结果,图像有些偏蓝,显示出算法的白平衡校正不足;图3(d)是采用完美反射算法的校正结果,效果稍好于灰度世界算法,基本符合人眼的视觉效果。从多幅实际自然场景图像的实验结果来看,本算法改进了自动白平衡的效果,在不同色温条件下都能很好地进行白平衡处理,显示了该算法的广泛适用性。
针对白平衡算法中普遍存在的校正不足及算法复杂度过高等问题,结合灰度世界算法和完美反射算法的优点,提出了一种基于高斯分解的自动白平衡算法。该算法通过对图像灰度分布的高斯分解,得到图像的高斯分布模型,并以此参数计算增益曲线。实验结果表明,该算法能有效校正图像的偏色问题,适用于多种不同场景。
[1]BARNARD K.Practicalcolorconstancy [D].Bumaby Canada: SchoolofComputing Science, Simon Fraser University,1999.
[2]GASPARINI F,SCHETTINI R.Color balancing of digital photos using simple image statistics[J].Pattern Recognition,2004, 37(6):1201-1217.
[3]Cheng Y C, Chen W H, Chen Y Q.Automatic white balancefordigitalstillcamera[J].IEEE Transaction on Consumer Electronics, 1995,41(3): 460-466.
[4]Lin Jinlong.An automatic white balance method based on edge detection[C].IEEE Tenth International Symposium on Consumer Electronics, St.Petersburg, 2006: 1-4.
[5]严世珺.数字图像白平衡处理算法研究与改进 [D].上海:上海交通大学,2007.
[6]赵全友,潘保昌.改进的LoG边缘自动白平衡算法[J].计算机应用研究,2009,26(2):775-778.
[7]金黄斌,秦兴,郭斌林.基于灰度世界和白点检测的自动白平衡算法[J].电子器件,2011,34(2):226-231.