3A之AWB转载篇

在手机相机的专业模式中,可以看到有一个白平衡(WB)调节的选项

什么是AWB

人眼视觉系统具有颜色恒常性的特点,对物体的观察不受光源的影响。本质上是白色的物体,在不同色温,反射光线颜色不同的场景下,经过人眼的视觉系统矫正后还是白色;而对于Camera来说,不同色温,反射光线颜色不同,直接成像会有偏色现象发生。如下图所示,可以看到阴影区域的白色部分偏蓝:

为了在不同的色温环境下,消除光源对图像传感器成像的影响,模拟人眼视觉系统的颜色恒常性,保证在任何场景下看到的白色为正常的白色,ISP的流水线中添加了白平衡WB模块来处理色温引起的偏色问题

色温

色温是表示光线中包含颜色成分的一种计量单位,用“K”(开尔文)表示。

绝对黑体从绝对零度(-273℃)开始加温后,黑体的颜色会逐渐由黑变红,转黄,发白,最后发出蓝色光,当加热到一定温度,黑体发出的光所含的光谱成分,就成为这一温度下的色温。

如果某光源发出的光,与某一温度下黑体发出的光所包含的光谱成分相同,就称为某K色温。

如100W灯泡发出的光的颜色,与绝对黑体在2527℃时的颜色相同,那么这个灯泡发出的光的色温就是:(2527+273)K=2800K

Camera中设置AWB

Camera1中通过Paramters进行设置


    
    
  1. // 1. get support awb mode
  2. /**
  3. * @see #WHITE_BALANCE_AUTO
  4. * @see #WHITE_BALANCE_INCANDESCENT
  5. * @see #WHITE_BALANCE_FLUORESCENT
  6. * @see #WHITE_BALANCE_WARM_FLUORESCENT
  7. * @see #WHITE_BALANCE_DAYLIGHT
  8. * @see #WHITE_BALANCE_CLOUDY_DAYLIGHT
  9. * @see #WHITE_BALANCE_TWILIGHT
  10. * @see #WHITE_BALANCE_SHADE
  11. * /
  12. mParameters.getSupportedWhiteBalance();
  13. / / 2. set wb to auto
  14. mParameters.setWhiteBalance(Parameters.WHITE_BALANCE_AUTO)

Camera2中通过CaptureRequest.Builder进行设置


    
    
  1. // 1. get support awb mode
  2. characteristics. get(CameraCharacteristics.CONTROL_AWB_AVAILABLE_MODES);
  3. // 2. set wb to auto
  4. builder. set(CaptureRequest.CONTROL_AWB_MODE, CaptureRequest.CONTROL_AWB_MODE_AUTO);

相机AWB流程

在Turning阶段准备矫正参数在不同色温下按照一定梯度拍几张白纸作为色温照,然后对色温照的R/G/B通道进行矫正,让偏色的白纸照变为白色,并记录各个通道的矫正参数(实际只需矫正R和B通道,得到Rgain,Bgain),最后利用插值得到的色温-RG-BG的曲线图,大致如下:

图片来自参考资料一

在成像阶段只要计算出当前帧图像的色温,然后利用色温曲线图获取Rgain,Bgain进行颜色矫正即可。如何准确计算色温就是一个好的基于色温估计的AWB算法的核心和竞争力的体现了。

常见的AWB图像处理算法

常见的AWB图像处理算法有基于灰度世界,完美反射,动态阈值等图像自动白平衡算法和基于色温估计的自动白平衡算法。

这里简单说说灰度世界AWB,该算法基于灰度世界假设:在一幅有着大量色彩变化的图像中,其R,G,B三个分量的平均值趋于同一个灰度K,算法流程分为三个步骤:

  1. 计算平均灰度K,两种方式:第一种直接设定固定值,取各个颜色通道的最大值的一半,即127或128;第二种是计算各个颜色通道的平均值Raver,Gaver,Baver,然后对三个均值再求平均;

  2. 计算R,G,B通道的增益;

  3. 根据增益重新计算颜色值,计算中可能存在溢出(大于255),两种处理方式:第一种直接clamp,溢出的设置为255,这种方式可能造成图像整体偏白;第二种是计算所有新颜色中R,G,B通道的最大值,然后重新做线性映射到[0, 255],这种方式可能导致图像整体偏暗,一般直接采用第一种方案

核心代码如下:

原图效果:

白平衡处理后(原图中的晚霞效果,独特的红色被修正为了普通晴天的样子,这种就算过度的修正了):

一个正常效果的例子:

灰度世界法AWB算法计算简单,在复杂的场景下能呈现较好的效果,在颜色和物体单一的情况下,通常都会白平衡失败,容易受到噪声,渐晕,有限动态范围的影响

参考文章

1. https://blog.csdn.net/wzwxiaozheng/article/details/38434391

2. https://blog.csdn.net/wzwxiaozheng/article/details/40586293

3. https://www.cnblogs.com/Imageshop/archive/2013/04/20/3032062.html

~~END~~

推荐阅读

1. 从Bitmap中获取YUV数据的两种方式

2. 数字图像处理领域中常见的几种色彩模式

觉得不错,点个在看呗~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值