-
这是CVPR2023的一篇用diffusion先验做图像修复和图像增强的论文
-
之前有一篇工作做了diffusion先验(Bahjat Kawar, Michael Elad, Stefano Ermon, and Jiaming Song, “Denoising diffusion restoration models,” arXiv preprint arXiv:2201.11793, 2022. 2, 4, 6, 7),但这个模型只能做线性的退化,对于暗图增强这种非线性退化复原则没有能力。
-
关键的公式就是如下的式子:
式7是diffusion模型的reverse过程,带了个条件y(低质量图片),通过约等号,条件y表现为了正态分布均值的偏差。按原先的diffusion先验,其实就是在diffusion的reverse的过程中,每次加噪的过程前都调整一下均值项。一个训练好的diffusion模型,不需要改变均值项和噪声方差的预测参数,只需要用另一个模型在reverse的过程中调整原模型预测的均值项即可。而这个调整项涉及的优化目标即为式8,由两部分组成,一部分是增强/复原 结果降质后和低质量原图的距离损失,一个是针对特殊任务的效果提升项,使得增强/复原结果具有期望的性质(如亮度)。其流程如下:
-
但作者认为,用 x t x_{t} xt的来算guidance有问题,原因是 x t x_t xt和 y y y带的噪声是不同种类不同强度的,算损失有问题。作者改进了这一过程,用 x 0 x_0 x0的估计来算,如下:
-
用的是从 x t x_t xt推导出来的 x 0 x_0 x0来算的guidance
-
image restoration任务的degradation算子之前的工作已经介绍过了,本文提出了一个enhancement任务的degradation算子:
-
就是乘以一个scale再加一个mask。但 f 和 M depend on x,所以这个式子表示的degradation其实并不是线性的。
-
前面提到,损失函数由两部分组成,一部分是距离函数,另一部分是无监督的质量函数。质量函数采用的是Zero-DCE的exp loss、color loss和tv loss:
-
实验结果还不错(我只关注了暗图增强任务)
-
启发:用diffusion先验来进行暗图增强的部分,degradation的公式设计得巧妙简单,通过加M并且用M的tv loss的方式来进行增强是一个简单有效的idea,不过可能可以有更加有效的方法