光电工程  2018, Vol. 45 Issue (1): 170549      DOI: 10.12086/oee.2018.170549     
一种暗通道优先的快速自动白平衡算法
王飞 , 王伟     
西安电子科技大学智能设备实验室,陕西 西安 710071
摘要:针对目前自动白平衡算法中存在的白色区域检测错误导致白平衡失效的问题,本文提出了一种基于暗通道优先的白平衡算法。首先估计光线透射率,然后根据光线透射率来提取白色区域,去除掉高饱和度的区域。最后为了校正颜色并保证图像亮度不变化,在CIE-XYZ颜色空间相对于亮度通道Y来计算校正增益。实验表明,本文的算法和现有的一些经典算法相比,在主观视觉和客观评价上都取得了较好的效果,且在嵌入式设备上速率大于150 frames /s。
关键词自动白平衡    暗通道    白色区域    
An automatic white balance method via dark channel prior
Wang Fei, Wang Wei     
Intelligent Equipment Laboratory, Xidian University, Xi'an, Shaanxi 710071, China
Abstract: In order to overcome the problem that white balance failure caused by white region detection error in automatic white balance, this paper proposes a white balance method based on dark channel prior. First, get the dark channel image, then extract the white region in the image according to the dark channel, and then remove the region with high saturation. Finally, in order to correct the color and ensure that the image brightness does not change, we calculate the correction gain in the CIE-XYZ color space relative to the luminance channel Y. Experimental results show that our algorithm has achieved good results both in subjective and objective evaluation compared with some classical algorithms, and the rate is greater than 150 frames/s on embedded devices.
Keywords: automatic white balance    dark channel    white point region    

1 引言

色彩校正对于许多基于图像处理的应用非常重要,色彩的偏差可能导致图像处理结果的错误,如颜色识别、图像分类、图像重建、图像目标检测及跟踪等。人类的视觉系统能够自适应光源的变化,还原场景中真实的颜色,而图像传感器不具备自适应的功能。因此,不同色温的光源会导致图像颜色的偏差。白色物体在较低色温的光源照射下,图像会偏红;相反,如果在较高色温光源照射下,图像偏蓝[1]。为了解决这个问题,数字摄像机使用自动白平衡来模拟人类自适应系统。自动白平衡算法的目的是自动适应光照的变化。为了尽量减少算法过程中用户的操作,整个白平衡过程应该全自动完成。

在之前的文献中,提出的白平衡算法主要分为两类:1)基于假设统计学的;2)基于样本学习的。基于假设统计学的有GWM(grey world method)算法[2],PRM(perflect reflector method)算法[3],Grey-Edge算法[4],自适应阈值算法等;基于样本学习的有Cheng等人提出的Regression Tree算法[5],Barron等人提出的CCC算法[6],Shi等人提出的DS-Net算法[7]等。GWM算法假定场景中的平均反射率是无色的,且在不同色温下的平均反射率是相同的。Max-RGB算法假定光源的颜色来自RGB中最大响应的通道。PRM算法假设图像中最亮像素点对应于镜子表面或者光滑的物体,这样的像素点最大限度反映了光照情况,而且含有大量光源信息。Grey-Edge算法提取图像的边缘,在边缘中提取若干个点作为假设白点进行校正。自适应阈值算法将图像分为若干个区域,对每个区域在YCrCb空间上计算分量均值,按照要求取前10%亮度的像素相对于Y通道来计算校正增益。基于假设统计学的方法对图像中白色区域或者白点检测不准确或者较少,影响白平衡的精度和效果;基于样本学习的方法普遍速度较慢且需要大量样本进行长时间的学习。

本文提出了一种稳定的自动白平衡算法,该算法不使用彩色分量来提取白色区域,而是使用了何凯明等人提出的基于暗通道优先的方法[8-9]来估计光照透射模型,通过估计到的光照透射模型来计算图像中白色区域,在检测到白色区域后,相对于图像的亮度分量Y来计算每个颜色通道的增益值。经过大量实验验证,本方法在精度和视觉效果方面相对于传统的基于假设统计学的方法有较大改进,且在低主频ARM平台上实现大于150 frames /s的速率,具有较强的实用性。

2 算法描述

定义g(x, y)是由图像传感器获取的一幅图像,f(x, y)是真实光照的图像,则传感器的成像模型我们可以定义为

