近年来,归一化流(Normalizing Flow)模型在图像超分辨率(image SR)[SRFlow, ECCV2020]和图像再缩放(image rescaling)[IRN, ECCV2020]任务上取得了惊人的效果。尽管这两个任务有本质的不同,但都具有高度的相似性。基于以上两个工作,来自苏黎世联邦理工学院计算机视觉实验室的研究者提出了 HCFlow,使用一个统一的框架处理图像超分辨率和图像再缩放,并在通用图像超分辨率、人脸图像超分辨率和图像再缩放上等任务上取得了最佳结果。该论文已被 ICCV2021 接收。
- 论文地址: https://arxiv.org/abs/2108.05301
- Github 地址: https://github.com/JingyunLiang/HCFlow
摘要
近期,归一化流(Normalizing Flow)模型在底层视觉领域取得了惊人的效果。在图像超分辨率上(image SR),可以用来从低分辨率图像中预测出细节不同的高质量高分辨率(diverse photo-realistic)图像。在图像再缩放(image rescaling)上,可以用来联合建模下采样和上采样过程,从而提升性能。本文提出了一个统一的框架 HCFlow,可以用于处理这两个问题。具体而言,HCFlow 通过对低分辨率图像和丢失的高频信息进行概率建模,在高分辨率和低分辨率图像之间学习一个双射(bijection)。其中,高频信息的建模过程以一种多层级的方式条件依赖于低分辨率图像。在训练中,该研究使用最大似然损失函数进行优化,并引入了感知损失函数(perceptual loss)和生成对抗损失函数(GAN loss)等进一步提升模型效果。实验结果表明,HCFlow 在通用图像超分辨率、人脸图像超分辨率和图像再缩放等任务上取得了最佳的结果。
图像超分辨率 v.s. 图像再缩放
图像超分辨率的目标是从低分辨率图像中重建出高分辨率图像。低分辨率图像空间一般是给定的。例如,双三次降采样 (bicubic downsampling)图像。
图像再缩放的目标是将高分辨率图像下采样到视觉效果较好的低分辨率图像,并且保证可以很好地恢复出原本的高分辨率图像。与图像超分任务不同,图像再缩放中低分辨率图像空间是可以自己定义的。它的主要应用场景是减少图像存储和带宽。
方法
归一化流简单介绍
归一化流(Normalizing Flow)模型致力于在目标空间(例如高分辨率图像 x)和隐空间(例如服从高斯分布的隐变量 z)之间学习一个双射。它的模型结构通常是由多层可逆变换组成的一个可逆神经网络(invertible neural network):
根据变量变换公式(change of variable formula)和链式法则,模型参数可以通过下面的最大似然损失函数进行优化:
更多入门信息可以参考:
- RealNVP论文:https://arxiv.org/abs/1605.08803
- Glow论文:https://arxiv.org/abs/1807.03039
- Eric Jang博客:https://blog.evjang.com/2018/01/nf1.html
- 滑铁卢大学CS480:https://www.youtube.com/watch?v=3KUvxIOJD0k
低分辨率图像空间建模
图像超分辨率和图像再缩放任务实际上都有一个图像退化(降采样)和图像超分(上采样)的过程。基于归一化流模型,该研究可以在高分辨率图像 x 和低分辨率图像 y 以及一个编码高频信息的隐变量 a 之间学习一个可逆双射变换。由于直接对自然图像进行概率建模是很难的,该研究设计了一个基于真实低分辨率图像 y * 的条件分布模型:
理想情况下,研究者希望 y 和 y * 越接近越好,所以他们将 p(y|y*)表示为狄拉克函数,并通过一个具有极小方差的高斯分布来近似表示 p(y|y*):
由于高频信息 p(a|y)可以通过另一个归一化流模型变换为一个高斯分布 p(z),整个模型可以定义为:
这样,高分辨率图像 x 就可以通过一个可逆神经网络变换为低分辨率图像 y 和编码高频信息的隐变量 z,且都服从参数已知的高斯分布。因此,我们可以方便地通过计算最大似然损失函数来优化模型。
多层级网络结构
为了更好地建模低分辨率图像和高频信息之间的关系(即 p(a|y)),该研究进一步提出了一个多层级条件依赖建模框架。在保持整体网络可逆性的条件下,逐步恢复高频信息,重建出高分辨率图像。如下图所示,归一化流的前向过程类似于二叉树的深度优先遍历,而反向过程则从最深层逐步计算至第一层。y 和 a 分别代表各层的低频和高频信息,数字代表计算顺序,蓝色箭头代表条件依赖关系。
具体的网络结构如下图所示。
实验
图像超分辨率
该研究使用最大似然损失函数训练模型,并使用 L1 损失函数,感知损失函数(perceptual loss)和生成对抗损失函数(GAN loss)进一步提升模型效果。在参数量下降 1/3 的情况下,HCFlow 在通用图像超分辨率和人脸图像超分辨率上,都取得了最佳的结果。在不同的随机采样中,可以生成细节不同的高质量高分辨率图像。值得注意的是,与 基于 GAN 的模型类似,基于归一化流的模型主要关注视觉效果,PSNR 通常有所下降。
图像再缩放
由于图像再缩放通常不关注重建结果的多样性,HCFlow 采用与 IRN (ECCV2020)一致的训练策略,将前向过程和反向过程分别视为编码和解码过程。训练损失函数包括在高分辨率图像和低分辨率图像上的 L1 损失函数,以及在隐变量上的约束。在相近的模型参数量下,取得了 0.10-0.34dB 的提升。