论文:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial
Github:SRGAN
Abstract
CNN在传统的单帧超分辨率重建上取得了非常好的效果,可以取得较高的峰值信噪比(PSNR)。他们大都以MSE为最小化的目标函数,这样虽然可以取得较高的峰值信噪比,但是当图像下采样倍数较高时,重建的得到的图片会过于平滑,丢失细节。本文提出了利用GAN来进行超分辨率重建的方法,该网络是第一个能恢复4倍下采样图像的框架。作者提出的损失函数有两部分组成:对抗损失,内容损失。
对抗损失将图像映射到高位流形空间,并用判别网络去判别重建后的图像和原始图像。而内容损失则是基于感觉相似性(perceptual similarity)而非像素相似性(pixel similarity)。
Intruction
所谓超分辨率重建就是将低分辨率图像恢复成对应的高分辨率图像。但是由于低分辨率图像信息的缺失,这是一个病态的求逆问题,尤其是在恢复的倍数较高的时候。传统的方法考虑加入一些先验信息以恢复高分辨率图像(如插值法),此外,还有基于回归方法的随记森林也可以用于超分问题。稀疏学习,CNN在超分上也取得了非常好的效果,特别是CNN,使得超分已经可以达到实时应用。
Method
作者提出的网络结构如下:
生成网络由残差结构组成,并结合BN,生成的图像丢到判别网络中,交给判别器判断是生成的高分辨率图像还是真正的高分辨率图像。
作者主要的创新点在于代价函数的设计,尤其是将逐像素损失替换为内容损失。作者提出的损失函数由以下三部分加权组成:
-
Content Loss
这一项说白了就是对某一层的特征图的逐像素损失作为内容损失(而不是最后输出结果的逐像素损失)。这样可以学得图像所在的流形空间。(这句话我也没太懂是什么意思!个人理解,大概就是可以学得一些高层的语义特征,结构信息)
-
Adversarial Loss
作者用的对抗损失项用:
Regularization Loss
作者利用基于全变差的正则项以鼓励产生具有空间相似性的结果。具体公式如下:
Experiments
作者用sub-pixel网络作为生成网络,用VGG作为判别网络构建GAN得到了非常好的结果,但是这个用的是逐像素差作为损失函数。
之后,作者尝试了自己提出的感知损失函数作为优化目标,虽然PSNR和SSIM不高,但是视觉效果都要优于其他网络,避免了其他方法的过度平滑的特性。
Conclusion
作者本文的贡献主要有两点:
- 提出的SRResNet取得了state-of-art的结果
- 将感知损失引入GAN,实现了4倍超分辨率重建