大部分做「反照率 / 光照分解」的论文都在比谁分得更准。这篇不比准,它问的是另一件事:哪些地方本来就分不准,而且这件事能不能被提前测出来。

问题:不是模型不够强,是问题本身有两个解
2015 年那条裙子把网友劈成两半,原因说穿了很简单:一张照片给你的只有 RGB,而 RGB 是「表面反射」和「照明」两件事乘出来的结果。蓝黑裙子被暖光照,和白金裙子被冷光照,可以落到同一组像素值上。这是一个乘法被拆成两个因子的逆问题,天然不唯一。
这就是色恒常问题的病态性本身。平时我们靠先验(灰世界、场景语义、训练集分布)把解压到一个上,但先验只在大多数地方管用,在某些地方它会突然换边。裙子就站在那条边上。
转折:把「换边」写成一张不连续的面
作者的做法是把「先验偏好哪个解」定义成图像空间上的一个函数(论文叫 prior-mode section),然后指出:在某些位置,两个解的先验概率打平,函数在这里跳变,这些位置连起来是一张面。
关键的一步在后面。任何用梯度训出来的模型都是光滑的,光滑函数没法真的跳变,只能用一条很窄的过渡带去逼近这张面。正则化越弱、带子越窄、里面的变化率就越猛——论文把它写成一个干净的标度:跳变幅度除以正则化强度的平方根。
于是就有了两个不需要真值的观测量:
- 对分解模型:把输入的色温轻轻扫一下,看输出反照率跟着变多少(雅可比)。变化越剧烈,说明离那张面越近。
- 对 CLIP 这类编码器:把同一张图沿色温扫成一条曲线,看它在特征空间里的路径曲率。靠近面的地方会拐得特别急。
实测数字站得住:在 CGIntrinsics 上(1998 张图、2×10⁷ 个像素),色温雅可比与真实反照率误差的偏 Spearman 相关是 0.41,而亮度、饱和度两个对照量只有 0.087 和 0.021——说明抓到的确实是「二义性」,不是「图亮不亮」。上面那张图更直观:CLIP ViT-L/14 在真裙子上于 6473 K 出现 κ=73 的尖峰,离 D65 只有一个采样步;对照裙子最高只到 34.75,且 D65 附近毫无结构。U-Net、扩散模型、ViT 上都能看到同样的特征。
发散:这东西该进哪条流水线
最直接的落点是 AWB 的不确定度。 现在的白平衡网络永远吐一个光照向量,从不说「我卡在两解之间」。这篇给的是一个只需要对输入做色温扫描、不需要标注的模糊度探针——可以直接当 abstain 触发器:曲率一冲高就退回保守解,而不是自信地给出一个可能整体翻车的估计。多光源场景(半屋阴影半屋暖光)尤其吃这一套。
其次是评测。 AWB 论文报的平均角度误差把二义样本和普通样本混在一起,恰好掩盖了最该关心的失败模式。用这个量把测试集按模糊度分箱再分别报误差,比继续卷 mean AE 的第三位小数有信息量得多。
顺带一提,这里说的「二义」是分解层面的(同一 RGB 对应不同的反射-照明组合),跟光谱同色异谱不是一回事,别混。但两者的骨架是同一个:投影降维之后,信息真的丢了,再大的模型也补不回来,只能选择去建模「我在哪儿不确定」。
局限与存疑
得说清楚这篇的成色。它的主类目是 math.DG 而不是 cs.CV——本质是一篇几何分析论文,理论部分建立在 Tikhonov 这种简化正则化上,而深度网络的隐式正则化跟公式里的 λ 只是启发式对应,作者自己也承认这一步是软的。实验规模上,IntrinsicAnything 那组只有 100 张。色温扫描是合成重光照做出来的,不是实拍多光源;对照裙子是 Gemini 生成的,严格说不算同分布对照。
所以它现在还不是一个能直接插进 ISP 的模块,而是一个很值得抄的思路:与其继续追求把不唯一的问题算得更准,不如先老老实实把「哪里不唯一」量出来。