本文是CVPR17年的文章,也是超分辨领域的新作SRGAN,作者来自推特工作室,先放上整个网络结构图,再详细介绍。
上周我在用SRCNN进行实验效果不理想时,师兄推荐了这篇文章,事实上这篇文章和我上周看的SAGAN的整体结构很相似,都是在GAN的基础上进行的image2image的工作。
在SRGAN中,作者论证PSNR不能作为评价超分辨的标准,因为这个和人对图片的感受结果不一致,这里作者采用了MOS进行评价;另外作者在loss函数上进行了改进,更好的恢复出细节的纹理信息。接下来,就按照文章的顺序进行介绍。
方法:
ISR是高分辨率图像,ILR是低分辨率图像,是由高分辨率图像先加高斯噪声然后经过一个r步长的下采样得到的,所以高低分辨率的图像大小分别是:rW*rH*C和W*H*C。模型的目的就是生成网络G可以将输入的低分辨率图像重构出ISR,所以在生成器时就采用前馈CNN记作Gθ,参数是θ,那么此部分要优化的就是:
和标准GAN一样,模型需要训练下式:
生成网络的结构如下,核心是下面的B残差块部分,重复的残差块用于生成高分辨率图像,然后接着两个亚像素卷积层用于恢复高分辨率图像的尺寸。
判别网络的结构如下图,连续的卷积层、BN和Leaky ReLU,紧接着是稠密块和SIGMOD用于对图像分类。
接着就是SRGAN的一个创新点,loss函数两部分组成,内容损失和对抗损失:
首先内容损失,传统的loss都是以像素为单位的MSE,如下式:
而MSE的loss函数使得输出缺乏高频成分,过于光滑不适宜人们阅读,所以本文在基于预训练的VGG19的RELU激活层来定义loss函数:
上式是通过欧氏距离定义的,其中
是VGG19里面第i个最大池层之后的第j个卷积层所提取到的特征,
是各自的特征维度。
对抗损失是指GAN网络生成器部分是损失,
是生成图像被判别为高分辨率图像的概率:
实验:
数据集是SET5、SET14和BSD100三个图像超分辨领域的基准数据集,低分辨率和高分辨率之间是4倍的差距,采用PSNR和SSIM作为性能衡量标准。训练的时候是用的ImageNet数据集下采样,用adam优化。
作者在衡量超分辨性能时提出了一个新的标准MOS,就是采用人作为标准,作者要求26个用户对超分辨的图像进行打分,1-5分,越高性能越好。在三个基准数据集的图像进行打分,结果如下:
各个超分辨方法所得到的PSNR、SSIM和MOS的最终结果如下表,本文的生成网络部分SRResNet得到了最高的指标,虽然SRGAN的PANR和SSIM并不是最高,但是他得到了最高的MOS值,这意味着PSNR和SSIM不能单独作为超分辨的衡量标准。
作者针对内容损失函数也做了几组对比实验,分别在MSE、VGG22和VGG54的loss函数进行实验,结果如下,虽然MSE的PSNR值更高,但是他在图像的视觉感知上效果并不好,文理细节处理不够精细,这又一次证明了作者对PSNR的观点。
通过以上实验看出,用均方误差优化SRResNet,能够得到具有很高的峰值信噪比的结果。在训练好的VGG模型的高层特征上计算感知损失来优化SRGAN,并结合SRGAN的判别网络,能够得到峰值信噪比虽然不是最高,但是具有逼真视觉效果的结果,基于VGG模型高层特征比基于VGG模型低层特征的内容损失能生成更好的纹理细节。