掌桥专利:专业的专利平台
掌桥专利
首页

图像生成方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 18:37:28


图像生成方法、装置、电子设备及存储介质

技术领域

本申请属于图像处理技术领域,具体涉及一种图像生成方法、装置、电子设备及存储介质。

背景技术

随着计算机技术的发展,近年来图像处理领域技术也得到了长足的发展,其中合成不同视角下的虚拟对象领域是一个重要分支,低成本的编辑和合成不同视角下逼真的虚拟对象对于2D虚拟对象合成领域而言十分重要,3D虚拟对象合成是基于神经网络对虚拟对象对应的编码向量进行编辑的一种做法,在进行3D虚拟对象合成的过程中,需要保证多视角一致性和身份保持性,即保证虚拟对象在任意视角下都是同样的结构,且在不同视角下虚拟对象不发生变化。例如以人脸为例,要保证生成的人脸在任意视角下都是同样的结构,且在不同的视角下均是同一个人。但是目前的模型渲染生成3D虚拟对象的过程中,经常会出现视角不一致的问题,因此,如何解决视角不一致的问题,就成为技术人员亟待解决的问题。

发明内容

鉴于上述问题,本申请提出了一种图像生成方法、装置、电子设备以及存储介质,以实现改善上述问题。

第一方面,本申请实施例提供了一种图像生成方法,所述方法包括:获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格;获取所述多个人脸三角网格各自对应的多个采样点;分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量;将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

第二方面,本申请实施例提供了一种图像生成装置,所述装置包括:网格获取单元,用于获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格;采样单元,用于获取所述多个人脸三角网格各自对应的多个采样点;图像生成单元,用于分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量;拼接单元,用于将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

第三方面,本申请实施例提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。

本申请实施例提供了一种图像生成方法、装置、电子设备及存储介质。首先获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格,然后获取多个人脸三角网格各自对应的多个采样点,并分别将多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取人脸生模型输出的多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量,最后将多个人脸三角网格各自对应的渲染图像进行拼接,得到人脸图像对应的目标渲染图像。通过上述方法,分别通过局部人脸三角网格生成局部人脸部位对应的渲染图像,从而再将生成的局部人脸部位对应的渲染图像进行拼接得到目标渲染图像,可以使得生成的目标渲染图像与真实人脸分布对应,使得生成的目标渲染图像可以更接近真实图像,提高了生成图像的可控性和一致性。

附图说明

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

图1示出了本申请一实施例提出的一种图像生成方法的应用场景示意图;

图2示出了本申请一实施例提出的一种图像生成方法的应用场景示意图;

图3示出了本申请一实施例提出的一种图像生成方法的流程图;

图4示出了本申请另一实施例提出的一种图像生成方法的流程图;

图5示出了本申请又一实施例提出的一种图像生成方法的流程图;

图6示出了本申请实施例提出的一种图像生成装置的结构框图;

图7示出了本申请实施例提出的一种图像生成装置的结构框图;

图8示出了本申请实时中的用于执行根据本申请实施例的图像生成方法的电子设备或服务器的结构框图;

图9示出了本申请实时中的用于保存或者携带实现根据本申请实施例的图像生成方法的程序代码的存储单元。

具体实施方式

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

随着计算机技术的发展,近年来图像处理领域技术也得到了长足的发展,其中合成不同视角下的虚拟对象领域是一个重要分支,低成本的编辑和合成不同视角下逼真的虚拟对象对于2D虚拟对象合成领域而言十分重要,3D虚拟对象合成是基于神经网络对虚拟对象对应的编码向量进行编辑的一种做法,在进行3D虚拟对象合成的过程中,需要保证多视角一致性和身份保持性,即保证虚拟对象在任意视角下都是同样的结构,且在不同视角下虚拟对象不发生变化。例如以人脸为例,要保证生成的人脸在任意视角下都是同样的结构,且在不同的视角下均是同一个人。

但是,发明人在对相关的图像生成方法的研究中发现,相关的图像生成方法在生成人脸图像时,依赖于音频、拼接人脸图像以及侧脸图像,但是,生成人脸图像时一般会希望生成的人脸是可控的,而且能够生成多角度一致性的人脸图像。即基于某个输入,可以大概知道生成的人脸图像是什么形状的,并且可以生成不同视角下具有高一致性的同一个ID的人脸图像。通过前述方法生成的人脸图像的可控性和一致性没办法保证。

