cvpr2021 - yubo105139/paper GitHub Wiki

[[TOC]]

论文1:Data-Free Knowledge Distillation For Image Super-Resolution

主要工作:

实现在无法获取原始训练数据集的情况下,将教师网络模型蒸馏到学生网络中。

整体蒸馏方案

生成器的训练loss:

学生网络蒸馏loss就是l1loss。学生网络的蒸馏采用的是逐步蒸馏(progressive distill),先训练一个tiny student, 然后在此基础上加一个body block,再接着训,再加一个block再训......利用该方式可以使学生网络学到更多的知识。

整理流程(算法)

简单讲就是生成器和学生网络交替训练。先训练几次学生网络,然后固定住学生网络参数,训练生成器。循环该过程。

实验结果

结论

该方案的亮点在于利用生成器生成与原训练集类似的训练样本,再结合逐步蒸馏的方式实现了在没有提供原训练集的情况下,对教师网络的蒸馏。

论文2:ClassSR: A General Framework to Accelerate Super-Resolution Networks by

Data Characteristic

主要工作:

创新性的将分类与超分进行了融合,根据不同子块的复原难度自适应选择合适的超分分支以降低整体计算复杂度:复原难度低的平坦区域选择复杂度低的超分分支,复原难度高的纹理区域选择复杂度高的超分分支。在不降低超分性能的情况下,该方法可以最高可以节省50%的计算量。

ClassSR网络结构

它包含两个关键性模块:ClassModule与SRModule。ClassModule负责将输入子图像划分到M个类别,而SRModule则包含M个分支(即不同复杂度的SR网络)。具体来讲,大的输入图像LR图像X首先被拆分为重叠子图像;ClassModule对接收到的每个子图进行分类,输出概率向量;选择概率最大的那个分支SR网络对当前块进行超分;最后组合所有超分子图得到最终的大的SR图像。

分类模块的训练

在训练过程中,ClassModule将对输入子图按照复原难度(而非预定义标签)进行进行分类。因此,与测试阶段不同,在训练阶段每个子图均应经由M个SR分支进行处理。除此之外,为确保ClassModule可以从重建结果接收到回传梯度,我们对每个重建子图以及对应的分类概率相乘得到最终的SR结果:

损失函数包含三个损失,即Image-Loss、Class-Loss以及Average-Loss。具体来讲,Image-Loss用于确保图像重建质量;Class-Loss用于提升分类的有效性;Average-Loss用于确保每个SR分支可以被均等的选择。总体损失函数定义如下:

在上述三个损失中,Image-Loss很容易理解,即(l1);那么另外两个损失如何定义呢?这就是接下来的要介绍的了。先来看一下Class-Loss,我们希望最大概率的类具有更高的置信度,比如[0.9 0.05 0.05]就比[0.34 0.33 0.33]更好。其定义如下:

该损失可以极大的提升不同分类结果的概率差异,进而使得最大概率值接近1。正如前面所提到的“仅仅采用Image-Loss与Class-Loss会使得子图倾向于选择最复杂分支”,这是因为复杂分支更容易取得更好的结果,这就是使得ClassModule失其本意,进而SRModule将退化为基线模型。为避免该现象发生,应当确保每个SR分支被均等的选择。因此,提出了Average-Loss以约束分类结果,定义如下:

整体训练思路

如果我们同时从头开始训练ClassModule与SRModule,性能会非常不稳定,分类模块很容易陷入不好的局部最小。因此,在训练阶段,我们采用三步法:

First:预训练SRModule。为预训练SRModule,我们采用PSNR值进行数据分类。具体来讲,以预训练MSRResNet的PSNR进行划分,前三分之一作为hard类,后三分之一作为simple类。然后,基于所划分的数据集进行不同复杂度的SR分支模型的训练。 Second:固定SRModule,训练ClassModule; Third:联调ClassModule与SRModule。

实验结果

结论

该方案通过将输入图像根据超分难度分成不同区域,再利用不同大小的模型进行超分,实现了推理加速。算是一个比较简单且有效的加速方案,可以在任何底层视觉任务中尝试。

论文3:Scene Text Telescope: Text-Focused Scene Image Super-Resolution

论文主要工作: 场景文字图像的超分, 并提升ocr识别准确率.

主要框架

输入低分图先经过stn做对齐,再经过TBSRN自注意力模块提取特征,最后上采样生成超分图.

TBSRN模块

2-D positional encoding (PE)即位置信息编码方式如下:

各个loss

第一项:

第二项:

第三项:

实验

作者用的训练和测试集合均为TextZoom, 结果如下:

结论

本论文主要的核心还是利用自注意力机制来整合全局特征,再就是利用加权的cross-entropy loss来解决易混淆字符的问题. 从结果上看,效果还是不错的.

