卿粼波,吴梦凡,刘 刚,刘 晓,何小海,任 超*
(1.四川大学 电子信息学院,四川 成都 610065;2.上海卫星工程研究所,上海 201109)
图像在形成、处理和传输过程中,由于成像系统、传输介质和处理方法等的限制,通常会导致图像质量的下降。但在实际应用中,由于人们对图像质量的要求越来越高,如何进行高质量图像的恢复具有重要意义。图像复原是一种从低质量观测图像中恢复出清晰图像的技术,在遥感图像处理、医疗诊断、智能监控等领域有着重要的应用。图像复原本身是一个病态的逆问题,具有不适定性。目前通常采用正则化方法解决此类问题,它利用未知图像的先验信息约束解空间,使得到的解更接近真实解,通常这类方法被称为基于模型的方法。由于此类方法利用图像自身信息提出具体的先验项并直接通过相应的优化算法进行求解,因此图像先验在复原中具有重要作用。目前已经提出了各种各样的先验项,如稀疏先验[1-2]、非局部自相似性先验[3-5]及低秩先验[6-7]等等。这些先验项被有效利用于各种复原算法中,且获得了较好的重建结果。例如,Papyan等[8]通过考虑引入多尺度先验来对通常基于块的复原方法进行改进,获得了更好的复原结果。Dong等[9]将非局部相似性先验和稀疏先验有效融合在一起,提出了一种非局部集中稀疏表示模型用于复原任务。Tirer等[10]提出了一种迭代优化算法框架,该框架可使用现有的BM3D算法作为去噪器来对复原逆问题求解。但是,此类方法通常运算复杂度高,比较耗时。且如何设计出高性能的图像先验项涉及到很多问题需要解决,本身十分困难。
另一类图像复原方法为基于学习的方法,该类方法根据训练样本对高质量图像进行估计,近年来也得到了广泛的应用。例如,Kim等[11]提出了一种基于残差学习的图像超分辨率重建网络,该网络学习输入图像的残差信息,然后将学习的残差信息和输入图像进行相加得到重建的图像。Zhang等[12]构建了一种端到端的卷积神经网络DnCNN,其采用残差学习策略有效解决了不同程度的噪声残留。Lefkimmiatis等[13]基于非局部模型进行了网络结构设计,用卷积神经网络来执行非局部处理过程,提出了相应的网络UNLNet用于图像噪声去除。Wang等[14]设计了一种新的网络结构CFSNet,该网络分为主分支和调整分支。在主分支输入降质图像,在调整分支输入控制尺度因子,通过调整每个模块的特征实现对复原结果的交互控制。此外,Zhang等[15]设计了一种密集残差网络RDN,通过密集连接增强了网络对图像局部特征的捕捉。Fan等[16]提出了一种尺度卷积网络SCN,首先将输入图像映射到特征空间建立相应的特征金字塔表示,然后将其送到具有尺度卷积的残差网络中完成图像重建。Zou等[17]在常见编解码结构网络基础上引入了空洞卷积以有效增大网络感受野,且通过设计一种新的小波重建模块,保证重建图像在获得模糊去除的同时恢复出了更多纹理细节信息。Mei等[18]提出了非局部稀疏注意力模块应用于超分辨率重建任务。但这些方法大多未在网络设计中考虑传统方法中的图像退化模型信息,且网络可解释性较差,不利于网络性能的进一步优化提升。
基于学习的方法[19]在图像复原任务中表现出了优秀的性能,然而现有方法大多都是直接从训练数据中学习高低质量图像间的映射关系得到对应的预测模型,并未考虑到图像退化模型。为了更好地结合两种方法的优势,也有一些研究尝试将两种方法有机融合起来,解决各自固有的一些不足之处,突破深度网络设计中的瓶颈提升性能[20-21],为本文提供了一种新的研究思路。如Dong等[20]尝试通过SBI算法将经典复原问题分解为几个子问题,并结合深度学习方法进行求解。但是,在深度学习方法与传统方法的具体融合方式、实现方法等的选择上仍存在很多问题,需要进一步深入研究。
本文在以上研究基础上对结合图像退化模型的深度学习方法进一步研究,提出了一种基于小波域交替方向乘子法(alternating direction method of multiplier, ADMM)深度网络的图像复原算法。该算法首先提出了一种小波域图像复原模型,将复原问题变换到小波域上进行研究。其次,根据小波域复原模型利用交替方向乘子法将该复原问题分解几个子问题分别进行优化求解。最后,基于上述优化求解过程进行网络的设计,构建一个相应的卷积神经网络用于图像复原。
针对图像复原问题,通常其图像退化模型可表示为:
式中,y表示低质量观测图像,x表示原始清晰图像,H为退化矩阵,n为加性高斯白噪声。对于不同的复原任务,退化矩阵呈现出不同的表现形式,例如:在去噪中,H为一个恒等映射矩阵;在去模糊中,H表示一个模糊操作算子;而在超分辨率中,H同时包含模糊和下采样算子。
基于此退化模型,可进一步将图像复原问题转化为求解如下的优化问题:
式中: ‖y-Hx‖22为数据保真项,保证复原图像与观测图像的接近程度; Θ(x)为 正则化项,提供先验信息;λ为正则化参数,保持这两项的平衡。
针对式(2),借助变量分裂技术[22-23],使之可以独立地对数据保真项和正则化项进行处理。经过变换后,正则化项仅仅对应于一个去噪子问题,因此可以将有效的去噪器嵌入到基于模型的方法中进行优化求解,解决各种逆问题。
基于去噪先验的图像复原方法通常借助变量分裂算法把图像复原问题分解为多个子问题,且通过去噪网络对其中的去噪子问题求解,在图像退化模型下以允许使用更加复杂的先验信息,对图像复原问题进行更加全面的约束,进而得到质量更好地复原图像。通过引入一个新的辅助变量z,可将式(2)转换成如下的一个有约束优化问题:
式中, µ为一个正则项参数,k为迭代次数。经过此步骤,正则化项和数据项被分别分到两个不同的子问题中,在迭代过程中依次对这两个子问题进行求解,并将解送往下一次迭代对x、z进行更新,重复此过程即可得到最终的重建图像x。 对于x子问题,常采用梯度下降法、共轭梯度法等优化算法对其进行求解。对于z子问题,式(5)可以看作是对含噪声图像xk+1的去噪问题求解,即可通过一个去噪网络进行求解。由于传统的图像复原算法是基于像素域,因此计算复杂度较高。除此之外,传统的变量分裂技术严重地限制了算法的适用范围且鲁棒性较弱。因此,本文提出了新的基于小波域ADMM深度网络复原算法。
本文结合小波域图像复原模型,构造了新的退化模型和复原代价函数,并结合ADMM优化算法,分解出相应的求解子过程,和传统的半二次分裂方法相比, ADMM 方法适用于更大范围的、更复杂的基于模型的图像复原方法且具有更好的鲁棒性,从而更有利于指导后续的图像复原网络设计。
对于图像复原问题,大多数方法都直接在像素域上进行处理。但是直接在图像像素域上进行处理,尤其对于基于学习的方法特别容易造成结果的过度平滑,引起一些细节的损失[25]。此外,在像素域上构建的网络将输入图像直接送往网络处理,而由于网络中特征图尺寸和输入图尺寸保持一致,使得网络中的各种操作都在一个较大的尺寸上进行,极大增加了网络运算量。一方面,鉴于小波变换本身对图像特征就有一定的提取和分离特性,能够促进网络的学习,帮助更好地捕捉恢复细节信息;另一方面,由于输入图像经小波变换后图像空间尺寸会减小为原来的一半,使得网络中特征图尺寸也会相应地减小为原来的一半,进而能降低整个网络的运算复杂度、加快速度。因此,本文在小波域下进行图像复原的研究,提出了基于小波域的图像复原模型。
取小波变换算子W对式(1)进行处理,得到小波域下的退化模型为:
式(7)即为提出的小波域图像退化模型,其表征了在小波域下由高质量小波图像降质到低质量小波图像的图像退化过程。其中,yw、xw分别表示低质量小波图像和原始高质量小波图像。在本文中,选择使用Haar小波算子来实现像素域上的图像与其相对应的小波图像间的转换,即设置式(6)中的W为一个Haar小波算子。H~为一个等效的小波域降质算子,nw为对应的小波域噪声。对于图像复原问题,若能从低质量观测小波图像yw中恢复出高质量小波图像xw,则可再通过后续的一个小波逆变换实现最终清晰图像的重建。
基于小波域的图像退化模型(即式(7)),可以通过求解如下的小波域图像复原优化问题(式(8)、(9))进行清晰图像x的重建:
基于上述提出的小波域图像复原模型,可以通过对式(8)进行优化求解得到一个小波域图像估计xw,然后鉴于小波变换的可逆性,通过式(9)即可获得像素域上的干净图像x。但是,若要通过式(8)、(9)直接求解,需要设计小波域先验 Θ(xw),并通过合适的优化算法给出式(8)的迭代最优解,这是一项极具挑战性的工作。虽然基于像素域已有大量工作提出了很多有效的先验项,但针对小波域先验项构建的研究还很少,设计小波域先验项仍是一项困难的任务,这也进一步限制了接下来的优化求解问题。由于近年来基于深度学习的方法在图像复原中表现出了很好的性能,其可直接基于训练数据对高质量图像做出估计,在保证较好复原效果的同时有效避免了手动设计先验项困难的问题。故本文采用深度网络来解决式(8)、(9)的求解问题。但是,现有大多数深度网络都是数据驱动的,在结构上并未考虑融合图像自身特性和相关退化模型的信息,解释性差的同时也限制了性能的进一步提升。为了有效利用小波域图像退化模型的信息,同时增强深度网络的可解释性,并未采用通常方法直接构建网络以解决问题,而是考虑借助ADMM算法来指导网络的设计,将图像退化模型信息融入网络中。
ADMM算法的特性能够帮助把一个复杂的问题分解为多个子问题,降低其优化求解难度。借助ADMM算法,图像复原问题可分解为去噪子问题和一个简单的复原子问题,且任意去噪算法均可被灵活地插入到复原框架内,允许更加复杂先验的引入。文献[26]指出在基于模型的框架内进行特定模块的融入时,ADMM能很好地保证算法的鲁棒性。受到ADMM算法的启发,本文基于ADMM进行式(8)的优化求解。
对小波域下的代价函数(即式(8))引入辅助变
基于ADMM算法,以上步骤完成了对式(8)所示的小波域图像复原模型的优化求解。对于输入低质量图像,在对其进行小波变换后,即可通过式(13)、(15)、(16)进行迭代求解,不断更新xw、z、u3个参数得到一个小波域图像最佳估计xw,最后通过小波逆变换得到重建的清晰图像。但是,考虑到迭代求解的运算复杂度和深度网络的良好性能,本文并不直接这样进行迭代求解,而是考虑将此优化过程展开为网络的形式,构建一个深度网络直接实现端到端的图像复原。
图1 基于小波域ADMM的卷积神经网络结构图Fig. 1 Framework of our proposed deep ADMM network
对于z子问题的求解(即式(16)的计算),鉴于卷积神经网络在去噪问题中良好的性能,选择使用基于CNN的去噪网络用于求解。基于密集残差块[15],构建了小波域去噪子网络作为式(16)中的网络D的具体实现。该小波域去噪网络首先通过两个3×3的卷积层进行浅层特征的提取,然后通过Y个残差块(dense residual blocks,RDB)实现进一步学习,最后通过两个3×3的卷积层完成重建。其中,每一个残差块的输出都被送到Concat层,然后通过1×1卷积层进行自适应特征融合,该网络输入为小波特征和由式(13)定义的参数u,网络输出也为一个小波特征图。因此,整个网络是在小波域上实现图像去噪的。由于是在空间尺寸更小的小波特征图上进行处理,该网络运算复杂度更低;且鉴于小波特征本身即可表征不同种类的信息,细节信息得到了更好的保留和学习。与一般的去噪网络相比,该网络能获得更好的性能且能有效提升速度。在训练中设置RDB的个数为4,损失函数为MSE。
为了对本文提出的算法的有效性进行分析,将其应用到去模糊任务和去噪任务中,并进行大量实验。实验中,算法的基本参数设置为:复原子网络个数N=3。网络训练过程中,采用数据集DIV2K[27]中的800张HR图像作为训练样本。DIV2K由800张训练图像、100张验证图像和100张测试图像组成,图像分辨率为2K。优化算法选用的是ADAM[28],其中参数设置为: β1=0.9 , β2=0.999, ε =10-8。初始学习率设置为1 0-4,且每过3个epoch,学习率降低四分之一。选用峰值信噪比(peak signal to noise ratio,PSNR)[27]作为客观评价指标验证算法性能。网络执行环境是Pytorch,使用一块Nvidia 1080Ti GPU。
为了验证本文方法在图像去模糊上的效果,在图2所示的测试图像[29]上进行了实验,该测试图像集共包括10张图像,大小为256×256像素。实验中,采用两种类型的模糊核产生模糊图像:类型1为标准差σ=1.6、大小为25×25像素的高斯模糊核,添加标准差 σn=2的高斯噪声;类型2为文献[28]中所述8种模糊核中的第1种大小为19×19像素的运动模糊核,添加标准差 σn=2.55的高斯噪声。将本文提出的方法与MSEPLL[8]、IDBP-BM3D[10]、NCSR[9](仅高斯去模糊)、VDSR[11](仅运动去模糊)、IRCNN[21]、DPDNN[20]以及RDN[15]进行了比较。
图2 用于去模糊的测试图像Fig. 2 Test images used for deblurring
对于高斯模糊情况,表1列出各种方法对测试图像进行去高斯模糊( σ=1.6,25×25像素的高斯模糊核,并添加 σn=2高斯噪声)的PSNR。其中,IDBPBM3D、MSEPLL、NCSR未利用到CNN网络的方法在测试图像上的平均PSNR明显低于其他基于深度学习的方法。本文方法取得了最好的效果,在测试图像上的平均PSNR值比IRCNN高出0.74 dB,比DPDNN高出0.46 dB,比RDN高出0.25 dB。
表1 σ =1.6 的 25×25像素高斯模糊核(高斯噪声 σ n=2)下不同方法的去模糊效果Tab. 1 Deblurring results of different methods with 25×25 pixels Gaussian blur kernel and σ =1.6 (Gaussian noise σ n=2)dB
此外,为了对去模糊效果有更直观的感受,图3给出了各种方法在测试图像Barbara上的去高斯模糊( σ=1.6 , 25×25像素的高斯模糊核,并添加 σn=2高斯噪声)的效果图。由图3所见,IDBP-BM3D和MSEPLL能够大体实现图像的去模糊,但是细节恢复不清晰。NCSR和IRCNN较前面两种方法性能有所提升,但是仍然有很多细节并未恢复出来。RDN和DPDNN在去模糊上表现出不错的性能,但是通过对比发现,本文方法对于细节的恢复更加精细。综上所述,本文方法不论是在主观视觉效果还是客观指标上都优于其他方法。
图3 σ=1.6 的 25×25像素高斯模糊核(高斯噪声 σ n=2)下不同方法对图像Barbara的去模糊效果Fig. 3 Deblurring results of different methods on the test image Barbara with 25×25 pixels Gaussian blur kernel and σ=1.6 (Gaussian noise σ n=2)
对于运动模糊情况,表2给出了各种方法对测试图像进行去运动模糊(19×19像素运动模糊核,并添加 σn=2.55高斯噪声)的PSNR值。由表2可见,同去高斯模糊类似,VDSR、IRCNN、DPDNN、RDN及本文方法利用了CNN,因此在测试图像上的平均PSNR高于其他两种。其中,VDSR取得了相对最低的平均PSNR,RDN取得了最优的性能。但是综合对比,本文方法仍然取得了最高的PSNR值,比VDSR高0.71 dB,比IRCNN高0.53 dB,比DPDNN大约高0.3 dB,比RDN高0.18 dB。
表2 19×19像素运动模糊核(高斯噪声 σn=2.55)下不同方法的去模糊效果Tab. 2 Deblurring results of different methods for 19×19 pixels motion-blur removing (Gaussian noise σ n=2.55)dB
此外,图4也给出了各种方法在测试图像Boats上去除运动模糊(19×19像素运动模糊核,并添加σn=2.55高斯噪声)后的效果图。对比视觉效果,本文方法可以更好地去除运动模糊,且能更好地重建细节边缘信息。
图4 19×19像素运动模糊核(高斯噪声 σ n=2.55)下不同方法对图像Boats去模糊效果Fig. 4 Deblurring results of different methods on the test image Boats with 19×19 pixels motion blur kernel (Gaussian noise σ n=2.55)
表3给出了本文方法与最优算法RDN在数据集BSD68和Urban100上去除高斯和运动模糊的平均PSNR。
表3 在数据集BSD68和Urban100上不同方法去高斯和运动模糊的平均PSNR结果Tab. 3 PSNR results of different methods on the database BSD68 and Urban100 for Gaussian and motion blur removing dB
从表3中可以看到:在数据集BSD68上,本文方法的PSNR提升了0.12 dB(高斯模糊)、0.2 dB(运动模糊)。在数据集Urban100上,本文方法的PSNR提升0.04 dB(高斯模糊)、0.18 dB(运动模糊)。因此,本文方法重建出的图像也取得了较好的视觉效果,既没有模糊去除不够彻底的情况,也保证了图像的一些基本细节信息都未丢失。
针对图像去噪任务,选取标准差 σn=50的高斯噪声用于噪声图像的产生,在图5所示的测试图像[30]、数据集BSD68[30]和数据集Urban100[31]上进行大量实验。图5中的测试图像集包括12张图像,其中,图5(a)~(g)大小为256×256像素,图5(h)~(l)大小为512×512像素。数据集BSD68包含68张测试图像,图像大小约为768×512像素。Urban100包括100张测试图像,图像大小基本保持在1 024×700像素左右。为了验证本文方法在去噪任务上的效果,将其与TNRD[19]、DnCNN[12]、IRCNN[21]、UNLNet[13]、CFSNet[14]、DPDNN[20]和SCN[16]等方法进行了对比
当高斯噪声 σn=50时,各方法在图5所示的测试图像上去噪的平均PSNR见表4。
图5 用于去噪的测试图像Fig. 5 Test images used for denoising
表4 在去噪测试图像上不同方法去除 σ n=50高斯噪声的PSNR结果Tab. 4 PSNR results of different methods on the denoising test images for σ n=50 Gaussian noise removing dB
由定量结果可知,TNRD对于噪声去除的能力与其他方法相比较差,剩下的基于深度学习的众多方法均能取得不错的效果。其中UNLNet在剩余其他方法中取得了最低的平均PSNR值,DnCNN、IRCNN和CFSNet呈现出比较接近的结果,DPDNN和RDN取得了相较更高的PSNR。而本文方法取得了最高的平均PSNR,比DPDNN和SCN高了近0.1 dB。
同时,图6展示了不同方法对于测试图像Parrot的去除 σn=50高斯噪声的效果图。从视觉效果可以看出,相比其他算法,本文方法可以更好地去除高斯噪声,且更好地保留了图像原本的细节信息。
图6 σ n=50高斯噪声下不同方法对图像Parrot去噪效果Fig. 6 Denoising results of different methods on the test image Parrot with σ n=50 Gaussian noise
此外,表5给出了各方法在数据集BSD68和Urban100上去除 σn=50高斯噪声的平均PSNR。从表5中可以看到,在这两个数据集上,本文方法仍取得了最高的PSNR,优于其他对比方法。在数据集BSD68上,本文方法的PSNR比DPDNN高0.06 dB,比SCN高0.04 dB;在数据集Urban100上,本文方法的PSNR比DPDNN高0.17 dB,比SCN高0.15 dB。说明本文提出的方法在各种类型的数据上都能取得很好的去噪效果,恢复出质量较佳的图像。总体来说,本文提出的方法针对去噪任务表现出了较好的性能,获得了很好的主客观效果。
表5 在数据集BSD68和Urban100上不同方法去噪的平均PSNR结果Tab. 5 PSNR results of different methods on the database BSD68 and Urban100 for denoising dB
为了验证本文方法中小波域引入的有效性,进行了相关的实验对其展开研究。在本文方法的基础上,去除图1所示网络中首端的小波变换及末端的小波逆变换,直接将待复原的图像送往子网络,并且相应地调整图1所示小波域去噪子网络的小波域特征输入为空间域特征,构建出相应的基于像素域的深度网络。在此网络结构上,保持与上文相同的实验设置,进行去模糊和去噪实验。糊核(添加 σn=2的高斯噪声)、大小19×19像素的运动模糊核(添加 σn=2.55的 高斯噪声)及 σn=50的高斯噪声生成对应的高斯模糊图像、运动模糊图像和含高斯噪声图像。
从表6中数据知:在进行去高斯模糊时,在小波域下构建网络能将PSNR提高0.44 dB;针对去运动模糊情况,在小波域下构建网络PSNR提高了0.21 dB。对于标准差为50的去噪任务,基于小波域的网络在PSNR上同样也高了0.11 dB。
表6 基于小波域和像素域的网络在图2和5所示的测试图像上去模糊(去噪)平均PSNR结果Tab. 6 PSNR results of different networks with wavelet domain and pixel domainon the test images shown in Fig.2 or Fig.5 for deblurring or denoising dB
此外,表7给出了上述两种网络在含 σn=50高斯噪声情况下重建不同大小的一张图像所需的时间。由表7可知,基于小波域构建的网络重建图像的时间也得到了明显减少。
表7 基于小波域和基于像素域的网络重建不同大小图像的时间Tab. 7 Time results of the different networks with wavelet domain and pixel domain on different sizes image restoration
不管从复原性能还是处理速度上来看,基于小波域的网络较像素域的网络都取得了更好的效果。这主要是由于在小波域下进行复原,小波变换自身具有的一些特性能帮助网络在性能及速度上取得提升。具体地,一方面是由于小波变换后网络中特征图尺寸减小为原来一半,整个网络运算量减少,使得网络处理速度相应加快。另一方面因为小波变换后,图像特征得到初步提取和分离,网络能更容易地捕获和学习到不同种类的信息,使得恢复出的图像保持更好的边缘结构和纹理细节。综上,在小波域下进行图像复原较像素域处理性能更优且速度更快。
本文提出了一种基于小波域ADMM深度网络的图像复原算法。首先,选择将其变换到小波域进行复原;然后,利用ADMM算法将基于小波域的复原问题分解为一个复原子问题和一个去噪子问题,并分别采用梯度下降法和一个去噪网络对这两个子问题进行求解;最后,基于上述优化过程解的形式构建一个相应的深度卷积神经网络用于图像复原。不同于现有大多数复原网络,本文提出的网络由于有效结合了图像退化模型信息,增强了其解释性。实验结果表明,本文提出的算法无论是在主观视觉效果还是客观评价指标方面都取得了很好的效果,恢复出了质量更好的图像。在未来的研究中,将拓展本文提出的算法到其他图像复原任务,如去雨、去雾等。