基于生成式对抗网络的图像修复研究进展
2022-03-16杨元英王安志何淋艳任春洪欧卫华
杨元英,王安志,何淋艳,任春洪,欧卫华
(贵州师范大学 大数据与计算机科学学院,贵州 贵阳 550025)
0 引 言
图像修复是数字图像处理和计算机视觉领域中的一个重要研究方向,主要通过计算机视觉等技术达到修复图像中缺失信息的目的。许多计算机视觉任务都要基于完整、清晰的图像进行分析、处理,而图像在采集和存储等过程中易受多种因素影响,造成图像信息的丢失和损坏,给这些视觉任务的实现带来严重影响。因此,对图像修复展开研究具有极其重要的意义和应用价值。
鉴于此,文章对图像修复展开了系统的调研,大致可分为四类:基于结构的图像修复、基于纹理的图像修复、基于稀疏表示的图像修复和基于深度学习的图像修复。其中,基于结构的修复采用偏微分方程实现,此类算法健壮性较差,修复后存在模糊等问题。基于纹理的方法利用已知区域的纹理构造缺失信息,可有效避免修复区域的模糊问题,但无法获取高层语义信息,在处理纹理复杂等挑战性图像时性能较差。基于稀疏表达的方法可有效地表示图像的已知信息,但修复区域较大时,该方法受已知信息有限的制约,修复效果仍不理想。
随着深度学习理论在计算机视觉等领域取得突破性进展,生成式对抗网络(generative adversarial network,GAN)在图像修复等领域取得了良好效果。GAN良好的特征表示能力可捕获高层语义特征,有效保持图像内容以及语义上的一致性,能有效避免修复图像出现模糊等失真问题。文章对基于GAN的图像修复方法进行全面的总结,首先对GAN的原理和图像修复问题进行阐述,然后对传统图像修复方法和基于GAN的修复方法进行深入分析,并总结了主流的公开数据集以及评估方法,最后进行了总结和展望。
1 生成式对抗网络的基本原理
GAN包括两个子网络:生成器G
学习训练样本的概率分布,并生成与真实图像概率分布尽可能一致的生成图像;判别器D
对G
的生成图像和真实图像进行判别。GAN本质上是从训练样本数据中学习概率分布,并根据所学习的概率分布生成新的样本数据。其基本结构如图1所示,通过让G
和D
进行对抗学习,相互提升,从而得到具有良好生成能力的G
。首先,G
接收一个随机噪声z
作为输入,z
服从P
(z
)分布,生成器通过学习其分布概率生成样本数据G
(z
),生成样本服从P
()(G
(z
))分布。D
接收真实数据x
,D
(x
)表示x
通过D
的判别结果,x
也服从P
(x
)分布,D
(G
(z
))代表输入数据G
(z
)是真实样本的概率。G
和D
同时进行对抗训练,直到D
无法区分生成数据和真实数据时训练结束。GAN的训练过程可看作是目标函数V
(D
,G
) 最大化-最小化交替的过程:E
~()[log(1-D
(G
(z
)))](1)
图1 生成式对抗网络基本结构
G
主要采用两种方法构造:一类是深度卷积网络,另一类是自编码网络。原始的自编码器构造的G
无法学习深层次的特征,生成样本与原图相似性较差。随后涌现了两类改进方法:(1)对单一自编码网络进行改进;(2)两个编码网络级联或嵌套。单一自编码器网络主要在特征提取、融合和传递等方面进行改进。其中Yan等人引入跳跃连接,增加编码层和解码层之间的特征传递,使重构层生成的图像可保留更多的细节信息。Lizuka等将扩张卷积引入标准编码器网络中,减少网络训练参数并增大感受野。现有判别器D
主要分为全局判别器、局部判别器和多尺度判别器。局部判别器对生成的缺失域样本数据进行判定,但无法保持缺失域的边缘语义、内容一致性和全局一致性。而全局判别器通过对修复区域和整体图像像素的上下文结构语义进行判定,促进生成器恢复局部和全局语义更一致的样本特征数据。多尺度判别器被引入来获取细节信息更丰富的样本数据。通过对真实样本和生成样本分别进行下采样,分别在两个不同尺度上区分真实图和生成样本图,可更有效促进图像修复网络性能。2 基于人工特征的传统图像修复算法
在图像采集中,由于光线、运动、遮挡物等噪声的影响,图像产生模糊、不清晰等问题。针对以上图像缺损问题,需要根据图像修复的不同需求,采用适宜的图像修复技术对缺损区域进行修复。如图2,a到c行分别为缺损图像、采取图像修复技术处理的效果和真实场景图。从图2可知,现有图像修复技术的效果与真实图差别不大,但仍存在信息丢失等失真问题。
图2 图像修复实例效果
2.1 基于结构的图像修复
基于结构的图像修复方法主要基于偏微分方程PDE实现,又称为基于扩散的图像修复方法。Bertalmio等人首次提出基于PDE方程的方法,也称为BSCB模型图像修复方法。该方法以像素为单位,修复效率较低,没有考虑图像缺损区域和全局图像的整体协调性,仅适合缺失区域较小的图像修复任务。在BSCB模型的基础上,Chan等人提出利用梯度下降流计算的全变分(TV)模型,修复速度大幅度提高,但没有考虑图像的几何特征,修复边缘易出现断层。随后又提出采用曲率驱动扩散(CDD)的修复模型,处理缺损区域更大的图像修复问题。Tai等人提出基于四阶偏微分方程的TV-Stokes模型,在处理纹理缺损图像上表现出显著修复效果。此外,基于PDE的改进方法还有Euler’s Elastica模型、Mumford-Shah-Euler模型、Mumford-Shah模型和改进TV的模型等方法。这些方法对于细微裂痕、小污点等小缺损区域的图像有较好的修复效果,但缺乏更高层次的条件约束,对于较大区域的修复通常会出现纹理错位等图像失真问题。
2.2 基于纹理的图像修复
基于纹理的图像修复技术搜索已知像素中的最优纹理像素,并将最优像素用于缺损区域的修复,可以较好地保存图像的纹理和结构信息。Criminisi等提出一种基于图像块的Criminisi算法,通过搜索周围信息最丰富且最优的目标像素块,使修复的速度得到了大幅度提升。但在受损面积大且有重要区域缺失,例如嘴巴、眼睛等重要语义信息时,修复效果较差。Tang F等人在Criminisi的基础上,提出一种利用CBLS的方法,采取缩小最优匹配块的检索进行修复,提升修复效率,但该方法降低了修复效果。Zhang等人通过采取局部搜索代替全局搜索的方法,减少非相近块的匹配,进而提升图像的修复效果。这些基于纹理的改进方法在一定程度上改进了修复的效果,但大多数方法受真实场景不同纹理结构以及复杂性不同等因素的影响,修复的效果不够理想。
2.3 基于稀疏表示的图像修复
基于稀疏表示的方法可更加有效地表达已知信息,Guleryuz等人在稀疏重构算法中加入了自适应技术,得到缺损区域的最佳估计。Fadili等人将稀疏表示应用在图像插值中,提高了图像修复的效果。Shen等人通过显示字典提高了算法的处理效率,Xu等人提出的图像稀疏度修复算法,采用稀疏度选择修复的优先级,在修复图像的结构信息上表现良好。Zhao等人通过迅速稀疏算法可快速地修复小区域缺损图像,更快速地实现图像的修复。
3 基于生成式对抗网络的图像修复算法
GAN一经提出就引起了广泛关注,在图像修复领域也取得了诸多优秀成果,推动了图像修复的发展。因此,该文借鉴相关研究,对基于GAN的图像修复方法进行深入的总结。
3.1 基于深度卷积生成对抗网络的修复算法
基于传统GAN的图像修复方法存在训练不稳定、模型不易收敛等问题,因此,产生了一系列改进原始GAN的方法。其中,Radford等人提出深度卷积生成对抗网络DCGAN,通过将卷积神经网络CNN和GAN进行结合,实现更有效的图像修复。文献[27-28]在传统GAN的基础上用步长卷积代替池化层,优化了生成式对抗网络的学习表征性能,还将部分池化层采用转置卷积代替,使整个GAN网络可进行微分,另外引入批量归一化以提高模型性能。基于DCGAN进行改进的方法,可以有效地减少计算量,大幅提高DCGAN的性能,其G
结构如图3所示。图3 DCGAN网络生成器结构
3.2 基于Wasserstein生成式对抗网络的修复方法
基于DCGAN的修复方法在处理缺损区域较大时,G
学习生成的样本数据与原始真实图的相似度非常小,D
无法提供有效的梯度,G
无法根据梯度生成有效的样本数据,从而产生梯度弥散,甚至梯度消失、训练崩溃等问题。因此,Ishaan Gulrajani等人在GAN的基础上提出将Wasserstein距离引入到GAN中的WGAN算法,原始GAN采用KL散度以及JS散度衡量生成样本和真实图之间的差距,WGAN将差距度量替换成Wasserstein距离,为G
提供更有效的梯度,从而使得图像修复效果进一步提升。WGAN相较于原始GAN,去掉了输出层的sigmoid函数,其目标函数改进为:E
~()[D
(G
(z
))](2)
通过给判别网络添加约束函数L
,从而防止判别器性能过于优越而限制生成器的性能优化。WGAN显著降低了GAN训练不稳定、梯度消失的问题,使图像修复的质量得到显著提升。3.3 基于CBEGAN边界均衡生成网络的修复算法
针对GAN模型训练难度大,G
和D
的损失函数无法高效提升模型训练速度的问题,A.Marzouk等人基于BEGAN提出条件边界平衡生成对抗网络(CBEGAN)。传统GAN的损失函数主要度量生成样本和真实数据的距离,尽可能提高生成样本和真实图的一致性。CBEGAN受Wasserstein 距离的启发,利用D
重构生成样本的重构误差,不断减小重构误差,使模型有效收敛,提高了修复质量。基于CBEGAN的方法在处理高分辨率缺损图像时具有显著的优势,其网络架构如图4所示。图4 CBEGAN网络的生成品/判别器结构
3.4 基于条件生成对抗网络的修复算法
条件生成对抗网络也称CGAN,通过在输入数据上添加模糊图像、语义、边缘信息等条件,附加条件可以指导G
从输入的随机噪声中学习到更深层次的特征信息。相较于原始GAN,基于CGAN的方法提高了训练模型的收敛能力,从而一定程度避免了梯度消失等问题。CGAN的目标函数改进为:E
~()[log(1-D
(G
(z
)))](3)
式中,z
是随机噪声,y
是输入的约束条件,x
是目标图像。CGAN的结构见图5。
图5 CGAN网络结构
文章对以上几种常见的修复方法进行对比实验,结果见图6,其中a至f分别为待修复的图像、sparse方法、TV方法、GCA方法在CelebA人脸数据集上测试的结果以及真实场景原图像。基于稀疏表示的方法[b,c,d]处理后的缺损区域与已知区域存在明显语义不一致性,基于语义注意力机制的GCA方法[e]修复后的色调与周围像素更协调,语义上更接近于真实图[f],但模型泛化能力较弱,在处理真实场景时,效果远远不达理想目标。基于深度学习的方法处理训练数据集中的数据时,效果比较理想,尤其是增加条件时,但对真实场景,处理性能往往较差。
a[input] b[sparse] c[TV] d[LR] e[GCA] f[GT]
4 公开测试数据集与算法评估方法
4.1 公开测试数据集
基于深度学习的修复方法需要大量的训练数据进行学习,基于GAN的方法也是需要大量数据对G
进行训练,生成网络需要学习图像的更深层次特征,并生成与真实数据尽可能一致的样本数据。数据集的大小、数据标注的质量高低均会影响模型的性能,因此,该文对常用的图像修复数据集进行梳理。细节见表1。表1 图像修复常用数据集
从表1可知,目前常用的数据集是CelebA和Place2以及它们的子集,这两个数据集是图像修复领域较全面的、适用最广泛的数据集,因此,该文选取其作为基准测试数据集,对图像修复算法进行评估对比。
4.2 算法性能评估方法
修复算法性能的评价方法主要分为两类:主观评价和客观评价。主观评价是人眼根据所观察的修复结果进行对比的直观感受,而客观评价是根据修复后图像的亮度、结构、像素等信息进行合理的数学建模,建立合理的数学公式进行客观上的评价。目前图像修复领域使用的最广泛的评价指标主要有以下几种:结构相似度(SSIM)、峰值信噪比(PSNR)、均方误差(MSE)等,这几种评价方式的具体信息见表2。
表2 图像修复常用评价指标
该文还针对不同方法做了定性比较,分别在CelebA、CelebA-HQ、place2、ImageNet和Paris StreetView数据集上利用各种图像修复方法计算PSNR值和SSIM值并进行对比,结果见表3。可知,基于GAN 的图像修复方法在这几个数据集上都取得了较好的结果,但仍然具有很大的改进空间,基于GAN 的图像修复改进方法仍需要深入研究。
表3 各类修复方法指标
5 结束语
现有最先进的图像修复方法大多基于深度学习,一部分基于CNN实现,大部分都基于GAN实现。实验表明,基于GAN的修复方法具有明显的优越性,修复效果更好。这类方法借助生成器和判别器之间的对抗训练,实现图像自动修复。基于GAN的修复方法虽然取得了明显的性能提升,但还存在以下两个问题:第一,对结构复杂、图像缺损区域大的图像进行修复时,未能达到令人满意的修复效果。第二,基于GAN的修复需要大量数据进行学习,但缺乏真实场景的训练数据集,在实际应用时模型性能仍不能满足需求。深度学习技术仍将作为图像修复领域的主流方法,尤其是基于GAN的修复方法有待进一步探讨。具体地,图像修复研究将朝两个方面发展:第一,与其他技术结合,包括神经架构搜索和图卷积网络等,提出更健壮、修复效果更好的网络模型;第二,更加注重对真实场景图像修复的研究,实际解决行业中的技术瓶颈。