基于CNN的超分辨率重建方法_2016 review

    自从那年看了琅琊榜,就彻底成为了我歌的粉丝,哪天想着在网上找几张做个动态桌面,看中了下面这张,然而看够了高清图的我,觉得这分辨率不够。(lll¬ω¬)

    不过小编不死心,就相中这张了。联想到最近火热的超分辨率重建,就干脆试了一把,提升了两倍分辨率如右图。

    看着像磨皮?Oh no,还真不是,难道磨皮能磨出下面的对比效果?


1 什么是超分辨率重建?
super-resolution reconstruction,它指的是利用低质量、低分辨率图像来产生高质量、高分辨率图像,输入可以是单幅或者多幅图像。因此,有基于单图,多视角图以及视频的重建。
2 有什么用?
既然是提升分辨率,那就可以用于高清电视,人脸识别,医疗图像,卫星图像等领域。
3 大概方法?
下面只说基于单张图像的重建,从低分辨率图像到高分辨率图像的重建,一定是一个ill-posed问题,也就是没有唯一的解,对于许多方法来说,它所依赖的理论基础就是:图像中大部分的高频分量是冗余的,可以从低频分量中重建出来。
(1)早期主要是基于预测的方法,代表是双三次插值bicubic filtering等,结果过于平滑。
(2)接下来是cnn之前基于学习的方法,基本上遵循sparse coding框架,有一些neighborhood embedding methods, edge-ditected algorithms, self-similarith methods等。
(3)现在响应deep learning搞一切CV的潮流,cnn方法为主。



篇幅有限,对于早期的方法,本文不再详述,下面主要读几篇CNN的paper,如有理解错误的地方,还请自行修正;CNN方法代表作有几篇,下面是几个方法的代号,(1)SRCNN,(2)DRCN,(3)ESPCN,(4)SRResNet/SRGAN。当然还有SelfExSR等,精力有限就不一一解读。


1 SRCNN[1]


一句话总结:bicubic interpolation + three layer deep fcn,提出个与sparse coding等价的框架。


它将bicubic interpolation当成预处理,低分辨率图进行双三次插值resize成高分辨率图,文中仍然称这个插值后的图为low resolution,作为三层fcn的输入。

后续重建过程分3步,对应一个3层的全卷积网络

1 选图像子块,与滤波器卷积提取特征

特征映射,将n1维特征非线性映射到n2维特征。

3 重建, 从n2维特征中,学习出线性滤波器,即重建系数。


对于sparse coding问题,n2=n1,因为它希望用自身的高阶特征来重新组合实现自编码


而此处,n2<n1,文章给出了一组经验参数,f1 = 9,f3 = 5, n1 = 64, and n2 = 32。


(1) 证明性能与网络的大小正相关,即采用更大的n1,n2有正向的结果。复杂度与图像尺寸线性相关

(2) 3层的性能对于重建问题已经足够,虽然是与稀疏编码统一的框架,但是由于是同时优化low-resolution dictionary 产生,non-linear mapping,以及reconstruction,所以性能更加优异。


该文章当时留下来的两个问题,是后面改进的重点。

(1) loss函数采用重建图像与原始图像的最小均方误差MSE,这在后面基本被perceptual loss全面替代。

(2) bicubic上采样方法,后面也被学习的upscale卷积替代。 


2 DRCN[2]

提出了一个结合skip connection的循环网络结构,在不增加模型参数量大小的情况下,将感受野大大提升到了41×41。


首先看看该算法的总体结构如上图,分3块:

(1) embeddnig net

用于获取feature map。

(2) inference network

级联了16层的完全相同的卷积,随着每一次的卷积,感受野不断增大。

(3) reconstruction network

与其他网络一样,将高维feature map投影至单通道或者3通道。

具体结构如上,包含两部分:

(1) 一个输入和输出之间的skip connection,这是因为对于超分辨率重建问题,输入只是输出的下采样,所以有很多元素是相同的,这些信息可以直接使用。

(2) 就是循环层,每一个子层都是256个filters,filter尺寸为3×3。每一个循环子层的loss都会叠加到最终的总loss,从而成为一个有效的supervision,也对梯度消失与爆炸有平滑作用。


提出了一个高性能的模型结构,能够捕捉像素长程的依赖,在保持较小模型的情况下,有更宽的感受野,41×41。


