[论文笔记]Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
图像质量评价指标之 PSNR 和 SSIM
链接
传统的方法一般处理的是较小的放大倍数,当图像的放大倍数在4以上时,很容易使得到的结果显得过于平滑,而缺少一些细节上的真实感。这是因为传统的方法使用的代价函数一般是最小均方差(MSE),即:
l
M
S
E
S
R
=
1
r
2
W
H
∑
x
=
1
r
W
∑
y
=
1
r
H
(
I
x
,
y
H
R
−
G
θ
G
(
I
x
,
y
L
R
)
)
l_{MSE}^{SR} = \frac{1}{r^2WH}\sum_{x=1}^{rW}\sum_{y=1}^{rH}(I_{x,y}^{HR}-G_{\theta G} (I^{LR}_{x,y}))
lMSESR=r2WH1x=1∑rWy=1∑rH(Ix,yHR−GθG(Ix,yLR))
该代价函数使重建结果有较高的信噪比,但是缺少了高频信息,出现过度平滑的纹理。该文章中的方法提出的方法称为SRGAN, 它认为,应当使重建的高分辨率图像与真实的高分辨率图像无论是低层次的像素值上,还是高层次的抽象特征上,和整体概念和风格上,都应当接近。整体概念和风格如何来评估呢?可以使用一个判别器,判断一副高分辨率图像是由算法生成的还是真实的。如果一个判别器无法区分出来,那么由算法生成的图像就达到了以假乱真的效果。
1.Abstract & Introduction
在本文中,我们提出了一种用于图像超分辨率(SR)的生成对抗网络(GAN)。我们提出了一个感知损失函数( perceptual
loss function),它包括对抗损失(adversarial loss)和内容损失(content loss)。对抗性损失促使我们使用判别器网络求解自然图像流形,这个判别器用来被训练以区分超分辨图像和原始逼真图像。我们使用由感知相似性(perceptual similarity)驱动的content loss,而不是在像素空间中使用相似性。
Contribution
- 我们用PSNR和SSIM测量了具有高放大因子的图像SR的现有技术的新状态,其中我们使用16块深度Resnet(SRResnet)模型并针对MSE进行了优化。
- 我们提出了一种基于GaN的网络SRGAN,它是针对一种新的感知损失而优化的网络。在此,我们将基于MSE的content loss替换为在VGG网络的特征图上计算的损耗。
- 我们对三个公共基准数据集的图像进行了广泛的平均意见评分(MOS)测试。
2 Method
在训练时,通过将高斯滤波器(Gaussian filter)应用于 I H R I^{HR} IHR,通过具有下采样因子R的下采样操作来获得 I L R I^{LR} ILR。
2.1 Adversarial network architecture
m i n θ G m a x θ D E I H R ∼ p t r a i n ( I H R ) [ l o g D θ D ( I H R ) ] + E I L R ∼ p G ( I L R ) [ l o g ( 1 − D θ D ( G θ G ( I L R ) ) ) ] min_{\theta_G}max_{\theta_D}E_{I^{HR}\sim p_{train}(I^{HR})}[logD_{\theta_D}(I^{HR})]+E_{I^{LR}\sim p_{G}(I^{LR})}[log(1-D_{\theta_D}(G_{\theta_G}(I^{LR})))] minθGmaxθDEIHR∼ptrain(IHR)[logDθD(IHR)]+EILR∼pG(ILR)[log(1−DθD(GθG(ILR)))]
- 在G的网络结构中(一个residual block),我们使用两个小的3×3核的卷积层,每一个卷积层后面跟着批归一化层和ParametriReLu激活函数。
- 在D中,包含着8个3×3核的卷积层,层数从64增加到512个,与VGG网络一样,增加了2倍。在最后是两个dense layer和最后的sigmoid激活函数。
2.2 Perceptual loss function
我们的感知损失函数 L S R L^{SR} LSR的定义对于我们的G网络的性能至关重要。虽然 L S R L^{SR} LSR通常是基于MSE loss建模的,但论文中我们将知觉损失表示为内容损失( L X S R L_X^{SR} LXSR)和对抗性损失的加权和。
(图中的X可以表示为MSE,也可表示为VGG/i.j)
2.2.1 content loss
l M S E S R = 1 r 2 W H ∑ x = 1 r W ∑ y = 1 r H ( I x , y H R − G θ G ( I L R ) x , y ) 2 l_{MSE}^{SR}=\frac{1}{r^2WH}\sum_{x=1}^{rW}\sum_{y=1}^{rH}(I_{x,y}^{HR}-G_{\theta_G}(I^{LR})_{x,y})^2 lMSESR=r2WH1x=1∑rWy=1∑rH(Ix,yHR−GθG(ILR)x,y)2
l V G G / i , j S R = 1 W i j H i , j ∑ x = 1 W i , j ∑ y = 1 H i , j ( ϕ i , j ( I H R ) x , y − ϕ i , j ( G θ G ( I L R ) ) x , y ) 2 l_{VGG/i,j}^{SR}=\frac{1}{W_{ij}H_{i,j}}\sum_{x=1}^{W_{i,j}}\sum_{y=1}^{H_{i,j}}(\phi_{i,j}(I^{HR})_{x,y}-\phi_{i,j}(G_{\theta_G}(I^{LR}))_{x,y})^2 lVGG/i,jSR=WijHi,j1x=1∑Wi,jy=1∑Hi,j(ϕi,j(IHR)x,y−ϕi,j(GθG(ILR))x,y)2
- 公式3 是许多最先进的方法所依赖的最广泛使用的图像SR优化目标,然而,在实现特别高的PSNR的同时,MSE优化问题的解决方案通常缺乏高频内容,这导致具有过于平滑纹理的感知上的不满意的。
- 我们基于预训练的19层VGG网络的ReLU激活层来定义VGG loss。(With ϕ i , j \phi_{i,j} ϕi,j we indicate the feature map obtained by the j-th convolution (after activation) before the i-th maxpooling layer within the VGG19 network, which we consider given.)然后,我们将VGG loss定义为重构图像 G θ G ( I L R ) G_{\theta_G}(I^{LR}) GθG(ILR)的特征表示与 I H R I^{HR} IHR之间的euclidean distance。如公式3。
2.2.2 Adversarial loss
我们还将我们的GaN的 generative component添加到感知损失中,
l
G
e
n
S
R
=
∑
n
=
1
N
−
l
o
g
D
θ
D
(
G
θ
G
(
I
L
R
)
)
l_{Gen}^{SR}=\sum_{n=1}^{N}-logD_{\theta_D}(G_{\theta_G}(I^{LR}))
lGenSR=n=1∑N−logDθD(GθG(ILR))
3.detail
-
我们先预训练SRResNet网络,优化函数为MSEloss。
-
接着训练SRGAN
- 优化D:adversarial_criterion是BCELoss[外链图片转存失败(img-veeQ1KCO-1565666940121)(assets/1564487189168.png)]
- 优化G:content_criterion为MSEloss