1. AWB 基础概念:色温、色彩恒常性与 ISP 中的位置

各位同学好,我是你们这门课的老张。做了十几年图像处理,说实话,白平衡这关要是没过,后面调啥都是白搭。今天咱们先打好地基,聊聊 AWB 到底在干什么。

1.1 色温与白平衡的关系

先问个问题:为什么阴天拍的照片发蓝,而黄昏拍的发黄?

这就要说到 色温 了。色温不是温度,而是光源颜色的度量。单位是开尔文(K)。

光源场景 典型色温(K) 人眼感觉
烛光 / 日出日落 1800 - 3000 暖黄
白炽灯 2800 - 3200 暖白
日光 / 正午 5000 - 6500 中性白
阴天 / 阴影 6500 - 8000 冷蓝
蓝天(无云) 10000 - 15000 深蓝

你看,色温越低,光越偏红黄;色温越高,光越偏蓝紫。这个规律跟直觉是反的——低色温反而“暖”,高色温反而“冷”。

那白平衡是干嘛的?说白了,就是让传感器在不同色温下,都能把“白色”拍成白色。如果光源偏黄,传感器拍到的白色物体就会偏黄。AWB 算法要做的就是把这个黄色“扣掉”,让白色恢复成白色。

核心公式(简化版):

Rout = Rin × R_gain
Gout = Gin × G_gain
Bout = Bin × B_gain

其中 R_gain、G_gain、B_gain 就是 AWB 算出来的三通道增益。通常 G_gain 固定为 1.0,只调 R 和 B。

我个人习惯把色温理解成“光源的身份证”。拿到一张图,先猜它是在什么色温下拍的,然后反向补偿。这个思路贯穿整个 AWB 算法。

1.2 人眼视觉系统与色彩恒常性

你有没有想过,为什么人眼在烛光下看白纸,还是觉得它是白的?

这就是 色彩恒常性。人脑会自动“扣除”光源颜色,还原物体本色。但 CMOS 传感器没这个本事,它只会老老实实记录进入镜头的光线。所以 AWB 本质上是在模仿人眼的色彩恒常性。

我记得刚入行时,老板让我调一个室内场景的 AWB。我调了半天,总觉得颜色不对。后来才发现,人眼在混合光源下(比如窗户进来的日光 + 头顶的荧光灯)会自动取一个“折中”感知,但传感器不会。它会把两种光源的色温混在一起,导致画面局部偏色。嗯,这里要注意,混合光源是 AWB 的噩梦。

避坑指南: 我曾经在一个项目中,把 AWB 调得特别“准”,结果用户反馈说照片太冷。后来发现,用户习惯了暖色调的“记忆色”。所以 AWB 不是越准越好,而是要符合人眼的审美偏好。说白了,算法要带点“人情味”。

1.3 AWB 在 ISP Pipeline 中的位置

ISP(Image Signal Processor)是一条流水线。AWB 不是第一个,也不是最后一个,但它的位置非常关键。

下面这张图是我自己画的,展示了典型的 ISP 流程中 AWB 的位置:

ISP Pipeline 中 AWB 的位置 RAW 输入 黑电平校正 AWB 去马赛克 Gamma 校正 色彩校正矩阵 RGB → YUV 输出 关键说明: 1. AWB 在去马赛克之前做,因为 RAW 域的数据是线性的,更容易做统计。 2. AWB 的输出直接影响后续色彩校正矩阵(CCM)的准确性。 3. 如果 AWB 偏了,后面 CCM 再怎么调也救不回来。 4. 有些 ISP 把 AWB 放在去马赛克之后,但主流方案还是放在 RAW 域。

你想想看,AWB 前面是黑电平校正和线性化,后面是去马赛克和 CCM。如果 AWB 没做好,白点偏了,后面的色彩校正矩阵(CCM)就会把错误放大。我见过一个项目,工程师花了两周调 CCM,结果发现是 AWB 的色温估计偏了 500K。白白浪费了时间。

警告: 千万不要在 AWB 没稳定的情况下调 CCM。先让 AWB 收敛,再动色彩矩阵。这是 ISP 调优的铁律。

1.4 本章小结

  • 色温 是光源的颜色属性,低色温偏暖,高色温偏冷。
  • 白平衡 就是通过调整 RGB 增益,让白色在不同光源下保持白色。
  • 色彩恒常性 是人眼的自动白平衡能力,AWB 就是模仿这个能力。
  • AWB 在 ISP 中位于 RAW 域、去马赛克之前,位置非常关键。