一种基于生成式对抗网络的多图像人脸对齐的方法及装置与流程

文档序号:15020606发布日期:2018-07-25 00:36阅读:238来源:国知局

本发明涉及多图像人脸对齐技术领域,特别涉及一种基于生成式对抗网络的多图像人脸对齐的方法及装置。



背景技术:

多图像人脸对齐技术,即对输入的多张人脸图像进行处理,产生使得所有输出人脸图像都有尽量一致的光照、遮挡、姿态等条件的技术。人脸对齐技术在视频监控、媒体处理、公安侦查等领域具有广泛的应用。譬如,在人脸识别系统中,通过对人脸图像进行对齐,使得人脸图像具有相同的姿态等其他条件,从而提高人脸识别的准确率。

现有的多图像人脸对齐技术主要有以下几类:

1)基于多图像相似度的人脸对齐方法[1]。通过最小化多图像上每个位置的像素点的熵之和,使得通过变换后的多张人脸拥有最小的熵,即最大的相似度,以此达到多图像人脸对齐的目的。

2)基于二维人脸特征点的人脸对齐方法[2][3]。首先估计出每张人脸图像中人脸的特征点(如内外眼角,鼻尖,嘴角等)的位置,根据待变换人脸图像的特征点以及目标姿态的人脸图像特征点计算变换矩阵,并用该变换矩阵对人脸图像进行变换。使得变换后的多张人脸图像中的人脸特征点都处于相同的位置。

3)基于三维模型的人脸对齐方法[4]。从人脸图像重构人脸的三维模型。然后根据三维空间来进行人脸对齐。

已有的多图像人脸对齐方法在效率及效果上都存在较多不足。传统的多图像人脸对齐方法需要对输入的多张图像进行迭代学习才能得到一个有效的对齐变换。当输入样本发生变化时,需要重新学习对应的对齐变换。而在对齐效果上,传统的对齐方法只能较好的处理二维变换的人脸对齐(如旋转、平移及缩放),无法应对极端光照及遮挡条件与三维姿态变换的人脸对齐问题。基于二维特征点的对齐方法虽然从效率上解决了传统人脸对齐的不足,但通过样本学习得到的人脸特征点本身就是对人脸的真实特征点的有偏估计。特别是在极端条件下,特征点估计的准确度会大大降低,这导致了人脸对齐的效果较差。而基于三维人脸模型的方法则要求对同一个人有大量不同姿态下的输入图像,否则很难重构出精准的三维模型,同样会影响三维人脸对齐的效果。

参考文献:

