Contents

ISP 论文解读 | 联发科: Generative AWB (CVPR 2025)

就应用而言,理解算法的边界,往往比理解算法本身更重要

📖 阅读提示

潜在读者

  • 图像/ISP算法(调试)工程师,研究人员
  • 对计算摄影、颜色科学感兴趣的科研和技术人员

推荐时长

  • 1min–30min

原文下载


本期导读

联发科 CVPR 2025 Generative AWB
联发科团队在CVPR 2025发表的生成式AWB算法

上一篇文章 ISP论文解读 | Time-aware AWB(ICCV 2025) 中,我们聊到了未来 AWB 的三种技术路径:多通道 / 生成式 / 多模态
这是技术视角,但背后其实是更本质的问题视角——成像系统色彩还原绕不开以下痛点:

  • 多光源问题,特别是室内混光
  • 干扰色(无灰点)问题
  • 跨传感器问题(颜色不一致 / 训练模型或数据集不可复用)
  • 特殊场景下的肤色问题:多种族合影 / 长焦 / 夜景
  • 其他:稀缺光源、HDR/曝光与AWB联动、夜景下偏好色稳定、VR/MR中ISP功耗与稳定、大视场角的Shading与AWB耦合、与Display的联动

这些问题,本质上是色彩还原链路的全局协作,AWB 占了主要部分,但还牵涉 AE / HDR / Denoising / Tone / Preference / CCM / Gamma / Gamut 等模块的单独或耦合影响。

本文要介绍的是技术路径中的生成式技术角度,也是该技术针对 AWB 任务的首次探索,针对的问题包括:跨传感器的重复训练或域适应、干扰色、多光源。

AWB 的目的不就是找灰点吗?各种算法大致都是如何更高效地找灰点。但灰点可能:

  1. 不好找
  2. 根本没有
  3. 不止一个(多光源)

所谓二流的人才找机会,一流的人才创造机会。
生成式方法说:我是一流人才——我不找灰点,我直接生成灰点!

方法是:在 RAW 中直接生成一个 ColorChecker 色卡,然后提取灰格值来做光源估计,如图1所示。

图1:算法训练过程
图1:生成式AWB算法的核心思想 - 在RAW图像中直接生成ColorChecker色卡

结果在 Cube+、NUS-8、LSMI 等数据集上,泛化性很好,多光源表现也不错。
理论上,该方法在干扰色上也应表现优异,但作者未展示这些结果——原因?我们在分析中讨论。


01 方法

训练过程

核心是使用 stable-diffusion-2-inpainting 模型:

  • 冻结 SD 的 VAE 与文本编码器
  • 只调 U-Net,让它学会根据场景“补”出一个带真实光源的色卡

输入分为上下两个分支:

  1. 下分支:带色卡的 RAW(经过 gamma)
  2. 上分支:该色卡的 mask

训练过程分阶段,如图2所示。

算法核心 motivation
图2:训练过程

Step 1:

  • 上分支:原图 × mask → 得到“去掉色卡”的原图
  • 下分支:色卡区域做 Color Jittering → 得到增强后的原图

Step 2:

  • 两分支图像 → Stable Diffusion VAE Encoder(冻结参数)

Step 3:

  • 下分支 encoder 输出做拉普拉斯边缘提取
  • 与上分支特征拼接 → 作为条件送入 Inpainting U-Net

Step 4:

  • 结合文本提示(CLIP text encoder)
  • 固定采样步数(加速训练)
  • 仅更新 U-Net

Step 5:

  • 潜特征 → VAE Decoder → L2 Loss 回传

作者强调:

  • mask 分支:学结构(色卡轮廓)
  • 增强分支:学光源

但这种分支设计是否必要,后文讨论。


推理过程

图3:算法推理过程
图3:算法推理过程

与训练类似,区别在于:

  1. 色卡初始化
    随机粘贴一个 24 色卡作为占位

  2. 潜空间处理
    与训练一致 → Inpainting 生成色卡

  3. 逆 Gamma
    输出前 inverse gamma → 回 RAW 线性域

  4. 色卡采样
    提取灰格 RGB → 光源估计

RAW+gamma,作者强调这是sRGB,从而符合 SD 的训练数据分布。 但这明显不是sRGB,这是作者对ISP的理解有误,但也是后续可以优化的地方。


02 结果

1. 跨传感器泛化:SOTA

表1:Cross-sensor 表现
表1:Cross-sensor 表现

2. 多光源表现:Zero-shot

表3:Cross-sensor 结果
表2:Multi-illum 结果
  • 多光源 RAW 分 4 patch
  • 各生成色卡 → 光源估计
  • 加权合成 pixel-wise illumination map
图4:多光源表现
图4:多光源表现

缺点:硬分割在边界处会出现 local tone mapping 类问题。


03 评价

Pros

  • 首次将生成式方案落地 AWB
  • 将任务压缩到色卡生成这个 proxy,设计巧妙
  • 跨传感器泛化优于传统方案

Cons

  • 干扰色实验缺失,令人怀疑效果
  • Cross-sensor mean error=2.4,按方法设计应可更低——但是为何上限如此,需要深入分析——但是作者并没有分析failure case,是个大的缺陷
表3:Cross-sensor 结果
表2:Cross-sensor 结果

04 发散思考

  1. 输入域选择
    RAW+gamma vs sRGB 的 trade-off——如何兼顾传感器特性与训练分布一致性?

  2. 数据增强策略
    Color Jittering 是否最佳?

  3. 全局照明假设的风险
    混光场景下可能引入 bias,尤其 Gehler 数据集表现下降

    表4:数据集 bias
    表4:数据集 bias

  4. 架构简化可能
    mask 分支必要性存疑,或可用 overlay+灰点检测替代

  5. 模型学习的本质
    可能退化为“找灰点”而非真正生成光源信息

数据集 >80% 含灰点 → 容易走捷径