【论文阅读】图像超分辨率(ISR) - RDN, SRGAN, ESRGAN

目录

1.RDN(Residual Dense Network)残差密集网络【2018】

1.1【Note】

1.2【参数细节】

1.3【超参数】

2.SRGAN【2017】

2.1【Note】

3.ESRGAN【2018】

3.1 与SRGAN中的生成器区别是做了以下的两个改进:

3.2 与SRGAN中的判别器区别是做了以下的改进:

3.3 关于感知损失(Perceptual Loss)的改进

3.4 网络插值(Network Interpolation)


1.RDN(Residual Dense Network)残差密集网络【2018】

 

这个网络的核心思想是构建了RDB(Residual Dense Block)残差密集块。这个结构综合了残差块和密集块,所谓密集块是浅层网络有到每层深层网络的快捷连接,从图中也能看出来。而RDB就是把DB作为RB中的一个部分,构成了RDB。RDN网络的结构如下:

 

 

这个网络从左到右由四个部分组成:

1.浅层特征提取网络(Shallow Feature Extraction Network),由两层卷积层构成;

2.RDBs,紧接着是D个RDB模块;

3.密集特征融合(Dense Feature Fusion, DFF),主要是将每个RDB的输出concat后经过一层卷积层再加上第一层卷积层的输出;

4.上采样网络(Up-Sampling Network, UPNet)【采用ESPCNN网络】

 

1.1【Note】

局部特征融合(Local Feature Fusion, LFF)指的是相邻的两个RDB之间也存在一个快捷连接。可以理解为RDB之间构成一个残差网络,所以这个网络无处不在的Dense结构,所以他们称这个网络为RDN。

 

1.2【参数细节

1.RDN中所有的卷积层的kernel size都是3X3,融合层的kernel size都是1X1;

2.通过Padding的操作让每个卷积层的输出特征图大小固定(fixed);

3.SFENet,LFF和GFF部分的输出都是64张特征图;

4.激活函数是Relu;

5.UPNet部分采用的是ESPCNN网络【主要是Sub-pixel convolution layer部分】;

Sub-pixel convolution layer - 子像素卷积:

 

    上图很直观得表达了sub-pixel convolution的做法,前面就是一个普通的CNN网络,到后面彩色部分就是sub-pixel conv的操作了。首先,如果我想对原图放大3倍,那么我需要生成出3^2=9个same size的特征图。将九个same size的特征图拼成一个X3的大图,这就是sub-pixel convolution的操作了。

    这是一种抽样的反思想,如果把一张x3的大图,每隔三个点抽样一个,那就会得到9张低分辨率的图像。于是,如果我们可以通过CNN来获得9张符合分布的低分辨率图像,那么就可以组成一张高分辨率的大图。

1.3【超参数

D - RDB的数量【20】

C - 一个RDB中卷积层的数量【6】

G - 在RDB中每个卷积层输出的特征图的数量【32】

G0 - 每个RDB和整个RDBs模块的输出特征图数量【32】

 

2.SRGAN【2017】

图像中常用的两个指标:PSNR和SSIM

PSNR(Peak signal Noise Ratio, 峰值信噪比)通常用来评价一幅图像压缩后和原图像相比质量的好坏,当然,压缩后图像一定会比原图像质量差的,所以就用这样一个评价指标来规定标准了。PSNR越高,压缩后失真越小。这里主要定义了两个值,一个是均方差MSE,另一个是峰值信噪比PSNR,公式如下:

其中MAX通常是图像的灰度级,一般就是255了。

SSIM(结构相似性):计算稍复杂,其值可以较好地反映人眼主观感受。一般取值范围:0-1.值越大,视频质量越好。结构相似度指数从图像组成的角度将结构信息定义为独立于亮度、对比度的,反映场景中物体结构的属性,并将失真建模为亮度、对比度和结构三个不同因素的组合。用均值作为亮度的估计,标准差作为对比度的估计,协方差作为结构相似程度的度量。

 

2.1【Note】

1.该网络在生成器末端,通过两层sub-pixel convolution layer来实现放大两倍;

2.在生成器中使用PReLu激活,在判别器中使用LeakyReLu;

LeakyReLu: max(0.1x, x)

PRelu:         max(ax, x)其中a是参数,需要网络自己去学习

3.引入Perceptual loss function:

 

其中内容损失(content loss)是:

 

其中 是VGG19网络中第i层max-pooling层之前,第j层卷积层之后(经过激活)的特征图(Feature Map)。

也就是说,作者找了一个使用ReLu作为激活函数的VGG19网络的预训练模型,然后把生成器生成图的图和原始的高清大图输入到这个网络中,提取出所需要层对应的特征图,计算MSE。

第二部分中的对抗损失(adversarial loss)是:

 

3.ESRGAN【2018】

网络结构:

 

3.1 与SRGAN中的生成器区别是做了以下的两个改进:

1.在生成器中移除了所有的BN层;

2.用RRDB(Residual in Residual Dense Block)代替原来SRGAN中的Residual Block。

文章中表示:在SR任务中移除BN层已经被证明可以提升性能和减少计算复杂度,并降低模糊程度。

 

3.2 与SRGAN中的判别器区别是做了以下的改进:

使用RaD(Ralativistic average discriminator)代替标准的判别器:

标准判别器最终输出的是一个概率,表示其来自于真实样本的概率;而相对平均判别器RaD输出是一张真实图片比一张假图片相对更加真实的概率。

判别器损失:

生成器的对抗损失:

其中   表示对一个mini-batch中的所有数据取平均操作。通过这种方式,使得生成器在训练的时候同时从生成的图片和真实的图片中受益。

 

3.3 关于感知损失(Perceptual Loss)的改进

1.使用的特征图是VGG19网络中激活之前的卷积层输出;

    原因一:经过激活之后特征变得非常稀疏;

    原因二:经过激活后会造成与原图不一样的重构亮度

2.引入L1正则化

 

3.4 网络插值(Network Interpolation)

先训练一个面向PSNR的GAN(损失函数是L1 loss),然后在训练一个普通的GAN(pixel-wise loss,就是L2损失函数)。然后融合两个网络的参数:

实际上的训练过程是:

1.先采用L1损失函数训练一个PSNR-oriented的网络,再将这个网络参数作为生成器的初始化参数;

2.再采用改进之后的感知损失函数进行训练;

3.在采用pixel-wise loss(基于L2损失函数)训练一个GAN-based的网络,然后再将这个网络参数作为生成器的初始化参数;

4.再采用改进之后的感知损失函数进行训练;

5.最后采用网络插值的方式进行融合。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值