基于对抗生成神经网络的图像修复方法和系统与流程

文档序号:16584265发布日期:2019-01-14 18:15阅读:184来源:国知局
基于对抗生成神经网络的图像修复方法和系统与流程
本发明属于计算机及信息服务技术,特别涉及对缺失的数字图像进行合理修复的方法和系统。
背景技术
:随着信息时代的发展以及数字化设备的普及,数字图像作为图像数据记录和传递的载体,具有信息存储高效、表达直观以及易编辑等特点,为图像拍摄、存储、处理和通信中带来了前所未有的变革。数字图像已经广泛的存在于人们生活中,并且以惊人的速度增长。图像在拍摄、存储、处理和传输中往往会产生损坏或遮挡使得图像中存储的信息失去完整性,而图像信息中的像素点往往相互之前有很强的相关性,由此我们可以根据未被损坏或未被遮挡的图像信息尽可能的还原丢失的图像信息,这就是图像的修补技术。作为图像处理技术的一种,图像修复技术旨在根据图像上下文对图像丢失或遮挡部分进行修补,修复任务要求修复后的图像整体尽可能自然并与原图尽可能地接近。通过图像修复技术,我们可以去除图像中的一些噪声、划痕、缺失以及遮挡,提高图像质量;并进一步通过图像先验信息,进一步挖掘图像隐含信息,为其他图像处理及计算机视觉方法提供支持。图像修复技术的研究由来已久,近年来,作为数字图像处理重要的一个分支,图像修复技术的研究十分广泛,基于多种技术的图像修复方法被提出。最早的图像修补方法由bertalmio等人引入到图像处理中,这种方法通过建立扩散传播模型迭代的传播已知图像区域的底层纹理信息到待修复的受损未知区域。通常扩散模型使用物理学中的热扩散方程,这些典型方法包括基于bscb(bertalmiosapirocasellesballester,bscb)模型平滑传播方法、chan-shen等人提出的三阶pde曲率驱动扩散方法、ballester等人提出基于照度传播的方法以及levin等人提出的基于局部特征直方图的全局图像统计。在此之后出现了基于几何图像变分模型的图像修补技术,其模仿图像修补师手工修复图像的过程。首先建立图像的数据模型,获得图像先验信息,从而将图像修补问题装幻化为一个泛函求极值的过程。这种方法主要包括全变分模型、eulerselastica模型、mumford-shah模型、mumford-shah-euler模型等。以上这些经典的图像修复技术在平滑连续的小尺度破损图像上取得的了较好的效果,但是当破损区域较大的时候,破损区内丢失的信息结构繁多且复杂,单纯的扩散或图像数据模型难以描述,使得修复效果失真。故这些方法无法应用于大尺度破损的图像。为了对大尺度的修复区域进行修复,alexeiefros和thomasleung提出了纹理合成技术,这种方法首先根据图像纹理特征选取大小合适的纹理块,之后在这些区域中选择与带修补区域附近纹理最接近的纹理块与该纹理块合成。这种方法随后由kwatra扩展为包含图像分割和纹理生成两部分的图像拼接修复技术,同时进一步引入图像能量优化来衡量纹理接近程度。利用纹理来修复大块丢失信息图像的方法近几年来得到了深入的研究与改进,如bertalmio等提出的最佳斑点搜索;barnes等提出了高效的修补纹理匹配算法;尤其是wexler和simakov分别实现了基于全局和局部的优化,得以获得了更加一致的局部与全局修复。这些算法随后通过patchmatch随机候选填充区域搜索算法加速,得到了接近实时的图像修复编辑。darabi等人通过将图像梯度整合到合成纹理之间的距离度量中,得到了更好的图像修复效果。与扩散传播模型方法和几何图像变分模型方法相比,非参数的纹理合成方法可以执行更加复杂的图像填充,可以填充图像中大范围的缺失,使得其在大尺度图像的修复中的表现获得较大的突破。但这种方法仅适用于具有底层特征规律的纹理图像,而无法对具有高层语义特征的目标图像,如人脸、车辆、动物等进行修复。而且当图像中不存在与破损区域相似的纹理或破损区域包含不同的纹理时,图像修复效果也大打折扣。同时,这些纹理区域往往在图像中充当背景或非重要的部分,而图像中的语义目标才是图像内容的主体,这大大限制了基于纹理合成的图像修复技术在实际中的应用。为了解决修复结构化场景的大量缺失区域的问题,有一些方法使用图像结构指导(通常手动指定)的方法来保留重要的基础结构。这里的图像结构指导可以是指定感兴趣的点、线条和曲线,也可以是透视畸变。除此之外,一些自动估计场景结构的方法也被提出:贾佳亚等利用张量投票算法平滑地连接孔间曲线;criminisi等利用基于结构的优先级来进行候选填充区域排序;kopf等提出的基于瓦片的搜索空间限制;何凯明等提出的纹理数据集统计信息以及黄家斌等提出的平面表面的规律性。这些方法通过保留重要结构来提高图像完成质量。然而,这些图像结构指导是基于特定类型场景的启发式约束,因此仅限于特定结构。对于不同的图像需要设计不同的图像结果指导规则,无法普遍地应用于任意图像。目前大多数基于候选填充区域的方法另一明显限制是合成纹理仅仅来自输入图像,当修复一个待修复的区域所需要的纹理在图像中无法找到时,就会产生修复困难的问题。由此hays和efros提出了一种使用大型图像数据库的图像完成图像修复的方法:他们首先搜索数据库中与输入最为相似的图像,然后通过从匹配图像中剪切相似的区域,并将其粘贴到待修复区域中来完成图像的修复。但是,这种方法的假设前提是数据库包含与输入图像相似的图像,但实际情况可能并非如此。在这种方法的基础上也延伸出了对于特定的任务,使用包含大量相似图像、甚至包括相同场景图像的数据库的方法。然而,与一般方法相比,需要数据库包含大量相似或相同场景的数据的前提极大地限制了其适用性。随着基于神经网络的深度学习的发展,卷积神经网络凭借其对图像底层特征的理解以及图像高层语义特征的抽象能力,在图像分割、目标检测等任务中表现出了优异的结果,在诸多相关比赛中获取最佳成绩。因此卷积神经网络也被应用于图像修复:最初,基于卷积神经网络的图像修补方法仅限于非常小的遮挡区域的修复;同样的方法也被应用于mri和pet缺失的数据的修复;而近期,杨等人也提出了一种基于cnn的图像修复优化方法。而与此同时,goodfellow等人提出的对抗生成神经网络(generativeadversarialnet,gan),通过向神经网络架构中引入二元博弈论的思想,让深度学习可以根据训练数据进行生成。而alecradford等提出的深度卷积对抗生成神经网络(deepconvolutionalgenerativeadversarialnet)将对抗生成神经网络与卷积神经网络相结合,通过卷积神经网络作为生成模型来训练生成图像,通过另一个卷积神经网络作为判别器辅助训练,其用于区分图像是由网络产生还是真实的。训练发生器网络以欺骗鉴别器网络,同时鉴别器网络并行更新,通过不断的极大极小化博弈训练,最终可以生成非常接近于真实图像的生成图像。gan的主要问题之一是学习过程中的不稳定性,martinarjovsky等通过对此理论研究改进了gan得到wassersteingan,解决了dcgan训练过程中训练不稳定、生成样本的多样性、训练过程评估等诸多问题,使得dcgan得到了进一步广泛的应用。图像修复本质上是一个恢复输入图像稀疏信号的任务。可以通过求解一个稀疏线性方程组,将输入的损坏图像可以被修复。对于平滑或纹理区域来说,其相应的系数线性方程组可以很好的被构建和求解,但这就要求图像是高度结构化的。但对于高级语义特征来说,其纹理特征的分布是广泛且复杂的,难以通过手工来构造。基于扩散模型的方法容易应用与小尺度区域的修复,但是无法应用与大尺度的区域修复;基于纹理合成和候选填充区域搜索的方法可以一定程度上对大尺度的背景纹理进行修复,但修复效果依赖于纹理库且无法对带有图像语义缺失的情况;基于深度学习的方法可以对图像语义进行修复,但生成图像质量无法与原图一致还需进行额外处理。技术实现要素:基于扩散模型的方法容易应用于小尺度区域的修复,但是无法应用于大尺度的区域修复;基于纹理合成和候选填充区域搜索的方法可以一定程度上对大尺度的背景纹理进行修复,但修复效果依赖于纹理库且无法对带有图像语义缺失的情况进行修复;基于深度学习的方法可以对图像语义进行修复,但生成图像质量无法与原图一致,还需进行额外处理。本发明是为了克服上述现有技术的不足之处,提出ms-resdgan(multi-scaleresidualdilatedgeneratoradversarialnetwork)神经网络图像修复方法。本方法通过引入目标识别中的卷积神经网络(convolutionalneuralnetwork,cnn)来提取图像的高级语义特征,并使用变分自编码器(variationalauto-encoder,vae)和生成神经网络(generativeadversarialnet,gan)的方法,实现图像修复的功能,对输入的受损的图像进行修复,达到了接近自然的效果。本发明的技术方案为一种基于对抗生成神经网络的图像修复方法,包含以下步骤:步骤1,设计一个自编码器卷积神经网络,包括用于对输入图像进行深度神经网络编码的编码器,以及用于对编码结果进行判别的编码判别器,编码器和编码判别器构成了一个局部的对抗生成神经网络;步骤2,设计一个解码器(生成器)卷积神经网络,用于对自编码器编码后的编码进行解码;步骤3,设计一个判别器卷积神经网络,包括一个对生成图像的整体质量进行全局判别的全局判别器,以及一个对生成图像部分内容质量进行局部判别的局部判别器,并通过全连接结构将两个判别器输出结果进行融合作为最终的结果;步骤4,对编码器、解码器(生成器)、全局判别器和局部判别器,以及针对于图像修复任务额外的编码判别器这五个网络构造不同损失函数,并利用分步训练的方法对整个网络进行图像修复训练;步骤5,当网络训练完成以后,把缺损图像放入网络中进行修复,解码器(生成器)生成的结果图就为最终修复结果图。进一步的,步骤1中所述编码器的网络结构包括依次连接的6个卷积层和5个扩展卷积层;编码判别器的网络结构包括依次连接的3个卷积层和1个全连接层。进一步的,步骤2中所述解码器(生成器)的网络结构包括依次连接的2个卷积层、1个反卷积层、1个卷积层,1个反卷积层和2个卷积层。进一步的,步骤3中所述全局判别器的网络结构包括依次连接的6个卷积层和1个全连接层;所述局部判别器的网络结构包括6个卷积层和1个全连接层;全连接结构包括拼接层和全连接层。进一步的,步骤4中构建的五个网络的损失函数如下,首先定义u、v分别为总长度为n、m的矩阵,均方误差表示为:根据对抗神经网络的基本理论,对抗生成神经网络中判别器的损失函数表示为:对抗生成神经网络中生成器的损失函数表示为:对于编码器来说其损失函数,主要包括自编码器结构的重建损失,编码损失以及编码器与编码器判别器构成的对抗生成神经网络的损失:lencoder=mse(z,z′)+mse(x,y)+g(x′)其中,x表示真实图像,x′表示输入的带有缺失的待修复图像;z表示x通过编码器编码后的结果,z′表示编码器对x′编码后的结果,y表示输出后的修复图像;相对应的编码判别器的损失函数只包括对抗生成神经网络的判别器损失函数:lcode-discriminator=d(x′)对于解码器来说,其包含自编码器的重建损失以及对抗生成神经网络的生成器损失:lgenerator=mse(x,y)+g(z′)对于全局判别器和局部判别器来说其损失函数是对应输入图像的损失函数,定义x为真实图像x中对应缺失位置的部分,y为修复图像y中对应缺失位置的部分:lglobal-discriminator=d(x)+d(y)llocal-discriminator=d(x)+d(y)。进一步的,步骤4中利用分步训练的方法对整个网络进行图像修复训练的实现方式如下,1)以训练自编码器的方法,仅训练编码器与生成器;2)固定编码器与生成器,训练判别器(编码判别器、局部判别器和全局判别器),训练的迭代次数是固定的,以使判别器的训练程度与生成器和编码器接近;3)使用对抗生成神经网络的训练方法交替训练编码器、生成器和判别器。本发明还提供一种基于对抗生成神经网络的图像修复系统,包括如下模块:自编码器构建模块,用于设计一个自编码器卷积神经网络,包括用于对输入图像进行深度神经网络编码的编码器,以及用于对编码结果进行判别的编码判别器,编码器和编码判别器构成了一个局部的对抗生成神经网络;解码器构建模块,用于设计一个解码器(生成器)卷积神经网络,对自编码器编码后的编码进行解码;判别器构建模块,用于设计一个判别器卷积神经网络,包括一个对生成图像的整体质量进行全局判别的全局判别器,以及一个对生成图像部分内容质量进行局部判别的局部判别器,并通过全连接结构将两个判别器输出结果进行融合作为最终的结果;图像修复训练模块,用于对编码器、解码器(生成器)、全局判别器和局部判别器,以及针对于图像修复任务额外的编码判别器这五个网络构造不同损失函数,并利用分步训练的方法对整个网络进行图像修复训练;修复结构输出模块,用于将缺损图像放入训练完成的网络中进行修复,解码器(生成器)生成的结果图就为最终修复结果图。进一步的,图像修复训练模块中构建的五个网络的损失函数如下,首先定义u、v分别为总长度为n、m的矩阵,均方误差表示为:根据对抗神经网络的基本理论,对抗生成神经网络中判别器的损失函数表示为:对抗生成神经网络中生成器的损失函数表示为:对于编码器来说其损失函数,主要包括自编码器结构的重建损失,编码损失以及编码器与编码器判别器构成的对抗生成神经网络的损失:lencoder=mse(z,z′)+mse(x,y)+g(x′)其中,x表示真实图像,x′表示输入的带有缺失的待修复图像;z表示x通过编码器编码后的结果,z′表示编码器对x′编码后的结果,y表示输出后的修复图像;相对应的编码判别器的损失函数只包括对抗生成神经网络的判别器损失函数:lcode-discriminator=d(x′)对于解码器来说,其包含自编码器的重建损失以及对抗生成神经网络的生成器损失:lgenerator=mse(x,y)+g(z′)对于全局判别器和局部判别器来说其损失函数是对应输入图像的损失函数,定义x为真实图像x中对应缺失位置的部分,y为修复图像y中对应缺失位置的部分:lglobal-discriminator=d(x)+d(y)llocal-discriminator=d(x)+d(y)。进一步的,图像修复训练模块利用分步训练的方法对整个网络进行图像修复训练的实现方式如下,1)以训练自编码器的方法,仅训练编码器与生成器;2)固定编码器与生成器,训练判别器(编码判别器、局部判别器和全局判别器),训练的迭代次数是固定的,以使判别器的训练程度与生成器和编码器接近;3)使用对抗生成神经网络的训练方法交替训练编码器、生成器和判别器。与现有技术相比,本发明具有的优点和有益效果:a)保持图像潜在约束的同时对图像进行稀疏化。b)实现了端到端的图像修复网络。c)消除了修复网络对于图像缺失位置掩膜信息的依赖。d)提升了在实际应用中的鲁棒性。附图说明图1是本发明中使用的自编码器-对抗生成神经网络结构。图2是本发明中使用的自编码器-对抗生成神经网络结构的简化图。图3是实例效果图,其中左图为原图,中图为缺失图像,右图为修复结果图。具体实施方式本发明属于计算机及信息服务技术,特别涉及对缺失的数字图像进行合理修复的方法。本发明提出ms-resdgan神经网络图像修复方法,使得神经网络可以输出与原图质量接近的生成图像,实现了端到端的图像修复网络。网络结构如图1所示。本发明可以使用计算机来进行网络的训练和推断,在ubuntu操作系统下使用tensorflow深度学习框架实现。具体的实验环境配置如下:本实例以修复人脸图像为例。使用的数据以celeba人脸数据集为基础,该数据集是由香港中文大学标注公开的数据集,一共包含10177个知名人物的202599张人脸图像。我们通过在原人脸图像上添加遮挡作为输入的待修复的缺失图像,实现了遮挡数据集celeba-mask的制作。步骤1,设计一个自编码器卷积神经网络,包括用于对输入图像进行深度神经网络编码的编码器,以及用于对编码结果进行判别的编码判别器,编码器和编码判别器构成了一个局部的对抗生成神经网络,使得不论对于正常图像或是对于待修复图像都能生成接近的编码分布,实施例具体的实施过程说明如下:使用tensorflow框架搭建自编码器,这其中涉及到两个卷积神经网络:编码器和编码判别器(添加编码判别器是为了对得到的编码结果进行判别)。采用扩展卷积的方法构建卷积神经网络,一方面可以在保持神经网络参数数量不变的情况下,以指数形式增加神经网络的感受野;一方面又能在处理过程中保持特征图像的信息量,不会产生信息的损耗。引入残差网络的残差结构来进行跨层的信息传输,在保证卷积层和池化层的正常作用下大大减少了在神经网络进行图像修复过程所产生的信息丢失问题。编码器结构表如下:编码器层激活函数卷积核大小通道数步长扩展率卷积层h0lrelu5×5641×11卷积层h1lrelu3×31282×21卷积层h2lrelu3×31281×11卷积层h3lrelu3×32562×21卷积层h4lrelu3×32561×11卷积层h5lrelu3×32561×11扩展卷积层h6lrelu3×32561×12扩展卷积层h7lrelu3×32561×15扩展卷积层h8lrelu3×32561×11扩展卷积层h9lrelu3×35121×12扩展卷积层h10liner3×35121×15编码判别器结构表如下:步骤2,设计一个解码器(生成器)卷积神经网络,用于对自编码器编码后的编码进行解码;实施例具体的实施过程说明如下:使用tensorflow框架利用反卷积搭建解码器卷积神经网络,在减少通道数的同时增加特征图的尺寸,解码器同时也是对抗神经网络中的生成器。解码器结构表如下:解码器层数激活函数卷积核大小通道数步长扩展率卷积层h0lrelu3×35121×11卷积层h1lrelu3×32561×11反卷积层h2lrelu3×32561×11卷积层h3lrelu3×32561×11反卷积层h4lrelu3×31281×11卷积层h5lrelu3×3641×11卷积层h6tanh3×331×11步骤3,设置一个判别器卷积神经网络,包括一个对生成图像的整体质量进行全局判别的全局判别器,以及一个对生成图像部分内容质量进行局部判别的局部判别器,并通过全连接结构将两个判别器输出结果进行融合作为最终的结果,实施例具体的实施过程说明如下:使用tensorflow框架搭建判别器卷积神经网络,在判别器中主要包含了三个部分:全局判别器、局部判别器和局部判别器与全局判别器的全连接结构。全局判别器结构表如下:局部判别器结构表如下:局部判别器与全局判别器的全连接结构如下:连接层激活函数输出拼接c0——2048全连接层h1liner1步骤4,构造不同损失函数,分步对整个网络进行图像修复训练,实施例具体的实施过程说明如下:本实例的图像修复框架中,一共包括五个网络:编码器、解码器(生成器)、全局判别器以及针对于图像修复任务额外的编码判别器和局部判别器。所以在训练过程中一共需要构造五个损失函数。我们用x表示真实图像,x′表示输入的带有缺失的待修复图像;z表示x通过编码器编码后的结果,z′表示编码器对x′编码后的结果,y表示输出后的修复图像。首先定义u、v分别为总长度为n、m的矩阵,均方误差表示为:根据对抗神经网络的基本理论,对抗生成神经网络中判别器的损失函数表示为:对抗生成神经网络中生成器的损失函数表示为:对于编码器来说其损失函数,主要包括自编码器结构的重建损失,编码损失以及编码器与编码器判别器构成的对抗生成神经网络的损失:lencoder=mse(z,z′)+mse(x,y)+g(x′)相对应的编码判别器的损失函数只包括对抗生成神经网络的判别器损失函数:lcode-discriminator=d(x′)对于解码器来说,其包含自编码器的重建损失以及对抗生成神经网络的生成器损失:lgenerator=mse(x,y)+g(z′)对于全局判别器和局部判别器来说其损失函数是对应输入图像的损失函数,定义x为真实图像x中对应缺失位置的部分,y为修复图像y中对应缺失位置的部分:lglobal-discriminator=d(x)+d(y)llocal-discriminator=d(x)+d(y)为避免其中一个网络在训练过程中出现问题而对整个框架内的其他网络造成影响,导致训练失败的风险增大,所以在训练过程中我们使用分步训练算法,通过不同阶段对框架中的不同网络进行训练来约束网络的训练方法,使得减少训练不稳定的情况并加快收敛的速度。分布训练过程分为三个步骤:1)以训练自编码器的方法,仅训练编码器与生成器。分别向编码器输入原图像和相对应的缺损图像,编码器会输出两者编码后的数据,使用梯度下降的方法不断调整编码器的参数,使得原图像和相对应的缺损图像经过编码器输出的数据差距不断减小,即将编码器的损失不断减小。将编码器输出的两者编码后的数据输入生成器,生成器会输出两者解码后的数据,使用梯度下降的方法不断调整生成器的参数,使得原图像和相对应的缺损图像经过生成器输出的数据差距不断减小,即将生成器的损失不断减小。2)固定编码器与生成器,训练判别器(编码判别器、局部判别器和全局判别器),使判别器的训练程度与生成器和编码器接近。将上述训练好的生成器的输出结果和原始图像分别输入判别器,调整判别器的参数,使两者的输出差距不断变大,也就是要使判别器更好的分辨哪些是原始图像,哪些是生成图像。3)使用对抗生成神经网络的训练方法训练编码器、生成器和判别器,每张图片训练30轮。首先,使用步骤1)训练好的生成器,采用步骤2)的方法训练判别器。然后,固定判别器的参数,用判别器产生的误差来更新生成器参数,使生成器生成的图像更加接近原始图像。重复这两个步骤,不断优化编码器、生成器和判别器。步骤5,当网络训练完成以后,把缺损图像放入网络中进行修复,解码器(生成器)生成的结果图就为最终修复结果图。本发明实施例还提供一种基于对抗生成神经网络的图像修复系统,包括如下模块:自编码器构建模块,用于设计一个自编码器卷积神经网络,包括用于对输入图像进行深度神经网络编码的编码器,以及用于对编码结果进行判别的编码判别器,编码器和编码判别器构成了一个局部的对抗生成神经网络;解码器构建模块,用于设计一个解码器(生成器)卷积神经网络,对自编码器编码后的编码进行解码;判别器构建模块,用于设计一个判别器卷积神经网络,包括一个对生成图像的整体质量进行全局判别的全局判别器,以及一个对生成图像部分内容质量进行局部判别的局部判别器,并通过全连接结构将两个判别器输出结果进行融合作为最终的结果;图像修复训练模块,用于对编码器、解码器(生成器)、全局判别器和局部判别器,以及针对于图像修复任务额外的编码判别器这五个网络构造不同损失函数,并利用分步训练的方法对整个网络进行图像修复训练;修复结构输出模块,用于将缺损图像放入训练完成的网络中进行修复,解码器(生成器)生成的结果图就为最终修复结果图。各模块的具体实现和各步骤相对应,本发明不予撰述。本实例中原图、输入的缺失图像以及缺失图像的修复结果图如图3所示。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属
技术领域
的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1