一种基于单张照片的人脸三维模型自动构建方法及系统
技术领域
本发明属于深度学习、图像处理技术领域,尤其涉及一种基于单张照片的人脸三维模型自动构建方法及系统。
背景技术
实时采集到的目标图像会受到背景环境以及目标运动变化的影响,导致捕获到的人脸面部图像往往图像质量参差不齐,无法通过多张不同角度拍摄的图像,全自动化的准确合成目标人脸的三维模型。从而导致传统的目标人脸的三维建模,需要耗费大量的人力资源,由专业人员手工建模完成。
现代人工智能技术的持续发展,也为人脸三维建模领域的自动化实现提供了有力的技术支持,特别是生成对抗网络技术的成熟,为图片生成类应用提供了有效的解决方案。而基于生成对抗网络的三维重建技术大多需要多张人脸图片或者基于纹理信息,缺少一种基于单张图片自动生成人脸三维模型的技术。
发明内容
有鉴于此,本发明提出了一种基于单张照片的人脸三维模型自动构建方法及系统,用于解决现有技术中人脸三维模型构建无法基于单张图片自动化完成的问题,本发明通过构建丰富的人脸三维模型样本库,并设计基于人脸三维建模的复合生成对抗网络模型,实现了由单张二维人脸照片合成三维模型的全自动化构建技术。
本发明第一方面,公开一种基于单张照片的人脸三维模型自动构建方法,所述方法包括:
采集多个人脸正面照片和对应的人脸三维模型,并进行一致性校验;
将采集到的人脸三维模型拆分为多个局部三维模型;
分别将同一人脸对应的人脸正面照片、人脸三维模型、多个局部三维模型作为一组样本数据并进行预处理后保存,得到人脸样本库;
对人脸样本库中的每组数据进行人脸关键点校准;
构建CGAN(Conditional Generative Adversarial Nets)模型,将人脸样本库中每组样本数据中的人脸三维模型和多个局部三维模型叠加处理,将叠加结果作为对应样本的标签,训练所述CGAN模型得到复合生成对抗网络模型;
将待合成的单张照片输入所述复合生成对抗网络模型,得到自动生成的人脸三维模型。
优选的,所述采集多个人脸正面照片和对应的人脸三维模型,并进行一致性校验具体包括:
通过摄像头拍摄人脸正面照片并做二值化处理;
通过激光雷达扫描工具,获取格式为LAS格式的人脸三维数据,生成正面投影图;
将二值化处理后的人脸正面照片和人脸三维模型的正面投影图分别做滤波处理,调整阈值,使滤波后的图像包含主要的轮廓信息;
比较人脸正面照片和三维正面投影图滤波后的轮廓的相似度,若相似度高于预设阈值,则数据采集有效,校验通过;否则重新采集。
优选的,所述人脸局部三维模型包括人脸的眼睛、鼻子、嘴巴、耳朵、头发、眉毛各个部分对应的三维模型。
优选的,所述将采集到的人脸三维模型拆分为多个人脸局部三维模型具体包括:
根据头发和眉毛的颜色特征,分别提取头发部分和眉毛部分的三维模型,并单独保存;
分别提取眼睛、鼻子、嘴巴和耳朵4个器官的三维模型,并单独保存;
将6个单独保存的局部三维模型重新组合,进行拓扑分析,看是否有重叠部分,若有重叠部分,重新提取局部三维模型,直到各个局部三维模型无重叠。
优选的,分别将同一人脸对应的人脸正面照片、人脸三维模型、多个局部三维模型作为一组样本数据并进行预处理后保存具体包括:
将人脸正面照片以二维矩阵的形式保存;
将人脸三维模型和局部三维模型从LAS格式转换为OBJ格式,将人脸三维模型和局部三维模型以三维矩阵的形式保存;
将人脸正面照片、人脸三维模型、多个局部三维模型分别以矩阵的形式保存为一组样本数据。
优选的,所述对人脸样本库中的每组数据进行人脸关键点校准具体包括:
分别从人脸三维模型和局部三维模型的三维矩阵数据中读取其在人脸平面两个方向的信息并分别以二维矩阵形式保存;
若出现二维坐标相同的点,则做合并处理;
将读取出的人脸二维矩阵和局部二维矩阵与人脸正面照片的二维矩阵做比对,若比对成功,校准成功,否则重新采集数据并构建人脸样本库。
优选的,所述将每组样本数据中的人脸三维模型和多个局部三维模型叠加处理,将叠加结果作为对应样本的标签具体为:
采用线性叠加的方式,将人脸三维模型对应的三维矩阵和局部三维模型对应的三维矩阵中的每个元素值叠加,每个对应位置叠加后的结果为:
x′=a1x1+a2x2+a3x3+a4x4+a5x5+a6x6+a7x7+b
其中,xn为每个三维矩阵中对应位置元素的值,n=1,2,3,4,5,6,7,an为生成对抗网络CGAN可训练的参数,b为可训练偏移量;
采用上述公式将三维矩阵各个对应位置叠加,得到新的三维矩阵X,将X作为对应样本的标签。
优选的,所述将待合成的单张照片输入所述复合生成对抗网络模型,得到自动合成的人脸三维模型具体为:
将待合成的单张照片输入所述复合生成对抗网络模型,输出复合的三维矩阵,采用逆序步骤,基于所述复合的三维矩阵对应位置的值,以及训练得到的a1、a2、a3、a4、a5、a6、a7、b的值,反向计算a1、a2、a3、a4、a5、a6、a7的值;
由所述的a1、a2、a3、a4、a5、a6、a7值得到生成的人脸三维模型对应的三维矩阵和局部三维模型对应的三维矩阵;
通过三维矩阵还原为三维图像,完成最终的生成过程。
本发明第二方面,一种基于单张照片的人脸三维模型自动构建系统,所述系统包括:
人脸样本采集模块:用于采集多个人脸正面照片和对应的人脸三维模型,并进行一致性校验;
人脸三维样本拆解模块:用于将采集到的人脸三维模型拆分为多个局部三维模型;
人脸样本库构建模块:用于分别将同一人脸对应的人脸正面照片、人脸三维模型、多个局部三维模型作为一组样本数据并进行预处理后保存,得到人脸样本库;
人脸关键点校准模块:用于对人脸样本库中的每组数据进行人脸关键点校准;
复合生成对抗网络构建模块:用于构建CGAN模型,将人脸样本库每组样本数据中的人脸三维模型和多个局部三维模型叠加处理,将叠加结果作为对应样本的标签,训练所述CGAN模型得到复合生成对抗网络模型;
三维人脸合成模块:用于将待合成的单张照片输入所述复合生成对抗网络模型,得到自动生成的人脸三维模型。
本发明相对于现有技术具有以下有益效果:
1)本发明将人脸样本库中每组样本数据中的人脸三维模型和多个局部三维模型叠加处理,将叠加结果作为对应样本的标签,即采用了2级核对比较方式,第1级为人脸整体核对,第2级为局部器官核对,通过2级样本训练来构建复合生成对抗网络模型,可提升人脸三维构建的真实还原度。
2)本发明基于复合生成对抗网络模型可通过单张人脸照片自动生成完整的人脸三维模型,降低了三维模型自动合成难度,可运用于实时的三维模型生成。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于单张照片的人脸三维模型自动构建方法流程示意图;
图2为本发明提供的一种基于单张照片的人脸三维模型自动构建系统结构示意图。
具体实施方式
下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
本发明基于生成对抗网络(GAN,Generative Adversarial Networks)技术,通过一系列改进技术及优化算法,实现了基于单张二维人脸照片合成完整的人脸三维模型的全过程方法。本发明实施例中,以1920X1014分辨率的摄像头采集人脸正面模型,采用商用激光扫描仪完成人脸三维数据的采集。符合生成对抗网络框架的硬件环境为:CPU为Intel-i9、显卡为2080Ti、内存32G;软件环境为:Ubuntu18.04操作系统、Tensorflow2.0深度学习框架。整个系统以软件的方式实现。
请参阅图1,本发明提供的一种基于单张照片的人脸三维模型自动构建方法流程示意图,上述方法包括
S1、人脸样本采集。采集多个人脸正面照片和对应的人脸三维模型,并进行一致性校验;
具体的,可通过摄像头拍摄人脸正面照片,通过激光雷达扫描工具,获取格式为LAS格式的人脸三维数据;
由于人脸正面图片和人脸三维模型,分别采用不同的传感器采集,因此需要校验两者采集的效果是否一致,校验方法为:
通过软件,将采集到的LAS格式人脸三维模型,取其正面平视图,生成正面投影图;
将摄像头拍摄的人脸正面照片做二值化处理;
将二值化处理后的人脸正面照片和人脸三维模型的正面投影图分别做滤波处理,调整阈值,使滤波后的图像包含主要的轮廓信息;
比较人脸正面照片和三维正面投影图滤波后的轮廓的相似度,具体可通过重叠差分法计算;
若相似度高于预设阈值,则此组数据采集有效,可以为后续样本库所用;否则该组样本无效,应重新采集;
采集到的数据校验通过后,将作为一组数据(具有相同的编号)存储。
S2、人脸三维样本拆解。将采集到的人脸三维模型拆分为多个局部三维模型;
所述局部三维模型包括人脸的眼睛、鼻子、嘴巴、耳朵、头发、眉毛等6个部分对应的三维模型,具体实现方法为:
根据头发和眉毛的颜色特征,分别提取头发部分和眉毛部分的三维模型,并单独保存;本实施例中可采用AutoCAD软件分别提取头发部分和眉毛部分的三维模型。
分别提取眼睛、鼻子、嘴巴和耳朵4个器官的三维模型,并单独保存;
为避免局部模型提取错误,如出现单独提取的部分重叠,将6个单独保存的局部三维模型重新组合,进行拓扑分析,看是否有重叠部分,若有重叠部分,重新提取局部三维模型,直到各个局部三维模型无重叠。
S3、人脸样本库构建。分别将同一人脸对应的人脸正面照片、人脸三维模型、多个局部三维模型作为一组样本数据并进行预处理后保存,得到人脸样本库;
该步骤用于将前述步骤采集到的有效数据,整理成符合后续生成对抗网络训练所需的样本集。由于每组数据(对应于同一人脸)包含人脸正面照片、人脸三维模型、6个局部模型,因此数据量较多,需要对数据做适当的预处理,便于后续模型训练的效率提升,加速模型拟合,具体过程为:
由于本发明通过激光雷达扫描获取的三维人脸模型为不带颜色信息的点云格式,因此和其匹配的摄像头采集的人脸正面照片,也无需使用色彩信息;同时也无需使用到点的灰度信息,只用二值信息即可:1表示该像素点有值,0表示无;
将摄像头采集的人脸正面照片,转换为二值空间,转换后的照片无色彩信息、也无灰度信息(无明暗、深浅区别);
将三维模型的LAS格式,转换为便于读取与计算的OBJ格式;
将人脸正面图片以二维矩阵的形式保存,将三维人脸模型和局部模型以三维矩阵的形式保存。
S4、人脸关键点校准。对人脸样本库中的每组数据进行人脸关键点校准;
基于三维矩阵形式存储的人脸三维模型和局部模型数据,读取其在人脸平面两个方向(两个维度)的信息,而去掉与人脸平面垂直的第三维信息;
保存去掉了第三维信息的人脸模型和局部模型的二维矩阵;
在上述两步操作过程中,若剩下的两维信息中出现坐标相同的点,则做合并处理;
将读取出的人脸二维矩阵和局部二维矩阵与人脸正面照片的二维矩阵做比对,根据需要可采用人工目视比对的方式,实现样本入库前的最后检查;
若比对差异较大,则重复上述所有步骤,重新逐步准备样本数据;
若比对结果满足后续训练要求,则比对成功,将同一人脸所对应的人脸正面照片的二维矩阵、人脸三维模型及多个局部三维模型对应的三维矩阵作为一组样本保存至人脸样本库。
S5、复合生成对抗网络构建。构建CGAN模型,将人脸样本库中每组样本数据中的人脸三维模型和多个局部三维模型叠加处理,将叠加结果作为对应样本的标签,训练所述CGAN模型得到复合生成对抗网络模型;
生成对抗网络的模型训练,是最耗时耗力的过程,另一方面,由于需要分别训练整体模型和局部模型,因此若每个单独训练,总共要为7个模型训练7次,训练周期过长。本发明所述的复合生成对抗网络可较好的解决这个问题,本发明为提升人脸三维构建的真实还原度,采用了2级核对比较方式,第1级为人脸整体核对,第2级为局部器官核对,通过2级样本训练来构建符合生成对抗网络框架。
具体的,传统的神经网络训练过程,样本和样本标签一一对应,传统的生成对抗网络“样本标签”可以为单独的一幅图像。本发明的三维模型构建的三维矩阵也可以作为一个“样本标签”,本发明优化了传统的生成对抗网络,通过拓展样本标签的方式实现,主要方法为:
为构建复合生成对抗网络,需要将多个样本标签“合并”,合并方法为将7个三维矩阵(1个对应人脸整体三维模型,另外6个对应人脸局部三维模型)做叠加处理;采用线性叠加的方式,将人脸三维模型对应的三维矩阵和局部三维模型对应的三维矩阵中的每个元素值叠加,每个对应位置叠加后的结果为:
x′=a1x1+a2x2+a3x3+a4x4+a5x5+a6x6+a7x7+b
其中,xn为每个三维矩阵中对应位置元素的值,n=1,2,3,4,5,6,7,an为生成对抗网络CGAN可训练的参数,b为可训练偏移量;
采用上述公式将三维矩阵各个对应位置叠加,得到新的三维矩阵X,矩阵中每个位置的值均有上述公式计算而来;将X作为对应的样本标签用于后续的模型训练。
构建条件CGAN模型,同时修改模型输入参数,将原先随机变量的输入,拓维为二维图像输入,同时将输出图像拓展到三维空间,转变为三维矩阵,以匹配样本库设计;
基于人脸样本库,以人脸正面照片为输入,结合对应的样本标签X,以完成训练过程,生成复合生成对抗网络,实现“单张照片到人脸三维模型”的转换。
S6、三维人脸合成。将待合成的单张照片输入所述复合生成对抗网络模型,得到自动生成的人脸三维模型。
当需要运用模型生成新的照片时,首先将单张人脸正面照片输入模型;
模型输出为复合的三维矩阵,因此得采用逆序步骤,由对应的x′的值,以及训练得到的以及训练得到的a1、a2、a3、a4、a5、a6、a7、b的值,反向计算a1、a2、a3、a4、a5、a6、a7的值;
由所述的a1、a2、a3、a4、a5、a6、a7值得到生成的人脸三维模型矩阵和生成的各局部特征的三维模型矩阵;
通过三维矩阵还原为三维图像,完成最终的生成过程。
与上述方法实施例相对应,本发明还提出一种基于单张照片的人脸三维模型自动构建系统,请参阅图2,所述系统包括:
人脸样本采集模块10:用于采集多个人脸正面照片和对应的人脸三维模型,并进行一致性校验;
人脸三维样本拆解模块20:用于将采集到的人脸三维模型拆分为多个局部三维模型;
人脸样本库构建模块30:用于分别将同一人脸对应的人脸正面照片、人脸三维模型、多个局部三维模型作为一组样本数据并进行预处理后保存,得到人脸样本库;
人脸关键点校准模块40:用于对人脸样本库中的每组数据进行人脸关键点校准;
复合生成对抗网络构建模块50:用于构建CGAN模型,将人脸样本库每组样本数据中的人脸三维模型和多个局部三维模型叠加处理,将叠加结果作为对应样本的标签,训练所述CGAN模型得到复合生成对抗网络模型;
三维人脸合成模块60:用于将待合成的单张照片输入所述复合生成对抗网络模型,得到自动生成的人脸三维模型。
本发明的方法实施例和系统实施例是一一对应的,系统实施例简述之处请参阅方法实施例即可,不再赘述。
专业人员可以进一步意识到,结合本文中所公开的实施例描述的示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。