韩森森
摘 要: 超分辨率图像重建可以利用低分辨率图像重构出一幅高分辨率图像,该技术已经成为图像处理领域的研究热点。目前深度学习是机器学习中一个热门的分支,其通过将低级特征进行组合形成更加抽象的高级视觉特征,避免了人工提取特征。文章将当前的重建算法分为基于重建约束的方法、基于重构和基于学习的方法三大类,着重介绍几种基于深度学习的重建算法,最后对超分辨率图像重建技术未来的研究方向进行展望。
关键词: 超分辨率; 深度学习; 卷积; 神经网络; 视觉特征; 映射
中图分类号:TP399 文献标志码:A 文章编号:1006-8228(2017)07-38-04
Application of deep learning in super-resolution image reconstruction
Han Sensen
(School of Computer and Information Engineering, Henan University, Kaifeng, Henan 475000, China)
Abstract: Super-resolution image reconstruction can reconstruct a high-resolution image using low-resolution images; it has become a hotspot in image processing. Deep learning is a popular branch of machine learning, which by combining low-level features to form more abstract high-level visual features, to avoid the artificial extraction of features. This paper divides the current reconstruction algorithm into three categories, which are based on interpolation, based on reconstruction and based on learning, and especially focuses on the reconstruction algorithms based on deep learning. Finally the future research direction of super-resolution image reconstruction technology is prospected.
Key words: super-resolution; deep learning; convolution; neural networks; visual feature; mapping
0 引言
单帧图像的超分辨率(super resolution,SR)重建是指利用已知的低分辨率图像,重构出具有更高像素密度的图像,并且重构出的图像还能够保持丰富的纹理、质地等细节信息。它在视频监控、图像打印、医学图像处理、卫星成像等领域有较广泛的应用。
超分辨率图像的重建本质上是一个病态(ill-posed)问题,因为不完全相同的多张图像高分辨图像在经过相同的降采样都可以产生相同的低分辨图像,这是一种典型的一对多问题,因此存在惟一解,特别是在放大倍数较高的情况下该问题将变得更为复杂。
1 算法分类
当前的超分辨算法大致可分为三类:基于插值的超分辨率重建算法,基于重构的超分辨率重建算法和基于学习的超分辨率重建算法。
基于插值的重建算法假设像素的灰度值是连续变化的,并利用邻近像素的灰度值计算待插值像素的灰度值,然而实际应用中许多图像并不满足这种假设。并且该算法通过一个预定义的数学公式直接将低分辨率图像生成高分辨率的图像而不考虑任何的图像特性,也不接受任何的训练。所以基于差值方法得到的重建图像容易产生模糊、锯齿现象。常见的线性插值方法有最近邻插值方法,双线性插值方法,双三次插值方法等。
基于重构的超分辨率重建算法是依照特定的退化模型,将已知的低分辨率图像序列中不同場景的信息进行融合来重建出高分辨率图像,因此该算法需要对图像进行配准。常见重构算法有种迭代反向投影[1](IBP)、凸集投影法[2](POCS)。
基于学习的分辨率重建算法则是通过机器学习方法从大量的低分辨图像和高分辨图像对中学习它们之间的映射函数,利用学习到的函数对测试图像进行预测来产生高分辨率图像。常见的基于学习的分辨率重建算法有嵌套的邻域嵌入[3](Neighbor Embedding with Locally Linear Embedding)、固定邻域回归[4](Anchored Neighborhood Regression)、稀疏编码[5](Sparse Coding)。
相比较于其他两类算法而言,基于学习的SR算法直接学习分辨率图像与高分辨率图像端到端的映射函数,比传统的插值和重构的方法具有更突出的性能。本文着重介绍几种基于深度学习的超分辨算法,包括SRCNN[6],DRCN[7], ESPCN[8]和SRGAN[9]等。
2 SRCNN
SRCNN(Super-Resolution Convolutional Neural Network)是较早地使用卷积神经网络来做SR的网络模型。该网络结构十分简单,仅仅用了三个卷积层。对于一张低分辨率图像,SRCNN首先使用双三次插值将它放大到将要放大的尺寸,再通过三层卷积神经网络做非线性映射,得到的输出结果作为重建的高分辨率图像。整个过程可分为三个部分:图像块的提取和特征表示,特征非线性映射和最终的重建。
图像块提取与表示:该过程从低分辨率图像中提取出部分重叠的图像块,并将每个图像块表示为一个高维向量,这些向量包含一些特征映射,映射的个数与向量的维数相同。
非线性映射:这个功能将每个高维向量非线性地映射成另外一个高维向量。从概念上来讲每个映射后的向量代表了一个高分辨率图像块。这些向量构成了另外一个特征集。
重建:这个处理聚集以上高分辨率基于像素块的替代对象,用于生成最终的高分辨率图像。并且我们希望这个图像能尽可能与高分辨率原图相近。
对重建后的超分辨率图像的质量进行定量评价的两个常用指标是PSNR[10](Peak Signal-to-Noise Ratio)和SSIM[11](Structure Similarity Index)。这两个值代表重建图像的像素值和原始图像像素值的接近程度,具体对比结果如表1,在2、3、4的放大倍数下,SRCNN与传统方法的对比,可以看出无论是在哪个放大倍数下,SRCNN的PSNR值都比其他的重建算法要高出0.4Db左右。
SRCNN的网络层数较少,同时局部感受野也较小,所以从输入图像中提取到的信息就非常有限。因此DRCN(Deeply-Recursive Convolutional Network for Image Super-Resolution)提出在网络中增加更多的卷积层增加局部感受野的大小,这样可利用更多的邻域像素。同时为了避免过多網络参数,DRCN提出使用递归神经网络RNN(Recurrent neural network)。
与SRCNN比较类似DRCN的网络结构可分为三个部分,第一个是Embedding network,相当于SRCNN中的特征提取,第二个是Inference network,相当于SRCNN中的非线性变换,第三个是Reconstruction network,即从特征图像得到最后的重建结果。其中的Inference network是一个递归网络,即数据循环地通过该层进行多次递归。将这个递归过程展开后可以看出,它等效于多个串联的卷积层共享同一组参数,Inference network展开后的网络结构是由D个共享参数的卷积层组成。DRCN将每一层的卷积输出都送入同一个Reconstruction Net来作为其输入,由于递归的深度是D,从而一共可得到D个重建图像,再把它们加权平均得到最终的输出。此外DRCN受ResNet[14]的启发通过skip connection将输入图像与Inference net的输出HD叠加作为Reconstruction Net的输入,这就相当于Inference Net学习的是高分辨率图像与低分辨率图像的残差图像,即图像的高频信息。
实验部分,DRCN同样也使用了包含91张图像的Set91[4]数据集进行训练,与SRCNN不同的是DRCN使用的训练数据是在多个方法倍数下生成的,而不像SRCNN那样在单一的放大倍数下生成,这样可以利用不同尺度图像间的信息进行互补,理论上DRCN的重建效果会由于SRCNN,具体的对比结果如表2所示,可以看出DRCN的重建图像的PSNR与SRCNN相比有了较大提高。
4 ESPCN
在SRCNN和DRCN中,低分辨率图像都需要先使用双三次插值得到与高分辨率图像大小相同的低分辨率图像来为网络输入,这意味着卷积的计算将在较高分辨率的图像上进行,这与在低分辨率图像上计算卷积相比于会需要较大的计算开销。因此ESPCN(Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network)提出在低分辨率图像上直接计算卷积来得到高分辨率图像。
ESPCN的核心思想是亚像素卷积层(Sub-pixel Convolutional Layer)。网络的输入是原始的低分辨率图像,经过两个卷积层后得到的特征图像大小与输入图像一样,但是特征的通道数变为r2,γ是图像的目标放大倍数。然后将每个像素上的r2个通道重新排列成一个γ×γ的区域,该区域对应于高分辨率图像中的一个区域大小为γ×γ的子块,从而对于一个大小为r2×H×W的特征图像在通道上进行重新排列会形成一个大小为1×rH×rW的图像,该图像的尺寸是输入图像尺寸的r倍,从而间接地实现了输入图像的放大。
通过使用sub-pixel convolution可以间接的实现图像的放大过程,即插值函数是隐含地包含在前面的卷积层中,只在网络的最后一层对图像大小做变换,前面的卷积运算由于在低分辨率图像上进行,因此效率会有很明显的较高。
ESPCN的训练与SRCNN类似,在重建效果上,以PSNR为评价指标来看ESPCN比SRCNN有进一步的提高,具体对比如表3所示。而时间效率方面对于一个1080HD的视频图像,对其放大四倍进行的高分辨率重建,SRCNN需要的时间为0.434s,而ESPCN只需要0.029s。
SRGAN(Photo-Realistic Single Image Super Resolution Using a Generative Adversarial Network)是将生成对抗网络用于SR问题的处理。其出发点是传统的方法一般只能处理的是较小的放大倍数,当图像的放大倍数在4以上时,得到的结果往往显得过于平滑,从而重建出的图像在视觉上却少一些质地细节的真实感,因此SRGAN使用GAN来生成图像中的细节。
SRGAN网络由两部分组成:生成网和判别网,生成网用于生成一些图像,判别网用于判断接收到的输入图像是由生成网生成的还是来自于真实样本中的原始图像。训练时如果判别网无法区分出来输入的样本来自于哪里就达到了预期的效果。
传统方法一般使用图像的最小均方差(MSE)作为误差函数,即该误差函数使重建图像有较高的PSNR,但是重建图像缺少了必要的高频信息,因而在重建后的图像中容易出现过度平滑的纹理。在SRGAN的误差函数中又增加了一个内容误差项和生成误差项。
内容误差用于衡量重建出图像与原始图像在更高级的视觉特征上的差別。其具体定义由以下公式描述。
生成误差项基于判别网输出的概率,其输出值表示输入数据来自于真实样本的概率大小。其具体定义由以下公式描述。
其中是一个图像属于真实的高分辨率图像的概率。是重建的高分辨率图像。
SRGAN的训练过程与前面的网络类似,同样使用PSNR和SSIM评价标准对算法的重建效果进行测试,SRGAN生成的高分辨率图像看起来更真实,具体的对比如表4所示。
6 结束语
深度学习已经在超分辨率图像重建领域取得了突破性的成绩,同时它仍然存在一些问题,例如它与传统的机器学习方法一样,通常假设训练数据与测试数据服从同样的分布,而实际上这两者存在一定的偏差。此外当前的重建算法仍然只使用于较小的放大倍数,对于较大的放大倍数得到重建图像仍然过于平滑模糊,因此如何充分利用深度学习来增强算法在较高的放大倍数下的重建性能是目前深度学习研究的重点。
参考文献(References):
[1] Irani M, Peleg S. Improving resolution by image registration[J].
CVGIP: Graphical models and image processing,1991.53(3):231-239
[2] Stark H, Oskoui P. High-resolution image recovery from
image-plane arrays, using convex projections[J].JOSA A,1989.6(11):1715-1726
[3] Timofte R, De Smet V, Van Gool L. A+: Adjusted
anchored neighborhood regression for fast super-
resolution[C],2014:111-126
[4] Timofte R, De Smet V, Van Gool L. Anchored
neighborhood regression for fast example-based super-
resolution[C],2013:1920-1927
[5] Yang J, Wright J, Huang T S, et al. Image
super-resolution via sparse representation[J]. IEEE transactions on image processing,2010.19(11):2861-2873
[6] Bruna J, Sprechmann P, Lecun Y, et al. Image
Super-Resolution Using Deep Convolutional Networks[J]. Computer Science,2015.
[7] Kim J, Lee J K, Lee K M. Deeply-Recursive Convolutional
Network for Image Super-Resolution[J]. arXiv preprint arXiv:1511.04491,2015.
[8] 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[J],2016.
[9] Ledig C, Theis L, Huszar F, et al. Photo-Realistic Single
Image Super-Resolution Using a Generative Adversarial Network[J],2016.
[10] Hore A, Ziou D. Image Quality Metrics: PSNR vs. SSIM[J],
2010:2366-2369
[11] Wang Z, Bovik A C, Sheikh H R, et al. Image quality
assessment: from error visibility to structural similarity[J].IEEE Transactions on Image Processing,2004.13(4):600-612
[12] Kim K I, Kwon Y. Single-image super-resolution using
sparse regression and natural image prior[J]. Pattern Analysis & Machine Intelligence IEEE Transactions on,2010.32(6):1127-1133
[13] Dong C, Loy C C, He K, et al. Image super-resolution
using deep convolutional networks[J]. IEEE transactions on pattern analysis and machine intelligence,2016.38(2):295-307
[14] He K, Zhang X, Ren S, et al. Deep Residual Learning for
Image Recognition[J].Computer Science,2015.