AWB学习记录

news/2024/10/3 19:56:21

主要参考食鱼者博客: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)的一种解析式。

估计图像的色温

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

根据色温作白平衡校正

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


https://dhexx.cn/news/show-5318113.html

相关文章

2024 MathorCup C 题 物流网络分拣中心货量预测及人员排班

一、问题重述 电商物流网络在订单履约中由多个环节组成,图1是一个简化的物流网络示意图。其中,分拣中心作为网络的中间环节,需要将包裹按照不同流向进行分拣并发往下一个场地,最终使包裹到达消费者手中。分拣中心管理效率的提升&…

1024同步写作助手操作说明文档

开发这个浏览器插件的主要目的是为了解决多个平台发布文章不同步问题,比如我在csdn上写了一篇文章发布了,但是我还有掘金/知乎/博客园/今日头条/微信公众号等平台啊,我也想把这篇文章同步到其他几个平台,怎么办?难道让…

开一家无人棋牌室,要多少成本?

1、房租:以株洲为例,商住一体的公寓楼内,120平,房租一个月只需2.5k 2、装修:有隔断层。大约需要投入4w左右,常见的有玻璃、石膏板、空心砖,价格差别大,装修时间和条件不一样。隔音效…

淘宝app端商品详情数据采集(商品价格,商品库存,商品销量,商品优惠券)

在淘宝App端采集商品详情数据,包括商品价格、库存、销量以及优惠券信息,可以通过多种方式实现。以下是几种常见的方法: 使用淘宝开放平台API: 淘宝开放平台提供了一系列API接口,这些接口允许开发者获取淘宝商品的详细…

Git:远程仓库名称变更本地无法提交解决

报错信息 blog % git push To github.com:hannah-lin-sama/web-docs.git! [rejected] main -> main (non-fast-forward) 错误:无法推送一些引用到 github.com:hannah-lin-sama/web-docs.git 提示:更新被拒绝,因为您当前分支的最新…

邮箱群组是什么?怎么创建邮箱群组?

在我们群发邮件时,可能会遇到这样的状况,一个个输入邮箱地址效率很低,而且很容易就漏发。而对于一个企业来说,如果出现这样的问题,很有可能会影响公司的业务进展和团队协作。这个时候我们就需要邮箱群组这个功能&#…

SQL Server Management Studio 显示行号

前言 在使用 SQL Server Management Studio (SSMS) 进行数据库管理和查询时,能够看到代码的行号是非常有用的。这可以帮助您更容易地定位代码错误、讨论特定的代码行,或者在执行长查询时快速找到特定行。在本文中,我将向您展示如何在 SSMS 中…

基础算法之二分算法

前言 本次博客,将要介绍二分算法的基本原理以及如何使用,深入浅出 二分可以针对整型以及浮点型接下来对其讲解希望对小白有所帮助吧 整型的二分法 一般要在一个数组中猜出一个数是否存在我们可以遍历一遍整个数组,判断是否存在&#xff0…

Restful API接口规范(以Django为例)

Restful API接口规范(以Django为例) Restful API的接口架构风格中制定了一些规范,极大的简化了前后端对接的时间,以及增加了开发效率 安全性保证–使用https路径中带 api标识路径中带版本号数据即资源,通常使用名词操作请求方式决定操作资源…

CTF中常见的四种python逆向

说在前面: 什么是pyc文件? pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高, pyc 文件是 Python 编译过的字节码文…