1. 白平衡基础概念:色温、白平衡与色彩恒常性

各位同学好,我是老周。在ISP调试这行摸爬滚打了十几年,今天咱们来聊聊白平衡——这个看似基础、实则坑最多的模块。

说实话,我刚入行时也觉得白平衡不就是“把白色调准”吗?后来被现实狠狠教育了几次。有一次项目赶着量产,室内灯光下拍出来的肤色偏黄,客户直接拒收。从那以后,我才真正沉下心去理解白平衡背后的物理原理和视觉机制。

这一章,我们先打好地基。把色温、白平衡、人眼色彩恒常性这几个概念彻底讲透。

1.1 什么是色温

色温这个概念,说白了就是描述光源颜色的一个数值。单位是开尔文(K)。

你想想看,一个黑体(理想辐射体)被加热到不同温度时,会发出不同颜色的光。温度低的时候偏红,温度高的时候偏蓝。这就是色温的物理来源。

光源场景 典型色温(K) 视觉感受
烛光、日出日落 1800 - 3000 暖黄、偏红
白炽灯 2700 - 3200 暖白
荧光灯、日光灯 4000 - 5000 中性白
正午阳光、闪光灯 5000 - 6500 标准白
阴天、阴影 6500 - 8000 冷白、偏蓝
蓝天(无云) 10000 - 15000 深蓝

这里有个容易混淆的点:色温越高,颜色越冷(偏蓝);色温越低,颜色越暖(偏红)。跟直觉正好相反。我在给新人培训时,经常有人问“为什么高温反而发蓝?”——因为黑体辐射的峰值波长随温度升高向短波(蓝光)移动。

个人经验: 在ISP调试中,我习惯把D65(6500K)作为基准光源。但实际场景中,混合光源才是常态。比如室内既有窗外的日光(高色温),又有台灯的白炽光(低色温)。这种混合色温场景,是AWB算法最容易翻车的地方。

1.2 什么是白平衡

白平衡,英文叫White Balance,简称AWB(自动白平衡)或WB。它的核心目标就一个:让白色物体在任何光源下都呈现为白色。

为什么需要这个?因为相机传感器是“诚实”的。它记录的是场景中物体反射的光谱能量分布。如果光源偏黄,白色物体反射的光也会偏黄。相机如果不做处理,拍出来的白色就是黄的。

白平衡的本质,就是对三个颜色通道(R、G、B)施加不同的增益,把偏色的白色拉回到标准白色。

// 白平衡的数学本质
// 假设标准白色在D65光源下为 (R0, G0, B0)
// 当前光源下白色响应为 (R_src, G_src, B_src)
// 则白平衡增益为:
gain_R = R0 / R_src
gain_G = G0 / G_src
gain_B = B0 / B_src

// 对全图每个像素应用增益
R_out = R_in * gain_R
G_out = G_in * gain_G
B_out = B_in * gain_B

嗯,这里要注意:增益不能无限大。我在调试高通平台时,遇到过极端低色温(烛光)场景,B通道增益被拉到3.0以上,结果噪声爆炸,暗部全是彩色噪点。所以实际工程中,我们会给增益设置上限,比如1.0~2.5之间。

1.3 人眼视觉系统的色彩恒常性

为什么相机需要白平衡,而人眼却好像不需要?

其实人眼也有“白平衡”,只不过它是自动的、无意识的。这个能力叫做色彩恒常性(Color Constancy)。

你想想看,一张白纸在阳光下是白的,在烛光下你依然觉得它是白的。但相机拍出来,烛光下的白纸是黄澄澄的。这就是人眼和相机的根本区别。

人眼的色彩恒常性主要依赖两个机制:

  • 视觉适应:视网膜上的视锥细胞会根据环境光调整灵敏度。待久了,大脑会“校准”掉光源的颜色。
  • 先验知识:大脑知道“白纸是白的”,所以即使视网膜接收到的信号偏黄,大脑也会修正感知。

相机没有这种“先验知识”。它只能靠算法去估计光源颜色,然后做反向补偿。这就是AWB算法的核心任务——光源估计。

核心观点: 人眼的色彩恒常性是“感知层面”的修正,相机的白平衡是“信号层面”的修正。前者是生物进化出来的能力,后者是工程算法模拟出来的能力。两者目标一致,但实现路径完全不同。

1.4 为什么相机需要白平衡

这个问题其实前面已经回答了,但我还是想从工程角度再强调几点:

  1. 传感器是色盲的:CMOS传感器只记录光子数量,它不知道当前是什么光源。它忠实记录,但忠实不等于好看。
  2. 下游模块依赖白平衡:在ISP pipeline中,白平衡是色彩处理的第一步。如果白平衡不准,后面的色彩校正矩阵(CCM)、伽马校正、饱和度增强都会跟着错。一步错,步步错。
  3. 用户体验的底线:我做过用户盲测,偏色是用户最敏感的缺陷之一。尤其是肤色偏黄偏绿,用户一眼就能看出来。白平衡不准的照片,用户会直接定义为“废片”。
  4. 不同场景需要不同策略:比如拍风景时,稍微偏蓝的冷色调反而更讨喜;拍食物时,暖色调更有食欲。所以白平衡不只是“准确”,还要“好看”。
避坑指南: 我曾经在一个项目中,为了追求白平衡的“准确”,把算法调得过于激进。结果在黄昏场景下,算法把暖色调的夕阳强行拉成了冷白色,用户投诉“照片没有氛围感”。后来我学乖了——白平衡要留一点“场景感”,不能为了准确而牺牲美感。

本章知识结构

下面这张图,我把本章的核心概念和它们之间的关系画了出来。你可以把它当作一张“思维导图”来理解。

白平衡基础概念知识结构图 白平衡(AWB) 色温(Color Temperature) 白平衡算法 色彩恒常性 低色温(暖) 高色温(冷) 光源估计 增益补偿 视觉适应 先验知识 核心逻辑:色温决定光源颜色 → 白平衡算法估计并补偿 → 模拟人眼色彩恒常性

这张图把本章的三个核心概念串联起来了。你可以看到:色温是物理基础,白平衡算法是工程实现,色彩恒常性是生物参照。三者缺一不可。