申请试用
登录
核心技术
以原创技术体系为根基,SenseCore商汤AI大装置为核心基座,布局多领域、多方向前沿研究,
快速打通AI在各个垂直场景中的应用,向行业赋能。

CVPR 2021 Oral | GLEAN: 基于隐式生成库的高倍率图像超分辨率

2021-08-10

在 CVPR 2021 上, 南洋理工大学 S-Lab 和商汤科技等提出的隐式生成库(Generative Latent Bank), 针对高倍率图像超分辨中的质量和保真度问题提出了一个新的思路。GLEAN 通过利用预训练的 GAN 中丰富多样的先验知识,得到有效的超分效果。与现有方法相比,由 GLEAN 放大的图像在保真度和纹理真实度方面显示出明显的改进。


论文名称: GLEAN: Generative Latent Bank for Large-Factor Image Super-Resolution。


Part 1 问题与挑战


Generative Adversarial Network (GAN) 已在超分辨率任务中被广泛使用,其目的是丰富复原图像中的纹理细节。现有方法一般可以分为两种:


1)第一种方法(如 ESRGAN [1])训练生成器以处理放大任务,其中通过使用鉴别器将真实图像与生成器生成的放大图像区分开来进行对抗训练。在这种设置下,生成器既负责捕获自然图像特征,又负责保持对 GT 的保真度。这不可避免地限制了逼近自然图像流形的能力。因此, 这些方法经常产生伪像和不自然的纹理。


2)第二种方法(如 PULSE [2])通过优化来更好地利用 GAN 的潜在空间来解决上述问题。但是,由于低维隐码 (latent code)和图像空间中的约束不足以指导恢复过程,这些方法通常会生成低保真度的图像。

 

如下图所示,虽然 ESRGAN 能够恢复猫的结构(例如,姿势,耳朵的形状),但仍难以产生逼真的纹理。另一方面,尽管PULSE的输出是真实的,但其保真度非常低, 未能恢复物体的结构。


图片 1.png


Part 2 方法介绍


在大规模自然图像上训练的 GAN 模型可捕获丰富的纹理和形状先验。先前的研究表明,可以通过 GAN Inversion 来获取此类先验信息,以使各种图像恢复任务受益。但是,如何利用先验而不进行反演过程中的复杂优化仍然是一个没有被充分研究的问题。

 

在这项研究中,我们在一种新颖的 encoder-bank-decoder 结构中设计了 GLEAN,该体系结构允许人们只需要一个 forward-pass 就可以利用生成先验。如下图所示,给定严重降采样的图像,GLEAN 应用 encoder 提取潜在矢量 (latent vector) 和多分辨率卷积特征,这些特征捕获了重要的高层线索以及LR图像的空间结构,可以用于调节 latent bank,为 decoder 产生了另一组多分辨率特征。


最后, decoder 通过集成来自 encoder 和 latent bank 的特征来生成最终输出。在这项工作中,我们采用 StyleGAN [3,4] 作为 latent bank。这里要强调的是这个概念可以扩展到其他网络,例如 BigGAN [5]。


image.png


1. Encoder

为了产生 latent vector,我们首先使用 RRDBNet [1](表示为E0)从输入LR图像中提取特征f0。然后,我们通过以下方法逐渐降低特征的分辨率:

image.png



其中Ei (i =1, 2, …, N)表示一个 stride -2卷积和 stride-1卷积的堆栈。最后,使用卷积和全连接层来生成latent vector:

image.png



其中 C 是一个矩阵,其列表示 StyleGAN 需要的 latent vector。C 中的 latent vector 捕获图像的压缩表示,为 latent bank (StyleGAN) 提供 high-level 信息。为了进一步获得 LR 图像的局部结构并为结构恢复提供其他指导,我们还将多分辨率卷积特征fi嵌入到 latent bank。


2. Generative Latent Bank


给定卷积特征 fi 和 latent vector C,我们利用预训练的生成器 (StyleGAN) 作为 latent bank 来提供纹理和细节生成的先验。由于 StyleGAN是为图像生成任务而设计的,因此无法直接集成到建议的 encoder-bank-decoder 框架中。在这项工作中,我们进行了三处修改,使 StyleGAN 更能配合我们的超分网络:


1/ 生成器的每个块都采用一个不同的 latent vector 来提高表达能力,而不是将一个 latent vector 作为输入。更具体地说,假设 StyleGAN 有k个块,那C=(c0, c1, …, ck-1),其中每个 ci  代表一个 latent vector。我们发现这种修改导致输出的伪像更少。在以前的工作中[6,7]也可以看到这种修改。


2/ 为了允许使用 encoder 的特征,我们在每个块中使用了一个附加的卷积来进行特征融合:

image.png

其中Si表示具有附加卷积的块,而gi代表第i个块的输出特征。


3/ 我们不是直接从 StyleGAN 生成输出,而是输出特征 gi 并将它们传递给 decoder,以更好地融合 latent bank 和 encode r中的特征。


优点: 我们的 Generative Latent Bank 与 Reference-Based SR[8,9]有着类似的想法。在 Reference-Based SR 中, 虽然使用外部 HR 信息作为图像字典可带来显着改善,但其网络性能对输入和参考之间的相似性很敏感。


当参考图像或人脸部位(如眼睛、鼻子、嘴)选择不当时,不匹配的字典可能导致结果变差。另外,这些方法经常需要计算量大的全局匹配或人脸部位检测/选择来从参考中聚集适当的信息,阻碍了对具有严格计算约束的场景的应用。

 

