denoising diffusion post-processing for low-light image enhancement 论文阅读笔记

在这里插入图片描述

  • 这是arxiv上一篇做denoising diffusion的文章,用来做low-light image enhancement的post-processing,感觉可能是已经投稿还未发表

diffusion model 背景

  • diffusion model是比较多公式的一个模型,但是其实不难,话不多说,直接上公式:
  • diffusion model建模了一个马尔科夫链,从 x t − 1 x_{t-1} xt1 x t x_t xt的过程建模成一个高斯概率模型,从而给定 x 0 x_0 x0 x 1 x_1 x1 x T x_T xT的过程是高斯概率模型的累乘:
    在这里插入图片描述
  • 高斯乘以高斯还是高斯,那么第一个式子可以展开并化简,同时把 x 1 : T x_{1:T} x1:T拆开,具体公式看diffusion model的论文,这里不展开,反正一系列推导后,给定 x 0 x_0 x0, x t x_t xt的概率分布是个高斯概率分布,进行一些变量代换使得公式更加简洁可以得到如下的式子:
  • 在这里插入图片描述
  • 其中, α t : = 1 − β t \alpha_t:=1-\beta_t αt:=1βt, α ‾ t : = ∏ s = 1 t α s \overline \alpha_t:=\prod_{s=1}^t \alpha_s αt:=s=1tαs
  • 这是个高斯模型,那么我已知 x 0 x_0 x0想采样得到 x t x_t xt可以通过向均值加高斯噪声来实现:
    在这里插入图片描述
  • 这里的 ϵ \epsilon ϵ是0均值一方差的标准高斯噪声
  • 我们可以看到,这个公式,当 t t t越大时, α ‾ t \overline \alpha_t αt由于是一系列小于1的数的累乘,是会越来越小的,所以第一项占比越来越小,第二项占比越来越大。当 x 0 x_0 x0是一张干净的图像时,随着t的增大, x t x_t xt中有效信号的成分越来越小,而噪声成分越来越大。直到 t t t特别大的时候,假设我们设了个最大值 T T T,这时候 x T x_T xT几乎就是一张完全的噪声图,满足0均值1方差的高斯噪声。
  • 前面讲的就是退化过程,一张干净的图片 x 0 x_0 x0是怎么一步步退化成一张噪声图 x T x_T xT的。我们希望利用网络从 x t x_{t} xt预测 x t − 1 x_{t-1} xt1,从而实现一个逆过程,把一张噪声图一步步变成一张干净的图像。给定 x t x_{t} xt x t − 1 x_{t-1} xt1也是一个高斯分布,但是均值从网络中得出,方差是已知的。但是我们不需要管高斯分布也不需要管方差,因为我们不采样,我们直接取概率分布中的最大概率的点,也就是高斯分布的均值。
  • 在这里插入图片描述
  • 根据不同的diffusion 模型有不同的做法,这篇文章用的是denoising diffusion,模型并不直接预测均值,而是预测噪声,其实这是等效的。前面的推导中,我们可以通过将 x 0 x_0 x0和噪声 ϵ \epsilon ϵ进行加权平均来获得 x t x_t xt,那么我们也可以通过预测从 x 0 x_{0} x0 x t x_t xt的过程中等效添加的高斯噪声来从 x t x_t xt逆推到 x 0 x_{0} x0,从而预测噪声的模型的目标函数如下所示:

在这里插入图片描述

  • 也就是先前向加噪,并记录下每次添加的噪声 ϵ \epsilon ϵ和得到的 x t x_t xt,然后计算模型预测的噪声和真实噪声之间的差。
  • 当模型训练完成,给定一张带噪图片 x t x_t xt,就可以通过如下公式对干净的图片 x 0 x_0 x0进行估计:
  • 在这里插入图片描述
  • 从网络的预测公式 ϵ θ ( x t , t , c ) \epsilon_\theta(x_t, t, c) ϵθ(xt,t,c)可以看出网络的输入由三部分组成,第一部分是带噪图片 x t x_t xt,很好理解,用卷积神经网络处理即可,第二部分的 t t t是标量输入,就需要特殊处理的,这里用的是sinusoidal positional embeddings来处理生成向量,从而可以用全连接神经网络进一步处理。而 c c c则根据任务的不同各自定义了。文章这里做的是暗图增强,所以 c c c是暗图, x 0 x_0 x0是亮图。

本文方法

  • 暗图增强模型对暗图增强后通常会同时把噪声也增强出来,所以本文提出用denoising diffusion model来对增强结果进行去噪。diffusion网络先是在正常光照图片上训练,网络的输入是暗图(条件 c c c)和diffusion对亮图加噪的图片( x t x_t xt)和 t t t,输出是 x t x_t xt上的噪声。测试的时候则输入暗图(条件 c c c)和暗图增强网络的增强结果( x t x_t xt)和 t t t,网络会输出增强结果上的噪声。
  • 注意测试的时候因为 x t x_t xt并不是真的用diffusion model加噪生成的,所以其实我们不知道 t t t是多少,所以只能通过实验确定什么样的 t t t比较好,实验发现 t t t太大时,会把整张图片原封不动预测为噪声(因为模型就认为输入中噪声占比已经很大了),而 t t t太小时文章说会过度估计噪声,但并没有给出具体解释,我也想不通。反正最后确认了设为300是最好的。
  • 预测出噪声后,就可以根据diffusion model的公式把噪声去掉咯:
    在这里插入图片描述
  • 但是这里通过实验发现,这个公式中的时间 t t t(即 s s s)最好是设得比预测噪声时的 t t t小一点,这样效果更好。总之,前面的 t t t可以固定为300,然后根据噪声水平的不同和出来的效果,可以灵活调整 s s s使得结果更光滑或者锐利。

总结

  • 文章提供了一个思路,我觉得是有意思的。但是最后的时间步长的设定解释得不清楚,而且通过实验确定而非通过理论推导也让我觉得有点不舒服。如果能更严谨一点就更好了,可以看到还是有改进空间的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值