本发明涉及人工智能三维人脸重建领域,尤其涉及一种基于生成对抗网络的无监督重建三维人脸方法。
背景技术:
随着互联网的快速发展,人脸身份验证几乎渗入人们的生活,如刷脸支付、刷脸门禁、刷脸验票等涉及隐私、财产安全的场合。而三维人脸数据能够更精确的空间辅助信息来提高人脸身份识别系统精确性、安全性及可靠性。目前对于三维人脸重建,已经有一些解决方案,例如cn111354077a提出一种基于双目视觉的三维人脸重建方法,这类方法大多需要借助三维相机、三维深度扫描仪等价格高昂的特殊设备,在实践中难以普及。又如cn111027350a提出一种基于人脸三维重建的改进pca算法,通过反复调整三维形变模型的基向量参数,使得三维人脸渲染后提取的人脸关键点与输入图片的人脸关键点接近,但这类方法较为依赖人脸关键点的检测结果,在人脸偏离正面角度较大或有遮挡物时,效果较差,且迭代过程耗时也较长。
而基于神经网络来回归三维形变模型参数是最近被提出用于三维人脸重建任务。然而,针对神经网络的训练过程中三维人脸训练数据稀少的问题,多数方法使用合成数据进行训练,但合成数据并不能反映真实世界的复杂度,可见这一问题还未有一个合理的解决方案。
技术实现要素:
为了解决上述技术问题,本发明提出一种基于生成对抗网络的无监督重建三维人脸方法,让生成器对二维人脸图片进行学习,提取三维形变模型(3dmm)的基向量参数,让判别器对3dmm的真实感人脸参数分布进行学习,通过生成器与判别器的对抗训练,使得生成器提取的3dmm参数符合真实感人脸参数分布,进而生成具有真实感人脸顶点分布的三维人脸网格。同时,该方法还提供身份编码器对二维输入图片及三维人脸网格渲染后的图片提取身份特征向量,通过最小化两向量间的距离使得生成的三维人脸网格保持输入人脸的身份特征。
本发明的技术方案如下:一种基于生成对抗网络的无监督重建三维人脸方法,包括如下步骤:
步骤(1)、利用生成对抗网络gans的对抗过程,使得生成器生成符合真实感人脸顶点分布的三维形变模型3dmm参数;
步骤(2)、利用3dmm提供的pca正交基向量与生成器回归得到的3dmm参数进行线性组合,得到三维人脸网格;
步骤(3)、利用可微分渲染器将三维人脸网格渲染至二维图片,神经网络反向传播需要导数的传递,所述可微分渲染器使用一种基于延迟阴影模型的可微光栅化器;
步骤(4)、利用身份编码器计算人脸身份特征损失。
进一步的,所述步骤(1)具体包括:
(1.1)利用生成器从人脸图片中学习回归3dmm参数;
(1.2)利用判别器对3dmm的真实感人脸参数分布进行学习;
(1.3)利用生成器和判别器进行对抗生成学习。
进一步的,所述步骤(2)具体包括:
一张新的人脸由两组基向量线性组合表示,表示公式如下:
s、t分别表示最终形成的三维网格中n个顶点的位置属性及颜色属性;其中,
进一步的,所述步骤(3)具体包括:
3.1)使用phong光照模型对每个顶点的颜色做处理,训练过程中随机地将不同强度的两个点光源从离脸几米远的地方开始照射,并从普通室内和室外光源的近似中选择每个训练图像的随机色温,并扰动颜色以避免过度拟合;最后,由于basel模型不包含镜面颜色信息,使用启发式方法从预测模型的漫反射颜色kd中定义镜面颜色ks:ks=c-ckd,常数c在0到1之间;
3.2)将三维人脸网格投影至屏幕空间缓冲区,光栅化器在屏幕空间缓存区存储每个像素处包含的三维人脸网格中的三角面片id和重心坐标的屏幕空间缓冲区,光栅化过后,使用重心坐标和id在像素处插值每个顶点的属性,在反向求导时,光栅化导数是根据重心坐标计算的,而不是三角形id。
进一步的,所述步骤(4)具体包括:
4.1)利用身份编码器对输入图片的人脸及由步骤(3)渲染得到的二维人脸分别提取身份特征向量,采取预训练过的人脸识别网络facenet作为身份编码器,facenet利用dnn从原始图片学习到欧氏距离空间的映射,故而图像在欧式空间里的距离与人脸相似度关联;
4.2)计算身份特征损失,采用下式来衡量两张人脸的相似度:
其中,
进一步的,所述步骤(1.3)利用生成器和判别器进行对抗生成学习具体包括:
三维人脸重建的目标之一在于使得生成器回归得出的3dmm参数服从真实人脸3dmm参数分布,该目标是由gans的min-max对抗过程实现的,目标函数如下所示:
其中,x~pdata(x)表示x取样于人脸图像数据分布;y~p3dmm(y)表示y取样于真实人脸3dmm参数分布p3dmm(y);g(·)代表生成器的回归过程,即生成器根据输入的人脸图片x回归得到的3dmm参数
gans一共包含两个交叉训练阶段:第一阶段固定生成器g,训练判别器d,该阶段中d的目标是最大化lgans(g,d);第二阶段固定判别器d,训练生成器g,该阶段中g的目标是最小化lgans(g,d);在这样的交叉训练框架下,最终,生成器学习到如何生成服从真实人脸3dmm参数分布的3dmm参数。
有益效果:
本发明提供了一种基于生成对抗网络的无监督重建三维人脸方法,可以使得重建的三维人脸网格即符合真实感人脸顶点分布,又能保持输入人脸的身份特征信息,从而在实践上取得较好的重建人脸效果。
附图说明
图1gans网络学习流程示意图;
图2残差块resblock结构;
图3本发明生成器网络结构;
图4本发明判别器网络结构。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
根据本发明的一个实施例,一种基于生成对抗网络的无监督重建三维人脸方法包括如下步骤:
步骤(1)、利用生成对抗网络(gans)的对抗过程,使得生成器生成符合真实感人脸顶点分布的3dmm参数;
步骤(2)、利用3dmm提供的pca正交基向量与生成器回归得到的3dmm参数进行线性组合,得到三维人脸网格;
步骤(3)、利用可微分渲染器将三维人脸网格渲染至二维图片,由于神经网络反向传播需要导数的传递,故而使用了一种基于延迟阴影模型的可微光栅化器;
步骤(4)、利用身份编码器计算人脸身份特征损失。
该方法的流程图参见图1所示。具体的详细步骤如下:
步骤(1)利用生成对抗网络的对抗过程回归3dmm参数,具体包括以下步骤:
1.1)利用生成器从人脸图片中学习回归398个对应于3dmm提供的pca正交基向量的系数。
构建一个具有50层的残差层的深度神经网络作为生成器,为了提升深度学习的训练效果,引入了resnet残差块思想,残差块结构如图2所示。残差块结构中,x是上一层输入,f(x)是经过三层卷积层学习得到的特征,xidentity表示将输入x也作为学习得到的特征,最后的输出是f(x)和x的叠加结果,由于梯度可以从f(x)和xidentity这两条支路进行传播,从而解决了随着网络的层数加深,梯度消失的现象。最终生成器的网络结构如图3所示,是仿造resnet50并将最后一层1024-d全连接层改为398-d全连接层。其中,x是输入的人脸图片,
1.2)利用判别器对3dmm的真实感人脸参数分布进行学习。
由于判别器的输入仅一维,故而采用3层全连接层对生成器的回归结果是否符合真实人脸3dmm参数分布进行判断,判别器的网络结构如图4所示。对于判别器来说,输入共两类,均为398维向量
1.3)利用生成器和判别器进行对抗生成学习。
三维人脸重建的目标之一在于使得生成器回归得出的3dmm参数服从真实人脸3dmm参数分布,该目标是由gans的min-max对抗过程实现的,目标函数如下所示:
其中,x~pdata(x)表示x取样于人脸图像数据分布;y~p3dmm(y)表示y取样于真实人脸3dmm参数分布p3dmm(y);g(·)代表生成器的回归过程,即生成器根据输入的人脸图片x回归得到的3dmm参数
gans一共包含两个交叉训练阶段:第一阶段固定生成器g,训练判别器d,该阶段中d的目标是最大化lgans(g,d),如此,d可以在样本来源于真实人脸3dmm参数分布时给出一个较大概率,在样本来源于生成器g时给出一个较小的概率;第二阶段固定判别器d,训练生成器g,该阶段中g的目标是最小化lgans(g,d),以使得当样本来源于生成器g时d能给出一个较大的概率。在这样的交叉训练框架下,最终,生成器可以学习到如何生成服从真实人脸3dmm参数分布的398个3dmm参数。
步骤(2)利用3dmm得到三维人脸网格:
3dmm是基于200位实验对象的脸部激光扫描数据集而形成的一个数理统计模型,它利用pca技术提供了一组位置基向量及一组颜色基向量,于是,一张新的人脸就可以由这两组基向量线性组合表示,表示公式如下:
其中,
步骤(3)用可微分渲染器将三维人脸网格渲染至二维图片,包含以下步骤:
3.1)使用phong光照模型对每个顶点的颜色做处理。因为人脸表现出镜面光照,phong反射模型比在漫反射更有真实感。为了产生适当的均匀照明,训练过程中随机地将不同强度的两个点光源从离脸几米远的地方开始照射,并从普通室内和室外光源的近似中选择每个训练图像的随机色温,并扰动颜色以避免过度拟合。最后,由于basel模型不包含镜面颜色信息,使用启发式方法从预测模型的漫反射颜色kd中定义镜面颜色ks:ks=c-ckd(常数c在0到1之间);
3.2)将三维人脸网格投影至屏幕空间缓冲区。光栅化器在屏幕空间缓存区存储每个像素处包含的三维人脸网格中的三角面片id和重心坐标的屏幕空间缓冲区。光栅化过后,使用重心坐标和id在像素处插值每个顶点的属性,如颜色和法线。在反向求导时,光栅化导数是根据重心坐标计算的,而不是三角形id。
步骤(4)利用身份编码器计算人脸身份特征损失,包含以下步骤:
4.1)利用身份编码器对输入图片的人脸及由步骤(3)渲染得到的二维人脸分别提取身份特征向量。由于身份编码器在这一过程中使用的是其结果,故而采取预训练过的人脸识别网络facenet作为身份编码器,facenet主要利用dnn从原始图片学习到欧氏距离空间的映射,故而图像在欧式空间里的距离与人脸相似度关联;
4.2)计算身份特征损失。在欧式空间中,无论表情、姿势、或者照明条件如何,facenet对于同一人的两张照片提取的身份特征向量之间的距离要比从两个不同的人的照片提取的身份特征向量之间的距离要更加接近。故而采用下式来衡量两张人脸的相似度:
其中,f,
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。