3 ESPCN[3]


1 一个可用于1080p video的实时重建的框架。

2 采用学习到的sub-pixel卷积,替代了bicubic 上采样。

文章的结构也很简单如上,标准FCN后加deconvolution layer,文中称为sub-pixel convolutional nn。

究竟如何实现地上采样?看上图,假如要实现的上采样因子为3,即r=3,对于7×7的feature map,则输出是21×21,如果总共有3×3个通道,那么正好满足从9个feature map中各取一个像素,能拼接成结果,文中称之为shuffling。

看最右图左上角的3×3图像块如上,可知它是9个feature map各自同一空间位置的像素值。

提出在网络输出层才进行上采样的框架,与在输入层利用bicubic上采样的SRCNN相比,在训练和测试时都降低了复杂度。

(1) 测试时,进入卷积的图像比SRCNN方法小r×r个尺度,r为上采样尺度,所以速度快r×r,这是因为大部分时间花销都在输出层之前的卷积上。

(2) 训练时,可以将输入的训练数据,预处理成shuffling操作前的格式,比如将21×21的单通道图,预处理成9个通道,7×7的图,这样在训练时,就不需要shuffling操作。

另外值得一提的是,该文采用tanh替代了relu。


4 SRGAN[4]

与ESPCN是同一批人,只不过,这一次用resnet和adversarial network搞了。

利用 对抗网络 首次做到了4倍的上采样重建。

结构如下图,典型的对抗网络:

(1) 生成网络的结构:采用B residual blocks与ESPCN的结合。

(2) 判别网络的结构:类似VGG的网络结构与标准对抗网络的判别网络。

由于作者对对抗网络也不熟,下面不再详述。

简单说来对抗网络的精髓就一个字,


最为人知的应用就是生成现实生活中并不存在但高度仿真的自然图片,利用:


一个生成网络,不断提高造假能力。

一个判别网络,不断提高识别造假的能力。


两者相爱相杀,怼到最终都提升到一个较高的水平,这就是原理。

除了采用对抗网络外,基本贡献就在loss function上,这也是作者强调的对性能影响很关键的因素。

采用perceptual loss替代MSE,重建误差content loss在VGG特征空间计算。

最终loss = adversavial loss + content loss。

对于不使用adversavial loss的版本,称之为SRResnet,加上adversavial loss的称之为SRGAN,后者比前者性能全面超越。

关于perceptual loss替代MSE的问题,文[5-6]也是采用了类似策略,现在看来这已经是主流。

   

好了,看了这么多方法,一个个尝试就没必要了,下面试了试几张图,左图或上图为低分辨率,右图或下图为高分辨率,放大倍率为2,采用方法SRCNN。

从结果上看来,对于人像还是很不错的,对于风景图略微有点过平滑了。一方面原因是尝试的方法比较早,采用的是MSE作为loss function,另外一方面是跟训练模型的数据有关系。


 

补充一句,摄影相关的内容已经移至另一个公众号<言右三的北京>,如下,欢迎关注。


本系列微信号如下,实在是没有太多精力在CSDN重新排版一遍,请见谅!





【1】C. Dong, C. C. Loy, K. He, and X. Tang. Learning a deep convolutional network for image super-resolution. In European Conference on Computer Vision (ECCV), pages 184–199. Springer,
2014. 3, 6, 8

【2】Kim J, Kwon Lee J, Mu Lee K. Deeply-recursive convolutional network for image super-resolution[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1637-1645.

【3】Shi W, Caballero J, Huszár F, et al. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1874-1883.

【4】Ledig C, Theis L, Huszár F, et al. Photo-realistic single image super-resolution using a generative adversarial network[J]. arXiv preprint arXiv:1609.04802, 2016.

【5】Johnson J, Alahi A, Fei-Fei L. Perceptual losses for real-time style transfer and super-resolution[C]//European Conference on Computer Vision. Springer International Publishing, 2016: 694-711.

【6】J. Bruna, P. Sprechmann, and Y. LeCun. Super-resolution with deep
convolutional sufficient statistics. In International Conference on
Learning Representations (ICLR), 2016. 2, 3, 5
.



猜你喜欢

转载自blog.csdn.net/hacker_long/article/details/60469536