【一种基于暗通道优先的快速自动白平衡算法】改进思路

  最近搜索了一下自动白平衡算法的相关文章,归纳起来一种有四种:

  1. 灰度世界法

  2. 完美映射法

  3. 自动阈值法

  4. 暗通道优先的算法这是篇论文,从文中的结论来看,该方法比上面3种要好一些。后面会给出论文的相关链接

下面介绍第4中算法的原理及改进方法

算法描述:

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

                                                                                   g(x,y)=f(x,y)t(x,y)+A(1−t(x,y)),(1)

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

                                                              (2)

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

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

                                                      (3)

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

                                                                                      (4)

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

                                                                         (5)

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

                                           (6)

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

                                                                 (7)

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

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

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

                                                                (8)

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

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

                                          (9)

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

                                                     (10)

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

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

算法改进:

在上面的算法中, 只有在求阈值区域T(x,y)时使用到了光透率 t(x,y),即用t(x,y) < t1进行判断作为阈值选择的一个条件。 其中t1是光透率t(x,y)的平均值。既然这样,我们可以定义

                                                             (11)

其平均值为

                                                         (12)

那么T(x,y)的计算公式变为:

                                         (13)

这样一来,我们就没有必要再去求全局光照强度A了,公式(11)替代公式(5)后,也去掉了除法器。无论在硬件实现或软件计算中都节省了时间和资源。

改进后的思考:

正如前面所述,算法改进后的确变的简单了,在没有了光透率之后, 那么它的原理是什么呢?

我觉得可以这样理解:

除去K的判断条件后,图像中某一像素点的最小分量如果大于整个图像像素的最小分量的平均值,那么该点就是所求的白色区域了。实际上就是在暗通道图像(比如上面的图(b)) 中, 亮度大于平均亮度的点即可以作为白色区域了。

 

注:原论文链接:http://www.oejournal.org/mv_html/j00001/2018-01/A180213000011_WEB.htm

       百度文库和其他网站好像是要钱的,开源的只找到上面一个。 论文的原作者是王飞,王伟,不知道他们后面是否对算法进行了优化 ,我在网上暂时没有找到。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值