1. AWB 基础:色温与白平衡概念、人眼视觉与色彩恒常性、AWB 在 ISP Pipeline 中的位置
各位同学,欢迎来到《自动白平衡与色彩校正矩阵调优》的第一章。
做图像处理这么多年,我见过太多「偏色」的案例了。有的偏黄,有的偏蓝,有的在室内正常,一到户外就翻车。说白了,这些问题十有八九都跟白平衡有关。
这一章,我们先打好地基。把色温、白平衡、人眼视觉这些概念理清楚,再看看 AWB 在整个 ISP 流程里到底站在哪个位置。
1.1 色温:光的「性格」
色温这个概念,其实挺直观的。你想想看,一根铁棒被加热,温度低的时候发红,温度高了发蓝。色温就是用来描述这种「光色」的物理量,单位是开尔文(K)。
| 光源场景 | 典型色温(K) | 视觉感受 |
|---|---|---|
| 烛光 / 日出日落 | 1800 - 2500 | 暖黄、温馨 |
| 白炽灯 | 2700 - 3200 | 暖白 |
| 荧光灯 / 阴天 | 4000 - 5000 | 中性白 |
| 正午日光 / 闪光灯 | 5500 - 6500 | 标准白 |
| 阴天阴影 / 蓝天 | 7000 - 10000+ | 冷蓝、清冷 |
这里有个容易混淆的点:色温越高,光色越偏蓝;色温越低,光色越偏红。我刚开始做这行时也经常搞反,后来记住「铁烧红了是低温,烧白了是高温」就再也没错过。
1.2 白平衡:让白色回归白色
白平衡的目的很简单:在任何光源下,让原本白色的物体在图像中呈现为白色。
为什么需要这个操作?因为传感器没有「脑子」。它只会老老实实地记录进入镜头的光线能量。如果场景色温偏暖,拍出来的白色物体就会偏黄;如果色温偏冷,白色就会偏蓝。
白平衡的数学本质,就是对 R、G、B 三个通道施加不同的增益,把「偏色」拉回来。
// 一个简化的白平衡增益计算
R_gain = G_avg / R_avg
B_gain = G_avg / B_avg
// 其中 R_avg, G_avg, B_avg 是统计窗口内的通道均值
嗯,这里要注意:这个公式只是最基础的灰度世界法。实际工程中,我们还要考虑很多约束,比如防止增益过大导致噪声放大,这些后面章节会细讲。
1.3 人眼视觉与色彩恒常性
为什么相机需要费这么大劲做白平衡,而我们人眼却几乎感觉不到偏色?
这就要说到人眼的色彩恒常性了。简单说,人脑会自动「校准」光源的影响。你拿着一本白书,在暖色灯下看,你依然觉得它是白的;在冷色灯下看,你还是觉得它是白的。大脑帮你做了白平衡。
但相机传感器没有这个能力。它记录的是物理真实——白书在暖灯下反射的光确实偏黄。所以我们必须用算法去模拟人眼的这种「自动校准」能力。
核心认知: AWB 的本质,就是让数字图像逼近人眼在色彩恒常性下的主观感知,而不是追求物理上的准确。
我在项目中遇到过一种情况:用户抱怨某款手机在黄昏时拍出来的照片太黄,但实际人眼看到的场景就是偏黄的。这就是「物理真实」和「感知真实」的冲突。后来我们调整了 AWB 策略,在黄昏场景下适当降低色温,用户满意度反而提升了。
1.4 AWB 在 ISP Pipeline 中的位置
ISP(Image Signal Processor)是一条流水线,AWB 只是其中的一个环节。它的位置很关键,直接影响后面所有色彩相关模块的输入质量。
下面这张图是我自己整理的典型 ISP Pipeline 中 AWB 的位置:
从这张图可以看得很清楚:
- AWB 位于去马赛克之后,色彩校正矩阵(CCM)之前
- 它接收的是已经插值完成的 RGB 图像
- 输出的白平衡增益会作用于后续的 CCM 和 Gamma 校正
1.5 本章小结
这一章我们聊了三个核心概念:
- 色温:描述光色的物理量,低色温偏暖,高色温偏冷
- 白平衡:通过 RGB 增益校正,让白色物体在任何光源下呈现白色
- 色彩恒常性:人脑的自动校准能力,AWB 的目标就是模拟这种能力
同时,我们明确了 AWB 在 ISP Pipeline 中的位置——它处于去马赛克之后、色彩校正矩阵之前,是整个色彩链路的第一道关卡。