因此,发明人提出了本申请中的图像生成方法、装置、电子设备及存储介质。首先获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格,然后获取多个人脸三角网格各自对应的多个采样点,并分别将多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取人脸生模型输出的多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量,最后将多个人脸三角网格各自对应的渲染图像进行拼接,得到人脸图像对应的目标渲染图像。通过上述方法,分别通过局部人脸三角网格生成局部人脸部位对应的渲染图像,从而再将生成的局部人脸部位对应的渲染图像进行拼接得到目标渲染图像,可以使得生成的目标渲染图像与真实人脸分布对应,使得生成的目标渲染图像可以更接近真实图像,提高了生成图像的可控性和一致性。

在本申请实施例中,所提供的图像生成方法可以由电子设备执行。在由电子设备执行的这种方式中,本申请实施例提供的图像生成方法中所有步骤可以均由电子设备执行。例如,如图1所示,通过电子设备100的处理器执行获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格;获取所述多个人脸三角网格各自对应的多个采样点;分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量;将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

再者,本申请实施例提供的图像生成方法也可以由服务器(云端)进行执行。对应的,在由服务器执行的这种方式中,可以由电子设备获取人脸图像对应的多个人脸三角网格,并将多个人脸三角网格同步发送给服务器,然后由服务器实时的获取所述多个人脸三角网格各自对应的多个采样点;分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量;将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

另外,还可以由电子设备和服务器协同执行。在由电子设备和服务器协同执行的这种方式中,本申请实施例提供的图像生成方法中的部分步骤由电子设备执行,而另外部分的步骤则由服务器来执行。

示例性的,如图2所示,电子设备100可以执行图像生成方法包括的:获取人脸图像对应的多个人脸三角网格;获取所述多个人脸三角网格各自对应的多个采样点;然后由服务器200来执行分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量;将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

需要说明的是,在由电子设备和服务器协同执行的这种方式中,电子设备和服务器分别执行的步骤不限于上述示例中所介绍的方式,在实际应用中,可以根据实际情况动态的调整电子设备和服务器分别执行的步骤。

需要说明的是,该电子设备100除了可以为图1和图2中所示的智能手机外,还可以为车机设备、可穿戴设备、平板电脑、笔记本电脑、智能音箱等。服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。

下面将结合附图具体描述本申请的各实施例。

请参阅图3,本申请实施例提供的一种图像生成方法,应用于如图1或图2所示的电子设备或服务器,所述方法包括:

步骤S110:获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格。

在本申请实施例中,人脸三角网格也称为3D Mesh,是指表征人脸的3维拓扑结构的网格图,3维拓扑结构可以通过对人脸图像进行三角剖分得到。人脸三角网格由多个顶点信息和三角面信息组成,其中,三角面为每3个顶点组成的三角形面,顶点信息包括每个顶点的坐标,每个顶点的坐标可以表示为(x,y,z)。

目标人脸三角网格为与人脸图像对应的完整的人脸三角网格。多个局部人脸三角网格为对目标人脸三角网格进行切分得到的与每一个人脸部位对应的人脸三角网格。其中,在对目标人脸三角网格进行切分时,可以按照人脸图像中包括的目标人脸的人脸部位对应的人脸关键点进行切分。其中,人脸部位主要指的是目标人脸的五官,比如,嘴部、左眼、鼻子、右眼、耳朵、眉毛等。

作为一种方式,在得到人脸图像对应的目标人脸三角网格后,可以基于目标人脸三角网格中所包括的顶点和人脸关键点的对应关系,从目标人脸三角网格所包括的顶点中确定人脸关键点,从而可以基于人脸关键点对目标人脸三角网格进行切分。

可以知道的是,每一个人脸部位均可以通过多个人脸关键点进行表示,比如嘴部可以通过表征嘴部的人脸关键点进行表示。进而在基于关键点对目标人脸三角网格进行切分时,可以根据每个人脸部位对应的人脸关键点对目标人脸三角网格进行切分,得到多个分别对应每个人脸部位的局部人脸三角网格。可选的,可以基于表示每个人脸部位的多个人脸关键点中每个顶点的坐标来确定切分的每个人脸部位对应的局部人脸三角网格的大小。具体的,可以基于表示每个人脸部位的多个人脸关键点中的最小x坐标、最大x坐标、最小y坐标、最大y坐标、最小z坐标以及最大z坐标来确定每个局部人脸三角网格的大小。

