一种基于生成对抗网络的人脸图像修复方法与流程

文档序号:16925633发布日期:2019-02-22 19:50阅读:283来源:国知局
一种基于生成对抗网络的人脸图像修复方法与流程

本发明属于深度学习和图像处理领域,具体涉及一种基于生成对抗网络的人脸图像修复方法。



背景技术:

图像修复技术是近几年图像处理领域一个重要的分支,属于模式识别、机器学习、统计学、计算机视觉等多学科的交叉问题。图像修复是指对在图像保留过程中引起的图像信息缺失进行修复重建或者去除图像中的多余物体后的修复。现如今,研究人员提出了各种各样的图像修复的方法,已广泛用于老照片修复、文物保护、去除多余物体等领域。

由于自然图像固有的模糊和复杂性,基于纹理和局部插值的传统方法对于语义信息缺失严重的图像修复具有相当的局限性,存在修复细节模糊,修复图像不平滑等问题。特别是针对面部缺失关键信息(如眼睛、鼻子)的人脸图像修复问题,传统方法的修复效果不佳,很难修复出符合人类视觉认知的效果。因此,关键信息严重缺失的人脸图像修复是图像修复技术中的难点问题。最近,深度学习,特别是生成对抗网络(gan)的出现打破了传统方法的局限性。



技术实现要素:

本发明提供一种基于生成对抗网络的人脸图像修复方法,在利用生成对抗网络可生成符合视觉的人脸图像的基础上,通过引入与缺失信息的人脸图像相关的上下文损失,并与两个对抗损失一起作为损失函数,迭代优化生成网络的输入信息,最终获得满足上下文损失要求且符合视觉认知的生成图像,最后利用此生成图像的相应部分实现有效的人脸图像修复。同时,针对网络模型中存在的训练不稳定、模式崩溃的问题,本发明采用最小二乘损失函数取代交叉熵损失函数,从而提高了网络的稳定性。

本发明所要解决的技术问题有两个,一是现有的生成对抗网络存在网络训练不稳定和模式崩溃问题;二是现有人脸修复图像不符合视觉认知、相似度不高的问题。针对这两个问题,本发明提出一种不仅能够解决生成对抗网络训练不稳定和模式崩溃问题,还能够生成并补全更为自然和逼真的人脸图像的网络设计方案。

本发明采用的技术方案如下:

一种基于生成对抗网络的人脸图像修复方法,包括以下步骤:

步骤1、收集大量的图像作为数据集,将收集到的图像进行预处理,裁剪成设定尺寸的人脸训练图像;

步骤2、利用处理好的人脸图像作为数据集优化生成对抗网络模型的两个深度神经网络:生成网络g和判别网络d,将随机的向量z输入到生成网络g,通过生成网络g生成人脸图像,通过判别网络判断图像的真假,直到判别不出图像的真假,则网络达到最优;

步骤3、修复阶段,随机的给测试图像加掩码,模拟真实图像缺损区域,将此缺损图像输入到训练好的生成对抗网络中,网络通过上下文损失和对抗损失迭代更新生成对抗网络的输入,通过步骤2中训练好的生成网络g生成人脸图像,将生成图像的掩码区域替换到缺失图像的相应位置,再进行泊松融合得到最终的修复完整的人脸图像。

作为优选,步骤1所述的对收集到的图像进行预处理,转换成设定尺寸的人脸训练图像,具体如下:

对收集到的图像进行人脸识别,提取脸部的信息,下巴的顶部、眼睛的外沿、眉毛的内沿等;根据每张脸上定位的标志,将收集到的图像裁剪成设定尺寸大小的人脸训练图像;

作为优选,步骤2所述的将裁剪好的人脸图像作为数据集训练优化生成对抗网络,具体如下:

生成对抗网络由两个深度卷积神经网络组成:生成网络g和判别网络d;生成网络g由反卷积构成,输入为[-1,1]上均匀分布的100维随机向量z,通过四层反卷积得到64*64*3维的图像;判别网络中输入为64*64*3维的图像,通过四个卷积层获得输入数据属于训练数据而非生成样本的概率。生成网络g用来模拟数据集中的信息生成类似于真实数据的人脸图像,判别网络d用来区分输入的图像是来自于真实数据x还是生成网络g,直到判别网络d判别不出输入图像的真假,生成对抗网络则达到最优。生成对抗网络的目标函数为:

其中,v(d,g)表示生成对抗网络中需要优化的目标函数;x~pr表示x服从数据集中的人脸图像分布pr,e[·]表示求数学期望;z~pz表示z服从先验分布pz,pz为均匀分布或高斯分布,即z为随机采样的向量。

将sigmoid交叉熵损失函数替换为最小二乘损失函数,其生成网络g和判别网络d的目标函数:

其中,v(d)表示生成网络g的目标函数,v(g)表示判别网络d的目标函数。

生成对抗网络通过梯度下降法最小化损失函数对生成网络g和判别网络d的参数进行反向调节,通过迭代训练网络以提高网络的精度,从而使生成网络生成类似于训练集的人脸图像。

