Image Super Resolution
在超分辨率重建技术的发展中,GAN(生成对抗网络)已经成为一种流行的解决方案。通过利用深度学习的能力,GAN能够从大量的图像数据中学习如何将低分辨率的图片转换成高清晰度版本。这种方法的核心在于两个相互竞争的网络:一个生成器负责生成图片,另一个判别器负责判断图片的真实性。两者之间的对抗过程推动生成器不断提升生成图像的质量。然而,GAN在实践中仍存在一些局限性,比如在处理更复杂场景和细节时可能出现的不稳定性,以及对训练数据过度依赖等问题。
今天要介绍的超分方法是基于Diffusion Model去做的,相比于GAN网络,思路非常新颖,训练过程也更稳定。
DDPM
DDPM也是生成式网络,由于它只需要从无序的噪声中预测出每次要减去的噪声,所以只需要训练一个网络。相比于GAN来说,训练更稳定,但缺点就是计算量比较大,要生成越精细的图片,所需要的时间步越多。但这也是DDPM的一个缺点,从无序的噪声中预测多余的噪声,也就意味着,它只能预测见过噪声。换句话说,它极度依赖数据集,没办法生成数据集之外的图像。而这种Diffusion Model是unconditional的。
那如果我们在每次reverse的过程给model添加一些额外的信息,是否能控制生成的方向呢?SR3就在超分领域做了一些尝试。
Image Super-Resolution via Iterative Refinement
SR3(Image Super-Resolution via Iterative Refinement)也即是论文名字的缩写。SR3在每次扩散的时候,给每个 x t x_t xt添加一个低分辨率的图片,让model有一个明确的生成方向,从而使得最终生成 x 0 x_0 x0是一张清晰的图像。
这里添加的低分辨率图片,在论文中是以concat的方式去融合的。作者也给出了一些不同分辨率下的网络结构。这里要说明一下,在实际实现中,concat的这个"低分辨率"图实际上是和最终的"高分辨率"图是一样分辨率的(shape是一致的)。通常是将低分辨率图直接用线性插值resize到和目标分辨率一样大,这个也比较好理解,不同分辨率是没办法在一个尺度下进行扩散的。
具体的数学公式其实和DDPM差不多,就是把
f
θ
(
x
)
f_\theta(x)
fθ(x)多加了一个参数,其他都和DDPM一样,这里就不展开推导了。
改进点
- 将低分辨率图融合到 x t x_t xt中,作为条件变量控制网络的生成方向。
- 相比DDPM,每个 t t t时刻下的 α t ‾ \sqrt{\overline{\alpha_t}} αt不再是一个固定的值,而是在 [ α t − 1 ‾ , α t ‾ ] [\sqrt{\overline{\alpha_{t-1}}}, \sqrt{\overline{\alpha_t}}] [αt−1,αt]的范围内随机采样一个点。
- 不再把 t t t作为参数输入给UNet了,而是直接将噪声强度的权重作为参数输入。
总结
SR3是第一个用Diffusion Model做超分的方法,由于没有用PSNR那些指标作为损失函数,所以指标上会显得比较低,但从论文的其他实验和实际的生成结果看,效果都是很好的。但换个思路,抛开这些不谈,我认为其最主要的贡献不在于超分,而是提供了一个思路。让Diffusion Model能用于更多去除图像多余信息的领域(去马赛克,图像去雾,修复等)。