把「颜色被墙改掉」当成噪声:DiffPC 用扩散模型解投影仪的逐像素色彩补偿

🧠 大模型影像论文精读 · 2026-08-02 · Diffusion · Color Correction · 跨设备色彩一致性 · Projector-Camera · 逆问题
arXiv 2026-06(TVCG)· 色彩还原 / 跨设备色彩一致性相关
图片来源:Wang, Ling, Huang, arXiv:2606.17521

有意思的不是它又刷了一版投影补偿网络,而是它换了个问法:被表面纹理和环境光改掉的那部分颜色,能不能直接当成噪声? 如果能,补偿就不再是"学一个从目标图到投影图的映射",而是"把脏图里的噪声去掉"——而去噪恰好是扩散模型最擅长的事。

https://arxiv.org/html/2606.17521v1/x1.png

问题:一面有花纹的墙,就是一个未知的逐像素色彩变换

你想让墙上出现某个颜色,实际出现的是投影仪光谱 × 表面反射率 × 环境光 × 相机响应一路乘下来的结果,而且逐像素都不一样——墙上有木纹,每处反射率都不同。这是个空间变化的未知色彩变换,你要求它的逆,再预先施加到投影内容上。既有做法(CompenNet / CompenNeSt 那一系)是端到端学:换个场景,采五百张配对图重训一次——等于每台设备每个房间都要现场标定。

转折:把残差建成"环境相关的加性噪声",再用扩散走回去

DiffPC 把"实拍"和"理想"之间的差看成高维残差,假设它是环境决定的加性噪声,整件事就被套进 mean-reverting SDE(均值回复扩散):起点不是纯高斯噪声,而是那张被环境污染的图;反向过程逐步剥掉环境影响,终点就是要投出去的补偿图。

条件怎么给是关键:不用文本 prompt,而是三张实拍参考图,投黑、投灰、投白——一次极简的设备-表面联合标定,黑图给环境光和黑电平,白图给这块表面的整体传递,灰图给中间调。三张图加内容特征一起作为双条件。用少量标定图当条件、剩下交给生成先验,这个接口比纯 zero-shot 更能落地。

数字上:CompenNet/CompenNeSt 的 143 组公开场景,预训练 PSNR 18.96 dB、ΔE 10.31,针对场景微调后 22.46 dB、ΔE 6.99;真实环境用 8 块带花纹 PVC 板实测,预训练 20.50 dB、ΔE 9.75。

能进到哪些真实流程里

最直接的是投影和 AR 的色彩管理:车载 HUD 打在路面上、家用投影打在带色墙纸上,现在基本靠手调。三张 probe 就能起效,等于开机自检拍三张即可,消费级设备扛得住。

更值得迁移的是范式本身。“把成像链路里的未知色彩变换当成残差,用生成先验求逆”,跟这一年相机端做白平衡、逆 ISP 的那批扩散方法同族,但 DiffPC 多给了一个条件接口:相机侧完全可以把灰卡、已知色块、甚至一次快门里的多曝光当成 probe 送进条件分支,让模型在"有一点标定信息"和"什么都不知道"之间取现实的中间态。跨相机色彩一致性、CCM 现场标定,都能往这个形状上套。

局限与存疑

ΔE 7–10 这个量级,肉眼一看就知道不对。 论文主打 PSNR/SSIM/FID/LPIPS,ΔE 只是附带;色彩科学角度恰恰该盯 ΔE00 的分布、最大值和中性轴偏移。平均从 10 降到 7,可能是把几个灾难区域拉回来了,也可能是整片轻微偏色——观感完全不同,论文里看不出来。

加性假设本身可疑。 表面反射对投影光是乘性的,加性只在对数域或很小的动态范围内近似成立。用加性残差是为了套进 SDE 框架,代价论文没正面讨论;我怀疑它正是 ΔE 下不去的原因之一——深色低反射率区域,乘性衰减不是加性噪声能描述的。

还有一块物理上不可逆。 打在深色表面上的亮部,投影仪输出上限摆在那儿,补不回来;这是色域问题,不是先验强弱的问题。号称"补偿"的方法都该先把这条边界画出来。

再加两个实际约束:扩散采样慢,作者自己承认不适合动态投影面;三张 probe 依赖精确的投影-相机几何配准,配准误差会直接变成色彩误差——细纹理表面错一个像素,取到的就是完全不同的反射率。

代码 github.com/cyxwang/DiffPC,论文已发 TVCG。

论文来源:arXiv 原文 ↗

← 返回 大模型影像论文精读