SRGAN:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

Christian Ledig, Lucas Theis, Ferenc Huszár, Jose Caballero ,Andrew Aitken, Alykhan Tejani , Johannes Totz, Zehan Wang,  Wenzhe Shi 

2016年CVPR的文章

论文认为之前提出的方法的目标函数是MSEloss,这样的目标函数会导致过于光滑的图像,不够真实。而论文结合了VGG loss、对抗loss、content loss三种损失函数作为目标函数,并融入了生成对抗网络的思想。并且首次应用了LR空间上的快速特征学习和BN来让网络的训练更加有效。

论文提出的方法

首先GT(Groud Truth)是存在的,为了训练网络,LR是通过对GT下采样r倍,然后在对其进行高斯滤波得到的。

SRGAN:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network_第1张图片

上图是网络的结构。从上面G的图中可以看出,G的中间有B个residual block,每个residual block都由两个同样的结构,就是卷积-BN-ReLU,其中卷积层的核是3 \times 3,特征图个数是64个。

生成器的目标就是

\hat{\theta _G}= arg \,min_{\theta_G}\frac{1}{N}\sum_{n=1}^Nl^{SR}(G_{\theta_{G}}(I_n^{LR}),I_n^{HR})

其中\hat{\theta_G}表示G的参数,l^{SR}表示损失函数。

而判别器D和生成器G的对抗就是一个极大极小问题:

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}))]

损失函数

content loss

MSE loss

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

但是论文任务MSEloss会导致图像过于光滑,于是论文提出使用VGGloss作为content loss

l_{VGG/i,j}^{SR}=\frac{1}{W_{i,j}H_{i,j}}\sum_{x=1}^{W_{i,j}}(\phi_{i,j}(I^{HR})_{x,y}-\phi_{i,j}(G_{\theta_G}(I^{LR}))_{x,y})^2

\phi_{i,j}表示第j个池化层前的第i个卷积层。

对抗损失

l_{Gen}^{SR}=\sum_{n=1}^N-log(D_{\theta_D}(G_{\theta_G}(I^{LR})))

D_{\theta_D}(G_{\theta_G}(I^{LR}))表示判别器将重构图像G_{\theta_G}(I^{LR})估计为真实图像的概率,

正则化损失

论文提出了一个正则化损失,其实就是希望生成器的参数的梯度不能太大。

l_{TV}^{SR}=\frac{1}{r^2WH}\sum_{x=1}^{rW}\sum_{y=1}^{rH}\begin{Vmatrix} \bigtriangledown G_{\theta_G}(I^{LR})_{x,y} \end{Vmatrix}

实验

数据:论文采用Set5,Set14,BSD100作为测试机,超分辨率4倍,对比方法是bicubic,SRCNN,Self-ExSR,DRCN。

训练数据:ImageNet,从中选取50000个图像,LR是通过将HR用bicubic进行4倍下采样。batch =16,patch_size=96 \times 96,Adam优化,\beta_1=0.9,学习率10^{-4},更新10^6次。

论文先只采用l^{SR}_{\phi_{2,2}}作为损失函数,训练一个模型,来作为训练GAN时的初始化,以避免陷入局部最优。

  1. 论文发现用l^{SR}_{\phi_{2,2}}作为损失函数比用MSE效果更好。
  2. 论文用350000个图训练SRGAN。
  3. 交替更新生成器和判别器的采纳数。
  4. 生成器包含15个残差块。

content loss

论文进一步对content loss做了实验,总的损失函数:

l^{SR}=l_X^{SR}+10^{-3}l_{Gen}^{SR}+2\cdot 10^{-8}l_{TV}^{SR}

分别取l_X^{SR}为:l_{MSE}^{SR},l_{VGG_{2,2}}^{SR},l_{VGG_{5,4}}^{SR}得到的结果如下:

SRGAN:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network_第2张图片

SRGAN:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network_第3张图片

可以看出MSE的psnr最高,但是得到的图像在视觉上效果不够好。相比于VGG22,VGG54具有更多的纹理信息。

实验结果

  1. CNN与GAN结合
  2. TV loss
  3. 预训练G,再用得到的参数初始化GAN中的G.

你可能感兴趣的:(图像超分辨率)