1. AWB基础概念:色温与白平衡的关系、人眼视觉系统与传感器的差异、AWB在ISP Pipeline中的位置
大家好,我是老赵。做图像调试这行十几年了,今天咱们聊聊AWB——自动白平衡。很多刚入行的朋友觉得AWB就是调个色温参数,其实没那么简单。我刚开始做ISP调试那会儿,也踩过不少坑。今天这一章,咱们先把基础打牢。
1.1 色温与白平衡:一对“相爱相杀”的兄弟
先说色温。你想想看,为什么中午的阳光看起来是白色的,而蜡烛的光是黄色的?这背后就是色温在起作用。
色温的单位是开尔文(K)。数值越低,光越偏红黄;数值越高,光越偏蓝。比如:
- 烛光:约1800K,暖黄色
- 白炽灯:约3200K,暖白色
- 日光:约5500K,标准白色
- 阴天:约6500K,偏蓝色
- 蓝天阴影:约8000K以上,很蓝
白平衡是干嘛的呢?说白了,就是让相机在不同光源下,把白色物体拍成白色。你想想,如果一张白纸在暖色灯下拍出来是黄色的,那这张照片就“偏色”了。白平衡就是要把这种偏色纠正回来。
核心关系:色温是光源的物理属性,白平衡是相机的校正手段。两者是“测量”与“补偿”的关系。
我在项目中遇到过一件事:有一次在混合光源场景下(一半日光、一半荧光灯),AWB怎么调都偏色。后来才发现,是色温估计模块把两种光源的平均值当成了单一色温来处理。嗯,这里要注意——混合光源是AWB的噩梦。
1.2 人眼视觉系统 vs. 传感器:为什么相机这么“笨”?
你可能会问:为什么人眼在暖色灯下看白纸,还是觉得它是白的?而相机却拍得偏黄?
这就是人眼视觉系统的厉害之处——色彩恒常性。人脑会自动补偿光源的颜色,让你感知到的物体颜色保持稳定。说白了,你的大脑在后台默默做了“白平衡”。
但传感器不行。它就是个“老实人”,光是什么颜色,它就记录什么颜色。所以我们需要AWB算法来模拟人眼的这种能力。
| 特性 | 人眼视觉系统 | 图像传感器 |
|---|---|---|
| 色彩恒常性 | 天生具备,自动补偿 | 没有,需要算法模拟 |
| 动态范围 | 极高(约24档) | 有限(约10-14档) |
| 对光源的适应性 | 快速适应(几秒内) | 需要帧级别的收敛时间 |
| 色彩分辨率 | 三色锥细胞,精细 | Bayer阵列,需插值 |
我刚开始做调试时,总觉得AWB算法“不够聪明”。后来才明白,不是算法不行,而是传感器天生就缺了人脑那套“自动补偿”机制。我们做的,就是用算法去弥补这个差距。
避坑指南:我曾经在低照度场景下调试AWB,发现颜色总是偏绿。后来查了半天,原来是传感器在低照度下绿色通道的增益被放大了,而AWB没考虑到这个非线性。所以,调试时一定要关注传感器在不同照度下的响应特性。
1.3 AWB在ISP Pipeline中的位置
ISP(图像信号处理器)的Pipeline就像一条流水线,每个模块处理一个环节。AWB在哪个位置?我直接画个图给你看。
从图上你能看到,AWB在ISP Pipeline中处于RAW域处理阶段。具体来说:
- Sensor RAW:传感器输出的原始数据,包含Bayer格式的RGB信息
- 黑电平校正:去掉传感器暗电流带来的偏移
- 去噪:减少噪声,避免AWB误判
- AWB:估计色温,计算R/G/B增益,校正白平衡
- 去马赛克:将Bayer数据插值成完整的RGB图像
- Gamma/CCM等:后续的色彩校正和色调映射
注意:AWB的位置很关键。如果在去噪之前做AWB,噪声会影响色温估计的准确性。如果在去马赛克之后做AWB,插值误差会被放大。所以,AWB放在RAW域、去噪之后是最合理的。我见过一些低端方案把AWB放在后面,结果颜色总是飘忽不定。
1.4 小结:AWB调试的“三座大山”
好了,这一章的内容就这些。总结一下,AWB调试要面对三个核心问题:
- 色温估计:如何准确判断当前光源的色温?尤其是在混合光源下。
- 人眼模拟:如何让相机像人眼一样具备色彩恒常性?
- Pipeline集成:AWB在ISP中的位置如何影响最终效果?
我个人习惯,每次拿到一个新的传感器,第一件事就是测它的色温响应曲线。只有摸清了传感器的“脾气”,才能把AWB调好。下一章,咱们会深入讲色温估计的具体方法,包括灰度世界法、白点检测法这些经典算法。
嗯,今天就到这儿。记住,AWB调试不是一蹴而就的事,需要耐心和细心。有问题随时交流。