白平衡原理

http://chuansong.me/n/126105

白平衡原理串讲

2013-07-24 Zealer中国

    首先要明白什么是白平衡,它指的是在图像处理的过程中,对原本材质为白色的物体的图像进行色彩还原,通过去除外部光源色温的影响,使其在最终照片上的图像也呈现为原来一致的白色。


    那色温是怎么理解的呢?这个概念其实有点绕,它是开尔文通过黑体(blackbody)这一理想光源,在不同温度下的不同颜色光线来定义的。(黑体是一个理想化的概念,是指这么一个物体,能发光,但会吸收掉任何来自外部的光线,同时又会把吸收的所有能量以光的形式完全释放出来,所以叫做黑体。)黑体的温度单位叫做开尔文(K)。从3300K到9300K的温度变化情况下,它发光的颜色分别是,红色,白色、蓝色。便于理解,大家可以这么想象,就像火焰一样,内焰温度较低,外焰温度较高(蓝色),内焰温度较低的地方是黄色的(暖色),于是火焰最外面温度最高的地方反而会是蓝色的(冷色),有点些许反常识。而色温就是借助黑体的这个温度变化特性来量化色彩倾向的。色温数值低,偏黄,色温数值高,偏蓝,所谓的冷暖色调就是一种比较感性的叫法了。



    了解完色温的概念,我们就可以展开来讨论了,说白了白平衡修正的目的就是把色温调整下,让颜色跟人眼看上去一个样儿。而目前白平衡修正中的算法基础,就是下面两个很重要的理论。(重点,期末考试会考的):


    灰度世界理论:这个理论蛮有意思,与其说是色彩学,我觉得更像是统计学范畴的东西,它认为任何一幅图像,当有足够的色彩变化时,其 R,G,B 分量均值会趋于平衡(即 RGB 三个数值相等,也就是说应当是黑白灰类型的颜色)。这个理论在全局白平衡中得到广泛应用,特点是能够利用更多的图像信息来做判断,但在面对色彩较为单一的图像时就显得有些乏力了。


    全反射理论:一幅图像中亮度最大的点就是白点,即假设在YCbCr空间中Y值最大的点为白色,以此来校正整幅图像。特点是只考虑色彩最亮的那部分,跟上面的灰度世界理论正好相反,在处理色彩偏单调的图像时效果好些,但面对颜色丰富的图片时,因为最亮的点不一定是白色的,有可能会出现偏色或矫枉过正的情况。


    这两个理论分别对应着两种色彩空间RGB和YCbCr调整白平衡的理论基础:如何判断一张图片白平衡是否准确,如果不准确,又该如何量化其偏离数值。


    这里大家可能就会好奇了,白平衡就是一个纠正画面整体偏色的过程,那为什么人眼不需要呢?其实在你看到一个东西的时候,眼睛就已经对它进行了色彩修正,只不过习惯了以后你已经意识不到了,就像你的眼睛是实际上是可以看见自己鼻子的,但习惯以后潜意识里面就会把它从视野中去除掉,以便减少视觉干扰一样。相机肯定没有人眼那么智能(至少现在没有),概括的说,它的自动白平衡算法就是设定一个范围,如果拍摄照片的色彩平均值落在这个范围里面,那就OK,无需修正。如果偏离出这个范围,就要调整参数,并校正色彩数据直到其均值落入指定的范围内。这就是WB白平衡修正的过程。


    下面就来简单介绍几个白平衡算法大致原理,但具体的增益计算和数学建模过程就不作赘述了,这东西即便是专业的人看了也会觉得头大的(你们知道我学了六年数学有多苦逼吗?!)。


1.灰度世界算法(Gray World Assumption)

    这个算法原理很简单,就是根据前面所说的灰度世界理论,将原始图像的RGB均值分别调整到R=G=B即可。不完美的地方就是这个算法对颜色不丰富的图像敏感程度一般,处理起来效果也就不会很理想,局限性较大。


