找回密码
 注册
搜索
查看: 11140|回复: 27

[讨论] 也说手机白平衡(原创)

[复制链接]
发表于 2006-9-13 08:56:00 | 显示全部楼层 |阅读模式
??白平衡英文名称为WhiteBalance。物体颜色会因投射光线颜色产生改变,在不同光线的场合下拍摄出的照片会有不同的色温。

??白平衡时移除不真实色彩偏差的过程,使人看到的白色物体在照片中也显示为白色。正确的白平衡必须将光源的色温(colortemperature)考虑进来,色温指的是相对于白色光的冷或暖。我们的眼睛很善于判断不同光源下的白色,而sensor的自动白平衡(AWB)很难正确的判断。错误的白平衡会产生难看的蓝色,橙色甚至是绿色偏差。这种情况在数码相机中也会出现,就更别说体积更小,价格更低廉的手机sensor了.

??目前在手机中的白平衡一般都是使用自动白平衡.而自动白平衡一般有简单和高级之分.目前使用的大部分sensor都是使用的简单白平衡.并不是说简单比高级的差,恰恰相反,简单白平衡比高级白平衡更具有生命力.在各种环境中都能适应.不会出现明显的偏差.而且简单白平衡与镜头无关,对于不同模组厂生产的sensor都可以使用同样的参数.正是这种好处,目前基本所有的项目均使用简单白平衡。但是简单白平衡也有一个很大的问题,就是简单白平衡的原理,是使图象中的红,绿,蓝三色的分量相等。这个原理是基于一种假设:自然界中的各种颜色合成的灰阶是128。这种假设在一般的情况下都是真确的,但是如果让sensor对准一种纯色的物体,这种假设就不成立了,这时显示的图片的颜色就会偏色。

??再说一下高级白平衡,目前手机中的高级白平衡主要是针对不同的色温,对sensor单独调整。这种调整只能针对某几种色温,一般是针对灯箱中的a,d,cwf三种光源进行调整,而且和sensor的镜头很有关系,即需要对每一个模组进行单独的调试。这样工作量就变的很大。另外,高级白平衡对其他光源的调整也会出现问题,所以,一般都不会使用这种方式。[br]<p align=right><font color=red>+5 RD币</font></p>
发表于 2006-9-13 10:55:00 | 显示全部楼层
受教啊,敢问兄台在哪里打拼啊,留个MSN吧,向你学习啊,
我得MSN:yuan7708@hotmail.com
点评回复

使用道具 举报

发表于 2006-9-14 09:28:00 | 显示全部楼层
不错,不错
点评回复

使用道具 举报

发表于 2006-9-28 17:15:00 | 显示全部楼层
应该是手动白平衡吧,由用户自己设定当前拍照环境。
点评回复

使用道具 举报

发表于 2006-9-29 09:14:00 | 显示全部楼层
现在的手机的白平衡,还是做的不够阿
基本上模式切换意义不大阿
点评回复

使用道具 举报

发表于 2006-10-10 11:01:00 | 显示全部楼层
长见识了
点评回复

使用道具 举报

发表于 2006-10-14 08:59:00 | 显示全部楼层
ov7670 的sensor在光线较强的情况下,就有偏红胡现象,采用自动白平衡,就是去不掉,不知大家有没有发现!
点评回复

使用道具 举报

 楼主| 发表于 2006-10-18 10:42:00 | 显示全部楼层
具体说是在亮和暗的交接的地方会有吧
点评回复

使用道具 举报

发表于 2006-10-18 16:03:00 | 显示全部楼层
屏闪与白平衡有关吗
点评回复

使用道具 举报

 楼主| 发表于 2006-10-20 14:14:00 | 显示全部楼层
没有关系
点评回复

使用道具 举报

发表于 2006-11-18 16:07:00 | 显示全部楼层
楼主请指教:您的文章中说"假设:自然界中的各种颜色合成的灰阶是128。这种假设在一般的情况下都是真确的,但是如果让sensor对准一种纯色的物体,这种假设就不成立了",为什么纯色物体这种假设不成立呢?请解释下吧~~
点评回复

使用道具 举报

发表于 2006-11-19 00:40:00 | 显示全部楼层
效果好不好  还是看算法啦...
点评回复

使用道具 举报