$ g\left( {x,y} \right) = f\left( {x,y} \right)t\left( {x,y} \right) + A\left( {1 - t\left( {x,y} \right)} \right), $ (1)

式中: (x, y)是图像中对应像素的坐标,t(x, y)是对应每个像素点的光线的透射率,A表示全局光照强度。通常情况下A是恒定的,定义如下:

$ A = \frac{1}{{W \times H}}\sum\limits_{x = 0}^{W - 1} {\sum\limits_{y = 0}^{H - 1} {\frac{{R\left( {x,y} \right) + G\left( {x,y} \right) + B\left( {x,y} \right)}}{3}} } , $ (2)

式中: R (x, y),G (x, y),B (x, y)代表偏色图像中对应(x, y)点的rgb通道的值。

根据暗通道的先验知识可以得到:

$ {D_{{\rm{dark}}}}\left( {x,y} \right) = \mathop {\min }\limits_{\left( {x,y} \right) \in \mathit{\Omega }\left( {x,y} \right)} \left[ {\mathop {\min }\limits_{\left( {r,g,b} \right)} \left( {f\left( {x,y} \right)} \right)} \right] \approx 0, $ (3)

式中Ω(x, y)是(x, y)像素对应的一个邻域。对于一个小的邻域来说,光照透射率t(x, y)是恒定的,可以得到:

$ \begin{array}{l} t\left( {x,y} \right) = 1 - \frac{{\mathop {\min }\limits_{\left( {r,g,b} \right)} \left( {{g^{\rm{c}}}\left( {x,y} \right)} \right)}}{A}\\ \;\;\;\;\;\;\;\;\;\; + \frac{{\mathop {\min }\limits_{\left( {r,g,b} \right)} \left( {{f^{\rm{c}}}\left( {x,y} \right)} \right)}}{A}t\left( {x,y} \right), \end{array} $ (4)

式中: gc(x, y)表示g (x, y)邻域中rgb通道的最小值,fc(x, y)表示f (x, y)邻域中rgb通道最小值。根据暗通道先验知识,式(4)中第3项为0,从而得光透射率图如图 1。其中,图 1(b)为暗通道图,图 1(c)图为光透射率图:

$ t\left( {x,y} \right) = 1 - \frac{{\mathop {\min }\limits_{\left( {r,g,b} \right)} \left( {{g^{\rm{c}}}\left( {x,y} \right)} \right)}}{A}。$ (5)
图 1 白色区域提取过程。(a)原始偏色图像;(b)暗通道图像;(c)估计出的光透射模型;(d)为最终提取的为稳定的白色区域。(图中红色框的区域从视觉来看是很明显的过饱和的区域,本文的算法在提取白色区域的时候有效的排除了这部分区域) Fig. 1 White region extraction process. (a) Original color cast image. (b) Dark channel image. (c) Light transmission model; (d) The final stable white region. (The region of the red frame from the visual point of view is very obvious in the supersaturated region, and our algorithm effectively eliminates this part of the region when extracting white regions.)

从式(2)、式(5)可以得到,图像中白色区域或者高饱和度区域的光线透射率较低,本文提出的算法就是根据以上特性来计算图像中白色区域。但是如果图像中存在比较强的光源或者高饱和度的区域,这些区域就会被错误检测为白色区域,最终导致结果出现较大偏差。为了解决这个问题,本文设置一个阈值来去除高饱和度区域。