在本申请实施例中,作为一种方式,人脸图像对应的多个人脸三角网格可以为预先存储在预设数据库或云端服务器,在需要获取人脸图像对应的多个人脸三角网格时,可以从预设数据库或云端服务器获取到人脸图像对应的多个人脸三角网格。

作为另一种方式,人脸图像对应的多个人脸三角网格也可以实时获取到,当接收到网格数据获取请求时,通过对人脸图像进行处理,得到该人脸图像对应的目标人脸三角网格,然后对目标人脸三角网格进行切分,得到多个局部人脸三角网格,将目标人脸三角网格和多个局部人脸三角网格一起返回给发送网格数据获取请求的设备。

在本申请实施例中,如何获取到人脸图像对应的多个人脸三角网格的方式也可以为其他的方式,在此不做具体限定。

步骤S120:获取所述多个人脸三角网格各自对应的多个采样点。

在本申请实施例中,多个采样点为获取的人脸图像合成视角点与每个人脸三角网格中所包括的顶点构成的线段上获取的点。其中,人脸图像合成视角点可以为人脸图像的采集点。

由于每个人脸三角网格中均会包括有多个顶点,因此,每个人脸三角网格可以对应有多条线段。在每条线段上获取采样点时,可以在每条线段上获取多个采样点,以得到多个人脸三角网格各自对应的多个采样点。

步骤S130:分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量。

在本申请实施例中,预先训练好的人脸生成模型可以为辐射神经场(NeuralRadiance Fields,NERF)模型。辐射神经场模型用于非显式地将一个复杂的静态场景用一个神经网络来建模。在网络训练完成后,可以从任意角度渲染出清晰的场景图片。

作为一种方式,在得到每个人脸三角网格对应的渲染图像时,可以分别将每个人脸三角网格对应的多个采样点、多个顶点以及预设向量一起输入到预先训练好的人脸生成模型中,进而人脸生成模型可以输出每个人脸三角网格对应的渲染图像。具体的,可以先将目标人脸三角网格对应的多个采样点、目标人脸三角网格所包括的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取人脸生成模型输出的目标人脸三角网格对应的渲染图像;然后再分别将每个人脸部位对应的局部人脸三角网格所包括的顶点、局部人脸三角网格对应的多个采样点以及预设向量输入到预先训练好的人脸生成模型中,获取人脸生成模型输出的每个人脸部位对应的渲染图像。通过分别将每个人脸部位对应的局部人脸三角网格所包括的顶点、局部人脸三角网格对应的多个采样点以及预设向量输入到预先训练好的人脸生成模型中,获取人脸生成模型输出的每个人脸部位对应的渲染图像,可以使得生成的人脸部位对应的渲染图像中的人脸部位严格对应到人脸三角网格上的人脸部位的点位,这样就可以保证生成的渲染图像和人脸三角网格上的结构的对应关系。

进一步的,在本申请实施例中,预设向量为表征皮肤纹理的向量,预设向量可以为从人脸图像中获取的表征人脸图像的皮肤纹理的向量;预设向量也可以为一个随机获取的表征皮肤纹理的向量,比如,可以为表征黑色皮肤纹理的向量;也可以为表征黄色皮肤纹理的向量,在此不做具体限定。

步骤S140:将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

在本申请实施例中,在通过上述方式得到每个人脸部位对应的渲染图像后,将每个人脸部位对应的渲染图像与人脸图像对应的完整的渲染图像进行拼接,得到目标渲染图像。其中,在将每个人脸部位对应的渲染图像与人脸图像对应的完成的渲染图像进行拼接时,将每个人脸部位对应的渲染图像放置在人脸图像对应的完整的渲染图像中的对应人脸部位处。