2.标准差加权灰度世界算法(Standard Deviation Weighted Gray World Assumption)

    标准差加权灰度世界算法是针对上一个算法的改进,它的原理是把图像等分成几块,然后对每个块利用统计学进行分析,看里面颜色的丰富程度,颜色多的就加权,颜色少得就减少权重,最后求和得出一个均值。根据这个相对精确的数值来进行RGB数值的修正。


3.全反射算法(Perfect Reflector Assumpution)

    这个是基于前面介绍的全反射理论生成的算法,理解起来也不难,它认为中最亮的那个点就一定是白色的,如果原始图像中最亮的那个点不是,那就针对偏离白色的数值进行逆向修正。缺点就是如果图像色彩复杂或者就是没有高光点,它的修正效果就会比较乏力。

   

    上面三个算法比较简单,运算量不大,但各有优缺点,也就进一步衍生出了更加有效但是却要复杂的多一些混合算法,例如:亮度加权灰度世界算法与全反射算法的正交组合算法(Quadratic Combining Luminance Weighted Gray World & Prefect Reflector Assumption)。看这么长的名字就知道,这个算法很复杂,白平衡修正效果也是蛮不错的,而且它本身是收敛的,在对图像处理的时候不会带来太多损失,但可惜运算量巨大,对硬件资源的要求过高。


    算法方面挺枯燥的,非理工科对数学没兴趣也可以直接略过,大体知道这么回事儿就行。但我可以给出的结论是:最终效果越好的算法,其复杂程度就越高,运算量就越大,对硬件电路的要求也高。具体的实现还需要在白平衡校正能力,算法执行效率,处理器硬件性能三个方面进行权衡。


    而通过上面的了解你就会发现,如果ISP(Image Signal Processor图像信号处理器)的性能够高,白平衡算法施展的空间就会大了很多。某些时候白平衡不准确,一定程度上确实是与ISP性能跟不上有关,当然,这里也要看各家厂商在算法优化方面的功底。一般来说同一时代各个品牌的旗舰处理性能差别不会特别大,虽然软件方面下的功夫不容易看到,但重要性亦是毋庸置疑的,能否把硬件整体性能充分发挥出来才是关键。


    举例来说,在单反刚刚数码化的那个年代,相机的图像处理器性能比较低下,难以承受高运算强度的白平衡算法的蹂躏,于是很多单反相机(如佳能1D,尼康D2,奥林巴斯E-1等)机身上是有一个白平衡感应装置的(就是机身正面的那个小白点),这个可以辅助提高白平衡准确度。到后来随着相机图像处理器的性能飙升,大概是从富士通给尼康代工的Expeed一代处理器开始,就取消了外置白平衡感应器这个装置。通过越来越多的RGB测光分区数,配合越发强大的处理器来进行更加准确的色温修正。这里多说两句,分区越多,白平衡采样处理就越准确,但同时也会带来计算量上面的飙升,从最初的只有几个分区,到D800上面用的9.1万像素RGB感应器,在同时完成测光和白平衡计算的同时,甚至还能够余出力气进行人脸识别,背后那块改用了ARM架构Expeed 3才是最大的功臣。而像DC啊,手机摄像头啊这类连续取景的相机,则是用前一帧图像的处理结果应用到后面的图像上去的,实现方式同单反上面那个单独的测光感应器还不太一样的。这是产品本身结构差异性导致的。


    现如今手机上自带相机的白平衡功能不太强,可以从图像处理器性能不够强的角度上去理解,手机毕竟不是相机,在成本方面先天就存在诸多限制。但也不否认,即便在这种前提下,一些品牌在优化方面依然可以下很多功夫,在这方面做的很好,满足用户的日常拍摄需求是没啥问题的。就像拓海开他爸那辆老掉牙的AE86在秋名山上一样能赢GTR一样,内功外功都很重要。

                                                                                  李侃 Allen

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值