$ T\left( {x,y} \right) = \left\{ {\begin{array}{*{20}{c}} {255,}&{t\left( {x,y} \right) < {t_1};{g^{\rm{c}}}\left( {x,y} \right) < K}\\ {0,}&{{\rm{otherwise}}} \end{array}} \right., $ (6)

式中:T (x, y)是对应的白色区域阈值变换之后的二值图像,K为本文设置的一个变换阀值。t1为平均透射率,如式(7):

$ {t_1} = \frac{1}{{W \times H}}\sum\limits_{x = 0}^{W - 1} {\sum\limits_{y = 0}^{H - 1} {t\left( {x,y} \right)} } 。$ (7)

图 1(a)中红色框的区域由于室外强光的照射,在像素级别上是非常接近白色的,如果将其当作正常白色区域来计算,结果会出现较大的偏差。图 1(d)是本文的方法提取到的白色区域。

为了得到可靠的阈值K,本文从测试数据集中随机选择了200幅含有较多高饱和区域的图像做统计实验,最终K的值选择为230,即大于230认为是过饱和区域。图 2中的曲线是本文算法中选择不同的K值得到的平均误差和最小误差,可以看出,在K= 230时,最小误差和平均误差均最小。当K < 200时,很多真实的白色点被排除掉,导致找到较少白色点,最终误差较大;当K= 255时,即不限制饱和区域,从图 2中的曲线以看出,限制K= 230比不限制K值误差降低了约26%。

图 2 不同阈值K的取值时的误差比较 Fig. 2 Error comparison of different K values

得到白色区域后,使用白色区域的均值来计算rgb三个通道的校正增益:

$ {W_{r,g,b}} = \frac{{\sum\limits_{\left( {x,y} \right) \in \left\{ {T\left( {x,y} \right) = 255} \right\}} \quad\;\; {g\left( {x,y} \right)} }}{{\sum\limits_{\left( {x,y} \right) \in \left\{ {T\left( {x,y} \right) = 255} \right\}}^n \quad \;\;{T\left( {x,y} \right)} }}。$ (8)

接下来可以根据计算的增益来校正图像,如果直接校正图像的话可能导致图像亮度发生较大的变化。这就需要对增益做归一化处理。

CIE-XYZ颜色空间能够很好地反映色度特性,因此本文使用CIE-XYZ颜色空间相对于Y来对RGB做归一化处理,根据CIE-XYZ空间定义可以得到Y通道的增益为

$ {W_Y} = 0.212671 \times {W_r} + 0.71516 \times {W_g} + 0.072169 \times {W_b}。$ (9)

通过Y通道的增益,用下面的公式来校正图像:

$ {f^w}\left( {x,y} \right) = g\left( {x,y} \right) \times \frac{{{W_Y}}}{{{W_{r,g,b}}}}, $ (10)

式中:fw为校正后的图像,WYY通道校正增益,Wr, g, brgb三个通道的校正增益。

在实际使用中,白平衡算法多数是在嵌入式系统上运行的,比如监控相机、工业照相机等。为降低功耗,这些设备往往都使用较低主频的ARM、DSP或者其他架构的嵌入式CPU来实现。这就需要白平衡算法具有较高的效率且较少的资源占用。为了提高算法效率,减少内存资源占用,在不影响效果的情况下对图像进行了采样处理。经实验证明,在1/16下采样时,对最终的结果不会产生较大影响。本文在第3章对不同下采样下的误差及耗时进行了比较。

3 实验结果及分析

为了验证算法的有效性,本文使用了常用的两个数据集来进行测试,一个是Color Check数据集[10],一个是NUS 8-Camera数据集[11]。Color Check数据集包含了568张室内室外的图片,NUS 8-Camera数据集包含1736幅使用8个相机拍摄的不同场景的图片。为了保证不受图片中色卡的影响,在提取白色区域的时候屏蔽掉了色卡区域,并测试了算法在不同下采样率下的误差以及耗时。误差计算方法采用了文献[8]的算法:

$ E = \sqrt {C_r^2 + C_b^2} , $ (11)

式中:CrCb分别表示图像中色卡对应的灰色区域r通道和b通道的色差,选取色卡中左下角白色的区域求色差的平均值。表 1中展示了本文算法在不同下采样上的速度和误差, 原图的分辨率为843×541,测试CPU为HI3516D。HI3516D是华为海思的一款成熟的面向监控领域的视频编码及图像处理芯片,核心是ARM-A7, 主频600 M。测试程序为纯C语言,未针对平台做NEON优化,其中测试耗时不包含下采样的耗时。

表 1 算法在不同下采样下误差及耗时 Table 1 Error and speed of our method
下采样比例 最大误差 最小误差 平均误差 耗时/ms
1 12.48 2.00 6.40 96
1/2 12.16 2.44 6.70 31
1/4 12.56 2.23 6.63 22
1/8 12.56 2.82 6.92 11
1/16 13.22 2.44 6.85 5
1/32 13.37 3.31 7.28 4

从测试数据可以看出,算法在对图像下采样比例到1/16的耗时仅仅需要5 ms,且误差没有太多增加,比较适合在嵌入式系统中使用。

从测试集中随机抽取了室外、室内以及剩余的图片共计68张进行算法对比实验。分别与GWM、PRM、Grey-Edge、Ada-Threshold四种传统方法进行最大误差、最小误差以及平均误差的比较。图 3图 4是由测试集中随机选出的两组图片经不同方法校正后的效果对比图。图 3中GWM算法和Ada-Threshold算法校正的图像整体视觉上偏蓝色,PRM算法和Grey-Edge算法校正的图像偏红色,本文的方法从视觉来看较为真实。从误差数据来看,本文算法比最好的Grey-Edge方法误差降低了37.6%。图 4中PRM方法校正的图像偏红色,其他几种方法从视觉上来看较为接近,但是从误差数据来看,本文算法比误差次小的Grey-Edge算法误差降低了17.9%。

图 3 室内图片五种白平衡算法对比效果图。(a)原始图像(53.95);(b) GWM (26.92);(c) PRM (27.02);(d) Grey-Edge (19.11);(e) Ada-Threshold (22.80);(f)本文算法(11.91) Fig. 3 White balance results of the indoor image using five different automatic white balance methods. (a) Original image (53.95); (b) GWM (26.92); (c) PRM (27.02); (d) Grey-Edge (19.11); (e) Ada-Threshold (22.80); (f) Our method(11.91).

图 4 室外图片白平衡算法对比效果图。(a)原始图像(59.03);(b) G WM (11.40);(c) PRM (11.70);(d) Grey-Edge (5.02);(e) Ada-Threshold (8.06);(f)本文算法(4.12) Fig. 4 White balance results of the outdoor image using five different automatic white balance methods. (a) Original image (59.03); (b) GWM (11.40); (c) PRM (11.70); (d) Grey-Edge (5.02); (e) Ada-Threshold (8.06); (f) Our method (4.12)

为了测试本文算法的鲁棒性,使用尼康D7100单反相机在自然场景下拍摄几组照片验证测试效果。分别在打开相机白平衡以及关闭相机白平衡下拍摄图片,再用本文的算法对图像进行颜色校正。图 5为采用本文算法校正的结果和D7100相机自带白平衡算法校正后的效果对比图。从红色框的区域可以看出使用尼康D7100的自动白平衡后,天空白云的色彩和地面绿草的颜色从视觉上都轻微偏红色,本文算法的结果比起尼康D7100自带的白平衡更加真实,颜色更加逼真。

图 5 尼康D7100白平衡与本文算法的比较。(a), (d)原始图像;(b), (e)相机白平衡;(c), (f)本文白平衡 Fig. 5 White balance results using Nikon D7100 and our method. (a), (d) Original image; (b), (e) D7100 auto white balance; (c), (f) Our auto white balance

此外,为了验证本文算法的实用性,在HI3516D中进行图像1/16下采样,使用本文的算法替代芯片自带的白平衡算法,CPU使用率仅1%~3%,内存仅占用256 K左右,从白平衡效果来看,在视觉上图像效果优于芯片自带的算法。图 6为本文算法和HI3516D自带白平衡算法效果的对比图,图片拍摄所用的图像传感器为索尼IMX291。其中第一幅图像是在弱光下拍摄,图像含有大量的噪声,噪声点可能被错误的检测为参考白点,HI3516D自带的白平衡基本失效,本文的算法依然能够比较正常的校正颜色;第二幅图像中窗外强光照射,图像中红色框框选的桌面以及脸部区域,HI3516D自身的白平衡偏红色,而采用本文算法的效果从视觉上更加真实。

图 6 HI3516D白平衡与本文算法的比较。(a), (d)原始图像;(b), (e) HI3516D白平衡;(c), (f)本文白平衡 Fig. 6 White balance results using HI3516D and our method. (a), (d) Original image; (b), (e) HI3516D auto white balance; (c), (f) Our auto white balance

表 2中,红色数字代表最小的误差,蓝色数字表示次小的误差。从表 2中可以看出本文算法不管在室内还是室外都有较大提升,与较好的Grey-Edge算法相比,室内图片平均误差减少了16%,室外图片平均误差减少了28%。平均误差以及最大误差的降低说明了本文算法具有较好鲁棒性。

表 2 几种白平衡算法误差比较 Table 2 Max/Min/Mean error of white balance on testing
Dataset GWM
Min/Max/Mean
PRM
Min/Max/Mean
Ada-Threshold
Min/Max/Mean
Grey-Edge
Min/Max/Mean
Our method
Min/Max/Mean
Indoor(18) 16.06/33.07/21.13 14.14/34.05/23.02 4.24/31.08/18.14 4.58/26.09/12.48 4.35/14.49/10.53
Outdoor(30) 8.06/20.29/12.32 9.38/23.06/16.24 5.38/16.40/9.38 1.41/13.33/7.41 1.41/11.09/5.29
Other (20) 8.60/19.94/14.17 7.61/28.17/20.19 2.23/17.29/11.95 2.0/16.30/6.40 2.44/10.44/5.83
4 结论

本文提出了一种通过暗通道优先算法提取白色区域来做自动白平衡的方法。经过大量实验验证,本文的方法可以准确的找出参考白点,不管对室内还是室外相比以前的传统方法误差平均降低了22%,同时在低主频ARM平台上做了算法验证,经过下采样后,在不影响精度的前提下,可以做到150 frames /s的速率,具有较好的实用价值。

对于文章中所定义的阈值K的取值,本文是用实验统计的方法得到的,下一部的工作将会用机器学习的方法来取得相对精确的K值。

参考文献
[1]
Lukac R. Refined automatic white balancing[J]. Electronics Letters, 2007, 43(8): 445-446. DOI:10.1049/el:20070142
[2]
Zhang B Y, Batur A U. A real-time auto white balance algorithm for mobile phone cameras[C]//Proceedings of 2012 IEEE International Conference on Consumer Electronics, 2012: 1-4. http://ieeexplore.ieee.org/abstract/document/6161743/
[3]
Buchsbaum G. A spatial processor model for object colour perception[J]. Journal of the Franklin Institute, 1980, 310(1): 1-26. DOI:10.1016/0016-0032(80)90058-7
[4]
Liu Y C, Chan W H, Chen Y Q. Automatic white balance for digital still camera[J]. IEEE Transactions on Consumer Electronics, 1995, 41(3): 460-466. DOI:10.1109/30.468045
[5]
Weng C C, Chen N H, Fuh C S. A novel automatic white balance method for digital still cameras[C]//Proceedings of IEEE International Symposium on Circuits and System, 2005, 4: 3801-3804. http://ieeexplore.ieee.org/abstract/document/1465458/
[6]
Dong C, Loy C C, He Kaiming, et al. Learning a deep convolutional network for image super-resolution[M]//FLEET D, PAJDLA T, SCHIELE B, et al. Computer Vision-ECCV 2014. Cham: Springer, 2014: 184-199.
[7]
Cheng D L, Price B, Cohen S, et al. Effective learning-based illuminant estimation using simple features[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition, 2015: 1000-1008.
[8]
Barron J T. Convolutional color constancy[C]//Proceedings of 2015 IEEE International Conference on Computer Vision, 2015: 379-387.
[9]
Barron J T. Convolutional color constancy[C]//Proceedings of 2015 IEEE International Conference on Computer Vision, 2015: 379-387.
[10]
Liu Y C, Chan W H, Chen Y Q. Automatic white balance for digital still camera[J]. IEEE Transactions on Consumer Electronics, 1995, 41(3): 460-466. DOI:10.1109/30.468045
[11]
He K M, Sun J, Tang X O. Single image haze removal using dark channel prior[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341-2353. DOI:10.1109/TPAMI.2010.168
[12]
Yeh C H, Kang L W, Lee M S, et al. Haze effect removal from image via haze density estimation in optical model[J]. Optics Express, 2013, 21(22): 27127-27141. DOI:10.1364/OE.21.027127
[13]
Gehler P V, Rother C, Blake A, et al. Bayesian color constancy revisited[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, 2008: 1-8. http://ieeexplore.ieee.org/abstract/document/4587765/
[14]
Cheng D L, Prasad D K, Brown M S. Illuminant estimation for color constancy: why spatial-domain methods work and the role of the color distribution[J]. Journal of the Optical Society of America A, 2014, 31(5): 1049-1058. DOI:10.1364/JOSAA.31.001049