作为优选,对于图像修复的过程具体如下:

通过步骤2中训练好的生成网络g,随机的给测试图像x加掩码m,模拟真实图像缺失区域,通过上下文损失和两个对抗损失不断地更新输入z获得最接近缺损图像的编码z′,利用生成网络g生成的图像g(z′)获取修复好的图像

其中,m⊙x是输入的残缺图像,m是用于掩盖指定部分的二进制掩码,其大小与输入图像x大小一致,⊙表示对应元素相乘。z′表示最接近缺损图像的编码,我们需要通过优化上下文损失和两个对抗损失来获得:

其中,lc表示上下文损失,为了确保生成图像与输入的缺损图像尽可能相似;ld表示对抗损失,目的是惩罚不真实的图像。λ1、λ2是平衡不同损失的权重。

通过不断地更新z,获得隐空间中最接近缺损图像的编码z′,将编码z′作为生成网络g的输入得到生成图像g(z′),将生成图像g(z′)的掩码区域替换到缺失图像的相应位置,再进行泊松融合得到最终的修复完整的人脸图像。

与现有技术相比,本发明的突出特点是:在对人脸图像数据集进行训练优化生成对抗网络时,损失函数选择的是最小二乘损失函数,对于传统的gan而言,解决了网络训练中存在的不稳定、网络崩溃问题。同时提出利用上下文损失和两个对抗损失迭代更新网络的输入,使修复之后的图像具有真实性。

附图说明

图1基于生成对抗网络的人脸图像修复的流程示意图

图2生成对抗网络gan模型示意图;

图3本发明中深度卷积生成对抗网络示意图;

图4图像修复结构图;

图5人脸图像修复结果图。

具体实施方式

为了使本发明方法的目的,技术方案以及优点更加清楚明白,以下结合附图及实例解释本发明,并不用于限定本发明:

如图1所示,本发明提供一种基于生成对抗网络的人脸图像修复方法,包括以下步骤:

步骤1、人脸数据预处理阶段。对收集到的图像数据进行尺寸设定,获取训练中设定尺寸大小的人脸图像。

步骤2、训练阶段。将处理好的人脸数据集作为训练数据对生成对抗网络进行优化。

步骤3、修复阶段。将带有掩码的人脸图像输入到训练好的生成对抗网络当中,通过上下文损失和判别网络的对抗损失不断地更新生成网络的输入,在隐空间中寻找最接近缺损图像的编码,通过生成网络g获得修复信息。

步骤1所述的对收集到的图像进行预处理,具体如下:

使用已有的数据库celea,celea数据集是一个人脸数据库,包括202599张名人面孔,以其中20万张图像进行训练,使用2599张图像进行测试。利用openface对图像进行人脸识别,提取脸部的信息,如下巴的顶部、眼睛的外沿、眉毛的内沿等等;根据每张脸上定位的标志,将收集到的图像裁剪成设定尺寸大小的人脸训练图像,以便于眼睛和嘴巴能够居中,本实例中数据集中图片大小为64*64。

步骤2所述的训练生成对抗网络,具体步骤如下:

将处理好的人脸图像作为数据集输入到生成对抗网络中。生成对抗网络源自博弈论中的二人零和博弈,它是由两个博弈方组成:生成网络g和判别网络d,结构如图2所示。生成网络g用来模拟数据集中的数据分布,生成类似于真实数据的人脸图像;判别网络d用来提取输入的特征,相当于一个二分类器,区分输入的图像是来自于真实数据x还是g生成的图像,若样本来自于真实数据,d输出真,否则,输出假。直到判别网络判别不出输入图像的来源,生成对抗网络则达到最优。生成网络g由反卷积构成,输入为[-1,1]上均匀分布的100维噪声向量z,通过四层反卷积得到64*64*3维的图像;判别网络d中输入为64*64*3维的图像,通过四个卷积层获得输入数据属于训练数据而非生成样本的概率,本过程详细过程如图3所示。生成对抗网络的目标函数为:

其中,v(d,g)表示生成对抗网络中需要优化的目标函数;x~pr表示x服从数据集中的人脸图像分布pr,e[·]表示求数学期望;z~pz表示z服从先验分布pz,pz为均匀分布或高斯分布,即z为随机采样的向量。

由于生成对抗网络目标函数中判别器使用的sigmoid交叉熵损失函数可能会导致网络梯度消失,因此本发明中sigmoid交叉熵损失函数替换为最小二乘损失函数,其生成网络g和判别网络d的目标函数:

其中,v(d)表示生成网络的目标函数,v(g)表示判别网络的目标函数。

生成对抗网络通过梯度下降法最小化损失函数对生成网络g和判别网络d的参数进行逐层反向调节,通过迭代训练网络以提高网络的精度,从而使生成网络生成类似于训练集的人脸图像。

步骤3所述的图像修复阶段,具体步骤如下:

随机的给测试图像x加掩码m,模拟真实图像缺失区域,通过上下文损失和两个对抗损失不断地更新z获得最接近缺损图像的编码z′,通过步骤2中训练好的生成网络g生成的图像获取修复好的图像

其中,m⊙x是输入的残缺图像,m是用于掩盖指定部分的二进制掩码,其大小与输入图像x大小一致,⊙表示对应元素相乘。z′表示最接近缺损图像的编码,我们需要通过优化上下文损失和两个对抗损失来获得:

其中,lc表示上下文损失,为了确保生成图像与输入的缺损图像尽可能相似;ld表示对抗损失,目的是惩罚不真实的图像。λ1、λ2是平衡不同损失的权重。

上下文损失利用的是生成器输出图像和真实图像的非掩码区域的1-范数;由于判别器的功能是判定输入图像的真实性,所以对抗损失直接利用的是训练网络中的判别网络d的损失函数,ld1是将生成网络生成的图像作为判别网络d的输入获得的损失函数,ld2是将修复完整的图像作为判别网络d的输入获得的损失函数,具体过程如图4所示。上下文损失和对抗损失的公式如下:

lc(z)=||m⊙g(z)-m⊙x||1(6)

通过不断地更新z,获得隐空间中最接近缺损图像的编码z′,将编码z′作为生成网络g的输入得到生成图像g(z′),将生成图像g(z′)的掩码区域替换到缺失图像的相应位置,再进行泊松融合得到最终的修复完整的人脸图像。

实施例1

本发明的方法包括以下步骤:

步骤1、人脸数据预处理阶段。对收集到的数据进行尺寸设定,获取训练中需要的人脸尺寸大小。

对收集到的图像进行人脸识别,提取脸部的信息,下巴的顶部、眼睛的外沿、眉毛的内沿等等;根据每张脸上定位的标志,将收集到的图像裁剪成设定尺寸大小的人脸训练图像,以便于眼睛和嘴巴能够居中

步骤2、训练阶段。让处理好的人脸数据集作为训练数据对生成对抗网络进行训练。

gan由两个网络组成:生成网络g和判别网络d,结构如图1所示,生成网络g的目的是生成类似于真实数据分布的人脸图像,判别网络d的目的是判断输入图像真假性。本实例中两个网络使用的是深度卷积神经网络,同时两个网络的优化是一个极大极小的博弈问题,目标函数如下:

其中,v(d,g)表示生成对抗网络中需要优化的目标函数;x~pr表示x服从数据集中的人脸图像分布pr,e[·]表示求数学期望;z~pz表示z服从先验分布pz,pz为均匀分布或高斯分布,即z为随机采样的向量。本实例中为了解决gan模型训练需要达到纳什均衡,训练过程中难以保证稳定性和收敛性的问题,将sigmoid交叉熵损失函数替换为最小二乘损失函数,其生成网络g和判别网络d的目标函数:

其中,v(d)表示生成网络g的目标函数,v(g)表示判别网络d的目标函数。

生成对抗网络通过梯度下降法最小化损失函数对生成网络g和判别网络d的参数进行逐层反向调节,通过迭代训练网络以提高网络的精度,从而使生成网络生成类似于训练集的人脸图像。

步骤3、修复阶段。将带有掩码的人脸图像输入到训练好的生成对抗网络当中,通过上下文损失和判别网络d的对抗损失不断地更新生成网络g的输入,通过生成网络g获得修复信息。

随机的给测试图像x加掩码m,模拟真实图像缺失区域,通过上下文损失和两个对抗损失不断地更新z获得最接近缺损图像的编码z′,通过步骤2中训练好的生成网络g生成的图像获取修复好的图像

其中,m⊙x是输入的缺损图像,m是用于掩盖指定部分的二进制掩码,其大小与输入图像x大小一致,⊙表示对应元素相乘。z′表示最接近缺损图像的编码,我们需要通过优化上下文损失和两个对抗损失来获得:

其中,lc表示上下文损失,为了确保生成图像与输入的缺损图像尽可能相似;ld表示对抗损失,目的是惩罚不真实的图像。λ1、λ2是平衡不同损失的权重。

上下文损失利用的是生成器输出图像和真实图像的非掩码区域的1-范数;由于判别器的功能就是判定输入图像的真实性,所以对抗损失直接利用的是训练网络中的判别网络d的损失函数,如图4所示,ld1是将生成网络生成的图像作为判别网络d的输入获得的损失函数,ld2是将修复完整的图像作为判别网络d的输入获得的损失函数。上下文损失和对抗损失的公式如下:

lc(z)=||m⊙g(z)-m⊙x||1(6)

通过不断地更新z,获得隐空间中最接近缺损图像的编码z′,将编码z′作为生成网络g的输入得到生成图像g(z′),将生成图像g(z′)的掩码区域替换到缺失图像的相应位置,再进行泊松融合得到最终的修复完整的人脸图像。

以上对本发明的具体实施进行了详尽的描述。需要理解的是个别细节并不局限于上述特定的实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,并不影响本发明的实质内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1