谢海平,谢凯利,杨海涛
1.航天工程大学 研究生院,北京101416
2.航天工程大学 航天信息学院,北京101416
近年来,随着人们对高质量图像的需求日益迫切,如何获取高分辨率(High Resolution,HR)的图像越来越受到人们的关注。图像在形成过程中,其成像分辨率直接受到成像系统固有物理性能的限制,同时由于存在大气扰动、场景变化等因素影响,成像结果面临欠采样、光学模糊、运动模糊和噪声的干扰,最终形成质量较差、分辨率较低的图像或图像序列,给后续的图像处理、分析和理解带来诸多困难[1-2]。一般来说,通过对硬件进行升级改造可以提升成像系统性能,提高图像分辨率,通常有以下三种途径[3]:
(1)减小像素传感器的尺寸,即增大成像装置中单位面积传感器上的像素数目。然而,随着传感器尺寸的减小,单位像素上的有效光强也随之减弱,导致图像形成噪点。
(2)增大芯片尺寸,可以实现像素数目的增大,但芯片尺寸增大的同时会导致电容的增加,影响电荷传输速率。
(3)通过提高相机的焦距来增强图像的空间分辨率,然而该方法会带来成像设备体积与重量增加,光学部件尺寸增大等负面影响,大大提高了光学材料的制造加工难度以及使用成本。
综上,由于受到工艺水平、成本等因素的影响,单纯依靠硬件上的改善来获取高质量高分辨率图像,往往并不现实。由于从硬件上提升图像分辨率的限制,人们考虑通过图像处理技术的软方法来重构原始图像,以获得具有更好分辨率的图像,这就是图像超分辨率(Super-Resolution,SR)技术[4-5]。
超分辨率技术通常定义如下:给定某个场景的单张或者序列低分辨率(Low Resolution,LR)图像,结合一定的先验信息以后,利用一定的图像处理方法,重构得到该场景的HR图像[6]。超分辨率技术为提供了一种新的提升图像质量的办法,其发展路线大致可以分成三个阶段:20世纪60年代,Harris和Goodman[7-8]提出了“图像超分辨率”的想法,并希望找到实现这一过程的方法,其研究还停留在理论探索阶段;1984年,Tsai等人[9]使用傅里叶变换域法融合了多帧低分辨率图像后,获得了一张分辨率增大的图像,证明了通过配准和融合多个图像来增强图像分辨率的可行性,自此以后,超分辨率研究越来越受到国内外学者的关注;2014年,Dong 等人[10]利用卷积神经网络构建了SRCNN(Super Resolution Convolutional Neural Network)网络,拓宽了深度学习技术的应用范围,为构建更好的超分辨率模型提供了思路。
图像超分辨率属于欠定问题。根据输入图像数目,分为单图像超分辨率和序列图像超分辨率。序列图像超分辨率通过增加观测数据的数目,使数理方程的求解满足正定或者超定的条件,进而求解[11]。相比于序列图像超分辨率,单图像超分辨率的优势在于避免重复获取图像,且无须配准操作,流程更加简单。同时考虑到图像丰富的纹理特征及其内在的自相关性,单图像超分辨率模型对于同一场景下的低分辨率图像均可以使用,增强了重构模型的适用性[12]。
根据实现手段,图像超分辨率方法可分为三种:基于插值、基于重构、基于学习[13]。近年来,随着有效数据的不断增加、高计算能力的实现以及训练方法的日益完善,深度学习在图像处理领域占据极为重要的地位,深度学习方法也已经成为超分辨率领域的一个重要分支,日益占据更加重要的地位。本文对图像超分辨率方法的分类如图1所示。
图1 图像超分辨率方法的分类
插值法主要通过基函数或者插值核,利用邻近像素的值来逼近损失的图像信息,实现图像分辨率的放大。常见方法如最近邻插值法、双线性插值法、双三次插值法、样条插值法、高斯插值法等。其中,双线性插值法通过4 个邻近像素点的值来确定待插值像素点的值,插值效果比最近邻插值法好得多,但是也带来了计算量的增大。双三次插值法使用16个邻近像素点的值来确定待插值像素点的值,在保持细节方面通常比双线性插值法更好,是部分商业图像编辑程序如Adobe Photoshop的标准插值方法。对于普通的数字图像处理而言,双线性插值法和双三次插值法是人们选择较多的插值方法。
插值法确定插值函数后,就可以通过已知数据值来确定待插值像素的值,简单易行,能够快速地实现图像分辨率变换。然而,插值过程并没有引入任何新的外部信息,因此无法恢复图像退化过程中损失的高频细节,重建图像通常存在明显的模糊区和成块聚集区[14]。同时,插值过程也会带来误差,影响重构效果。因此,在图像超分辨率的研究中,由于插值法自身的局限性,通常被用作其他方法的预处理步骤。
为了提高插值法的重构效果,有学者结合图像特征理论,提出了基于梯度特征的插值法[15]、基于几何特征的插值法[16]等。近年来,由于卷积神经网络在图像处理领域表现出良好的性能,机器学习技术不断取得新的突破,基于机器学习的核回归插值方法相继提出。Tomasi等人[17]提出的基于双边滤波器的插值法,引入双边滤波器作为约束项,改善了重建图像的边缘效果。Hiroyuki等人[18]提出自适应局部结构的可控核回归方法,提升了重建图像的局部结构效果。由于这些方法更多地考虑了图像的边缘细节与局部结构,相比于一般的插值方法可以更好地重构出图像的边缘和纹理[19]。
本文中,考虑到图像插值不仅是很多其他超分辨率方法所必须的步骤,同时由于已有学者[16]将特征理论和插值理论结合,实现了引入图像先验信息的插值超分辨率,因此,将图像插值方法也归为超分辨率方法的一种。
图像超分辨率技术的理想目标是利用退化的图像中重构出退化前的图像,这在数学上属于高度欠定问题[20]。重构法的主要思路是通过逆推图像的成像过程,建立的LR 图像和HR 图像之间的观测模型,并引入图像的局部或全局先验模型,最终建立数据保真项和图像先验正则化的优化模型进行求解[21]。其中最关键的地方在于图像先验建模[22],不仅可以是正则性先验,还可以是稀疏性先验或者马尔科夫随机场等先验模型,通过图像先验信息对重构结果进行约束,求解出尽可能接近原始图像的重构结果。优化模型可以在确定性模型和统计性模型两类模型中进行选取,这两类模型之间也有很多相似性。相对来说,统计性模型比确定性模型包含图像先验的能力更强,同时统计推理也更为复杂[23]。
重构法比插值法更加关注图像的退化过程本身,通过人为建立的数据观测模型能够缩小候选解的范围,并提高图像几何结构和纹理的保持能力,获得了比插值法更好的重构效果。然而由于图像在成像过程中面临的退化因素十分复杂,人工建模无法完备地建立这一过程,因此这种方法只适用于少部分场景[24]。
在基于学习的超分辨率方法出现之前,基于重构的方法是图像超分辨率研究的主要方向,出现了迭代反向投影法、凸集投影法、最大后验概率法等代表性方法。
其中,迭代反向投影法[25]的主要思想是将重建图像的退化图像与真实低分辨率图像之间的误差进行反向投影并用于修正当前重建图像,逐步迭代以获得更好的重建效果,是早期图像超分辨率的代表性算法之一。
凸集投影[26]是基于集合理论提出的,首先为超分辨率的图像解空间定义一组凸约束集,通过逐步迭代投影的方式搜索到一个满足所有凸约束集的解空间从而完成图像重建。
最大后验概率法[27]是基于概率统计的理论提出的一种方法,其主要思想是通过设计合理的统计先验模型,使重建图像后验概率达到最大。其中统计先验模型设计的合理性直接决定着图像的重建效果。
这些方法都是以一定的先验知识来约束重构过程,在一定程度上缓解了插值方法所带来的模糊效应,但其缺点同样明显。基于重构的图像超分辨率方法的关键在于图像退化数学模型,面临很大的计算量,计算过程耗时长,求解困难,且放大倍数较大时,由于无法获得足够多的先验知识,重构效果往往不太理想[28]。
学习法的提出得益于机器学习技术的发展,鉴于机器学习在图像分类、目标检测等图像处理任务中的优异表现,许多学者开始尝试使用机器学习技术进行图像超分辨率[29]。
自然界图像的构成总有联系,学习法的基本思想是通过从高/低分辨率图像块之间的对应关系中,学习到图像之间的映射关系,从而利用相似性快的互补信息,达到补偿细节和提升清晰度的作用[30],主要包括建立训练样本库(特征提取)、样本学习(搜索)、图像重构三个阶段。
学习法可以分为两类:基于浅层学习的方法和基于深度学习的方法[31]。浅层学习法是由传统的机器学习算法发展而来的。传统机器学习方法通过复杂的特征工程确定特征,通常采用人工或者半人工的方法设计特征并调参,这个过程并不容易,十分依赖该领域专家的经验知识和长期积累的训练技巧。优点是对于小型数据集表现出较好的适应性,计算成本相对较低,且当一个好的特征被确定时,学习的准确率和速度都会有惊人的提升,因此传统的机器学习方法在一些领域已经得到了推广应用[32]。从现有研究成果来看,基于浅层学习的超分辨率方法在对人脸、文本等特定对象进行重构时表现出较好的效果[33]。目前,浅层学习法主要有领域嵌入、流形学习、稀疏表示等方法[34]。
领域嵌入法[35]通过对图像进行分块,建立高分辨率图像块与其对应的低分辨率图像块、高分辨率图像块与其近邻图像块之间的关系,进而使用低分辨率图像数据估计出重建图像。
流形学习法[36]是基于高分辨率图像块与低分辨率图像块具有一致的流形结构提出的。对于给定的待重建低分辨率图像块,首先在低分辨率图像块样本集中找到近邻的图像样本,建立近邻关系,并与对应的高分辨率图像块样本完成替换,从而实现图像重构。
稀疏表示法[37-38]不直接采用高-低分辨率图像块作为字典,而是通过稀疏编码算法学习更为紧凑的图像块对,进而通过高分辨率字典和低分辨率字典中的稀疏表示系数重建图像块,最后进行全局聚合,完成图像重建。
深度学习是机器学习发展出的一个分支,是人工智能研究的一个热门方向。近年来,深度学习特别是卷积神经网络在目标分类、识别、语义分割等领域取得了较好的效果,受其启发,许多学者的开始研究基于深度学习的超分辨率方法[39]。本文中,考虑到深度学习方法在研究理念、实施方法上与传统方法存在较大差别,将这一部分放在下一节进行介绍。
本节对图像超分辨率方法进行了分类,并对插值法、重构法和学习法进行了介绍。表1中对这几类方法的核心思想、技术特点和应用范围进行了比较。图像超分辨率属于数学问题中的欠定问题,理论上来说存在无穷多解。传统方法综合考虑图像成像过程中的诸如运动变形、光学模糊、低采样率、随机噪声等多种退化因素,对图像超分辨率的降质过程展开研究,在变形模型、模糊模型、采样模型、噪声模型等方面都取得了一定的进展[29]。然而,由于图像的退化过程的求解极为复杂,现有技术手段只能简单地进行模拟,尚无法建立起完备的退化模型。在超分辨率图像退化建模取得实质性突破之前,传统方法的重构效果仍然很难满足实际使用的需要[40]。
表1 图像超分辨率方法比较
基于深度学习的超分辨率方法以常见的卷积神经网络(Convolutional Neural Network,CNN)、生成对抗网络(Generative Adversarial Networks,GAN)[41]以及其他网络结构为基础(如图2),针对图像超分辨率的具体需求,发展出一系列各具特色的超分辨率网络模型[42]。
图2 基于深度学习的超分辨率方法
(1)SRCNN
2014 年,香港中文大学的Dong 等人[10]提出了首个用于超分辨率的深度学习网络SRCNN,利用三层神经网络,模拟出传统超分辨率过程。首先是特征提取层,将输入的插值后的LR图像中的n1个特征提取出来,实现图像特征提取;其次是非线性映射层,将n1个LR 图像特征映射到n2个HR图像特征的映射空间;最后通过重构层利用n2个特征重构得到SR图像。SRCNN网络结构较为简单,作者通过与当时流行的稀疏表示方法进行对比,发现在峰值信噪比(Peak Signal-To-Noise Ratio,PSNR)和结构相似度(Structural Similarity,SSIM)两个评价指标上[43],SRCNN均取得了更好的效果。
SRCNN的提出可以视为基于深度学习的超分辨率方法的里程碑。它的模型简单,效果优于传统方法,但是仍然存在不足。由于输入图像需要经过插值,增大了计算量,同时,插值过程引入的误差也会影响重构效果,此外,该模型收敛速度较慢,训练耗时较长。
在此之后,虽然研究者们又提出了很多新的网络模型,但是SRCNN仍旧作为一个基准实验,用于评估其他网络模型的有效性。
Dong 等人[44]对SRCNN 进行适当的改进,提出了Fast-SRCNN(FSRCNN)模型。FSRCNN 首先引入解卷积层,以解决SRCNN 输入经过插值的LR 图像的问题,减少了计算量和输入误差且能够通过改变解卷积层实现不同尺度放大;同时改变了卷积核大小和网络深度。最终,FSRCNN 获得了更高的训练速度和更好的重构效果。
(2)ESPCN
2016 年,Shi 等人[45]提出了一种基于像素重排的ESPCN(Efficient Sub-Pixel Convolutional Neural Network)网络模型,通过直接在LR图像上实施卷积操作以提取LR图像的特征,再通过亚像素卷积层将LR空间中的特征扩充到HR空间,将卷积后得到的特征进行像素排列,得到重构图像。该模型提出的像素重排策略可以看作是一种新的插值策略,通过卷积神经网络学习低-高分辨率图像之间的插值函数。由于该方法并不是简单地利用相邻像素来计算待插值像素值,因此重构效果远优于插值法。同时,该方法可以通过灵活调整特征通道的数目快速地实现不同倍数的放大,为实现不同倍数的图像超分辨率提供了一种新的策略。
(3)VDSR
2016年,Kim等人[46]率先将残差结构引入超分辨率方法中,构建了网络层数深达20层的VDSR(Very Deep convolutional networks for Super-Resolution)模型。VDSR通过采用多层小卷积核进行深层次卷积,既减少了参数量,又增大了深层次网络的感受野,能够学习更好的特征,取得了比SRCNN 更好的效果。引入残差结构有两方面的原因:首先是网络加深存在网络退化问题,而学习残差能够减轻深度网络训练中此类问题的影响;另外,由于高低分辨率图像之间具有大量相似的低频信息,使用残差结构能够避免重复学习相似的低频信息,加快网络收敛速度,节省运算时间[47]。然而,由于该网络只引入了一个跳跃连接,梯度消失问题没有得到较好的缓解。作者还使用了自适应梯度裁剪策略用于解决梯度消失/爆炸问题。
(4)EDSR
2017 年,韩国首尔大学的SNU CV Lab 团队提出了EDSR(Enhanced Deep residual networks for Super-Resolution)网络模型[48]。它在深度残差网络的基础上改变了网络结构,去掉了批归一化(Batch Normalization,BN)层,不仅节省了的内存,还大大加快了计算速度。此外,EDSR 还使用了一种数据增强策略(Geometric Self-ensemble),对每张LR 图像要进行多次几何变换,获得对应的HR图像,再将所有结果取平均,得到最终的重构图像,增强了网络的稳定性。
(5)RCAN
2018年,Zhang等人[49]将信号处理中的通道注意力机制引入到超分辨率中,构建了RCAN(Residual Channel Attention Networks)网络模型。他们指出,在图像超分辨率过程中,不同卷积核所提取的特征对于最终结果的贡献应该是不同的,因此各通道特征也该赋予不同的权重,以此来增强不同通道之间的差异性。通道注意机制的引入提升了网络对有用信道的关注度,增强了网络的辨别学习能力。
(1)SRGAN
对于图像超分辨率任务来说,重构丢失了大量细节信息的LR 图像无异于是一种图像细节生成技术。Ledig 等人[50]将GAN 引入图像超分辨率领域,提出了SRGAN网络模型。该模型包括生成器与判别器两个部分,生成器负责合成高分辨率图像,判别器则负责鉴别输入图像是来自于生成数据还是真实数据,当判别器无法再鉴别输入图像是来自于生成数据集还是真实数据集时,就可以认为生成器在该判别器下具有了合成高分辨率图像的能力。
SRGAN使用主观评价体系对重构结果进行打分评估,尽管重构图像在PSNR 值上没有明显的提升,但是通过对抗训练,获得更加符合人类视觉感知的图像,为生成更丰富的重构图像细节信息带来了新的思路,
(2)双GAN模型
英国诺丁汉大学的Bulat等人[51]还提出了利用两个GAN 模型来进行人脸图像超分辨率。考虑到现有的LR 图像都是由人为进行下采样获得的,而实际场景图像的退化过程极其复杂,因此该模型首先利用一个GAN 网络来学习HR 图像到LR 图像的退化过程,将生成的LR 图像与原HR 图像构成图像对,再使用另一个GAN网络进行超分辨率重构。
该网络有针对性地研究了图像的退化过程,将实验研究与实际应用结合起来,提升了图像超分辨率的应用价值。
(1)SRDenseNet
密集连接卷积神经网络(Dense Convolutional Network,DenseNet)是Huang 等人[52]提出的一种模型,其基本思路与ResNet 一致,但是它建立的是前面所有层和后面层的密集连接。Tong 等人[53]在密集连接网络的基础上加入跳跃连接,构建了SRDenseNet。通过大量的稠密连接,SRDenseNet 使每一层的特征能够实现串联而不是像残差结构那样直接相加,在参数量和计算成本更少的情况下实现更好的性能。他们指出,受益于底层特征和高层特征的组合,超分辨率的性能得到了提升,且在实验中发现当所有深度层的特征都串联起来时,得到了最佳的重构效果,说明不同深度层之间包含的信息是互补的。
(2)DBPN
2018年,Harris等人[54]以迭代反投影法为基础,构建了DBPN(Deep Back Projection Networks)网络模型。作者借鉴了迭代反投影的思想,设计了一种不断迭代地进行增采样和降采样的网络,为每个阶段提供错误反馈机制,并提取图像的细节信息用于重构。DBPN网络中的反复迭代使得神经网络能够更好地受到特征的约束,更贴近地拟合出高低分辨率之间的关系,在高倍数下也能表现出较好的重构效果。
(3)SR-RAW
2019 年,Zhang 等人[55]使用全景相机不同焦距下的图像用于图像超分辨率,其认为,对高分辨率图像进行降采样来制作低分辨率图像并不满足真实的低分辨率图像分布,因此这样训练出来的模型在标准数据集上表现效果较好,然而在真实应用时,效果很差。他们提出使用单反相机在不同焦距下进行拍摄,制作真实场景下的高低分辨率数据集,在实际使用中获得了较好的效果。
近年来,深度学习技术蓬勃发展,图像超分辨率的研究热点逐渐转移到深度学习上,发展出一系列以CNN 和GAN 为基础的网络模型,本节给出了基于深度学习的超分辨率方法的分类,并介绍了其中的主要方法。从理论上来说,神经网络从数据中学习先验知识与超分辨率先验建模的思想不谋而合;从使用效果来说,使用深度学习方法进行超分辨率在各项评价指标均显著优于传统方法。因此,基于深度学习的超分辨率重构方法已经成为单图像超分辨率的主流方法,并且在解决实际问题中得到了应用。然而,基于深度学习的超分辨率模型的发展仍然有以下几个方面的问题需要解决:
(1)训练数据的问题。超分辨率的学习和训练需要有对应的高低分辨率图像对,由于图像配准和对齐十分困难,目前大多数实验采用的低分辨率图像都是通过高分辨率图像插值而来的,并不符合真实的图像退化过程。部分学者使用相机拍摄raw 格式的高低分辨率图像,获得了符合真实退化过程的训练数据。然而,这样操作费时费力,也只能获得有限的数据,不利于神经网络的训练。因此如何更准确高效地获得更贴近图像真实退化过程的高低分辨率图像对,是一个亟待解决的问题。
(2)网络结构设计和参数调整问题。深度学习在提取图像特征方面具有天然的优势,然而由于深度学习理论的不可解释性,网络结构设计和参数调整往往依靠人为来控制,对于设计者的知识和经验要求较高。目前,以EDSR 为代表的深度残差网络能够获得较高的重构效果,同时计算量也较大。基于GAN 的模型有较强的细节生成能力,然而生成细节的可控性较差[56]。同时,超分辨率任务面临不同的应用场景,在航天遥感、医学图像重建、电视电影等领域的需求是不同的,如何设计一个符合应用场景需求,同时兼具速度与效果佳的网络模型依然未来的研究重点。
(3)网络训练和优化问题。通过拓展神经网络深度和宽度,往往能够取得更好的训练效果。然而,随着网络层次加深,网络面临退化问题,训练难度不断增大。残差网络、密集连接网络的引入,缓解了深度网络的退化问题。同时,一些训练策略如采用小卷积核、通道注意机制、分组卷积、去批归一化层等的采用,提升了重构效果,减少了网络的计算量。目前来说,网络训练和优化策略有了一定的发展,但是仍然存在很多可以改进提升的地方。
(4)模型评价问题。在超分辨率重建中,评价指标的选取直接影响着模型优化改进的方向。目前通常采用PSNR 和SSIM 作为客观评价重构结果的指标,计算简单方便,却与人类视觉的一致性较弱。主观评价指标需要大量的人力物力投入,在实际使用中存在较大的局限。因此,针对不同重建方法本身的特点和不同场景的使用需求,设计合适的评价指标,对于提升超分辨率的使用价值具有重要意义。
总的来说,深度学习在图像超分辨率领域表现出巨大的潜力,但是以上问题仍需探索完善,继续开展基于深度学习的图像超分辨率的研究工作,具有重要的理论意义和实用价值。
图像超分辨率技术通过软件处理的方法实现图像分辨率提升,在无需改变硬件的情况下,突破了固有成像设备的限制。本文较为全面地介绍了现有的超分辨率方法。传统超分辨率方法通过手工或半手工的方式设计特征,从图像退化过程出发,模拟图像退化的各个环节,通过逆运算重建图像,取得了一定的重构效果。基于深度学习的超分辨率方法能够自动提取图像特征,从海量训练数据中获取先验知识并储存于神经网络中,在较好的训练模型和有效训练数据的支持下,重建图像在各项评价指标上都有良好表现,已成为超分辨率研究领域的最热门研究方向。
目前,超分辨率的研究工作主要还集中在实验室研究阶段,仅在部分应用领域中得到使用,但其使用价值已经受到了很多专业人员的关注。展望未来,超分辨率的研究可以从以下几个方面开展:
(1)全面提升图像超分辨率网络的性能。提升图像的重构效果一直是研究者十分关注的,但对于不同的使用需求,对超分辨率网络的性能要求也不同。例如,医学图像重建中,需要重建图像具有丰富明显的细节,同时保证真实可靠;影视节目中,需要重建图像视觉质量好,重建效率高。因此,从提升重建效率、获得更好的视觉效果、更丰富明显的细节、更高的放大倍数等方面继续提升超分辨率网络的性能,是未来的研究重点。
(2)图像超分辨率在各个领域的应用。超分辨率在医学图像、航天遥感、人脸识别、电视电影等方面有很高的应用价值,针对不同场景的使用需求,结合该场景的先验信息进行网络结构设计、模型训练、效果评价,实现该场景下重构效果最优化,对于提升超分辨率的应用范围和使用价值具有重要意义。
(3)图像超分辨率与图像分类、识别、目标检测等任务的联合问题。超分辨率是前端视觉信息处理的一个重要任务,它可以为图像后续处理中的提供了高质量空间分辨率的图像。现阶段超分辨率的主要研究目标是获得更接近与原图像的重构效果,较少考虑超分辨率对于图像后续处理中的分类、识别等任务的影响。因此,开展这方面的研究,对于拓展超分辨率图像的使用范围,提升超分辨率的实用价值具有重要意义。