本申请提供的一种图像生成方法,首先获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格,然后获取多个人脸三角网格各自对应的多个采样点,并分别将多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取人脸生模型输出的多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量,最后将多个人脸三角网格各自对应的渲染图像进行拼接,得到人脸图像对应的目标渲染图像。通过上述方法,分别通过局部人脸三角网格生成局部人脸部位对应的渲染图像,从而再将生成的局部人脸部位对应的渲染图像进行拼接得到目标渲染图像,可以使得生成的目标渲染图像与真实人脸分布对应,使得生成的目标渲染图像可以更接近真实图像,提高了生成图像的可控性和一致性。

请参阅图4,本申请实施例提供的一种图像生成方法,应用于如图1或图2所示的电子设备或服务器,所述方法包括:

步骤S210:将所述人脸图像输入到预先训练好的三维可变形人脸模型,获取所述三维可变形人脸模型输出的所述人脸图像对应的目标人脸三角网格。

在本申请实施例中,三维可变形人脸模型(3D Morphable Models,3DMM):是指一种可以对人脸进行三维重建的模型,3DMM模型可以通过训练人脸图像样本集,找到一组标准正交基,将人脸线性投影至由该正交基组成的向量空间,使每一幅人脸图像都能够由这组标准正交基线性表示,使得每一个三维人脸可以由其他许多幅人脸进行线性组合获得,从而将人脸重建过程转化为利用人脸库中样本的线性组合来表示与输入的人脸图像最为匹配的人脸。

作为一种方式,在获取到人脸图像后,可以直接将获取到的人脸图像输入到预先训练好的三维可变形人脸模型中,进而三维可变形人脸模型可以输出人脸图像中所包括的人脸各自对应的人脸三角网格。

在本申请实施例中,可以通过三维可变形人脸模型得到不同表情和形状的目标人脸三角网格。

步骤S220:基于所述目标人脸三角网格,确定所述人脸图像所包括的人脸部位各自对应的人脸关键点。

作为一种方式,基于所述目标人脸三角网格,确定所述人脸图像所包括的人脸部位各自对应的人脸关键点,包括:将所述目标人脸三角网格输入到预先训练好的人脸关键点检测模型中,获取所述人脸关键点检测模型输出的所述人脸图像所包括的人脸部位各自对应的人脸关键点。

在本申请实施例中,人脸关键点检测也称为人脸关键点检测、定位或者人脸对齐,是指给定人脸图像,定位出人脸面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等。

作为一种方式,可以通过预先训练好的人脸关键点检测模型从三维可变形人脸模型输出的目标人脸三角网格中确定每个人脸部位对应的人脸关键点。比如,人脸关键点检测模型输出的嘴部对应的人脸关键点为20个,鼻子对应的人脸关键点为9个,眼睛对应的人脸关键点为12个(左、右眼各6个人脸关键点),眉毛对应的人脸关键点为10个(左、右眉毛各5个人脸关键点)以及轮廓关键点为17个。

其中,通过不同的训练数据集,训练得到的人脸关键点检测模型检测出的人脸图像对应的人脸关键点的数量可以不同。比如,若人脸关键点检测模型是基于LFPW(LabeledFace Parts in the Wild)数据集训练得到的,那么人脸关键点检测模型输出的人脸图像对应的人脸关键点为29个;若人脸关键点检测模型是基于AFLW(Annotated FacialLandmarks in the Wild)数据集训练得到的,那么人脸关键点检测模型输出的人脸图像对应的人脸关键点检测模型输出的人脸图像对应的人脸关键点为21个;若人脸关键点检测模型是基于300-W(300Faces in-the-Wild Challenge)数据集、MVFW数据集或OCFW数据集训练得到的,那么人脸关键点检测模型输出的人脸图像对应的人脸关键点为68个。

在本申请实施例中,人脸关键点检测模型可以为主动形状模型(Active ShapeModels,ASM)、主动外观模型(Active Appearance Models,AAM)、深度卷积神经网络(DeepConvolutional Network,DCNN)、任务约束的深度卷积网络(Tasks-Constrained DeepConvolutional Network,TCDCN)、多任务级联卷积神经网络(MTCNN,Multi-task CascadedConvolutional Networks)、调整卷积神经网络(Tweaked Convolutional NeuralNetworks,TCNN)以及人脸对齐网络(Deep Alignment Networks,DAN)中的任意一种模型,在此不做具体限定。

