文章地址:https://arxiv.org/abs/1807.11458
作者的项目地址:Pytorch: Face-and-Image-super-resolution
这是一篇图像和人脸的超分辨重建的文章,目前超分辨重建一个主要的问题是聚焦在真实世界图像的超分辨重建问题上。传统的SR的方法获取LR的手段是人工获取,比如通过双线性下采样或者是先通过一个模糊核然后在进行双线性下采样。但是真实世界的图像往往具有复杂的退化模型,比如运动、去焦、压缩、传感器噪声等复杂的情况。所以目前一些主流的SR方法可能在人造的LR图像上重建效果很好,但是在真实世界图像上表现不一定很好。关于真实世界图像重建CVPR2018中一篇文章也做了类似的工作,“Zero-Shot” Super-Resolution using Deep Internal Learning。可以参考我的博客深度学习应用到图像超分辨率重建2, 其中对这篇文章做了简单的介绍。
本篇文章创新之处主要有2个。第1个就是提出一种2个阶段的处理,分别是High-to-Low GAN和Low-to-High GAN。在第一阶段,我们可以使用不同的未配对数据集,比如由Celeb-A、AFLW、LS3D-W和VGGFace2组成的高分辨率图像数据集,或者低分辨率图像数据集Widerface。第二阶段,用上一步的输出结果,用成对训练数据从低分辨率到高分辨率地训练GAN。相当于是第一个阶段我们学习到降级模型然后获取pair数据集,然后在第二个阶段进行SR。作者另外一个创新之处就是之前的文章将L2损失作为主要损失,而GAN损失作为辅导。而这里作者提出 GAN-centered ,也就是以GAN损失作为主导,pixel损失作为辅导。
主要的框架如图所示:
主要就是分为2个阶段: High-to-Low和Low-to-High
这个阶段主要完成的是HR图像降级的过程。首先我们输入的是HR图像和一个服从正态分布的随机噪声,然后将其concatenate起来,随后网络通过一个High-to-low网络,他是由普通的ResNets堆叠而成的,其中ResNets使用的pre-activation而且不使用BatchNorm。如下图所示:
另一方面,我们还需要使用LR的dataset,这是真实世界的图像,然后利用GAN网络将这个LR和SR图像输入判别器进行判别,这个判别器就是普通使用的判别器。在前面也说过了,作者的损失包含两个方面一个gan损失还有一个就是pixel损失。但是这里是GAN-centered的,pixel损失只是加速网络的训练,保证人脸图像的一些细节。还有一个方面需要需要注意:就是这里输入的随机噪声,因为这是HR->LR的过程,所以也会存在很多解,因此随机噪声的存在可以帮助我们模拟很多种现实情况,具有多样性。如下图所示:
第一个阶段主要的作用就是:将两个不同的unpair数据集输入到High-to-Low网络,学习图像降级的过程,得到pair数据集输入给Low-to-High网络。
然后生成器网络如图所示,使用三个组。然后判别网络和上面的是一样的。
整个损失函数定义如下:
l=αlpixel+βlGANl=αlpixel+βlGAN l = \alpha l_{pixel} + \beta l_{GAN} l=αlpixel?+βlGAN?
一般来说αlpixel<βlGANαlpixel<βlGAN \alpha l_{pixel} < \beta l_{GAN} αlpixel?<βlGAN? , 这个就表示我们是GAN损失占主导。这里的pixel损失就会常规的MSE损失。而对于这里的GAN损失,作者发现WGAN-GP和SN-GAN表现差不多。作者在本篇文章中选择了后者,也就SN-GAN。这是发表在ICLR2018上的一篇文章,个人感觉还是一篇很好的文章,下面贴一下链接大家可以自己看一下:
在测试阶段,由于测试集合只有LR图像而没有HR图像,所以我们不能使用传统的PSNR和SSIM作为评价指标,这里这里使用了Fre?chet Inception Distance(FID),越小越好。这是发表在NIPS2017的文章,贴一下参考文章:
定量上分析:
定性上分析:
个人觉得这是一篇很好的文章,不是简单的灌水。将注意力集中在真实世界图像的超分辨重建上。提出2个创新:
原文:https://www.cnblogs.com/skydaddy/p/11684640.html