ISP论文解读 | 让AWB估计自己的估计的置信度(PR 2025)
📖 阅读提示
适合了解 AWB 算法的读者。
论文原文: Uncertainty Estimation in Color Constancy
前言
大部分白平衡算法都在解决一个问题:怎么把白点估得更准。我更关心的是 corner case:到底是算法没做好,还是观测本身存在歧义?
如果是 A 算法没做好的地方,B 算法行不行?
就比如纯色这种场景,企业一般考虑的第一个问题是:我该如何稳定地判断纯色场景?
本质上,就是算法的置信度问题。
高通或者海思的 ISP 基本都会利用有效像素数量、色度分布和经验区域等信息评估置信度。这些规则简单,但是有用,比如针对绿植场景,多年的积累生成了大量的 if-else,但是换其他的纯色场景就不太行。
有没有一种办法,能够直接计算出置信度,不要那么多经验参数在里面?
本文要介绍的这篇,就提供了一个视角。
名字是《Uncertainty Estimation in Color Constancy》[1],作者是研究 AWB 的老朋友 Marco Buzzelli 和 Simone Bianco,发表于 Pattern Recognition 2025。它估计 uncertainty,其实反过来就是置信度,然后再据此选择算法结果。
01 方法
论文分别构造了三类不确定度,如下。然后得到一个总置信度。
第一种是输入扰动(Aleatoric)。给图像施加 RGB 色偏变换,比较前后的白点预测,以输出变化构造风险分数。
它其实看的是这个算法鲁棒性。
第二种是白点分布距离(Epistemic)。在色度空间比较预测白点与训练集 GT 白点的距离,偏离常见分布就提示风险。
相当于你在 tuning 时候调节的光源区域。如果超了,就判定高不确定,就是低置信区。这种方案也是当前调试重点采用的。
第三种是我觉得最好玩的——直接预测误差(Intrinsic)。以 FC4[2]+Single Shot(SS)为例,网络同时输出白点和预计角误差。
图像 → 预测白点+预计 angular error
训练时,将预测白点与 GT 比较,得到实际角误差,用它监督误差输出;同时保留白点损失,加入误差回归与相关性约束。推理时没有 GT,误差也只能由网络预测。
所以,这属于有 GT 监督的联合学习,不是循环论证。
但是需要关注的是两个任务会不会相互影响,以及误差预测在新场景中是否可靠。
02 结果
作者用 FC4+SS 作为主算法;预测风险较高时调用轻量网络 Conv.Mean[3]+SS,后者预测风险更低才替换结果。这是硬选择,不是软融合。
下面是 Gehler–Shi 上的 recovery angular error,单位为度,越小越好。
| 方法 | Mean | Q99 |
|---|---|---|
| 原始 FC4 | 2.14 | 12.75 |
| FC4+SS | 2.30 | 10.87 |
| Conv.Mean+SS | 2.95 | 14.17 |
| 不确定度级联 | 2.22 | 9.86 |
Q99 是误差的第 99 百分位,不是 Worst25% 的平均误差。
可以看到,对于差的结果其实有效,但不多 😄。
03 评价
虽然整体效果一般,但是我觉得这个思路的价值在于:不只估计白点,也尝试判断这个结果是否值得采用。
这比一些 fancy 的网络加上去然后提升了一些——但是又讲不清楚哪里提升的方法,好很多。
04 发散
一是置信估计本身的准确性。联合学习并不保证风险一定准确,需要关注“白点错了,风险却很低”的情况。
二是算法互补性。FC4 不行的场景其他算法行不行?那到底哪个算法能够弥补前者的短板?这取决于你对算法本质,特别是其局限性的理解。
参考资料
[1] Buzzelli M., Bianco S. Uncertainty Estimation in Color Constancy. Pattern Recognition, 160: 111175, 2025. DOI
[2] Hu Y., Wang B., Lin S. FC4: Fully Convolutional Color Constancy with Confidence-weighted Pooling. CVPR 2017.
[3] Gong H. Convolutional Mean: A Simple Convolutional Neural Network for Illuminant Estimation. BMVC 2019.
上期回顾: ISP论文解读 | 洛桑联邦理工:多光谱AWB,不只是多几个通道
下期预告: None