作为另一种方式,也可以直接将人脸图像输入到预先训练好的人脸关键点检测模型中,获取所述人脸关键点检测模型输出的人脸图像对应的人脸关键点,进而可以基于人脸关键点检测模型输出的人脸图像对应的人脸关键点,确定人脸图像中每个人脸部位对应的人脸关键点。

可选的,也可以预先建立人脸关键点和人脸三角网格中所包括的顶点的对应关系,进而在通过三维可变形人脸模型得到人脸图像对应的目标人脸三角网格后,可以直接基于预先建立的人脸关键点和人脸三角网格中所包括的顶点的对应关系,从目标人脸三角网格中,确定人脸图像对应的人脸关键点,进一步的,也可以确定每个人脸部位对应的人脸关键点。

步骤S230:基于每个人脸部位对应的所述人脸关键点,从所述目标人脸三角网格中确定每个人脸部位对应的人脸三角网格,以得到所述多个局部人脸三角网格。

在本申请实施例中,基于每个人脸部位对应的人脸关键点,从目标人脸三角网格中确定每个人脸部位对应的局部人脸三角网格。比如,如前述,人脸关键点检测模型输出的嘴部对应的人脸关键点为20个,那么在确定嘴部对应的人脸三角网格时,则可以基于这20个人脸关键点的坐标来确定。

步骤S240:分别获取所述多个人脸三角网格各自对应的多条线段,其中,每个人脸三角网格对应的多条线段为图像采集装置分别与所述多个顶点各自组成的线段。

在本申请实施例中,图像采集装置分别与多个顶点组成线段实际为预设人脸图像合成视角点与多个顶点之间组成的线段。示例性的,若目标人脸三角网格中包括N个顶点,那么图像采集装置会与N个顶点构成N条线段。由于局部人脸三角网格是从目标人脸三角网格中获取的局部人脸三角网格,那么必然局部人脸三角网格与图像采集装置之间构成的线段要少于N条。

步骤S250:分别从每个人脸三角网格对应的多条线段中获取预设数量的点,以得到所述多个人脸三角网格各自对应的多个采样点。

在本申请实施例中,预设数量的点可以预先设置的需要进行采样的点,例如,可以将预设数量的点设置为M个点。即,从每条线段中采样M个点。示例性的,如上述目标人脸三角网格中包括N个顶点,N个顶点分别与图像采集装置之间构成N条线段,若在每条线段上采样M个点,那么得到的目标人脸三角网格对应的多个采样点为N*M个点。

作为一种方式,在每条线段上进行采样时,可以按照预设线段比例来采集点,即,在每条线段的相同位置采样一个点。其中,线段比例为采样点与图像采集装置之间构成的线段与图像采集装置和顶点之间构成的线段的比例。

步骤S260:分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,通过所述人脸生成模型对处于每个人脸部位之内的采样点或顶点进行渲染,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像。

在本申请实施例中,每一个局部人脸三角网格可以对应一个单独的人脸生成模型,即一个人脸生成模型用于生成一个人脸部位对应的渲染图像。示例性的,若人脸图像包括五个人脸部位,那么对应的人脸生成模型有五个,分别将对应人脸部位对应的人脸三角网格所包括的顶点、采样点以及预设向量输入到对应的人脸生成模型,五个人脸生成模型可以同时输出对应的人脸部位对应的渲染图像。

在本申请实施例中,还可以通过一个单独的人脸生成模型来生成人脸图像对应的完整的渲染图像。

作为一种方式,多个用于生成人脸部位对应的渲染图像的人脸图像生成模型和用于生成人脸图像对应的完整的渲染图像的人脸生成模型可以并行执行任务;也可以在用于生成人脸图像对应的完整的渲染图像的人脸生成模型执行完相应任务后,多个用于生成人脸部位对应的渲染图像的人脸图像生成模型再并行执行相应任务,在此不做具体限定。

在本申请实施例中,在通过人脸生成模型生成对应的渲染图像的过程中,人脸生成模型可以先确定每个点是否处于对应的人脸部位之内,若处于,则对该点进行渲染。

其中,在将每个人脸三角网格中所包括的顶点输入到预先训练好的人脸生成模型之前,可以先将每个人脸三角网格中所包括的顶点的坐标进行归一化处理,归一化到-1到1的范围内。

步骤S270:将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