相反地,GLEAN 并未构建图像字典,而是采用了 GAN-based 字典。我们的字典不依赖于任何特定的参考图像块。取而代之的是,它捕获图像的分布,并且可能具有无限的大小和多样性。此外,GLEAN 的计算效率很高,无需全局匹配和参考图像块选择。


3. Decoder


GLEAN 使用附加的具有渐进融合功能的 decoder 来集成 encoder 和 latent bank 中的特征以生成输出图像。它以 RRDBNet 特征作为输入,并将特征与 latent bank 中的多分辨率特征逐步融合:

image.png

其中 Di 和 di 分别表示3x3卷积及其输出。除最终输出层外,每个卷积后面都有一个 pixel-shuffle 层。通过 decoder 和 encoder 之间的跳过连接,可以增强 encoder 捕获的信息,因此 latent bank 可以将更多的精力集中在纹理和细节生成上。


Part 3 实验结果

image.png

上图展示了 16x SR 上的定性比较。在低维向量和 LR 空间中的约束的指导下,GAN Iinversion 方法的输出无法保持良好的保真度: PULSE [2] 和 mGANprior [6] 无法还原相同身份的人脸。另外,在它们的输出中观察到伪像。


通过在优化过程中微调生成器,DGP [10] 的结果在质量和保真度方面得到显着提升。但是,仍然可以观察到输出和 GT 之间的差别。例如,眼睛和嘴唇显示出明显的差异。

 

经过对抗性损失训练的方法(SinGAN [11],ESRGAN+(具有与GLEAN相似的FLOPs的 ESRGAN [1])可以保留局部结构,但无法合成令人信服的纹理和细节。具体而言, SinGAN 无法捕捉自然图像样式,从而产生类似绘画的图像。


尽管 ESRGAN+ 能够生成逼真的图像,但仍难以合成精细的细节,并在细节区域引入不自然的伪像。值得强调的是,尽管 ESRGAN+ 在人脸方面取得不错的结果,但它在其他类别上的表现却不太好,如下图所示:

image.png

通过 latent bank 提供的自然图像先验,GLEAN 在保真度和自然度方面都取得了成功。为了进一步验证我们的方法在保真度的优越性,我们计算了 ArcFace [12] 特征的 cosine similarity。从下表可以看到我们的方法胜过其他方法,证明了我们方法在保持身份一致性上的优越性。

image.png

我们将 GLEAN 扩展到更高的放大倍率。GLEAN 成功地生成了真实而且接近 GT 的图像,最多可进行64x的放大。

image.png

以下是更多例子,GLEAN 在照片写实和身份保存方面具有明显优势:

image.png

image.png

image.png

image.png

image.png

image.png


Part 4 结语


在本文中,我们提出了一种新方法,可以利用经过预训练的GAN来进行大规模超分辨率任务,最高的放大倍率为64x。从实验结果可以得出,预训练的 GAN 可以用作 encoder-bank-decoder 体系结构中的 latent bank。


相比之前 GAN Inversion 的方法,GLEAN 仅需进行一次网络向前传播来调节和检索 latent bank 中的先验信息,从而重建高清图像。GAN-based 字典的普遍性使GLEAN不仅可以扩展到各种体系结构,而且可以扩展到其他图像复原任务上,如图像去噪,去模糊和着色等。

 

另外, 我们 CVPR21的另一篇中稿文章 (https://ckkelvinchan.github.io/projects/BasicVSR/) 对于视频超分作出分析并提出两个新算法( BasicVSR和IconVSR )。我们基于这两个算法作出改进, 在 NTIRE21比赛中取得2个冠军。BasicVSR 和 IconVSR 的代码已开源到 MMEditing,欢迎大家关注 :)


论文地址

https://arxiv.org/abs/2012.00739


作者介绍

陳焯杰(Kelvin C.K. Chan) | 南洋理工大学S-Lab和MMLab@NTU三年级博士生。在顶级会议上发表过五篇论文,在NTIRE视频复原比赛中共获得六个冠军。导师是吕健勤(Chen Change Loy)副教授。当前主要研究兴趣为图像和视频复原,主要包括超分辨率和去模糊等。

个人主页:https://ckkelvinchan.github.io/

实验室主页:mmlab-ntu.github.io


References

  1. # Xintao Wang et al. "ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks" In ECCVW 2018.

  2. # Sachit Menon et al. "PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models." In CVPR 2020. 

  3. # Tero Karras, Samuli Laine, and Timo Aila. "A Style-Based Generator Architecture for Generative Adversarial Networks." In CVPR 2019.

  4. # Tero Karras et al. "Analyzing and Improving the Image Quality of StyleGAN." In CVPR 2020.

  5. # Andrew Brock, Jeff Donahue, and Karen Simonyan. "Large scale GAN Training for High Fidelity Natural Image Synthesis." In ICLR 2019.

  6. # Jinjin Gu, Yujun Shen, and Bolei Zhou. "Image Processing Using Multi-Code GAN Prior." In CVPR 2020.

  7. # Jiapeng Zhu et al. "In-Domain GAN Inversion for Real Image Editing." In ECCV 2020.

  8. # Xiaoming Li et al. "Blind Face Restoration via Deep Multi-Scale Component Dictionaries." In ECCV 2020.

  9. # Zhifei Zhang et al. "Image Super-Resolution by Neural Texture Transfer." In CVPR 2019.

  10. # Xingang Pan et al. "Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation." In ECCV 2020.

  11. # Tamar Rott Shaham, Tali Dekel, and Tomer Michaeli. "SinGAN: Learning a Generative Model from a Single Natural Image." In ICCV 2019.

  12. #Jiankang Deng et al. "ArcFace: Additive Angular Margin Loss for Deep Face Recognition." In CVPR 2019