发表于 2006-11-20 18:09:00 | 显示全部楼层
对于11楼的问题,这是自动白平衡的缺陷。如果sensor对着纯色的物体,自动白平衡也会往灰阶上调节,这样就会出现纯色变白色了。当sensor对着物体主体是纯色,如蓝色,背景却是白色,自动白平衡就会把蓝色调成白色,而背景的白色反倒成了红色了。
因此很多新的算法回避这种缺陷,如只取灰阶附近的数据进行白平衡。[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-11-23 08:58:00 | 显示全部楼层
是否可以这样理解,sensor把所有纯色的东西全部变成白色?并且,这里所说的白色都是RGB 255 255 255吗?
点评回复

使用道具 举报

发表于 2006-12-11 16:21:00 | 显示全部楼层
在自然界里人们所接受到的99%的画面RGB三色分量是大致相等的,低级白平衡应用的就是这样的一个结论来做的。当我们摄影时遇到那所谓1%的情况白平衡就不好使了,这是低级白平衡很大的弊端。如主体是蓝色,自动白平衡会认为还有相同量的红色和绿色,于是自动增加红色通道和绿色通道增益,使颜色失真。——本人理解,请高手指教。
点评回复

使用道具 举报

发表于 2007-4-18 09:29:00 | 显示全部楼层
不错!
点评回复

使用道具 举报

发表于 2007-5-17 09:55:00 | 显示全部楼层
即使用标准光源校准WB也还存在sensor在不同光强下的非线性响应问题。
点评回复

使用道具 举报

发表于 2007-5-20 23:53:00 | 显示全部楼层
Good to learn somethings about the white balance.

As somebody mentioned, the standard balance method is using standard white point in standard color space such CIE 1931XYZ. The corresponding color temperature ranges from 5500 ~ 7500 K, with typical value is D55, D65, D75. However they are not practical in applications because standard optical source should be provided as reference.

However, the things should go back to the original thought for why white balance? The white balance is finally done for our human visual perception system.

We need dig out the application usage process. As we know, the camera acquires the images to be displayed in screen. The important thing is before the camera captures the an image, our eyes are also adaptive to the ambient light and perform white balance already in our brain. Then the image displayed on screen should be close to the "image" stored in our brain. Therefore you know what is our target for "white balance". Hence you know why many camera producer uses so-called simple white balance approach (just look the highest lumance point as the white point), this is because in most cases, human eyes "think" it as a white reference for the whole image.

However if we are in an evironment that is more "pure color" such as blue or red, do you think we percept that as a white reference? Of course not. therefore in these cases, we need correct the so-called simple white balance approach to do white balance in our camera. Constrains should be added to avoid these cases when the algorithm is developed.
点评回复

使用道具 举报

发表于 2007-5-27 21:58:00 | 显示全部楼层
白平衡在一般的图像处理书籍都很少会提及,因为说到底白平衡只是一种对人眼视觉特性的模拟,说不上是对图像这个二维数据域的空间变换。简言之,白平衡是传感器设备具备正确识别“白色”的能力。
我们先来看白平衡的“白”是什么。不同的光源具有不同的光谱成分和分布,这在色度学上称之为色温(色温是颜色的定义,以K(凯氏)为单位;对黑体(黑铁棒)加热,3200K时黑体发出的颜色定为白色;5600K时定为蓝色等;在Microsoft Picture Managemnet中色温称为色值)。物体本身反射入射光而显示出颜色,若光源色彩成分有变,势必会影响入射光的颜色,也直接或间接地改变了物体本来的颜色,形成色差。如一个白色的物体,在低色温的光线照射下会偏红,而在高色温的光线照射下会偏蓝。
实际生活中,不论是晴天、阴天、室内白炽灯或日光灯下,人们所看到的白色物体总是是白色的,这就是视觉修正的结果。人脑对物体的颜色有一定先验知识,可依据之侦测并且更正这种色差。但对于固体图像传感器而言,没有办法直接修正这种色温的改变,必须依靠内建的“白平衡”功能作调整。
物体颜色的改变特别是在使用人造光源的场合容易发生,因为传感器还是默认做正常光照下的白平衡,而人工光源色温与之的不同会导致拍得的照片会有不同程度的色差。如白炽灯照明下拍出的照片易偏黄;而在户外日光充足则拍摄出来景物也会偏蓝。同理若选用不同色温条件拍摄同一景物,也会呈诸多色差。
白平衡之“平衡”就是要对不同色温所引起的的色差进行校正,从而使白色的物体呈现真正的白色。数码相机中白平衡一般采用光学粗调和电路微调的方法进行。由于CCD、CMOS 图像传感器具有一定的光谱特性,因此必须在镜头前加上匹配的光学滤色镜,将红外等光线滤除,然后进行软件或电路微调。为了提高易用性,数码相机一般还支持自动白平衡。对于CCM来说,添加镜头来做调节不现实,只有靠自动白平衡算法来保证拍摄照片不失真了。因此,必须开发适合数码相机的自动白平衡算法,以保证拍摄照片不会失真。
传统摄影较少提到“白平衡”,主要是在因为底片上已经做了区分,如:大家都知道的富士胶卷适合室外,柯达胶卷适合室内。也可透过不同的滤色片来实现正确的色彩平衡,这需要若干昂贵的镜头。修改白平衡的方法,除了透过机身设定外,还可以透过计算机软件做事后修片;使用色温表测量现场的色温,之后将测量的数值输入到传感器中,完成白平衡的设定;一般白纸纸质不均,因此每次校正的白平衡也不见得相同,18%灰度色板是一种特殊处理过的色板,能表现达到均衡散光的效果,专业摄影人员常开个灰伞,除了是反光还有白平衡之解;现阶段大多数的数码相机、拍照手机的白平衡的功能都已相当准确。

简言之,白平衡就是在信道平衡模块中调整R/B增益,以合G的照度。
白平衡具有三个基本操作:(1) 色温估计,通过手工调节(取一个“标准白”的物体作为参考) 或算法统计的方法,找出图像中的白点,进而以此估计出表达色温的特征量,平均色差(若是设定色温下拍摄,则直接获得传感器中设定的该色温下的特征量);(2) 增益计算,采用查表或迭代的方法,计算出红色和蓝色增益(校正因子);(3)色温校正,通过Camera control在传感器的红色和蓝色通道乘上对应的校正因子,调整通道增益,以达到白平衡的效果.
人眼会去补偿各光源下的不同色温。固体图像传感器则需一参考点来重现白色,基于此参考点来重新计算其它颜色。举例来说,红灯照射白墙,则墙上会投射出红色(事实上这面墙原本应该是白色的)。但如果相机知道这面墙是白的,它将会补偿出所有的其它场景内的其它相应的颜色。知道这面墙是白色这个工作就是“色温估计”。色温估计是自动白平衡算法的三个基本操作中最重要的一环(手工白平衡不需做色温估计),没有正确的“W”,怎么“B”都不达效果。色温估计估算出正确的色差,才能保证后续操作的正确性。特别是在图像充满大面积彩色时,算法必须具有一定的鲁棒性,以保证色彩的完整性。这步工作就是俗称的找白点。一般的算法都是在YUV空间中做,OV2640是在RGB空间做,而MT9M112是在RYB空间(即亮度Y转换后)来做。这样效果会有一些差异。目前,国际上诸多的论文研究热点都在YUV空间中做色温估计白平衡处理,在RGB中做的效果不是很好。目前使用的较多的是Gray算法和高级Gray算法。Gray算法比较简单,不需要实验条件,直接做迭代计算可得
色温估计的目标就是估算出图像的平均色差。目前的色温估计算法中最基本的是计算整个图像的平均色差(但以平均色差来计算并不准确,[23]中提出以白色像素来计算色差可提高色温估计的精确度)。实际计算中为了实时操作,减少计算量,通常选取某个特定区域(如图像中央)像素进行计算。但若图像颜色较为单一或选定区域正好落入大的色块(红光下的白墙),以上算法求得的色温会非常不准确。为此,必须根据一定的约束条件,挑选出白色像素来计算色差。但由于RGB空间中实现较难,故目前CCM偶尔会出现白平衡失效现象,对于这个,我们也是没有办法。
增益计算是在色温估计的基础上,通过一定方法得到通道增益。通道增益即色温校正因子,有蓝色和红色两个分量,分别对图像蓝色和红色通道进行调整。为将Cb和Cr调整到0 (或接近0)的两个系数。
增益计算的方法有多种,比如查表法、迭代法等。查表法是事先统计出一张表(一般会记录该传感器在几
图4.22 白平衡增益计算迭代示意              种常见色温下的经典值,这个工作很重要,目前各家传感器商都会做这个数据采集工作,并将之结果固化;高通BB上集成的ISP上也做了这部分工作),记录不同的色温所对应的通道增益,具有速度快的优点;但由于表的容量有限,不能实现各种色温情况的连续调节。迭代算法则是根据Cb和Cr的关系,通过不断地调节μ和ν实现,如图4.22所示,其中λ为迭代步长,由算法给定。实际工作时为两者配合,色温估计后,先取与预估色温最接近的色温下参数,然后逐步做迭代,达到最终的白平衡。这完全是数据集做自学习,然后推广到整个实际中使用。
色温校正比较好理解,实现了“B”的过程。通过Camera control的作用,在增益调整放大器的蓝色和红色通道乘以各自的增益,从而实现对RGB三色的调节;使R/B增益合G的照度。要注意进行溢出处理,防止RGB输出超出0~255的范围。
白平衡的基本算法是Gray World假设算法。在该算法中,R、G、B信道增益为连续可调,最终使得R、G、B之均值可调。计算R/G与B/G,以时域滤波器来计算之。而高级Gray World算法则是建立在统计的基础上,先统计在各种光源下的对白板或者18%灰板的采集,然后基于曝光模式,设置相应的权重后重新计算各区中的R/G与B/G值,将之转为grid坐标;进而找到参考点,以之gain来做迭代。目前一般使用高级Gray World算法。
综上所述,自动白平衡是一个迭代过程,必须通过对连续图像的处理才能完成。自动白平衡是找出“W”,做“B”,那么手工白平衡则是是知道了“W”,做“B”
[br]<p align=right><font color=red>+5 RD币</font></p>
点评回复

使用道具 举报

发表于 2007-8-6 23:02:00 | 显示全部楼层
知识在于积累,每天看看52RD,真能学不少东西,可惜都是半懂,因为还没入门了 !
哈哈,见笑了![em06]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-2 06:46 , Processed in 0.054438 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表