[1]Learned-Miller E G.Data driven image models through continuous joint alignment[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2006,28(2):236-250.

[2]Zhang K,Zhang Z,Li Z,et al.Joint face detection and alignment using multitask cascaded convolutional networks[J].IEEE Signal Processing Letters,2016,23(10):1499-1503.

[3]Kowalski M,Naruniec J,Trzcinski T.Deep Alignment Network:A convolutional neural network for robust face alignment[J].arXiv preprint arXiv:1706.01789,2017.

[4]Zhu X,Lei Z,Liu X,et al.Face alignment across large poses:A 3d solution[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2016:146-155.



技术实现要素:

本发明的主要目的是提出一种基于生成式对抗网络的多图像人脸对齐方法,旨在克服以上问题。

为实现上述目的,本发明提出的一种基于生成式对抗网络的多图像人脸对齐方法,包括如下步骤:

S10输入多张经过预处理的真实人脸图像至生成器,生成器对所输入的真实人脸图像进行编码、转码及解码处理,生成拟合真实图像分布的合成图像,将多张预处理后真实人脸图像与合成图像输入判别器,以获得真实人脸图像的真实概率及合成图像的真实概率,迭代更新生成器和判别器的参数直至其收敛以确定由生成器和判别器构建的模型;

S20将待对齐多人脸图像输入到所确定的模型中,通过一次前向传递得到对齐后人脸图像。

优选地,所述S10中生成器对所输入的图像进行转码时采用了残差网络作为基本组成结构,多个残差网络首尾连接。

优选地,所述S10包括:

S101图像预处理:对人脸图像数据库中每一张待处理人脸图像,使用人脸检测算法得到图像中人脸所处的方形区域,将图像输入到MTCNN模型中,MTCNN将输出图像中人脸方形区域的坐标及长宽,用变量s表示输入图像的长与宽,用c表示图像的通道数,利用python程序的numpy程序库中的矩阵操作接口,根据人脸方形区域的坐标将每张图像中的人脸区域裁剪出来并进行缩放,使得数据库中每张图像都有一致的尺寸,裁剪并缩放后得到的图像作为数据预处理的结果,供后续步骤使用;

S102划分图像段:将预处理后的数据中将每个对象的所有图像随机划分成由n张图像组成的图像段(clip),如果所有图像的整数无法整除n,抛弃余数图像或者随机从前面的视频段中抽取图像填到最后一个clip中,将每个clip中的n张图像在通道维度上拼接,让每张图像在通道维度上首尾相连,以得到一个尺寸为(s,s,c*n)的多图像矩阵,将处理得到的所有多图像矩阵作为队列元素依次储存于python程序的一个列表对象中,并使用python程序的random程序库的shuffle方法随机打算队列元素的顺序;

S103构建模型:根据生成器和判别器的结构及参数,采用深度学习框架构建生成式对抗网络模型;

S104模型训练:模型训练的过程是通过不断调用自适应矩估计梯度下降算法,更新模型参数以最小化估计分布与真实分布之间的偏差造成的损失。根据目标函数,通过一次前向传递运算计算得到当前模型的损失。然后根据当前模型的损失计算模型中各参数的更新梯度,并通过一次后向传递运算进行参数更新,使得更新后模型拟合的数据分布趋近真实的数据分布。

优选地,所述S104包括:

S1041生成器对输入的多图像矩阵进行编码、转码及解码,合成输出对齐图像,且该图像的尺寸(s,s,c),与真实人脸图像尺寸一致;

S1042判别器将输入图像段中所有图像以及生成器输出的合成图像作为输入,输出每张图像为真实图像的概率;

S1043根据

确定目标函数计算当前模型的对抗约束损失,其中包括生成器的生成损失与判别器的判别损失。公式中V(D,G)为在生成器和判别器确定的情况下,整个模型的各项数学期望之和,G为生成器,G(x)为生成器的输出图像;D为判别器,logD(x)为输入图像x为真实图像的概率的对数形式,log(1-D(G(x)))为合成图像不为真实图像的概率的对数形式;x为符合真实图像数据分布pdata的真实样本;为目标函数的数学期望,判别损失为生成损失为

S1044根据

其中,将输入的多人脸图像矩阵记为D,输入人脸图像矩民中每张人脸图像减去合成人脸图像得到的噪声矩阵记为E,合成人脸图像复制n次并作为矩阵A的列,rank(A)为合成人脸图像矩阵A的秩,||E||0为噪声矩阵E的l0范数,s.t.=“subject to”,“约束于”的意思,形式是:目标函数,s.t.约束条件,γ为稀疏约束的权重,当矩阵A在各列之间存在强线性相关时,矩阵A将是一个低秩矩阵,确定的目标函数在一次前向传递运算后得到当前模型的稀疏约束损失,由于l0范数的非突性,用矩阵E的l1范数||E||1来近似l0范数以计算稀疏约束损失;

S1045根据计算得到的当前模型的对抗约束损失及稀疏约束损失通过一次后向传递运算依次更新判别器与生成器中的模型参数,在一次模型参数更新过程结束后,重新从队列中取一图像段,重复所述1041-1045直至模型收敛,当输入队列被取空后,若模型还未收敛,则重新打乱队列元素的顺序,并从队列头开始获取数据输入模型继续以上所述1041-1045直至模型收敛。

优选地,所述S20包括:

S201用训练阶段的数据预处理方式处理待对齐的人脸图像,得到固定尺寸(s,s,c)的人脸图像;

S202将n张待对齐人脸图像在通道维度上首尾相连拼接成一个多图像矩阵;

S203将多图像矩阵输入到训练所得的模型中,通过一次前向传递运算后,取生成器的输出作为对齐后的人脸图像。

本发明还公开了一种基于生成式对抗网络的多图像人脸对齐装置,包括:

模型训练模块,用于输入多张经过预处理的真实人脸图像至生成器,生成器对所输入的真实人脸图像进行编码、转码及解码处理,生成拟合真实图像分布的合成图像,将多张预处理后真实人脸图像与合成图像输入判别器,以获得真实人脸图像的真实概率及合成图像的真实概率,迭代更新生成器和判别器的参数直至其收敛以确定由生成器和判别器构建的模型;

应用模块,用于将待对齐多人脸图像输入到所确定的模型中,通过一次前向传递得到对齐后人脸图像。

优选地,所述模型训练模块包括:

图像预处理单元,用于对人脸图像数据库中每一张待处理人脸图像,使用人脸检测算法得到图像中人脸所处的方形区域,将图像输入到MTCNN模型中,MTCNN将输出图像中人脸方形区域的坐标及长宽,用变量s表示输入图像的长与宽,用c表示图像的通道数,利用python程序的numpy程序库中的矩阵操作接口,根据人脸方形区域的坐标将每张图像中的人脸区域裁剪出来并进行缩放,使得数据库中每张图像都有一致的尺寸,裁剪并缩放后得到的图像作为数据预处理的结果,供后续步骤使用;

图像段划分单元,用于将预处理后的数据中将每个对象的所有图像随机划分成由n张图像组成的图像段(clip),如果所有图像的整数无法整除n,抛弃余数图像或者随机从前面的视频段中抽取图像填到最后一个clip中,将每个clip中的n张图像在通道维度上拼接,让每张图像在通道维度上首尾相连,以得到一个尺寸为(s,s,c*n)的多图像矩阵,将处理得到的所有多图像矩阵作为队列元素依次储存于python程序的一个列表对象中,并使用python程序的random程序库的shuffle方法随机打算队列元素的顺序;

构建模型单元,用于根据生成器和判别器的结构及参数,采用深度学习框架构建生成式对抗网络模型;

模型训练单元,用于模型训练的过程是通过不断调用自适应矩估计梯度下降算法,更新模型参数以最小化估计分布与真实分布之间的偏差造成的损失。根据目标函数,通过一次前向传递运算计算得到当前模型的损失。然后根据当前模型的损失计算模型中各参数的更新梯度,并通过一次后向传递运算进行参数更新,使得更新后模型拟合的数据分布趋近真实的数据分布。

优选地,所述模型训练单元包括:

生成器输入/出子单元,用于生成器对输入的多图像矩阵进行编码、转码及解码,合成输出对齐图像,且该图像的尺寸(s,s,c),与输入真实人脸图像尺寸一致;

判别器输入/出子单元,用于判别器将输入图像段中所有图像以及生成器输出的合成图像作为输入,输出每张图像为真实图像的概率;

对抗约束损失子单元,用于根据(4)确定的目标函数计算当前模型的对抗约束损失,其中包括生成器的生成损失与判别器的判别损失。公式中V(D,G)为在生成器和判别器确定的情况下,整个模型的各项数学期望之和,G为生成器,G(x)为生成器的输出图像;D为判别器,logD(x)为输入图像x为真实图像的概率的对数形式,log(1-D(G(x)))为合成图像不为真实图像的概率的对数形式;x为符合真实图像数据分布pdata的真实样本;为目标函数的数学期望,判别损失为生成损失为

稀疏约束损失子单元,用于根据

其中,将输入的多人脸图像矩阵记为D,输入人脸图像矩民中每张人脸图像减去合成人脸图像得到的噪声矩阵记为E,合成人脸图像复制n次并作为矩阵A的列,rank(A)为合成人脸图像矩阵A的秩,||E||x为噪声矩阵E的l0范数,s.t.=“subject to”,“约束于”的意思。形式是:目标函数,s.t.约束条件,γ为稀疏约束的权重。当矩阵A在各列之间存在强线性相关时,矩阵A将是一个低秩矩阵,确定的目标函数在一次前向传递运算后得到当前模型的稀疏约束损失,由于l0范数的非突性,用矩阵E的l1范数||E||1来近似l0范数以计算稀疏约束损失;

模型参数更新子单元,用于根据计算得到的当前模型的对抗约束损失及稀疏约束损失通过一次后向传递运算依次更新判别器与生成器中的模型参数。在一次参数更新过程结束后,在输入队列中取下一图像段作为输入,重复以上步骤1041-1045直至模型收敛,当输入队列被取空后,若模型还未收敛,则重新打乱输入队列中元素的顺序,并从队列头开始获取数据继续迭代训练。

优选地,所述应用模块包括:

应用预处理单元,用于用训练阶段的数据预处理方式处理待对齐的人脸图像,得到固定尺寸(s,s,c)的人脸图像;

图像拼接单元,用于将n张待对齐人脸图像在通道维度上拼接成一个多图像矩阵;

图像输出单元,用于将多图像矩阵输入到训练所得的模型中,通过一次前向传递运算后,取生成器的输出作为对齐后的人脸图像。

本发明技术方案通过多图像人脸对齐方法能够在模型参数确定后,通过一次前向传递运算变得到对齐后的人脸图像。此外,本发明能够处理三维姿态变换、极端光照条件、遮挡等人脸对齐场景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明所述基于生成式对抗网络的多图像人脸对齐方法的训练阶段一实施例的方法流程框图;

图2为本发明所述基于生成式对抗网络的多图像人脸对齐方法的应用阶段一实施例的方法流程框图;

图3为本发明所述生成器的结构示意图;

图4为本发明所述判别器的结构示意图;

图5为本发明的多图像人脸对齐结果图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

如图1-5所示,本发明提出的一种基于生成式对抗网络的多图像人脸对齐方法,包括如下步骤:

S10输入多张经过预处理的真实人脸图像至生成器,生成器对所输入的真实人脸图像进行编码、转码及解码处理,生成拟合真实图像分布的合成图像,将多张预处理后真实人脸图像与合成图像输入判别器,以获得真实人脸图像的真实概率及合成图像的真实概率,迭代更新生成器和判别器的参数直至其收敛以确定由生成器和判别器构建的模型;

S20将待对齐多人脸图像输入到所确定的模型中,通过一次前向传递得到对齐后人脸图像。

优选地,所述S10中生成器对所输入的图像进行转码时采用了残差网络作为基本组成结构,多个残差网络首尾连接。

优选地,所述S10包括:

S101图像预处理:对人脸图像数据库中每一张待处理人脸图像,使用人脸检测算法得到图像中人脸所处的方形区域,将图像输入到MTCNN模型中,MTCNN将输出图像中人脸方形区域的坐标及长宽,用变量s表示输入图像的长与宽,用c表示图像的通道数,利用python程序的numpy程序库中的矩阵操作接口,根据人脸方形区域的坐标将每张图像中的人脸区域裁剪出来并进行缩放,使得数据库中每张图像都有一致的尺寸,裁剪并缩放后得到的图像作为数据预处理的结果,供后续步骤使用;

S102划分图像段:将预处理后的数据中将每个对象的所有图像随机划分成由n张图像组成的图像段(clip),如果所有图像的整数无法整除n,抛弃余数图像或者随机从前面的视频段中抽取图像填到最后一个clip中,将每个clip中的n张图像在通道维度上拼接,让每张图像在通道维度上首尾相连,以得到一个尺寸为(s,s,c*n)的多图像矩阵,将处理得到的所有多图像矩阵作为队列元素依次储存于python程序的一个列表对象中,并使用python程序的random程序库的shuffle方法随机打算队列元素的顺序;

S103构建模型:根据生成器和判别器的结构及参数,采用深度学习框架构建生成式对抗网络模型;

S104模型训练:模型训练的过程是通过不断调用自适应矩估计梯度下降算法,更新模型参数以最小化估计分布与真实分布之间的偏差造成的损失。根据目标函数,通过一次前向传递运算计算得到当前模型的损失。然后根据当前模型的损失计算模型中各参数的更新梯度,并通过一次后向传递运算进行参数更新,使得更新后模型拟合的数据分布趋近真实的数据分布。

优选地,所述S104包括:

S1041生成器对输入的多图像矩阵进行编码、转码及解码,合成输出对齐图像,且该图像的尺寸(s,s,c),与真实人脸图像尺寸一致;

S1042判别器将输入图像段中所有图像以及生成器输出的合成图像作为输入,输出每张图像为真实图像的概率;

S1043根据

确定目标函数计算当前模型的对抗约束损失,其中包括生成器的生成损失与判别器的判别损失。公式中V(D,G)为在生成器和判别器确定的情况下,整个模型的各项数学期望之和,G为生成器,G(x)为生成器的输出图像;D为判别器,logD(x)为输入图像x为真实图像的概率的对数形式,log(1-D(G(x)))为合成图像不为真实图像的概率的对数形式;x为符合真实图像数据分布pdata的真实样本;为目标函数的数学期望,判别损失为生成损失为

S1044根据

其中,将输入的多人脸图像矩阵记为D,输入人脸图像矩民中每张人脸图像减去合成人脸图像得到的噪声矩阵记为E,合成人脸图像复制n次并作为矩阵A的列,rank(A)为合成人脸图像矩阵A的秩,||E||0为噪声矩阵E的l0范数,s.t.=“subject to”,“约束于”的意思,形式是:目标函数,s.t.约束条件,γ为稀疏约束的权重,当矩阵A在各列之间存在强线性相关时,矩阵A将是一个低秩矩阵,确定的目标函数在一次前向传递运算后得到当前模型的稀疏约束损失,由于l0范数的非突性,用矩阵E的l1范数||E||1来近似l0范数以计算稀疏约束损失;

S1045根据计算得到的当前模型的对抗约束损失及稀疏约束损失通过一次后向传递运算依次更新判别器与生成器中的模型参数,在一次模型参数更新过程结束后,重新从队列中取一图像段,重复所述1041-1045直至模型收敛,当输入队列被取空后,若模型还未收敛,则重新打乱队列元素的顺序,并从队列头开始获取数据输入模型继续以上所述1041-1045直至模型收敛。

优选地,所述S20包括:

S201用训练阶段的数据预处理方式处理待对齐的人脸图像,得到固定尺寸(s,s,c)的人脸图像;

S202将n张待对齐人脸图像在通道维度上首尾相连拼接成一个多图像矩阵;

S203将多图像矩阵输入到训练所得的模型中,通过一次前向传递运算后,取生成器的输出作为对齐后的人脸图像。

本发明还公开了一种基于生成式对抗网络的多图像人脸对齐装置,包括:

模型训练模块,用于输入多张经过预处理的真实人脸图像至生成器,生成器对所输入的真实人脸图像进行编码、转码及解码处理,生成拟合真实图像分布的合成图像,将多张预处理后真实人脸图像与合成图像输入判别器,以获得真实人脸图像的真实概率及合成图像的真实概率,迭代更新生成器和判别器的参数直至其收敛以确定由生成器和判别器构建的模型;

应用模块,用于将待对齐多人脸图像输入到所确定的模型中,通过一次前向传递得到对齐后人脸图像。

优选地,所述模型训练模块包括:

图像预处理单元,用于对人脸图像数据库中每一张待处理人脸图像,使用人脸检测算法得到图像中人脸所处的方形区域,将图像输入到MTCNN模型中,MTCNN将输出图像中人脸方形区域的坐标及长宽,用变量s表示输入图像的长与宽,用c表示图像的通道数,利用python程序的numpy程序库中的矩阵操作接口,根据人脸方形区域的坐标将每张图像中的人脸区域裁剪出来并进行缩放,使得数据库中每张图像都有一致的尺寸,裁剪并缩放后得到的图像作为数据预处理的结果,供后续步骤使用;

图像段划分单元,用于将预处理后的数据中将每个对象的所有图像随机划分成由n张图像组成的图像段(clip),如果所有图像的整数无法整除n,抛弃余数图像或者随机从前面的视频段中抽取图像填到最后一个clip中,将每个clip中的n张图像在通道维度上拼接,让每张图像在通道维度上首尾相连,以得到一个尺寸为(s,s,c*n)的多图像矩阵,将处理得到的所有多图像矩阵作为队列元素依次储存于python程序的一个列表对象中,并使用python程序的random程序库的shuffle方法随机打算队列元素的顺序;

构建模型单元,用于根据生成器和判别器的结构及参数,采用深度学习框架构建生成式对抗网络模型;

模型训练单元,用于模型训练的过程是通过不断调用自适应矩估计梯度下降算法,更新模型参数以最小化估计分布与真实分布之间的偏差造成的损失。根据目标函数,通过一次前向传递运算计算得到当前模型的损失。然后根据当前模型的损失计算模型中各参数的更新梯度,并通过一次后向传递运算进行参数更新,使得更新后模型拟合的数据分布趋近真实的数据分布。

优选地,所述模型训练单元包括:

生成器输入/出子单元,用于生成器对输入的多图像矩阵进行编码、转码及解码,合成输出对齐图像,且该图像的尺寸(s,s,c),与输入真实人脸图像尺寸一致;

判别器输入/出子单元,用于判别器将输入图像段中所有图像以及生成器输出的合成图像作为输入,输出每张图像为真实图像的概率;

对抗约束损失子单元,用于根据确定的目标函数计算当前模型的对抗约束损失,其中包括生成器的生成损失与判别器的判别损失。公式中V(D,G)为在生成器和判别器确定的情况下,整个模型的各项数学期望之和,G为生成器,G(x)为生成器的输出图像;D为判别器,logD(x)为输入图像x为真实图像的概率的对数形式,log(1-D(G(x)))为合成图像不为真实图像的概率的对数形式;x为符合真实图像数据分布pdata的真实样本;为目标函数的数学期望,判别损失为生成损失为

稀疏约束损失子单元,用于根据

其中,将输入的多人脸图像矩阵记为D,输入人脸图像矩民中每张人脸图像减去合成人脸图像得到的噪声矩阵记为E,合成人脸图像复制n次并作为矩阵A的列,rank(A)为合成人脸图像矩阵A的秩,||E||0为噪声矩阵E的l0范数,s.t.=“subject to”,“约束于”的意思。形式是:目标函数,s.t.约束条件,γ为稀疏约束的权重。当矩阵A在各列之间存在强线性相关时,矩阵A将是一个低秩矩阵,确定的目标函数在一次前向传递运算后得到当前模型的稀疏约束损失,由于l0范数的非突性,用矩阵E的l1范数||E||1来近似l0范数以计算稀疏约束损失;

模型参数更新子单元,用于根据计算得到的当前模型的对抗约束损失及稀疏约束损失通过一次后向传递运算依次更新判别器与生成器中的模型参数。在一次参数更新过程结束后,在输入队列中取下一图像段作为输入,重复以上步骤1041-1045直至模型收敛,当输入队列被取空后,若模型还未收敛,则重新打乱输入队列中元素的顺序,并从队列头开始获取数据继续迭代训练。

优选地,所述应用模块包括:

应用预处理单元,用于用训练阶段的数据预处理方式处理待对齐的人脸图像,得到固定尺寸(s,s,c)的人脸图像;

图像拼接单元,用于将n张待对齐人脸图像在通道维度上拼接成一个多图像矩阵;

图像输出单元,用于将多图像矩阵输入到训练所得的模型中,通过一次前向传递运算后,取生成器的输出作为对齐后的人脸图像。

图1为本发明的基于生成式对抗网络的多图像人脸对齐方法的训练阶段的方法原理框图,主要包括输入同一个人的多张人脸图像;生成器学习生成一张对齐后人脸图像,使得对齐人脸图像满足稀疏噪声约束同时让判别器错判其为真实图像;判别器学习区分真实人脸图像与生成(对齐)人脸图像;输入图像与对齐图像相减得到噪声图像,进一步计算得到稀疏噪声损失并回传更新生成器参数;

图2为本发明的基于生成式对抗网络的多图像人脸对齐方法的应用阶段的方法原理框图,主要包括输入同一个人的多张人脸图像;生成器通过一次前向传递运算计算并生成对齐后合成人脸图像。整个转码器是由多个残差网络堆积形成的;

图3为本发明模型中生成器的结构示意图,主要包括输入同一个对象的多张人脸图像;编码器对多图像矩阵进行编码获得编码图像矩阵;转码器对编码矩阵进行转码获得转码矩阵;解码器对转码矩阵进行解码获得输出图像;

图4为本发明模型中判别器的结构示意图,主要包括输入一张真实或合成的人脸图像;输出二分类结果表示判别器对输入图像是否为真实图像的判断结果。

图5为基于本发明的多图像人脸对齐结果图,其中前八张为输入的多图像人脸,每张图像拥有不同的光照及遮挡,最后一张为对齐后的合成人脸图像,对齐后人脸具有归一化的光照条件同时去除了遮挡噪声。我们在著名的人脸库AR Face上进行了多图像人脸对齐实验。实验结果表明,本发明能够根据输入图像逼真的合成去遮挡,光照条件归一化的对齐人脸图像(模拟结果见图5)

表1本发明模型中生成器的模型参数。其中包括模型中每层神经网络层的卷积核大小、卷积操作步长、输出特征数量、激活函数类型以及是否进行归一化操作。

表2本发明模型中判别器的模型参数。其中包括模型中每层神经网络层的卷积核大小、卷积操作步长、输出特征数量、激活函数类型以及是否进行归一化操作。

在本发明实施例中,本发明的实现过程包括线下训练阶段以及应用阶段。对于线下训练阶段,需组织一个有人物身份标签的人脸图像数据库。将人脸图像数据库经过预处理后作为模型训练的输入,通过迭代更新模型参数直至其收敛以确定模型。在应用阶段,将待对齐多人脸图像输入到训练后模型中,通过一次前向传递运算得到对齐后人脸图像。以下将本发明的技术方案分为模型结构,训练阶段以及应用阶段三部分进行详细介绍:

1)模型结构 GAN=生成式对抗网络

本发明提出的模型是传统生成式对抗网络模型的一种变形。传统的生成式对抗网络由一个生成器网络与一个判别器网络组成。生成器接收随机噪声(计算机随机生成的随机矩阵或向量)作为输入,学习如何根据随机噪声合成一副符合真实图像分布的合成图像。判别器接受合成图像与真实图像作为输入,学习判别输入图像的真伪。在整个训练过程中,生成器与判别器的学习是一个动态博弈的过程,而生成器的输出是一张拟合真实图像分布的合成图像,因此整个模型被称为生成式对抗网络。当生成器合成的图像足以以假乱真,即让判别器无法将之与真实图像区分开时,我们认为生成器学习到了一组从输入的随机噪声分布到真实图像分布的映射。

本发明中的模型本质上还是一个生成式对抗网络,因此模型包括生成器和判别器,生成器的输入不是随机样本,而是真实图像(相机或任何摄影设备拍摄后储存在计算机中的图像)。生成器由编码器、转码器以及解码器组成,通过对输入图像进行编码、转码以及解码,学习得到一张新的且符合真实图像分布的合成图像。此外,我们给生成器加入了稀疏约束,指导生成器合成真实且与输入的多图像尽量相似的对齐图像。图3与图4分别为生成器与判别器的结构图,表1与表2中详细介绍生成器与判别器的网络参数设置。此外,模型中生成器里的转码器采用了残差网络作为基本组成结构,多个残差网络首尾连接即前面残差网络的输出作为后面残差网络的输入。残差网络是一种新型的神经网络结构,其基本结构如图3中橙色方框部分所示。在神经网络模型后向传递运算更新模型参数的过程中,模型参数的更新梯度取决于回传的损失。而当网络深度过深(深度即网络中包含不同神经网络层的层数量)时,接近输入层的神经网络层得到的损失在数值上将会变得十分小,导致无法有效的更新这些层的模型参数,这种现象被称为后向传递中的梯度消失现象。而残差神经网络的提出,就是为了解决由于网络深度过深造成的梯度消失问题。

2)训练阶段

