1. AWB概述:白平衡的基本概念、人眼视觉与色彩恒常性、AWB在ISP Pipeline中的位置
1.1 什么是白平衡?
白平衡,说白了就是让白色物体在照片里看起来是白的。
你想想看,一张白纸在日光灯下是白的,在钨丝灯下发黄,在阴天里发蓝。但人眼不会觉得它变了色——这就是色彩恒常性。可摄像头没这个本事,它老老实实地把光源颜色拍进去了。所以我们需要AWB(Auto White Balance)来纠正。
我刚开始做ISP时,总觉得白平衡不就是乘几个系数嘛,有什么难的?后来被一个偏色case折磨了两周才明白——色温估计不准,后面所有颜色处理都是白搭。
1.2 人眼视觉与色彩恒常性
为什么人眼能做到色彩恒常?因为大脑在后台做了大量补偿。
- 视网膜适应:视锥细胞对不同波长光的敏感度会动态调整
- 大脑推断:根据场景中的高光、阴影、记忆色来“猜”光源
- 局部对比:同一物体在不同背景下的感知色会变化
但摄像头没有大脑。它只有一组固定的RGB响应曲线。所以AWB算法本质上是在模拟人眼的色彩恒常能力。
我记得有一次调试一个户外监控摄像头,黄昏时分画面偏紫得厉害。我试了七八种算法都不行,最后发现是光源色温变化太快,AWB收敛速度跟不上。嗯,这里要注意——动态场景下的色温跟踪,比静态场景难得多。
| 特性 | 人眼视觉 | 摄像头传感器 |
|---|---|---|
| 色彩恒常性 | 天生具备,自动补偿 | 需要算法模拟 |
| 光源适应速度 | 毫秒级 | 依赖AWB收敛速度 |
| 记忆色辅助 | 有(知道天空是蓝的) | 需要先验知识库 |
| 局部对比度影响 | 显著 | 通常忽略 |
1.3 AWB在ISP Pipeline中的位置
ISP(Image Signal Processor)是一条流水线,AWB只是其中一环。但它的位置很关键——在去马赛克和颜色校正之前。
为什么?因为如果白平衡没做对,后面的颜色校正矩阵(CCM)会放大偏色。我曾经见过一个case,AWB增益算错了5%,结果CCM把蓝色通道拉爆了,整张图像蒙了一层紫边。
典型的ISP Pipeline流程如下:
- Sensor Raw输入 —— 拜耳阵列原始数据
- 黑电平校正(BLC) —— 去除暗电流噪声
- 去马赛克(Demosaic) —— 插值出RGB全分辨率
- 白平衡(AWB) —— 色温估计 + 增益调整 ← 我们在这里
- 颜色校正(CCM) —— 从传感器RGB映射到标准色域
- Gamma校正 —— 亮度非线性映射
- 色彩增强/降噪 —— 后处理美化
下面这张图展示了AWB在ISP Pipeline中的位置和它与其他模块的关系:
1.4 AWB的核心挑战
做AWB调试这么多年,我总结出三个核心难点:
- 光源未知:摄像头不知道当前是什么光源,只能从图像数据里“猜”
- 场景复杂:同一场景可能有多个光源(混合光源),比如室内窗边
- 物体颜色干扰:红色物体在暖光下和白色物体在冷光下,传感器响应可能一模一样
举个例子:一个红色苹果在日光灯下,和一个白色苹果在红光下,拍出来的RGB值可能完全相同。AWB怎么区分?这就是所谓的“色温-物体颜色歧义性”。
1.5 本章小结
这一章我们聊了三个事:
- 白平衡是什么 —— 让白色变白,消除光源色偏
- 人眼为什么能做到 —— 色彩恒常性,但摄像头需要算法模拟
- AWB在ISP里的位置 —— 在Demosaic之后、CCM之前,位置错了全盘皆输
我个人习惯把AWB比作ISP的“地基”——地基没打好,上面盖的楼再漂亮也没用。后面的章节我们会深入色温估计算法、调试工具和实战案例,一步步把这个地基夯实。