图像超分辨率近两年几篇优秀论文及代码

最近看了很多图像超分辨率方面的文章,所以做一个总结,希望对大家有所帮助。所列出的文章都是很好的文章,其中包括一些顶级会议:CVPR,ICCV,ECCV等。其中有代码的我会给网址,还有的代码不公布。最后会做一个经验总结,还有关于深度学习框架的选择,给新手一些建议。

       

 

SRCNN

Image Super-Resolution Using Deep Convolutional Networks

图像超分辨率近两年几篇优秀论文及代码_第1张图片

 

         最早的使用深度学习做图像超分辨率的文章,香港中文大学汤晓鸥团队的成果,其学生徐立是商汤科技的总裁。             代码地址:http://mmlab.ie.cuhk.edu.hk/projects/SRCNN           

 

                                                                                                 

预处理:Bicubic 先下采样,后上采样作为输入图像

图像空间:Ycbcr

训练样本:91images(24800sub-images)+imagenet(5 million sub-images)

Scalingfactor:2,3,4

学习率: 前两层,最后一层

参数初始化方法:高斯分布(均值为0,标准差为0.001,偏置为0)

误差减小方式:随机梯度下降                                    

 

VDSR

Accurate Image Super-Resolution Using Very Deep Convolutional Networks
图像超分辨率近两年几篇优秀论文及代码_第2张图片

        用残差将网络做的很深,在当时首先将残差应用到超分辨率领域,比较具有创新性,效果也较好。但是视觉效果并不是很少,细节恢复较差。

代码地址:https://cv.snu.ac.kr/research/VDSR/

 

除了输入和输出都是3*3*64的滤波器

预处理:bicubic先下采样,后上采样作为输入图像

图像空间:Ycbcr

训练样本:291images,data augmentation(rotation or flip),多尺度的(2,3,4)

Scalingfactor:适用于多个scale factor,训练时同时用的2,3,4,测试2,3,4中任意一个都可以。

技巧:0填充保持输出图像大小不变。

是否残差:残差

学习率:0.1(20代),每20代下降10倍

参数初始化方法:Delving deep into rectifiers: Surpassing human-level performance onimagenet classification中提到的初始化方式,适用于Relu.

误差减小方式:adjustable gradient clipping

其他参数:batch size:64,momentum:0.9,weight decay:0.0001

LapSRN

Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution
 

图像超分辨率近两年几篇优秀论文及代码_第3张图片

使用拉普拉斯金字塔结构,各方面效果超过VDSR。

代码地址:http://vllab.ucmerced.edu/wlai24/LapSRN/

 

卷积层:每一个level 3,5,10,15

预处理:bicubic下采样

图像空间:

训练样本:91+291

Scalingfactor:适用于2,4,8

技巧:0填充,解卷积层/转置卷积

是否残差:残差

激励函数:(LReLUs)leaky rectified linear units

学习率: ,每50代下降100倍

参数初始化方法:Delving deep into rectifiers: Surpassing human-level performance onimagenet classification中提到的初始化方式,适用于Relu.

解卷积层的参数用bilinear filter 初始化

误差减小方式:charbonnier penalty function

其他参数:batch size:64 momentun:0.9 weight decay:0.0001

 

FSRCNN

Accelerating the Super-Resolution Convolutional Neural Network

SRCNN之后出的一篇,一个作者做的,效果比SRCNN好,比VDSR差,但run time 是其一大优势。

代码地址:http://mmlab.ie.cuhk.edu.hk/projects/FSRCNN.html

预处理:bicubic上采样

图像空间:Ycbcr

训练样本:91+100

Scalingfactor:每一个scale,单独训练模型

技巧: 0填充,高分辨率率和低分辨率图像块的大小,解卷积

是否残差:非残差

激励函数:Parametric Rectified Linear Unit(PReLU)

学习率: 卷积层0.001,解卷积层0.0001,fine-tuning时,所有的学习率变为一半

参数初始化方法:0均值,方差为0.001的高斯分布随机

误差减小方式:最小均方误差

其他参数:

 

 

还有的一些优秀的文章有: 

 

  • Deeply-Recursive Convolutional Network for Image Super-Resolution (CVPR2016), Jiwon Kim et al.
  • Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network (CVPR2016), Wenzhe Shi et al.
  • Enhanced Deep Residual Networks for Single Image Super-Resolution (Winner of NTIRE2017 Super-Resolution Challenge), Bee Lim et al.(目前用卷积神经网络做的最好的一篇了)

目前比较火的GAN的方法:

  • Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network (CVPR2017), Christian Ledig et al.
  • AMORTISED MAP INFERENCE FOR IMAGE SUPER-RESOLUTION (ICLR2017), Casper Kaae Sønderby et al.

 

个人感悟:超分辨率如果用一般指标如PSNR和SSIM来衡量并不能完全代表视觉上的效果。PSNR用二范数去约束就会得到很高的值,SSIM用注重细节的恢复也可以达到很高的值。如果想用CNN做可以参考Enhanced Deep Residual Networks for Single Image Super-Resolution (Winner of NTIRE2017 Super-Resolution Challenge), Bee Lim et al.

GAN给了一种很好的思路,可以恢复出很好的视觉效果。但GAN的方法目前几乎没有公布代码的,如果想做只能自己写代码了。

 

框架选择:对新手来说,caffe是一种很好上手的框架,但是里面的loss function除非修改源码,不然默认就是二范数。tensorflow 是一个万金油的框架,除了计算机视觉还适合处理其他领域的问题,而且受众广,社区大。torch也是一种很方便的框架,会python的人用pytorch会很顺手。其他一些框架没用过,也没用经验,就不多介绍。

你可能感兴趣的:(paper,图像)