a.对于数据库中每一张待处理人脸图像,使用人脸检测算法得到图像中人脸所处的方形区域:将图像输入到MTCNN模型中,MTCNN将输出图像中人脸方形区域的坐标及长宽。利用python程序的numpy程序库中的矩阵操作接口,根据人脸方形区域的坐标将每张图像中的人脸区域裁剪出来并进行缩放,使得数据库中每张图像都有一致的尺寸,以下用变量s表示输入图像的长与宽,用c表示图像的通道数。裁剪并缩放后得到的图像作为数据预处理的结果,供后续步骤使用。

b.将预处理后的数据中将每个对象的所有图像随机划分成由n张图像组成的图像段(clip),如果所有图像的整数无法整除n,抛弃余数图像或者随机从前面的视频段中抽取图像填到最后一个clip中。具体实施例中,训练阶段中,当某个人的图像数量不能整除n时,我们随机从前面的图像段中抽取图像填充到最后一个图像段中。应用阶段,当某个图像段的数量不足n时,本方案抛弃该片段,不对该图像段进行处理,由n张图像组成的每个对象中n就是组成每个对象的图像数量。将每个clip中的n张图像在通道维度上拼接,让每张图像在通道维度上首尾相连,以得到一个尺寸为(s,s,c*n)的多图像矩阵。

