基于VAE-GAN与相似块搜索的人脸图像修复方法及装置
技术领域
本发明属于图像处理技术领域,尤其涉及一种基于变分自编码生成对抗网络(VAE-GAN)与相似块搜索相结合的人脸图像修复方法及装置。
背景技术
随着摄影设备的逐渐普及,数码照片已经渗入到日常生活的各个方面。但是很多因素会引起图像的缺损,包括人为的和非人为的。对缺损部分进行修复,成为一种非常重要的技术。在文艺作品的修复,影视特技的制作以及图像中多余物体的去除等方面都有着很大的应用。
传统的图像修复往往只能进行简单的纹理修复,而对于语义修复,传统方法无法实现。近几年深度学习的出现,极大的促进了图像修复领域的发展,生成对抗网络及变分自编码器使得语义修复的性能得到很大的提升,但是依旧存在修复结果模糊和扭曲的问题。
人脸修复作为修复领域内的一大分支,对大面积的缺损需要进行语义修复,传统方法无法实现,而深度学习方法生成的结果较模糊或扭曲,这和一般图像修复的难点是一致的。由于每一张人脸图像存在相似性,可以利用人脸相似性,限定图像块的搜索范围,这使得传统方法可以利用待修复区域周围的图像块搜索到相似块,但是由于待修复区域无正确的肤色背景信息,使得在边界融合的时候效果并不理想,且搜索相似块时无待修复区域的语义信息,容易出现搜索到的图像块语义信息错误的问题。
中国专利申请“一种自适应选择样本块大小的图像修复方法”(专利申请号CN201810531430,公开号CN108734680A),基于Criminisi算法,先通过优先级函数确定下一步修复的像素点,然后对待修复的图像进行四叉分解来确定待修复点最佳的样本块大小,最后利用最小绝对差平方和匹配准则在待修复图像中的非待修复区域中匹配出相似块并替换相应的待修复区域图像块。该方法仅使用了非待修复区域的像素,适用于纹理和背景的修复,但无法进行大面积语义信息的修复。此外,在计算距离时并未考虑到边缘的距离,在边缘对齐的效果上是欠佳的。
中国专利申请“一种基于生成式对抗网络的人脸图像修复方法”(专利申请号CN201711034936,公开号CN107945118A),采用深度学习中的生成对抗网络模型,先利用大型人脸图像库训练出人脸图像生成器,此生成器输入为随机向量,输出为人脸图像,然后通过计算生成图像和待修复的人脸图像距离损失,更新输入的随机向量,直至两者相似,然后利用生成图像中与待修复区域对应的图像块填充待修复图像中的待修复区域图像块。此方法的结果依赖于生成器的效果,相对于VAE,生成的图像更加清晰,但容易扭曲,所以此方法的修复结果也容易产生扭曲,使得视觉效果上结果并不真实。此方法在损失函数定义上,也未考虑到边缘特征的重要性。
发明内容
发明目的:为了解决深度学习中的模糊问题和传统方法里的无法修复语义的问题,本发明提出一种基于VAE-GAN与搜索相似块相结合的人脸图像修复方法及装置,将深度学习方法和传统方法结合,实现人脸高清晰度的修复。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
一种基于VAE-GAN与相似块搜索的人脸图像修复方法,包括以下步骤:
(1)利用人脸图像数据库样本训练所构建的VAE-GAN网络模型,所述VAE-GAN网络模型包含生成器G和鉴别器D,采用变分自编码器VAE作为VAE-GAN网络模型的生成器G;在训练网络模型参数时,将人脸图像样本待修复区域的像素值设为0,其他区域像素值不变,得到图像X,然后利用图像X与对应的未缺损图像去训练生成器G,且利用未缺损图像和生成器的输出图像训练鉴别器D;
(2)将待修复的人脸图像中的待修复区域像素值设为0,其他区域像素值不变,输入到训练好的生成器G中得到图像M;
(3)根据图像M中待修复区域Ω及其周围区域的组成的图像块从人脸图像数据库的图像中搜索最为相似的若干候选图像块,并根据图像M待修复区域的边缘与候选图像块边缘的相似性选择一个最相似的图像块作为最终的相似块Z;
(4)取相似块Z中与待修复区域Ω对应的图像块,替换图像M中待修复区域Ω的图像块,并进行边界融合,得到修复结果。
作为优选方案,所述变分自编码器VAE由编码器和解码器组成;所述编码器输入为k*k*c的图像,编码器由logv k个卷积层级联组成,第i个卷积层的卷积核个数为EGi,且各层卷积核的尺寸均为gt*gt,步长为v,所述解码器输入为编码器的输出,解码器由logv k个卷积层级联组成,第i个卷积层的卷积核个数为DGi,且卷积核的尺寸和步长都与编码器的相同;其中,EGi、DGi取v的正整数指数幂,k和v满足logv k为正整数,c取1或3,v和gt取1到9的正整数。
作为优选方案,所述解码器第1个卷积层的输入为编码器第logv k个卷积层的输出;解码器第i个卷积层的输入为解码器第i-1个卷积层的输出与编码器第(logv k)-i+1个卷积层的输出在通道上的堆叠;其中,2≤i≤logv k。
作为优选方案,所述鉴别器由若干卷积层和一个全连接层级联组成,全连接层的神经元个数为2,鉴别器输入的图像为生成器生成的图像或是原未缺损图像,输出为二维向量,用于判别输入的图像是原未缺损图像还是生成器生成的图像。
作为优选方案,在步骤(1)中,对VAE-GAN网络模型进行训练的具体过程包括以下步骤:
(1.1)将人脸图像库中人脸图像待修复区域的像素值取值为0,其他区域像素值不变,得到图像X,图像X与对应的未缺损图像用于训练生成器G,未缺损图像和生成器的输出图像用于训练鉴别器D;
(1.2)固定生成器G的参数,优化鉴别器D的参数;
(1.3)固定鉴别器D的参数,优化生成器G的参数;
(1.4)重复步骤(1.2)和步骤(1.3),反复交替训练生成器G和鉴别器D,不断优化网络模型,最终得到VAE-GAN网络模型参数。
作为优选方案,在步骤(3)中,对生成器G输出的图像M进行待修复区域及其周围区域的相似块搜索步骤,包括:
(3.1)将图像M中整个待修复区域Ω及待修复区域的周边若干像素宽度的区域组成区域Ψ,并从人脸图像库里的图像中搜索出与图像M中区域Ψ的图像块最为相似的前N个图像块,搜索到的N个图像块组成候选库DB;
(3.2)沿着图像M待修复区域的边缘处选取n个相邻的小区域图像块[x1,…xn],对每图像块xi从候选库DB中选取图像块Y,截取Y中与图像块xi对应位置区域的图像块yi,计算yi与xi之间的距离,并对每个图像块xi,根据距离最小原则确定候选库里的图像块,并更新相应图像块的评分值;
(3.3)基于候选库里的各图像块的最终评分值,选取分值最高的图像块作为最终的相似块。
作为优选方案,在步骤(3.2)中,根据如下公式更新图像块的评分值:
其中,Sj为图像块J更新后的得分,为图像块J更新前的得分,d2i为与图像块xi的最小距离值;
作为优选方案,在步骤(3.1)中,根据如下公式计算图像M中区域Ψ对应的图像块P与人脸图像数据库中的一张图像中与图像P相同尺寸大小的图像块Q的距离:
其中,u为像素点坐标,‖*‖2为l2范数。
作为优选方案,在步骤(3.2)中,根据如下公式计算yi与xi之间的距离d2:
其中,u为像素点坐标;·为二阶导数;α,β为比例系数;‖yi(u)-xi(u)‖2用于计算整体距离,用于计算边缘的距离。
基于相同的发明构思,本发明所述的一种基于VAE-GAN与相似块搜索的人脸图像修复装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于VAE-GAN与相似块搜索的人脸图像修复方法。
有益效果:与现有技术相比,本发明具有以下技术效果:
1、本发明采用深度学习方法和传统方法的结合,对深度学习方法得到的模糊结果进行后处理,利用模糊结果去搜索清晰的相似块并替换待修复图像中的待修复区域,相对于基于VAE-GAN的Pix2Pix网络模型所得到的结果,本发明的结果更加清晰,且包含更多的人脸细节。
2、本发明采用深度学习方法和传统方法的结合,在使用传统相似块搜索的方法之前,采用深度学习方法预测待修复区域内的语义信息,并利用待修复区域内模糊的语义信息搜索相似块,相对于传统方法得到的结果,本发明在语义修复方面效果更加突出。
3、在相似块搜索阶段,不仅利用非待修复区域(待修复区域周围区域)信息计算距离,还利用待修复区域的模糊信息计算距离,并且通过在计算距离时添加边缘距离的约束,使得修复结果的边缘连续,整体更自然和真实。
附图说明
图1是本发明实施例的方法流程图。
图2是本发明实施例中生成器的结构图;
图3是本发明实施例中鉴别器的结构图;
图4是本发明实施例中的修复结果图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
在介绍本发明实施例的方法之前,首先对本发明所使用的数据库和深度学习网络模型做简单说明,本领域技术人可以理解的是,本发明的保护范围不局限于本实施例所使用的特定的人脸图像数据库和网络模型。本实施例使用的人脸图像数据库为CelebA人脸图像库,在实际应用中从CelebA人脸图像库中挑选包含完整清晰的人脸图像,并利用CelebA人脸图像库提供的人脸位置坐标截取人脸部分,进行尺寸归一化为64*64*3的人脸图像,得到人脸图像库。其中3指图像是通道数为3的RGB彩色图像。
本发明构建的VAE-GAN网络模型包含生成器G和鉴别器D,变分自编码器VAE作为VAE-GAN网络模型的生成器G,且变分自编码器VAE由编码器和解码器组成。
其中,生成器G中的编码器输入为k*k*c的图像,编码器由logv k个卷积层级联组成,第i个卷积层的卷积核个数为EGi,且各层卷积核的尺寸均为gt*gt,步长为v,其中,EGi取v的正整数指数幂,k和v必须满足logv k为正整数,v和gt取1到9的正整数。生成器G中的解码器输入为编码器的输出,解码器包含logv k个微步幅卷积层级联组成,第i个微步幅卷积层的卷积核个数为DGi,且要求最后一层卷积核的个数为生成器G的输出通道数c,且卷积核的尺寸和步长都与编码器的相同。
生成器G的解码器第1个微步幅卷积层的输入为编码器第logv k个卷积层的输出;生成器G的解码器第2个微步幅卷积层的输入为解码器第1个微步幅卷积层的输出与编码器第(logv k)-1个卷积层的输出在通道上的堆叠;…;生成器G的解码器第i个微步幅卷积层的输入为解码器第i-1个微步幅卷积层的输出与编码器第(logv k)-i+1个卷积层的输出在通道上的堆叠;…;生成器G的解码器第(logv k)-1个微步幅卷积层的输入为解码器第(logvk)-2个微步幅卷积层的输出与编码器第2个卷积层的输出在通道上的堆叠;生成器G的解码器第logv k个微步幅卷积层的输入为解码器第(logv k)-1个微步幅卷积层的输出与编码器第1个卷积层的输出在通道上的堆叠。
鉴别器D由ND个卷积层和一个全连接层级联组成,ND个卷积层中,每一层的卷积核个数为Di个,卷积核尺寸为dti*dti,步长为dpi,全连接层的神经元个数为2,其中,ND为正整数,dpi和dti取1到9的正整数。
对应到本实施例的人脸图像库,所构建的VAE-GAN网络模型如图2、3所示,其中生成器G中的编码器由6个卷积层级联组成:第一个卷积层采用64个4*4的卷积核进行卷积操作,第二个卷积层采用128个4*4的卷积核进行卷积操作,第三个卷积层采用256个4*4的卷积核进行卷积操作,第四个卷积层采用512个4*4的卷积核进行卷积操作,第五个卷积层采用1024个4*4的卷积核进行卷积操作,第六个卷积层采用2048个4*4的卷积核进行卷积操作;生成器G中的解码器由6个微步幅卷积层级联组成:第一个微步幅卷积层采用1024个4*4的卷积核进行微步幅卷积操作,第二个微步幅卷积层采用512个4*4的卷积核进行微步幅卷积操作,第三个微步幅卷积层采用256个4*4的卷积核进行微步幅卷积操作,第四个微步幅卷积层采用128个4*4的卷积核进行微步幅卷积操作,第五个微步幅卷积层采用64个4*4的卷积核进行微步幅卷积操作,第六个微步幅卷积层采用3个4*4的卷积核进行微步幅卷积操作;生成器G的解码器第一个微步幅卷积层的输入为编码器第六个卷积层的输出,生成器G的解码器第二个微步幅卷积层的输入为解码器第一个微步幅卷积层的输出与编码器第五个卷积层的输出在通道上的堆叠,生成器G的解码器第三个微步幅卷积层的输入为解码器第二个微步幅卷积层的输出与编码器第四个卷积层的输出在通道上的堆叠,生成器G的解码器第四个微步幅卷积层的输入为解码器第三个微步幅卷积层的输出与编码器第三个卷积层的输出在通道上的堆叠,生成器G的解码器第五个微步幅卷积层的输入为解码器第四个微步幅卷积层的输出与编码器第二个卷积层的输出在通道上的堆叠,生成器G的解码器第六个微步幅卷积层的输入为解码器第五个微步幅卷积层的输出与编码器第一个卷积层的输出在通道上的堆叠;鉴别器D由6个卷积层级联组成:第一个卷积层采用32个4*4的卷积核进行卷积操作,第二个卷积层采用64个4*4的卷积核进行卷积操作,第三个卷积层采用128个4*4的卷积核进行卷积操作,第四个卷积层采用256个4*4的卷积核进行卷积操作,第五个卷积层采用512个4*4的卷积核进行卷积操作,第六个卷积层采用1024个4*4的卷积核进行卷积操作,全连接层有2个神经元组成;以上各卷积操作的卷积步长均为2。
如图1所示,本发明实施例公开的一种基于VAE-GAN与相似块搜索相结合的人脸图像修复方法,主要包括如下步骤:
步骤1、利用人脸图像库样本训练所构建的VAE-GAN网络模型,训练步骤如下:
步骤1.1、将人脸图像库中人脸图像待修复区域的像素值取值为0,其他区域像素值不变,得到图像X,利用图像X与对应的未缺损图像去训练生成器G;未缺损图像的标签为1,生成器的输出图像的标签为0,并利用二者及其标签训练鉴别器D。
步骤1.2、固定生成器G的参数,进而优化鉴别器D的参数。
步骤1.3、固定鉴别器D的参数,进而优化生成器G的参数。
步骤1.4、重复步骤1.2和步骤1.3,反复交替训练生成器G和鉴别器D,不断优化网络模型,最终得到VAE-GAN网络模型参数。
步骤2、将人脸图像中的待修复区域像素值取为0,其他区域像素值不变,得到图像T,然后将图像T输入到训练好的生成器G中,输出待修复区域存在语义信息但模糊的图像M。
步骤3、对生成器G输出的图像M进行后续处理,利用M中待修复区域Ω的模糊图像块从人脸图像库中寻找相似块Z,具体步骤如下:
步骤3.1、图像M中整个待修复的模糊区域Ω及待修复区域的周围3个像素区域组成区域Ψ,截取M中区域Ψ的部分为图像块P,从人脸图像库中取一张图像L,并在图像L中的Ψ区域及其周围2个像素所组成的区域Φ内,进行滑动选取与P相同尺寸大小的图像块Q,并计算Q与P之间的距离d1:
其中,u为像素点坐标,‖*‖2为l2范数。
在图像L中区域Φ内选出d1值最小的图像块Q,并把其加入到初步候选库DB-1。
步骤3.2、对人脸图像库里所有图像执行3.1操作,得到初步候选库DB-1,并把初步候选库DB-1中的图像块按照其在步骤3.1中计算的d1值从小到大排列,并取前10张组成候选库DB。
步骤3.3、从候选库里的图像块中匹配出一个图像块作为最终的相似块。包括以下步骤:
步骤3.3.1、对候选库里的每个图像块进行评分,且对候选库里每个图像的得分初始化为0,即Sα=0,其中α=1,2…10。
步骤3.3.2、沿着图像M待修复区域的边缘处选取n个相邻r*r(r一般可取2-10,本例中取6*6)的小区域图像块[x1,…xn]。
步骤3.3.3、取[x1,…xn]中的一个图像块xi,从候选库DB中选取图像块Y,截取Y中与图像块xi对应位置区域的图像块yi,然后求出yi与xi之间的距离d2:
式中,·为二阶导数,本发明使用Laplace算子对图像进行卷积操作实现;α,β为比例系数;‖yi(u)-xi(u)‖2用于计算整体的距离,用于计算边缘的距离。
步骤3.3.4对图像块xi,计算候选库里所有图像块的yi与xi的d2值,通过比较得到最小的d2值为d2i,且d2i对应于候选库里的图像块J,然后对图像块J的得分进行更新,更新公式为:
其中,Sj为图像块J更新后的得分,为图像块J更新前的得分,一个图像块xi对应一个d2i值和候选库里的一个图像块,并更新一次得分。
步骤3.3.5、对[x1,…xn]中每个图像块执行步骤3.3.3和步骤3.3.4,然后选取候选库中S值最高的图像块作为最终相似块Z。
步骤4、用相似块Z中与待修复区域Ω对应区域的像素值替换M中待修复区域的像素值,并采用泊松融合算法进行边界融合,得到修复结果,修复效果图见图4。
基于相同的发明构思,本发明另一实施例所公开的一种基于VAE-GAN与相似块搜索的人脸图像修复装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现上述的基于VAE-GAN与相似块搜索的人脸图像修复方法。