1. AWB 概述:白平衡的基本概念、色温与色度学基础、AWB 在 ISP pipeline 中的位置
1.1 白平衡的基本概念
人眼视觉系统具有色彩恒常性(Color Constancy),无论光源色温如何变化,人眼都能将白色物体感知为白色。然而,图像传感器(CMOS/CCD)不具备这种自适应能力,其记录的 RAW 数据会随光源色温变化而产生严重的色彩偏移。白平衡(White Balance, WB)的核心目标就是消除光源色温对图像色彩的影响,使白色物体在任何光源下都呈现为中性白,从而还原场景的真实色彩。
关键定义: 白平衡是 ISP(Image Signal Processor)中通过数字增益调整 R/G/B 通道比例,使图像中原本为白色的区域在输出中呈现为 R=G=B 的过程。
白平衡的数学本质可表示为:
R_out = R_in × R_gain
G_out = G_in × G_gain
B_out = B_in × B_gain
其中 R_gain、G_gain、B_gain 为各通道的增益系数,
且满足 R_gain : G_gain : B_gain 的比值由光源色温决定。
1.2 色温与色度学基础
色温(Color Temperature)是描述光源光谱特性的物理量,单位为开尔文(K)。它基于黑体辐射理论:当黑体被加热到不同温度时,会发出不同颜色的光。色温越低,光线越偏红/黄;色温越高,光线越偏蓝。
| 光源类型 | 典型色温 (K) | 视觉色调 | 常见场景 |
|---|---|---|---|
| 烛光/日出日落 | 1800 - 2800 | 暖红/橙 | 室内烛光、黄昏 |
| 白炽灯 | 2800 - 3200 | 暖黄 | 家庭照明 |
| 荧光灯/日光灯 | 4000 - 5000 | 中性白 | 办公室、教室 |
| 正午日光 | 5000 - 6500 | 标准白 | 户外晴天 |
| 阴天/阴影 | 6500 - 8000 | 冷蓝 | 阴天、树荫下 |
| 蓝天/高海拔 | 8000 - 10000+ | 深蓝 | 晴朗天空、雪地 |
在色度学中,白平衡的调整通常基于 CIE 1931 色度图。光源的色度坐标 (x, y) 落在普朗克轨迹(Planckian Locus)上,而白平衡的目标是将图像的白点校正到标准照明体 D65(色温 6504K)或 D50(色温 5003K)附近。
色温估计偏差: AWB 算法的核心挑战在于从图像内容中准确估计当前光源的色温。当场景中存在大面积单色物体(如蓝天、绿草)或混合光源时,色温估计极易产生偏差,导致白平衡失效。
1.3 AWB 在 ISP Pipeline 中的位置
在典型的 ISP 处理流水线中,AWB(自动白平衡)模块通常位于黑电平校正(BLC)和去马赛克(Demosaic)之间,或紧接在去马赛克之后。其位置决定了输入数据的格式和输出数据的质量要求。
以下为 ISP Pipeline 中 AWB 模块的典型位置与数据流:
1.4 AWB 模块的输入输出与关键参数
AWB 模块在 ISP 中承担着色温估计与增益计算的双重任务。其输入输出关系如下:
| 项目 | 说明 |
|---|---|
| 输入 | Bayer RAW 数据(经 BLC 校正后)、统计信息(R/G/B 通道直方图、色块均值) |
| 输出 | R_gain、G_gain、B_gain 三通道增益系数,以及估计的色温值(K) |
| 关键参数 | 色温查找表(LUT)、增益上限/下限、统计窗口配置、收敛速度 |
| 常见算法 | 灰度世界(Gray World)、完美反射(White Patch)、色温估计(色度空间聚类) |
调试注意: AWB 模块的色温估计偏差是 ISP 调试中最常见的问题之一。当场景中存在大面积单色物体(如蓝天、绿草、红色墙面)时,灰度世界算法会错误地将该颜色视为中性灰,导致白平衡严重偏色。此时需要引入场景识别或统计窗口加权策略来修正。
1.5 AWB 色温估计的典型流程
一个完整的 AWB 色温估计与增益计算流程通常包含以下步骤:
- 统计信息采集: 将图像划分为 M×N 个统计块,计算每个块的 R/G/B 均值。
- 有效块筛选: 剔除过暗(噪声大)、过亮(饱和)、低饱和度(无色彩信息)的块。
- 色温初估计: 基于灰度世界或完美反射假设,计算全局 R/G 和 B/G 比值。
- 色温匹配: 将计算得到的 R/G、B/G 比值与预置的色温查找表(LUT)进行匹配,得到估计色温。
- 增益计算: 根据估计色温,从 LUT 中插值得到 R_gain、G_gain、B_gain。
- 时间域平滑: 对增益系数进行低通滤波,防止帧间闪烁。
1.6 色温估计偏差的常见场景
在实际调试中,以下场景最容易引发 AWB 色温估计偏差:
- 大面积单色物体: 如蓝天、绿草地、红色墙面,算法误将单色视为中性灰。
- 混合光源: 室内日光灯与窗外自然光混合,色温不唯一,算法难以收敛。
- 低照度环境: 信噪比低,统计信息受噪声干扰,色温估计抖动大。
- 高饱和度物体: 如霓虹灯、彩色灯光,超出色温 LUT 覆盖范围。
- 动态场景切换: 从室内到室外,色温突变,时间域平滑导致响应滞后。
调试建议: 针对上述场景,建议在 ISP 调试工具中开启 AWB 统计窗口可视化功能,观察有效块分布和色温估计曲线,结合场景识别(如人脸检测、天空检测)进行加权修正。