c.根据图3、图4的模型结构与表1、表2的模型参数,利用tensorflow(开源深度学习框架)构建模型。将步骤b中处理得到的所有多图像矩阵作为队列元素依次储存python程序的一个列表对象,并使用python程序的random程序库的shuffle方法随机打乱队列元素的顺序。模型训练的过程是通过不断调用自适应矩估计梯度下降算法(如:tensorflow.train.AdamOptimizer函数库的minimize(最小化)方法),更新模型参数以最小化估计分布与真实分布之间的偏差造成的损失(loss)。但用来做深度学习的程序还有很多,比如像pytorch,caffe等。用这些程序都是可以替代tensorflow的,但是采用的具体方法有所不同。在这个方案里,本实施例采用的是tensorflow,tensorflow是由谷歌公司提出的。

该方法通过一次前向传递运算计算得到当前模型的loss,然后根据loss计算模型中各参数的更新梯度,并通过一次后向传递运算进行参数更新,使得更新后模型拟合的数据分布趋近真实的数据分布。以下将详细介绍minimize方法的运算过程,所有这些运算过程由tensorflow框架完成,只需将公式(4)与公式(5)中提及的目标函数作为参数传递给tensorflow的minimize方法。

(a)首先,模型通过一次前向传递运算得到当前模型的loss。在这个过程中,每个多图像矩阵首先通过编码器进行编码,得到一个大小为(s/4,s/4,256)的编码矩阵,编码矩阵紧接着被输入转码器进行编码变换,变换得到的转码矩阵被输入到解码器,最终解码器输出一张合成的对齐后人脸图像,该图像的尺寸为(s,s,c),与真实人脸图像尺寸一致。以上提及的编码过程,编码变换过程,解码过程都是由tensorflow根据编码器、转码器与解码器的结构及参数进行一次前向传递运算的过程。

