这篇有意思的地方不是"又做了一个白平衡网络",而是把白平衡从回归问题换成了生成问题:不再让网络去猜"这束光偏什么色",而是让一个扩散模型往你的照片里凭空补画一张 24 色标准色卡,然后从这张被现场光"染"过的色卡上,把光源直接读出来。

问题背景:换台相机就翻车
自动白平衡(AWB / color constancy)的老大难,是跨相机泛化。学习型方法几乎都在拟合训练相机的光谱响应——同一片天光,佳能和索尼的 RAW 三通道比例天差地别。于是模型在 Gehler、NUS-8 上刷得漂亮,一换 sensor 就成绩崩盘。业界的土办法是每台相机重新标定、重新采数据、重新训练,成本高得离谱。根子在于:从 RGB 直接回归光源,学到的其实是"这台相机 + 这批场景"的联合统计,而不是光本身。
方法关键转折:让生成先验去"造"参考物
摄影师现场校色最靠谱的动作,是往画面里塞一张 X-Rite 色卡——因为色卡的反射率已知,色块被染成什么样,光源就是什么样。GCC 的核心一步,是把这个物理动作交给预训练的 Stable Diffusion 2 inpainting 去脑补:给定一张照片,扩散模型在指定区域"画"出一张符合当前场景光照的色卡,网络再从这张生成色卡的中性色块上解算光源色度。
几个让它真正能用的工程转折值得记:
- 单步确定性推理:不做多步随机采样,一次前向就出结果,避免了扩散模型的慢和抖,AWB 才有落到 ISP 的可能。
- 拉普拉斯分解:把色卡的"结构"(格子形状、边界)和"颜色"分开——结构由模板锁死,颜色才随光照自由变化,防止模型把色卡画歪或画出乱七八糟的图案。
- 基于 mask 的数据增广:容忍训练时色卡标注框不精确,让方法对现实中不规整的标注更鲁棒。
关键红利在于:扩散模型的先验是从海量自然图像里学来的,本身不绑定任何相机的光谱响应。所以 GCC 不需要 sensor-specific 训练,就在跨相机场景下拿到了强鲁棒性。
应用发散:能进哪些真实影像流程
- 手机 / 相机 ISP 的冷启动:新 sensor 上线时最缺标定数据,一个不依赖 sensor 响应的白平衡先验,正好补这段空窗。
- 跨设备色彩一致性:多机位、手机换代、相机阵列拼图,都受不同白平衡口径之苦;“补一张统一参考物再读光"提供了一个设备无关的锚点。
- 老照片 / UGC 批量校色:这些图早已丢掉 RAW 和拍摄相机信息,恰是传统按相机训练的方法最无力的地方,而生成式先验对"未知来源"天然更宽容。
- 数据合成与标注:能把符合场景光的色卡稳定画进任意图,等于半自动地给无标注图配上光源 GT,可以反哺下游 AWB / CCM 的训练。
局限与存疑
它把成败押在"扩散模型能画出色度可信的色卡"上——但生成模型对绝对色度有多准、会不会在极端光(低照度、强混合光、窄带 LED)下把中性块画偏,论文的边界并不宽。单步推理再快,Stable Diffusion 级别的算力也远超手机端实时 AWB 的预算,短期更像离线 / 云端工具而非 on-device。而且它仍是单光源框架,对多光源、空间不均匀光照这类真实拍摄里最难啃的场景,暂时使不上劲。但"与其回归光源,不如让生成先验造出色彩恒常本该依赖的参考物"这个思路转向,值得色彩科学和 ISP 圈认真惦记一阵子。