ISP pipeline之自动白平衡(AWB)

ISP pipeline之自动白平衡(AWB)

白平衡的基本概念

人类视觉系统具有颜色恒常性特点,一次人类对物体观察不受光源影响。但是Sensor在不同光线下,物体呈现的颜色不同,在晴朗天空下会偏蓝,在烛光下会偏红。为了消除光源对于图像传感器成像的影响,模拟人类视觉系统的颜色恒常性。保证在任何场景下看到的白色是真正的白色。

不同光源下sensor的成像结果

因此,白平衡处理的目的是通过改变图像的各个色彩通道的增益,对色温环境所造成的颜色偏差和拍摄一起本身所固有的色彩通道增益的偏差进行统一补偿,从而让获得的图像能正确反映物体的真实色彩。

AWB算法原理简介

做白平衡算法的基本过程其实就是在每个颜色通道上乘上对于的gain值,如下图所示:

 所以关键的步骤就是如何去确定这些gain值。因为gains值的估计是一个under constrained问题,因此经常使用强假设来解决,如灰度世界假设、白世界假设等。接下来我们将介绍几种常见的白平衡算法。

灰度世界法

灰度世界假设认为:给定一个颜色丰富的图像,那么其中各个颜色的平均值应该是灰色。因此,不同颜色通道上的平均测量值中灰色的偏移就是由于光源的颜色造成的,而上述公式中的(rg,gg,bg)就是用来补偿这种偏移的。那么假设每个颜色通道的均值为 (R avg ,G avg ,B avg )。则对应的(rg,gg,bg)就等于:

其中R gray = G gray = B gray,也就是一般用来表示灰色的颜色值,如八位图值的128. 

这种算法适用于很多场景,但是当拍摄的对象和颜色较为单一时,效果则不够理想。

最大亮点法

承接上文,最大亮度法则是假定图像中某些点对各个频率的色光具有最大的反射率,即认为亮度最大的点(一般认为R+G+B或Y最大)为白色点,并以该点为参考点进行AWB算法。此时(rg,gg,bg)等于:

 

其中 R white = G white = B white 是白色点对应的颜色值, R max = G max = B max 则是该图像最亮点的三颜色值。

这种算法也适用于很多场景,但是会被像诸如噪点、HDR等影响,这时鲁棒性就不够理想。

基于这些算法应用时的局限性,为了加强假设,限制系统失真和白平衡估计之间的相互影响,接下来将介绍一些更复杂的白平衡算法。

 

区域分割法

该算法会预先在各个色温下(2500~7500K)拍几张白纸照片,假设拍6张(2500,3500…7500),作为色温参考表,然后根据这些数据插值出各个色温下的对应数据,如R/G,B/G。

接下来会将整个图像分为M*N个block,并统计每一个block的信息,如白色像素的数量及R/G/B通道的分量的均值。根据这些统计值, 就找出图像中所有白色的block,并根据拟合的色温曲线来判断该block的色温。最后只需要统计在所有白色block中色温最多的那个即可。

 

最后其实AWB算法还有很多,如色域界限法,完美反射法等等,这里不多做赘述。AWB在isp pipeline中属于color rendition部分,对于成像画质的影响比较大,因此一般在后续还会有AWB tunning的过程来进一步改善整体的成像效果。

posted @ 2020-09-12 16:09  什么都搞的小黄  阅读(3155)  评论(0)    收藏  举报