(b)得到生成器的输出后,将模型输入的多图像矩阵在通道维度上拆分,将尺寸为(s,s,c*n)的多图像矩阵在通道上拆分成n张(s,s,c)的真实人脸图像。即将尺寸为(s,s,c*n)的矩阵中在通道维度上,每c个通道组成一张图像,最终得到n张图像。将合成人脸图像与输入人脸图像同时输入到模型的判别器中,计算每张输入图像为真实图像的概率。

C)通过上述两个步骤后,可以通过公式(4)中的目标函数计算得到生成器的生成损失以及判别器的判别损失。

其中G为生成器,G(x)为生成器的输出图像;D为判别器,log D(x)为输入图像X为真实图像的概率的对数形式,log(1-D(G(x)))为合成图像不为真实图像的概率的对数形式;X为符合真实图像数据分布pdata的真实样本;为目标函数的数学期望,判别损失为生成损失为V(D,G)为在生成器和判别器确定的情况下,整个模型的各项数学期望之和,生成器的目标函数是最大化判别器正确判别输入图像真实概率的数学期望,而判别器的目标函数是最大化自身正确判别输入图像真实概率的数学期望。

d)对于生成器而言,除了生成损失以外还有稀疏损失。将输入的多人脸图像矩阵记为D,输入人脸图像矩阵中每张人脸图像减去合成人脸图像得到的噪声矩阵记为E,合成人脸图像复制n次并作为矩阵A的列。那么人脸对齐的目标函数如公式(5)所示

