目的:将图像从低分辨率图像转换为高清超分辨率图像,传统方式是双线性插值
1.SRCNN:模型参考:https://blog.csdn.net/Autism_/article/details/79401798
作者在获取训练和测试样本时使用了自动生成的方法,非常巧妙,也有人是通过高清相机和手机照片对同一物体进行拍摄,并由此作为训练集,方法没有上述作者的好。
SRCNN是首个使用深度学习进行高分辨率转换的算法,部分论文中说SRCNN 很难训练,它对超参数的变化非常敏感,并且MSE(均方差)作为loss不是太别好,所以有人提出改进:http://ai.51cto.com/art/201711/557334.htm
2.FSRCNN:https://www.cnblogs.com/ranjiewen/articles/9094321.html
模型论文及实验结果:http://mmlab.ie.cuhk.edu.hk/projects/FSRCNN.html
3.其它方法还有:ESPCN、VDSR、DRCN、RED、DRRN、SRDenseNet、SRGAN、EDSR等等,参考:https://www.cnblogs.com/ranjiewen/articles/9094321.html
4.SRCNN与FSRCNN的比较参考:https://blog.csdn.net/weixin_38203533/article/details/80704039
5.从SRCNN到EDSR的介绍:https://blog.csdn.net/aBlueMouse/article/details/78710553
EDSR是NTIRE2017超分辨率挑战赛上获得冠军的方案
6.不同方法对比
SRCNN:开山之作,需要先将低分辨率图像使用插值转为高分辨率图像,然后经过卷积层后对图像中心区域的部分进行loss计算(图像经过多层后尺寸会缩小)
FSRCNN:与SRCNN是同一个作者,输入图像不再是插值图像,而是原始低分辨率图像,最后层对特征图像进行反卷积到高分辨率图像尺寸,效率有很大提高
ESPCN: Efficient Sub-Pixel Convolutional Neural Network, 亚像素卷积神经网络,如果放大比例为r,则最后层会生成r*r个通道的且与低分辨率图像大小一样的图像,将同一个像素位置的r*r个点排列成r行r列的块,然后所有的块组合一起就成了高分辨率图像
VDSR: Very Deep Convolutional Networks,引入了resnet结构,对残差(高频图像)进行训练,收敛速度快,输入为插值图像
DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution,引入rnn和resnet进行网络训练,输入为插值图像
RED:这篇文章提出了由对称的卷积层-反卷积层构成的网络结构,作为一个编码-解码框架,可以学习由低质图像到原始图像端到端的映射,RED的网络深度为30层,损失函数用的均方误差。
SRDenseNet:引入DenseNet结构,即前一层的特征均传到后面的所有层,减轻了模型梯度消失
SRGAN:将Gan对抗网络引入到高分辨率图像生成中
EDSR:enhanced deep super-resolution,作为2017的冠军,主要是在SRResNet网络上做了改进,去掉了bach-normlize层,Batch Norm会忽略图像像素(或者特征)之间的绝对差异(因为均值归零,方差归一),而只考虑相对差异,所以在不需要绝对差异的任务中(比如分类),有锦上添花的效果。而对于图像超分辨率这种需要利用绝对差异的任务,Batch Norm只会添乱。去掉了BN层之后,作者加深了网络层数。参考https://blog.csdn.net/prinstinadl/article/details/80835088