论文4:Unsupervised Real-world Image Super Resolution via Domain-distance Aware Training

Motivation

现在目前的超分方法都是在合成的LR图像上进行训练的,但是合成LR图像(如,双三次下采样)和真实LR图像域不一致,所以导致最终的超分模型在真实LR图像上的结果不理想。

目前的主流解决方法是根据给定的真实LR图像数据集,训练一个降质网络,让合成的LR图像的域与真实LR图像保持一致,以此形成LR-HR对来训练SR网络。但是通过这种方式得到的合成LR图像的域与真实LR图像依然存在域偏差domain gap,下面这幅图说明了这个问题,它把bicubic、FSSR、DASR(文章提出的网络 )得到的LR图像输入到一个判别器中进行训练,把结果以直方图的形式输出,从左图中可以看出bicubic、FSSR、DASR得到的LR图像它们之间存在域偏差,这种偏差会影响SR网络在真实LR图像上的超分效果。

文章提出了一种 domain-distance aware super-resolution (DASR) 方法,通过domain-gap aware training和 domain-distance weighted supervision strategies来解决训练数据(合成的LR图像)和测试数据(真实的LR图像)的域偏差情况。

Method:DASR for Unsupervised Real-World Image SR

1 Overview

真实的LR图像:

HR图像:

过程分为两个阶段: ①通过一个下采样网络( downsampling network DSN),从HR图像中生成与真实LR图像域一样的合成LR图像yg,形成LR-HR对。 ②将得到的LR-HR 对进行训练一个SR网络(SRN),在训练SRN过程中,DASR会将yg和yr之间的域偏差考虑进来,并且使用domain-gap aware training 和 domain-distance weighted supervision strategies来充分利用真实LR图像信息进行训练。

2 Training of Down-Sampling Network

这里说明如何得到合成的LR-HR对,将HR图像作为网络输入,经过23的residual blocks,得到输出yg。yb通过双三下采样得到,为了让yg和yb在内容上保持一致,通过重建损失和感知损失来约束网络:

为了让yg和yr的域保持一致,使用对抗损失,但是只在高频空间上进行。文章使用Haar 小波变换来提取高频信息,将小波变化分为得到的四个子带LH,LH,HL和HH,将高频子带LH,HL和HH进行堆叠来作为判别器的输入,haar小波变化还利用了方向信息来更好的表征图像细节。

对抗损失可以让网络忽略与SR任务无关的低频信息,同时能够降低网络训练的难度。判别器使用的是一个Patch-GAN策略,通过它得到patch-level dense domain distance map对后续的SRN过程有用。

Patch-GAN

在普通的GAN学习中,判别器D网络的输出是一个标量,介于0~1之间,代表是真实图片的概率。而patchGAN则是输出是NxN的矩阵X,每一个元素x[i][j]表示一个patch,对应于图像的一个感受野,最后取各个patch部位的均值来表示最后总的来看是真实图片的概率。

总体损失:

其中在实验中α=0.01,β=1,γ=0.0005,HR图像块大小为192 x 192

3 Domain distance aware training of Super-Resolution Network

采用Domain-gap aware training和Domain-distance weighted supervision两种策略来解决从DSN得到的yg和yr之间的域偏差问题,SRN受两个域约束,针对源域采用的是带标签的数据集yg , xr,针对目标域采用的无标签的真实LR图像数据集。

1)Domain-gap aware training:对源域和目标域采用不同的损失函数,对于有标签的源域,采用一种有监督的方法进行训练网络,对于目标域,使用对抗损失在高频信息空间上使输出

和HR图像xr的分布对齐,损失函数:

2)Domain-distance weighted supervision:由于来自不同域的图像之间的差异仅表现在低级特征上,因此生成图像的每一区域与真实图像domain具有不同的domain距离。当用源域数据yg, xr来训练目标域SRN时,应根据不同区域到目标域的距离赋予不同重要性,而DSN得到的patch-level dense domain distance map可以用来表示它们之间的距离,根据这个距离我们给不同区域赋予不同的权重:

wi表示domain distance map,需要使用bilinear让domain distance map的大小和HR图像一致。

SRN的总体损失为:

其中α = 0.01, β = 1 and γ = 0.005

论文5:Towards Real-World Blind Face Restoration with Generative Facial Prior

本文主要工作是解决如何从低分辨率低质量的真实图像中获得较好的先验知识,复原人脸图像.

Overview of GFP-GAN

在给定退化未知的输入人脸图像x xx的情况下,盲目的人脸修复的目的是估计出与GT图像y尽可能相似的高质量图像。 下图是该研究的主要框架, 输入一张低质量的人脸, 首先经过 UNet 结构, 在这里有复原 loss 的 L1 约束 (灰色箭头),用以粗略地去除 degradations, 比如噪声、模糊、JPEG 等。同时更重要的是, 得到提取的 latent 特征向量 (绿色箭头) 和空间特征 (黄色箭头)。