公式(5)中rank(A)为合成人脸图像矩阵A的秩,||E||0为噪声矩阵E的l0范数,s.t.=“subject to”,“约束于”的意思。形式是:目标函数,s.t.约束条件,γ为稀疏约束的权重。当矩阵A在各列之间存在强线性相关时,矩阵A将是一个低秩矩阵。最小化合成人脸图像矩阵的秩可以提高矩阵中各张人脸图像的相似性。由于我们模型里矩阵A中每张人脸图像都是相同的,因此A是一个秩为1的矩阵。最小化噪声矩阵的l0范数的目标是提高合成的人脸图像与输入每张人脸图像的总相似度。根据公式(5)中的目标函数我们可以在一次前向传递运算后得到生成器的稀疏约束损失。然而由于l0范数的非突性(nonconvexity),我们用矩阵E的l1范数||E||1来近似l0范数以计算稀疏约束损失。

e)步骤c)与d)得到了生成器的生成损失、稀疏损失以及判别器的判别损失。根据各自的损失,通过一次后向传递运算,我们依次更新判别器与生成器中的模型参数。

f)重复步骤a)至步骤e)直至模型收敛,则停止训练。每当输入队列被取空后,若模型还未收敛,则重新打乱输入队列中元素的顺序,并从队列头开始获取数据输入模型继续训练。

