2. AWB自动白平衡原理:色温与色度学基础,灰度世界假设与完美反射假设,AWB算法核心思想
2.1 色温与色度学基础
自动白平衡(AWB)的核心任务是消除光源颜色对物体真实颜色的影响。理解色温与色度学是掌握AWB的前提。
2.1.1 色温(Color Temperature)
色温是描述光源光谱特性的物理量,单位为开尔文(K)。它通过将光源的颜色与理想黑体加热到一定温度时发出的颜色进行比较来定义。色温越低,光线越偏红/黄;色温越高,光线越偏蓝。
| 光源类型 | 典型色温 (K) | 视觉色调 | 常见场景 |
|---|---|---|---|
| 烛光/日出日落 | 1000 - 3000 | 暖红/橙黄 | 室内烛光、黄昏 |
| 白炽灯 | 2700 - 3300 | 暖黄 | 家庭照明 |
| 荧光灯(暖白) | 3000 - 4500 | 中性偏暖 | 办公室、商场 |
| 日光(正午) | 5000 - 6500 | 中性白 | 户外晴天 |
| 阴天/阴影 | 6500 - 8000 | 冷蓝 | 阴天、树荫下 |
| 蓝天(无云) | 10000 - 20000 | 深蓝 | 高海拔、雪地 |
调优提示: 在ISP调优中,色温估计的精度直接影响AWB的收敛速度。通常将色温划分为“暖色温区”(< 4000K)、“中性色温区”(4000K - 6000K)和“冷色温区”(> 6000K)进行分段处理。
2.1.2 色度学基础与色温曲线
在色度学中,常用CIE 1931 xy色度图来表示颜色。不同色温的黑体辐射轨迹在色度图上形成一条曲线,称为“普朗克轨迹”(Planckian Locus)。AWB算法的目标就是将图像中的“白色”点校正到这条轨迹上。
2.2 灰度世界假设(Gray World Assumption, GWA)
灰度世界假设是AWB中最经典、最基础的算法假设。它认为:在一幅色彩丰富的自然图像中,所有像素颜色的平均值趋向于灰色(即R、G、B三个通道的平均值相等)。
2.2.1 数学原理
设图像中所有像素的R、G、B通道均值分别为 \(\bar{R}\)、\(\bar{G}\)、\(\bar{B}\)。根据灰度世界假设,理想情况下 \(\bar{R} = \bar{G} = \bar{B}\)。如果存在色偏,则通过计算各通道的增益系数进行校正:
// 灰度世界假设增益计算
// 输入:图像像素数据 img,宽 W,高 H
// 输出:R、G、B 三通道增益 gainR, gainG, gainB
float sumR = 0, sumG = 0, sumB = 0;
for (int y = 0; y < H; y++) {
for (int x = 0; x < W; x++) {
sumR += img[y][x].r;
sumG += img[y][x].g;
sumB += img[y][x].b;
}
}
float meanR = sumR / (W * H);
float meanG = sumG / (W * H);
float meanB = sumB / (W * H);
// 以G通道为基准,计算增益
float gainR = meanG / meanR;
float gainG = 1.0f; // G通道保持不变
float gainB = meanG / meanB;
// 应用增益校正
for (int y = 0; y < H; y++) {
for (int x = 0; x < W; x++) {
img[y][x].r = clamp(img[y][x].r * gainR, 0, 255);
img[y][x].g = clamp(img[y][x].g * gainG, 0, 255);
img[y][x].b = clamp(img[y][x].b * gainB, 0, 255);
}
}
2.2.2 适用场景与局限性
| 特性 | 说明 |
|---|---|
| 优点 | 实现简单,计算量小,适合硬件实时处理;在色彩丰富的自然场景中效果较好。 |
| 缺点 | 当场景中存在大面积单色物体(如蓝天、绿草地、红墙)时,假设失效,导致严重色偏。 |
| 改进方向 | 引入“动态阈值”或“加权统计”,排除过亮、过暗或饱和度极高的像素。 |
工程陷阱: 在ISP流水线中,如果直接对RAW域数据应用灰度世界假设,必须考虑Bayer模式下的通道插值影响。通常建议在去马赛克(Demosaic)之后、Gamma校正之前进行AWB处理。
2.3 完美反射假设(Perfect Reflector Assumption, PRA)
完美反射假设,又称“镜面反射假设”或“白点假设”。它认为:图像中最亮的像素点(R+G+B值最大)对应于场景中的白色或镜面反射区域,这些区域应该呈现为纯白色(R=G=B)。
2.3.1 算法流程
- 搜索白点: 遍历图像,找到R+G+B值最大的前N%像素(通常取0.1% - 1%)。
- 统计白点均值: 计算这些候选白点的R、G、B通道均值 \(\bar{R}_{w}\)、\(\bar{G}_{w}\)、\(\bar{B}_{w}\)。
- 计算增益: 以G通道为基准,增益系数为 \(gainR = \bar{G}_{w} / \bar{R}_{w}\),\(gainB = \bar{G}_{w} / \bar{B}_{w}\)。
- 全局校正: 将增益应用于整幅图像的所有像素。
2.3.2 灰度世界 vs 完美反射
| 对比维度 | 灰度世界假设 (GWA) | 完美反射假设 (PRA) |
|---|---|---|
| 核心依据 | 全局像素均值趋于灰色 | 最亮像素应为白色 |
| 适用场景 | 色彩丰富、光照均匀的场景 | 存在高光、镜面反射或白色物体的场景 |
| 失效场景 | 大面积单色背景(如蓝天) | 无高光区域或高光区域本身带色偏 |
| 计算复杂度 | 低(仅需一次全局统计) | 中(需要排序或阈值筛选) |
| 鲁棒性 | 较差,易受主色调干扰 | 中等,受噪声和过曝区域影响 |
2.4 AWB算法核心思想
现代AWB算法不再依赖单一假设,而是融合多种策略,形成鲁棒的白平衡估计框架。其核心思想可概括为:“光源估计 → 增益计算 → 色彩校正” 三步闭环。
2.4.1 核心算法架构
- 光源估计(Illuminant Estimation):
- 基于统计:GWA、PRA及其变体(如灰度边缘假设、色域映射法)。
- 基于学习:使用CNN或决策树对色温/光源类型进行分类。
- 基于传感器:利用环境光传感器(ALS)或RGB-IR传感器辅助判断。
- 增益计算(Gain Computation):
- 根据估计的光源色温,查表或插值得到R、B通道的增益系数。
- 通常G通道增益固定为1.0,R和B通道增益在0.5 ~ 2.0范围内调整。
- 色彩校正(Color Correction):
- 将增益应用于RAW域或RGB域像素。
- 结合色彩校正矩阵(CCM)进行最终的颜色还原。
2.4.2 混合策略与工程权衡
| 策略 | 优势 | 劣势 | 工程实现建议 |
|---|---|---|---|
| GWA + PRA 加权融合 | 兼顾全局统计与局部高光 | 权重系数需大量调参 | 根据场景亮度动态调整权重 |
| 色温分类 + 查表法 | 速度快,稳定性高 | 需要预先标定大量光源 | 在实验室使用积分球标定20+种标准光源 |
| 基于CNN的端到端估计 | 精度高,适应复杂场景 | 计算量大,硬件部署困难 | 仅用于高端旗舰机或后处理 |
| 时序滤波(Temporal Filter) | 抑制闪烁和突变 | 引入延迟,快速切换光源时反应慢 | 使用IIR滤波器,系数α=0.1~0.3 |
调优要点: 在ISP工程中,AWB的调优不仅仅是算法选择,更关键的是“场景覆盖”。建议建立包含至少50种典型场景(室内暖光、户外阴天、舞台聚光灯、夜景霓虹灯等)的测试图库,用于验证AWB的鲁棒性。
2.5 本章小结
- 色温是AWB的物理基础,决定了光源的颜色倾向;色度学提供了定量描述颜色的工具。
- 灰度世界假设和完美反射假设是两种最基础的AWB模型,各有优劣,实际工程中常融合使用。
- AWB的核心思想是“估计光源 → 计算增益 → 校正色彩”,现代算法在此基础上引入机器学习、传感器融合和时序滤波等增强手段。
- 在ISP调优中,AWB的精度不仅取决于算法本身,更依赖于标定数据和场景覆盖的完备性。