GFP-GAN网络架构包含了一个退化去除模块和一个预训练的人脸GAN作为人脸先验,其中预训练的人脸GAN通过直接的隐变量映射和几个通道分割空间特征变换(CS-SFT)层以粗调方式连接。首先退化模块,去除输入x的可计算退化,并提取清晰的隐变量Flatent和不同分辨率空间特征Fspatial;然后隐变量Flatent匹配到中间隐变量W,其是有所学习的人脸GAN分布中接近人脸的粗糙检索特征Fprior;在所提出的CS-SFT中以粗糙到精细的方式,将不同分辨率空间特征Fspatial用于调制人脸GAN特征Fprior,最后生成高清的人脸。

Degradation Removal Module

图像包含有许多不同的退化因素。本文所提出的退化去除模块,用于提取清晰特征;本模块基于U-net网络模型,并提高大范围模糊的适应性和生成不同分辨率的特征。利用金字塔复原指导中间结果。

Generative Facial Prior and Latent Code Mapping

采用StyleGANg2的方法,将输入图像转换到中间隐变量W,该变量W 用于从可学习的人脸GAN分布中检索最相近的人脸特征;然后,能够用GAN特征获得生成式人脸先验Fprior

Channel-Split Spatial Feature Transform

利用先验特征Fprior和提取的清晰特征Flatent,本模块生成高清图像。借鉴分割特征转换方法,给定从清晰特征Flatent中学习到的一组变换参数( β , α ) ,然后对先验特征进行调整:

但是这种方法难以在真实性和保真度之间达到好的平衡;因此本文将先验特征分解为身份特征部分(用于保留)以及变换特征部分(用于特征调制),采用以下的形式进行求解:

在人脸复原中, 与其他工作不同, 仅仅通过调制 StyleGAN 的 latent codes, 因为没有考虑局部的空间信息会极大影响人脸的 identity。因此也要利用空间的特征来调制 StyleGAN 里面的特征。

GFP-GAN 基于现有的高效的空间特征变换 (Spatial Feature Transform,SFT) 层来达到这个目的。它能够根据输入的条件(这里是提取的低质量的图像特征), 生成乘性特征和加性特征,对 StyleGAN 的特征做仿射变换。为了进一步平衡输入图像的信息和 StyleGAN 中的信息, GFP-GAN 进一步将通道拆分为两部分, 一部分用来调制, 一部分直接跳跃过去。这样的调制会在由小到大的每个空间尺度上进行, 提高调制的效果。

Model Objectives

损失函数主要包括四个: 1.约束输出接近GT的重建损失 2.恢复真实纹理的对抗损失 3.提出面部组成损失进一步提升面部细节 4.身份保留损失

Reconstruction Loss : 图像像素级重构以及VGG层次的感知loss重构

Adversarial Loss: 生产真实纹理,类似于StyleGAN2,采用了Logistic Loss,训练全局的 Discriminator, 判断人脸是否真实;

Facial Component Loss : 首先用ROI对齐来裁剪感兴趣的区域,对于每个区域,训练独立的和小的局部识别器来区分恢复的patches是否真实,将patches推向接近自然的面部成分分布。通过ROI align之后,对每一个ROI部分进行判定;首先,是判定对应的ROI是否真,接着,利用Gram matrix statistics,判断ROI的风格loss

Identity Preserving Loss: 为了保持人脸 identity 的一致, 使用了人脸 identity 一致损失函数(预训练的ArcFace),即在人脸识别模型的特征空间中去拉近,确保重构结果与GT接近。

最终损失如下:

Experiment Result

结论

提出GFP-GAN框架,利用丰富和多样化的生成式人脸先验来完成具有挑战性的盲目的人脸修复任务。这一先验被纳入到新的通道分割空间特征转换层的修复过程中,使模型能够很好地平衡真实性和保真度。此外,介绍了人脸组成损失、身份保留损失和金字塔修复指导等精细设计。广泛的比较表明,GFP-GAN在联合面部恢复和真实世界图像的颜色增强方面具有优越的能力,优于现有技术。

论文6:GLEAN: Generative Latent Bank for Large-Factor Image Super-Resolution

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

方法介绍

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

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

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

Encoder

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

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

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

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 的特征,我们在每个块中使用了一个附加的卷积来进行特征融合:

其中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 的计算效率很高,无需全局匹配和参考图像块选择。

Decoder

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

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

实验结果

通过 latent bank 提供的自然图像先验,GLEAN 在保真度和自然度方面都取得了成功。

结论

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

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

⚠️ **GitHub.com Fallback** ⚠️