本申请提供的一种图像生成方法,分别通过局部人脸三角网格生成局部人脸部位对应的渲染图像,从而再将生成的局部人脸部位对应的渲染图像进行拼接得到目标渲染图像,可以使得生成的目标渲染图像与真实人脸分布对应,使得生成的目标渲染图像可以更接近真实图像,提高了生成图像的可控性和一致性。

请参阅图5,本申请实施例提供的一种图像生成方法,应用于如图1或图2所示的电子设备或服务器,所述方法包括:

步骤S310:获取训练图像数据集,所述训练数据图像数据集包括多张真实人脸图像和多张渲染人脸图像。

在本申请实施例中,训练图像数据集可以预先存储在预设数据库或云服务器中,当需要获取训练图像数据集时,可以从预设数据库或云服务器中获取到对应的训练图像数据集。

作为一种方式,由于用于生成每个人脸三角网格对应的渲染图像的人脸生成模型可以不同,因此,在训练用于生成不同渲染图像的人脸生成模型的训练图像数据集可以不同。比如,用于生成嘴部对应的局部人脸三角网格对应的渲染图像的模型的训练图像数据集可以包括多张真实嘴部图像和多张渲染嘴部图像。

步骤S320:将所述训练图像数据集输入到初始神经网络中,对所述初始神经网络模型进行迭代训练,直至满足训练结束条件,得到所述人脸生成模型。

作为一种方式,将所述训练图像数据集输入到初始神经网络中,对所述初始神经网络模型进行迭代训练,直至满足训练结束条件,得到所述人脸生成模型,包括:将所述训练图像数据集输入到所述判别器中,对所述判别器进行训练,得到训练好的判别器;基于所述训练好的判别器反梯度训练所述初始神经网络,直至满足训练结束条件,得到所述人脸生成模型。

在本申请实施例中,训练结束条件可以为迭代训练次数达到预设次数,或者,人脸生成模型输出的渲染图像与真实图像的相似度大于预设相似度等,在此不做具体限定。

作为一种方式,将训练数据集中的真实人脸图像和渲染人脸图像作为判别器的训练集,训练判别器,然后将利用训练的判别器反梯度训练初始辐射神经场模型,直至迭代训练次数满足预设次数,确定满足训练结束条件,得到用于生成人脸图像对应的渲染图像的人脸生成模型。

作为另一种方式,将训练数据集中的真实人脸部位图像和渲染人脸部位图像作为判别器的训练集,训练判别器,然后将利用训练的判别器反梯度训练初始辐射神经场模型,直至迭代训练次数满足预设次数,确定满足训练结束条件,得到用于生成人脸部位对应的渲染图像的人脸生成模型。

步骤S330:获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格。

步骤S340:获取所述多个人脸三角网格各自对应的多个采样点。

步骤S350:分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量。

在本申请实施例中,人脸生成模型在生成对应的渲染图像的同时,还可以输出每个人脸部位的人脸关键点信息以及每个人脸部位的mask图像等,在此不做具体限定。

在生成每个人脸部位对应的mask图像时,人脸生成模型是将人脸三角网格中和人脸部位对应的三角面分别渲染到2D图像上,从而得到对应的人脸部位的mask图像。

可选的,分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点、预设向量以及表征预设背景特征的向量输入到预先训练好的人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的带有预设背景的渲染图像。

步骤S360:将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

本申请提供的一种图像生成方法,分别通过局部人脸三角网格生成局部人脸部位对应的渲染图像,从而再将生成的局部人脸部位对应的渲染图像进行拼接得到目标渲染图像,可以使得生成的目标渲染图像与真实人脸分布对应,使得生成的目标渲染图像可以更接近真实图像,提高了生成图像的可控性和一致性。

请参阅图6,本申请实施例提供的一种图像生成装置400,所述装置400包括:

网格获取单元410,用于获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格。

作为一种方式,网格获取单元410具体用于将所述人脸图像输入到预先训练好的三维可变形人脸模型,获取所述三维可变形人脸模型输出的所述人脸图像对应的目标人脸三角网格;基于所述目标人脸三角网格,确定所述人脸图像所包括的人脸部位各自对应的人脸关键点;基于每个人脸部位对应的所述人脸关键点,从所述目标人脸三角网格中确定每个人脸部位对应的人脸三角网格,以得到所述多个局部人脸三角网格。

