近年来,归一化流(Normalizing Flow)模型在图像超分辨率(image SR)[
SRFlow, ECCV2020
]和图像再缩放(image rescaling)[IRN, ECCV2020]任务上取得了惊人的效果。尽管这两个任务有本质的不同,但都具有高度的相似性。基于以上两个工作,
来自苏黎世联邦理工学院计算机视觉实验室的研究者提出了 HCFlow
,使用一个统一的框架处理图像超分辨率和图像再缩放,并在通用图像超分辨率、人脸图像超分辨率和图像再缩放上等任务上取得了最佳结果。该论文已被 ICCV2021 接收。
摘要
近期,归一化流(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)和链式法则,模型参数可以通过下面的最大似然损失函数进行优化:
更多入门信息可以参考:
低分辨率图像空间建模
图像超分辨率和图像再缩放任务实际上都有一个图像退化(降采样)和图像超分(上采样)的过程。基于归一化流模型,该研究可以在高分辨率图像 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 的提升
。