沈 瑜,刘 成,杨 倩
1.兰州交通大学 电子与信息工程学院,兰州730070
2.甘肃省人工智能与图形图像处理工程研究中心,兰州730070
传统的图像复原技术通过减少成像过程中各种干扰因素影响来提高图像复原的质量。但是,这些方法很难将成像系统截止频率以外的信息进行复原。为此,图像超分辨率重建的概念被提出,它的基本思想是将低分辨率图像通过某些技术或者方法恢复至对应的高分辨率图像。它在卫星成像、医学图像诊断、高分辨率视频等领域具有很强的应用价值。近年来,深度学习在多媒体领域的应用愈加广泛,与此同时,以深度学习为基础的超分辨率图像重建技术[1]也成为了图像处理领域的重点研究方向。
王忠谦等提出的双三次插值法[2]通过LR图像信息,在邻点间计算得到插值点像素,实现HR图像的重建。该方法虽然较为简单,但是不能较好地保持图像的高频信息,同时还会造成图像边缘的振铃效应。Yang等[3]利用联合训练的方法寻找LR和HR图像块相对应的过完备字典。这种方式使LR和HR图像块所获得的稀疏系数较为相似。该方法取得的图像重建质量较好。但是,训练和重建过程需要多次迭代,算法复杂度偏大。Timofte等[4]提出的A+算法是建立在图像特征和锚定领域回归量的基础上,但它没有在字典上学习回归量。因此,该方法具有非常低的时间复杂度。Zhu等[5]提出了一种基于可变形块的单图像超分辨方法。通过变形图像块,字典对图像变得更具表现力。结果表明,该方法有助于提高图像表示精度,算法鲁棒性也显著提升。香港中文大学Dong等[6]首次引入卷积神经网络处理超分辨率图像重建问题,其网络架构主要分为特征提取、非线性映射和图像重建三个阶段。该方法采用均方误差作为其损失函数,通过随机梯度下降法对其进行优化,从而使网络的收敛速度加快。但是该方法不适合多尺度放大,而且忽略了图像块之间的上下文依赖。后来,根据图像分类的VGG网络[7]提出的极深网络[8]解决了图像的单一尺度放大的问题,该方法通过级联形式的滤波器,有效整合了图像块之间的上下文信息。此外,该方法也指出:对于训练过程中出现的梯度消失、梯度膨胀等问题,残差学习和可调梯度裁剪[9]策略可以对其有效消除,但是该方法在参数存储和检索方面存在不足。西安交通大学的Liang等[10]采用了一种在训练过程中对代价函数增加约束条件的方法,如:重建图像的梯度轮廓[11]、非局部相似性[12]等,该方法充分考虑了图像的边缘信息,但对重建图像质量的提升效果甚微。该方法也表明了把浅层卷积神经网络和图像先验知识相结合,对图像质量的改善能力非常有限。文献[13-14]利用在合适的稀疏字典原子下,LR/HR图像块稀疏表示系数是相同的这一性质,提出了基于稀疏编码的超分辨率重建方法,该方法使图像的视觉效果有了很大程度的改善,而且也表明了稀疏编码模型所蕴含的领域知识可以对深度学习的网络架构的设计提供很大帮助。在众多基于深度学习的超分辨率图像重建方法中,利用字典模型的重建技术备受青睐。文献[15]提出了一种基于协作稀疏表达的字典学习算法。该方法将图像划分为不同聚类,并且构建了协作稀疏字典模型。最后,利用图像自身的结构自相似性选择对应的映射矩阵来完成图像重建。这种方法使得图像的超分辨率质量得到了进一步提升。文献[16]提出一种新的基于层次聚类的超分辨率图像重建算法,该方法利用层次聚类和改进的主成分分析方法训练得到字典模型,并且在完成重建以后对图像进行全局优化,有效提升了图像的峰值信噪比和结构相似度。还有其他字典模型,比如多尺度字典[17-18]、压缩感知字典等[19]都在超分辨率图像重建中取得了较好的效果。在现有研究工作中,基于人工特征设计词典模型(如图像灰度信息、梯度或纹理结构等浅层特征),对源图像信息的表达能力是非常有限,尤其是对于结构复杂、特征丰富的图像,需要一种模型来提取图像的深层次学习特征以获得更好的图像重建效果。
在此基础上,本文提出了一种具有高斯内核函数的PCANet模型用来提取图像的深度学习特征作为源图像的精确表示,并且对子空间特征进行稀疏优化,提高了算法的鲁棒性。通过训练得到的LR滤波器将提取到深度学习特征分解为多个特征映射以获得LR图像更加稀疏的特征表示,同时结合训练得到的映射函数可以更精确地估计出HR图像的稀疏特征表示,有效解决了特征匹配过程中准确度低的问题。
深度学习的思想是挖掘数据的多层次表示方法,通过更高、更深层次的特征来增强抽象数据的语义表达能力。其结构模型和人类大脑分层处理信息的机制具有相似之处。文献[20]表明,利用深度分层模型能够获得稀疏性、选择性和鲁棒性更佳的学习特征,能有效增强对图像语义的描述能力。所以,寻找新的多层特征提取模型变成了深度学习方面的一个研究热点。
PCANet[21]是一种把卷积神经网络理论和PCA(主成分分析)理论相结合且结构较为简单的深度学习算法。利用PCANet模型可以从图像数据库中提取到与人工设计规则完全不同的深度学习特征[22]。因此,将PCANet算法应用到图像数据中深层次的特征的提取是可行的。
本文算法利用PCANet模型提取图像深度学习特征,并且加入稀疏优化算法,对子空间特征映射进行处理。然后利用学习得到的映射函数,用LR图像特征估计出HR图像的稀疏特征表示,解决了特征匹配准确度低的问题。本文算法的流程如图1所示。
PCANet算法是一种线性分析方法,不能有效提取图像的非线性特征。在非线性空间引入内核函数的方法可以弥补这些不足,它在图像特征的高维空间中比线性方法更为有效。因此,本文在PCANet模型的滤波器核中引入核函数,可以有效提高该模型提取图像非线性特征的能力。本文利用引入核函数的PCANet模型提取图像深度学习特征,主要包括预处理、特征提取、特征输出三个阶段。
首先,对所有HR图像进行子采样,将子采样图像缩放成和原始HR图像相同的尺寸,得到对应的LR图像。样本可表示为,其中分别代表LR图像和HR图像,P代表图像对的数目。把每一张HR图像由k1×k2大小的滑动窗口分割成m×n个图像块,k1、k2分别表示为滑动窗口的长度和宽度,m、n分别代表沿滑动窗口横向和纵向的图像块的数量。为了去除HR图像特征之间相关性,降低冗余,每个HR图像块进行去均值操作后转换为矩阵形式,第i个HR图像可以表示为:
样本集中所有HR图像转换成矩阵形式可以表示为:
与HR图像对应的LR图像转换成矩阵形式可以表示为:
利用PCANet模型提取图像深度学习特征主要分为以下三个阶段:
提取深度学习特征的第一阶段是通过核函数构造新样本集的过程,将样本集SRL,H={xl,xh}由一个非线性映射φ(⋅)映射至高维空间,其中φ(⋅)指高斯内核函数,其表达式为所以新样本集可以表示为,其中
第二阶段主要是过滤和卷积的过程,假设第i层中所需的滤波器的数量为L1,根据公式(4)对输入的数据矩阵通过最小化重构误差获得PCANet滤波器:
通过提取对应于协方差矩阵Xh的最大特征值所对应的特征向量,由式(5)计算得到PCANet模型的滤波器矩阵PW。
图1 算法流程图
每个训练图像的主要信息可以通过第一个PCANet滤波器保存,并且可以通过公式(6)计算得到:
第三阶段也是卷积和过滤的过程,把上层输出结果作为本层的输入,对该层进行和上层一样的操作得到:
上述两个阶段中第一层中有L1个滤波器,第二层中有L2个滤波器。因此,对于每个训练图像,L1×L2特征矩阵用作输出,用公式(8)表示:
在输出层,对输出结果执行二值化哈希编码,得到最终的特征输出。其中T表示PCANet的中间特征提取结果,H(⋅)是可以增加每个特征的差异的阶跃函数,2h′-1是将每个像素值更改为0~255之间数字的系数。
利用PCANet算法提取图像深度学习特征时,为了使其第一层和第二层的提取结果更加具有稀疏性,分别对两层输出的图像特征进行稀疏优化。目的是找出最佳投影系数矩阵A。假设有P个训练图像样本,其数据矩阵其投影系数矩阵A=可以通过以下函数计算得到:
其中,U∈Pm×Pl和V∈Pn×Pr分别是左乘投影矩阵和右乘投影矩阵。最佳左、右投影矩阵可以通过解决以下目标函数的最小化问题来解决:
其中,P指样本数量,‖‖⋅F指的是矩阵的Frobenius-范数。根据文献[23]提供的方法可以迭代更新出Uopt和Vopt。
在迭代更新得到Uopt和Vopt后,将成本函数设为以下形式:
其中,λ是一个常数,对式(12)进行求导可以得到:
即:
其中,I1和I2为单位矩阵。由式(14)进一步得到:
所以得到:
其中vec(A)指的是矩阵A的矢量形式,“⊗”指的是矩阵的克罗内克积。通过迭代更新式(11)和循环计算式(12)得到的最佳投影矩阵A即为稀疏优化后的子空间特征。
LR和HR图像特征匹配度较低的问题会严重影响图像的重建质量,在本文算法的图像重建过程中,根据文献[14]的方法学习一组LR滤波器把上一阶段利用PCANet模型提取到的深度学习特征经过二值哈希编码得到的特征图再分解为多个特征映射,其表达式如下:
在上式中需要解决M和f的优化问题,其中M的优化问题可以通过文献[24]提出的方法解决,对于f的优化问题可以表示为:
文献[25]中提出的SA-ADMM算法可以克服在学习过程中由于样本集过大带来的存储器容量不足的问题。因此,可以采用该方法对f进行优化。
获得LR滤波器以后,为了解决映射过程中出现的空间大小不足和特征数量不一致的问题,需要在LR和HR图像之间训练一组映射函数。即:
式中,k指放大因子;Mhj(kx,ky)是(kx,ky)的特征映射;是(x,y)的特征映射,W是映射函数g(⋅)的参数,这里通过一个稀疏线性变换矩阵来估计HR图像稀疏系数。
其中e是约束HR滤波器能量的标量。同样利用SAADMM算法交替更新fh和映射函数参数W来优化目标函数。当保持fh不变时,通过求解下式的最优解可以得到迭代更新W。
映射函数确定后,HR特征图可以由W)估计得到。
通过上述阶段得到HR滤波器fh和其对应的特征图Mh后,对二者进行卷积和得到最终的重建图像,即:
本文算法具体流程如下:
(1)输入:训练图像样本集SRL,H={xl,xh},正则化参数γ,λ。
(2)输出:超分辨率图像X。
(3)预处理:将样本集SRL,H={xl,xh}通过φ(xi,xj)=映射至高维空间,得到新数据集
(4)根据公式(6)、(8)计算得到图像特征矩阵Ohhi。
(5)稀疏优化:根据公式(11)、(12)、(16)计算得到其最佳投影矩阵A。
(6)对稀疏优化后的空间特征进行二值哈希编码,得到其特征图。
(7)根据公式(18)、(21)、(22),利用SA-ADMM算法迭代更新得到fl、fh和映射函数W。
(8)根据公式(23)得到最终重建图像。
本文利用双三次插值调整HR图像的大小来生成LR图像训练样本。使用Yang等[3]提供的相同91个训练图像。从这些图像中随机裁剪1 000张64×64个较小的图像用于训练PCANet模型和滤波器的学习。
测试阶段采用三个广泛使用的基准测试集Set5[26]、Set14[27]和BSD100[28],它们分别包含5幅、14幅和100幅图像。从这三个数据集中随机抽取60幅图像进行测试,并且对这60幅图像通过缩放和旋转的方式扩充测试集。
本文提出具有高斯内核函数的PCANet模型是为了更精确地提取图像的深层次特征,从而达到更好的图像重建效果。文献[8]中提出的ResNet网络和文献[7]中提出的VGG网络均是以深层次网络提取图像特征。为了验证PCANet模型的有效性,将其与ResNet网络和VGG网络进行实验对比分析,对比结果如下:
在BSD100[28]数据集中选取两幅图像,分别利用PCANet模型、Res Net网络、VGG网络提取图像特征,图2是提取图像特征过程中三个模型特征图可视化后获得的特征图和对应的直方图。
从可视化特征图中可以看出,ResNet网络和VGG网络获得的特征图与源图像差异较大,未能保留源图像中的纹理和边缘结构特征。从对应的特征直方图中可以看出,随着网络层数的增加,ResNet网络和VGG网络形成的特征直方图出现“多峰值”现象,说明形成的特征图中颜色、边缘结构等特征分布不均匀,和源图像相比,差异越来越明显。从PCANet模型得到的特征图中,可以清晰地辨识源图像中的纹理细节特征。从特征直方图中也可以观察出随着网络层数的增加,PCANet模型得到的特征直方图并未出现“多峰值”现象,且趋于平稳,证明网络层数的增加不会使源图像的特征造成过多丢失,从而说明利用PCANet模型提取图像深度学习特征比ResNet网络和VGG网络更有效。
除此之外,还利用PCANet模型、ResNet网络、VGG网络在Set5[26]、Set14[27]和BSD100[28]三个数据集上做定性结果分析。根据文献[29]中的方法对三种模型提取到的特征图像和源图像进行特征点选取和匹配,三种模型在三个数据集上特征点识别率和重复率如表1、图3所示。
从表1中可以看出,PCANet模型在三个数据集上识别率达94.90%,高于ResNet网络和VGG网络。从图3中可以看出,随着特征点的增多,三种模型的特征点识别重复率均在上升,但是PCANet模型的重复率明显低于ResNet网络和VGG网络,证明在特征提取阶段,PCANet模型可以去除相关特征,降低冗余,有利于模型提高模型效率。
线性核函数、多项式核函数、高斯核函数、多层感知核函数是几种较为常见的核函数,核函数可以改变图像数据的特征浓度比,进而产生不同的主成分分析效果。不同核函数将样本集映射的高维特征空间也有所不同。高斯函数具备良好的差值能力,对训练图像的局部特征信息的提取能力更强。因此,可以利用高斯函数来提高算法中的图像分辨率。图4是在Set5数据集上,各种核函数的视觉效果对比图。
图2 三种模型可视化特征图及对应直方图
表1 三种模型在不同数据集特征点识别率对比表%
图3 三种模型特征点重复率对比图
从视觉效果对比图中可以看出,其他三种核函数对图像轮廓和细节的增强效果不明显。这是因为线性函数的特点是对图像的线性特征有良好的提取能力,但是对图像的非线性特征提取能力不足,所以获得图像的PSNR值最小,但是其视觉效果较好,这是因为PSNR是评价图像质量最常用的客观指标之一,它是基于对应像素点之间的误差,是基于误差敏感的图像质量评价。在评价图像质量时,由于未考虑人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,对一个区域的感知结果会受到邻近区域的影响),因而会出现评价结果与主观视觉效果不一致的情况。多项式函数的特点是可以提取图像的非线性特征,所以采用多项式核函数可以获得比线性函数稍高的PSNR值,但是该函数需要设置的参数较多,导致模型运行时间最长。多感知器函数需要设置参数较少,但是该函数需要加入激活函数提高其非线性特征的表达能力,所以采用多感知器函数作为模型的核函数,运行时间比多项式函数少,PSNR值较低。高斯函数对图像特征的表达能力强于其他三种函数,且需要设置的参数只有一个,所以选择高斯函数作为PCANet模型的核函数,不仅运行时间降低,且PSNR值达到最大,对图像的边缘和不规则结构区域的重构也较为清晰,说明高斯函数作为核函数效果最佳。
图4 各种核函数视觉效果对比图(PSNR/Time)
第一个参数的设置就是PCANet模型中滤波器数量。处理图像块的窗口大小k1=k2=5。对于第一阶段网络,将第一阶段L1中的滤波器数量从5调整至55。在考虑第二阶段时,设置L1=35。并将L2从2调整至12。结果如图5所示,可以观察到,当L1≥35时PCANet模型获得了最佳性能;当L1=35时,L2=8时,PCANet-2获得最佳结果。因此PCANet模型中滤波器的数目设置为L1=35,L2=8。
图5 L1、L2滤波器数量对比图
为了更好地捕捉图像的稀疏性,提高重建图像的质量,LR和HR滤波器核的尺寸大小和数目的设置尤为重要。所以设计实验2,通过改变滤波器核尺寸大小观察重建图像的PSNR值。设计实验3,实验3内容包括:一是利用三幅测试图像,首先固定LR滤波器的数目为600,调整LR滤波器和HR滤波器之间的数量比率,观察均方误差值,寻找二者之间的最佳数量比率。二是通过观察均方误差值,确定LR滤波器的数目。
表2 表明,在LR滤波器和HR滤波器的尺寸都为5×5时,重建图像的PSNR值最大,效果最佳。从图6和表3得出的数据表明,LR滤波器和HR滤波器的数量比率为1.8时,均方误差值达到最小;LR滤波器的数目为1 000时,均方误差值最小。
表2 滤波器核尺寸对比表(PSNR)dB
图6 LR与HR滤波器数目比率图
表3 LR滤波器数目对比表(MSE)
对于在滤波器学习阶段的正则化参数λ和γ的确定,将λ的值由0.02变至0.10,将γ的值由15变至120,观察其重建图像的PSNR值,由图7和图8得出,当λ=0.04,γ=60时,重建图像的PSNR值最大,效果最佳。
图7 参数γ对于PSNR的影响
图8 参数λ对于PSNR的影响
为了评价本文算法的性能,用本文算法对测试图片分别进行2倍、3倍超分辨图像重建,并且将测试结果与BI算法[2]、ScSR算法[3]、A+算法[4]、DPSR算法[5]、SRCNN算法[6]、VDSR算法[8]进行比较。
在利用核函数进行重建样本集时,σ2=4。在滤波器学习阶段,能量约束参数e分别设置为4和9,用于缩放因子2和3。在SR重建阶段,LR滤波器数目和HR滤波器数目分别设置为1 000、1 800。由表4和表5可以看出,本文算法相比于现有的ScSR算法、SRCNN等算法,平均PSNR值提高了0.21 dB以上,图9和图10为本文算法的实际重建效果。
表4 k=2各种算法PSNR值的对比dB
表5 k=3各种算法PSNR值的对比dB
从图9和图10中可以看出,BI算法在评价指标峰值信噪比方面效果最差,说明该方法得到的重建图像不能完整地保留图像的全部信息。A+算法虽然提升了图像的峰值信噪比,但是在重建图像的边缘结构造成了轻微的模糊现象。SRCNN算法有效提升了图像的清晰度和图像边缘纹理的对比度,但是在图像的边缘细节处产生了伪影。DPSR算法、ScSR算法和VDSR算法整体提升了重建图像的视觉效果,但是在处理纹理结构更加丰富的图像(如图10)时,会造成较为明显的块效应。本文算法通过稀疏优化图像的深度特征,对图像的局部细节信息表达能力更强,能够充分保留图像的边缘细节结构,而且重建图像不存在明显的伪影和块效应,使重建图像的峰值信噪比得到有效提升。
图9 不同算法在放大因子为2的重建视觉效果比较
图10 不同算法在放大因子为3的重建视觉效果比较
本实验在具有Intel i9 9900K 5.0 GHz CPU,显卡NIADIA RTX 2080Ti以及64 GB RAM上运行的,图11是在放大因子设置为2的不同算法的运行时间的比较,可以很直观地看出,本文算法相较于BI算法、A+算法、VDSR算法和SRCNN算法相比,运行时间得到很大提升,DPSR算法在硬件条件相同时耗费时间最长。
图11 不同算法在放大因子为2的运行时间比较
本文提出的基于PCANet模型的超分辨率图像重建算法,首先通过PCANet模型提取图像特征,然后根据训练获得的LR滤波器,HR和LR图像特征之间的映射函数估计出HR图像的特征表示,最后联合学习得到的HR滤波器进行卷积求和得到最终的重建图像。本文算法将重建图像的PSNR值提高了0.21 dB,有效改善了图像的视觉效果。后续将继续研究其他用来提取图像特征的网络模型,以及设计性能更优的网络结构,重建效果更佳的超分辨率图像。