进一步的,网格获取单元410还用于将所述目标人脸三角网格输入到预先训练好的人脸关键点检测模型中,获取所述人脸关键点检测模型输出的所述人脸图像所包括的人脸部位各自对应的人脸关键点。

采样单元420,用于获取所述多个人脸三角网格各自对应的多个采样点。

作为一种方式,采样单元420具体用于分别获取所述多个人脸三角网格各自对应的多条线段,其中,每个人脸三角网格对应的多条线段为图像采集装置分别与所述多个顶点各自组成的线段;分别从每个人脸三角网格对应的多条线段中获取预设数量的点,以得到所述多个人脸三角网格各自对应的多个采样点。

图像生成单元430,用于分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到人脸生成模型中,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量。

作为一种方式,图像生成单元430,具体用于分别将所述多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,通过所述人脸生成模型对处于每个人脸部位之内的采样点或顶点进行渲染,获取所述人脸生模型输出的所述多个人脸三角网格各自对应的渲染图像。

拼接单元440,用于将所述多个人脸三角网格各自对应的渲染图像进行拼接,得到所述人脸图像对应的目标渲染图像。

请参阅图7,所述装置400还可以包括:

模型训练单元450,用于获取训练图像数据集,所述训练数据图像数据集包括多张真实人脸图像和多张渲染人脸图像;将所述训练图像数据集输入到初始神经网络中,对所述初始神经网络模型进行迭代训练,直至满足训练结束条件,得到所述人脸生成模型。

作为一种方式,模型训练单元450具体用于将所述训练图像数据集输入到所述判别器中,对所述判别器进行训练,得到训练好的判别器;基于所述训练好的判别器反梯度训练所述初始神经网络,直至满足训练结束条件,得到所述人脸生成模型。

需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。

下面将结合图8对本申请提供的一种电子设备或服务器进行说明。

请参阅图8,基于上述的图像生成方法、装置,本申请实施例还提供的另一种可以执行前述图像生成方法的电子设备或服务器800。电子设备或服务器800包括相互耦合的一个或多个(图中仅示出一个)处理器802、存储器804以及网络模块806。其中,该存储器804中存储有可以执行前述实施例中内容的程序,而处理器802可以执行该存储器804中存储的程序。

其中,处理器802可以包括一个或者多个处理核。处理器802利用各种接口和线路连接整个服务器800内的各个部分,通过运行或执行存储在存储器804内的指令、程序、代码集或指令集,以及调用存储在存储器804内的数据,执行服务器800的各种功能和处理数据。可选地,处理器802可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器802可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器802中,单独通过一块通信芯片进行实现。

存储器804可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器804可用于存储指令、程序、代码、代码集或指令集。存储器804可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备或服务器800在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。

所述网络模块806用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络模块806可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块806可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块806可以与基站进行信息交互。

请参考图9,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质900中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质900可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质900包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质900具有执行上述方法中的任何方法步骤的程序代码910的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码910可以例如以适当形式进行压缩。

本申请提供的一种图像生成方法、装置、电子设备以及存储介质,首先获取人脸图像对应的多个人脸三角网格,其中,所述多个人脸三角网格包括目标人脸三角网格和多个局部人脸三角网格,所述多个局部人脸三角网格为基于人脸关键点从所述目标人脸三角网格中得到的每个人脸部位对应的人脸三角网格,然后获取多个人脸三角网格各自对应的多个采样点,并分别将多个人脸三角网格各自对应的多个采样点、每个人脸三角网格对应的多个顶点以及预设向量输入到预先训练好的人脸生成模型中,获取人脸生模型输出的多个人脸三角网格各自对应的渲染图像,其中,所述预设向量为表征皮肤纹理的向量,最后将多个人脸三角网格各自对应的渲染图像进行拼接,得到人脸图像对应的目标渲染图像。通过上述方法,分别通过局部人脸三角网格生成局部人脸部位对应的渲染图像,从而再将生成的局部人脸部位对应的渲染图像进行拼接得到目标渲染图像,可以使得生成的目标渲染图像与真实人脸分布对应,使得生成的目标渲染图像可以更接近真实图像,提高了生成图像的可控性和一致性。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

技术分类

06120115631732