AWB学习记录

发布于:2024-04-18 ⋅ 阅读:(31) ⋅ 点赞:(0)

主要参考食鱼者博客:https://blog.csdn.net/wtzhu_13/article/details/119301096,以及相关的论文,感谢食鱼者老师整理分享。

灰度世界和完全反射

灰度世界法和完全反射法分别是基于(Rmean, Gmean, Bmean)和(Rmax, Gmax, Bmax)来进行白平衡校正。具体校正公式也比较灵活,增益可以是Gmean/Rmean或者max(Rmax, Gmax, Bmax)/Rmax,应该没有很确切的方法定义,而只是两种校正思路。

QCGP

QCGP认为上述两种思路各有适用场景,所以希望融合。融合的方式是“二次正交”。

以往的校正都是线性增益,可以表示为R'=R_{gain}*R。我们现在想融合两种方法,最先想到的会是将灰度世界所得增益和完全反射所得增益求平均,作为融合的增益。但是这种方式事实上是丢失信息的,因为只考虑二者的平均,没考虑差异。于是不能用这种线性加权的方式。

QCGP中引入两个参数的方式是二次正交。定义全新校正公式为R'=uR^2+vR,且给这个融合的校正公式输入R_{mean},则输出应该为R'_{mean}=\frac{r_{mean}+g_{mean}+b_{mean}}{3}。而输入R_{max}也同理得到R'_{max}=\frac{r_{max}+g_{max}+b_{max}}{3}。如此可以列出如下二元二次方程组,解得u和v两个参数。

\left\{\begin{matrix}R_{mean}'=uR_{mean}^2+vR_{mean} \\R_{max}'=uR_{max}^2+vR_{max}\end{matrix}\right.

模糊逻辑算法

不仅算法名字比较模糊,原论文A Method Of Automatic White Balance Using Fuzzy Logic和食鱼者老师讲的也都很模糊。我仅总结思路和考虑的方面。

总的来说,需要在Cr-Cb空间中找一个点来评价当前图像,所谓的白平衡即Cr=Cb=0,我们的任务是通过调整增益来使得调整后的图像评价为Cr=Cb=0。

评价的方式原文给了很详细的说明,逻辑如下:

  1. 分为8块,每块求各像素点的Cr-Cb值加权平均(对应到Cr-Cb空间中的一个点)
  2. 将8块的值加权求和,得到的即为整张图像的平均值。
  3. 第2步所提到的权值考虑的方面有:1)本块Cr值与周围块的Cr值偏差小,则本块的权重小。因为同属于一个大物体,所以此做法可以避免过度补偿。2)暗部和亮部的权重小。这样可以防止饱和测量值和低亮度下的噪声影响白平衡校正。3)每个块内部算平均Cr-Cb的时候,暗色的权重比亮色的小。

不过原文中并未给出校正的具体形式(是Cr'=K*Cr吗?),也未说明如何调整增益(K增大还是减小?),我暂时也不加探究,只知道其是一种迭代算法,每次调整后计算评价指标,评价指标符合条件时退出。

基于白点的方法

使用YUV空间做白点检测,将白点矫正为r=g=b

基于色温的方法

食鱼者老师又没给我讲懂,感觉他的讲解没点透本质。以下内容是我根据论文自己重新总结的。

Digital camera auto white balance based on color temperature estimation clustering

估计小块的色温

论文认为一个色温T可以对应一种H=\frac{B}{R}的比例,记为H(T)。函数H(T)是根据不同色温下拍摄灰卡测定的,它是一个单调的曲线,所以对于给定的RGB值,其色温就等于T=H^{-1}(\frac{B}{R})

论文中提到一大堆公式,其本质就是H(T)的一种解析式。

估计图像的色温

如以上所示,得到若干小块色温。给常用灯光的色温列个表,用小块色温给列表中的色温投票,得票高者为最终估计的图像色温。

根据色温作白平衡校正

论文没提,所以即使把色温利用独立传感器准确测得,我也不知道怎么用。


网站公告

今日签到

点亮在社区的每一天
去签到