【文章阅读】【超解像】--Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
【文章阅读】【超解像】–Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
论文链接:https://arxiv.org/abs/1609.04802
code(tensorflow):https://github.com/tensorlayer/srgan
本文将GAN网络引入到了SR应用中,有挺多的创新点,现将文中的主要内容总结如下,后续方便阅读。该主题文章从2016年到2017年一共有5个版本,本文为最新版本V5的阅读理解。
1.主要贡献
针对传统超分辨中存在结果过平滑问题,在PSNR和SSIM评价指标上能得到很好的结果,但图像细节显示依旧较差,利用对抗网络结构的方法,得到了视觉特性上较好结果,本文主要贡献如下:
- 建立了使用PSNR和SSIM为评价标准的SRResNet,对图像进行放大4倍,取得了最好的测试结果。
- 提出了SRGAN网络,该网络结构根据对抗网络网络结构提出了一种新的视觉损失函数(perceptual loss),利用VGG的网络特征作为内容损失函数(content loss),代替了之前的MSE损失函数。
- 对生成的图像进行MOS(mean opinion score)进行评价。
先上图看一下图像最终的图像效果:
2.论文分析
基于CNN的超分辨率方法主要以最优化思想进行目标函数优化,受到目标函数的影响较大。之前的很多研究以最小化平方方差(MSE)作为损失函数,该方法能得到较好的信噪比,但图像会缺失高频信息导致图像的视觉效果差。
1)用MSE作为损失函数图像模糊
文中解释了为什么MSE为损失函数的图像会损失图像的高频信息,MSE以像素空间的比较为参考,一个低分辨率的图像块可能对应高分辨率中的多个图像块,而GAN只有唯一的对应,这样,通过MSE为目标函数的处理方式会将多个高分辨率的图像块进行平均,所以最终得到的结果有一些模糊。
2) 网络结构
上图上部分为:生成网络结构,基于Resnet网络结构;
上图下部分为:辨别网络结构,利用LeakyReLU(0.2)为**函数,网络层数从64到512,后面连接两个全连接层和一个sigmoid层,用来判断是否为同一图像的概率;
3)损失函数
(a) 训练生成器和判别器
对给定的HR图像进行降采样得到LR图片,将LR图像作为输入,训练生成器,生成对应的HR图像,该训练过程与训练前馈CNN类似,对网络参数 进行优化,如下:
其中为视觉损失函数,后面详细介绍。
文中定义的判别器为,生成器和判别器交替优化如下式子:
(b) 视觉损失函数(perceptual loss function)
本文设计的视觉损失函数,是本文算法性能的保证,如下,分为内容损失(Content loss)和对抗损失(Adversarial loss)
(1) 内容损失
常用的像素级内容损失函数为MSE,如下,该损失函数能取得较高的PSNR,但导致内容缺乏高频图像内容,使最终的显示内容过于平滑。
文中对内容损失函数进行了改进,在pre-trained 19层 VGG网络(ReLU损失函数)结构基础上定义了VGG loss:
表示在VGG19网络中第i个卷积层之前的第j个卷积层(在**层之后)的特征图,VGG loss是重构图像和参考图像的特征图的欧式距离,上式中的和表示特征图的维度。
(2)对抗损失
文中将GAN中生成器对视觉损失的影响通过对抗损失来体现,这部分损失函数使我们的网络通过“欺骗”判别器从而生成更接近自然图像的图像。
其中,表示的是判别器将生成的图像判定为自然图像的概率。
3.结果分析
1) MOS评价
MOS为一种主观评价方法,如下图为不同的SR方法的MOS平均意见得分:
2)利用不同的VGG 层作为特征的损失函数性能如下:
VGG22:表示第2个池化层之前的第2个卷积层,浅层图像特征
VGG54:表示第5个池化层之前的第4个卷积层,深层图像特征
深层图像特征可取得较好的文字细节特征。
4.参考
https://blog.****.net/Aaron_wei/article/details/76862038
https://www.cnblogs.com/wangxiaocvpr/p/5989802.html?utm_source=itdadao&utm_medium=referral
论文个人理解,如有问题,烦请指正,谢谢!