3)应用阶段

通过线下训练得到模型参数后,我们可以通过一次前向传递运算得到多人脸图像对齐的输出结果,具体步骤如下:

a.用训练阶段的数据预处理方式处理待对齐的人脸图像,得到固定尺寸(s,s,c)的人脸图像。

b.将n张待对齐人脸图像在通道维度上拼接成一个多图像矩阵。同一个多图像矩阵中的人脸图像应属于同一对象的,且人脸图像的数量n应与训练模型时采用的超参数n保持一致。

c.将多图像矩阵输入到训练得到的模型中,通过一次前向传递运算后,取生成器的输出作为对齐后的人脸图像。

本发明技术方案提出基于稀疏约束的生成式对抗模型来获得多图像人脸对齐,且通过多张人脸图像生成一张对齐后人脸图像以取代生成低秩人脸图像矩阵,使得生成式对抗模型的训练更加容易。

相对于以前的多图像人脸对齐技术,本发明具有以下的有点:

1.通过一次运算便可得到对齐人脸,效率高。

2.能够处理极端光照条件、遮挡条件及三维姿态变换。

3.无需估计人脸的三维模型或二维特征点。

本发明的基础在于能够根据多张人脸图像生成一张清晰且对齐后的人脸图像。多人脸图像矩阵的稀疏程度反应了生成人脸图像与输入人脸图像对齐的程度,而生成式对抗网络记录了人脸的整体与细节特征。因此,任何基于稀疏约束的生成式对抗网络的多人脸图像对齐技术都包含在本发明之内。

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