一种虚拟角色捏脸的方法、装置、电子设备及存储介质
技术领域
本公开涉及图像处理
技术领域
,具体而言,涉及一种虚拟角色捏脸的方法、装置、电子设备及存储介质。背景技术
随着计算机技术和移动终端的发展,出现越来越多的角色扮演游戏。为了满足不同玩家的个性化需求,在创建玩家的虚拟角色时,通常会为玩家提供捏脸功能,使得玩家能够根据自己的喜好创建自己喜欢的角色,例如,可以创建跟自己的真实人脸相似的虚拟角色。
相关技术中提供了一种捏脸方案,该方案针对每个用户可以训练一个特定的骨骼点参数回归器,在该个骨骼点参数回归器可以输出相应的骨骼点参数的情况下,可以利用骨骼点参数渲染出游戏角色。由于该捏脸方案采用迭代回归的方式来训练骨骼点参数回归器,训练过程收敛较慢,且需要为不同的用户训练不同的骨骼点参数回归器,费时费力。
发明内容
本公开实施例至少提供一种虚拟角色捏脸的方法、装置、电子设备及存储介质。
第一方面,本公开实施例提供了一种虚拟角色捏脸的方法,所述方法包括:
响应于用户的获取请求,获取所述用户的用户人脸图像;
利用训练好的骨骼点生成网络对所述用户人脸图像进行骨骼点参数提取,得到与所述用户人脸图像对应的骨骼点参数;所述骨骼点生成网络利用用户人脸图像样本、以及基于预设骨骼点参数生成的虚拟人脸图像样本训练得到;
基于所述骨骼点参数进行人脸渲染,得到与所述用户人脸图像对应的虚拟人脸图像。
在一种可能的实施方式中,所述基于所述骨骼点参数进行人脸渲染,得到与所述用户人脸图像对应的虚拟人脸图像,包括:
将所述骨骼点参数输入到预设渲染引擎以便所述预设渲染引擎基于所述骨骼点参数重建出人脸信息;
接收所述预设渲染引擎重建出的人脸信息,并基于所述人脸信息确定与所述用户人脸图像对应的虚拟人脸图像。
在一种可能的实施方式中,所述骨骼点生成网络包括特征提取层和全连接层;所述利用训练好的骨骼点生成网络对所述用户人脸图像进行骨骼点参数提取,得到与所述用户人脸图像对应的骨骼点参数,包括:
将所述用户人脸图像输入到所述骨骼点生成网络包括的特征提取层,得到所述特征提取层输出的图像特征;
将所述特征提取层输出的图像特征输入到所述骨骼点生成网络包括的全连接层,得到所述全连接层输出的骨骼点参数;
基于所述全连接层输出的骨骼点参数,确定与所述用户人脸图像对应的骨骼点参数。
在一种可能的实施方式中,按照如下步骤训练所述骨骼点生成网络:
获取用户人脸图像样本以及基于预设骨骼点参数生成的虚拟人脸图像样本;
利用所述骨骼点生成网络包括的特征提取层分别对所述用户人脸图像样本和虚拟人脸图像样本进行特征提取,得到第一图像样本特征和第二图像样本特征;以及利用所述骨骼点生成网络包括的全连接层对所述第二图像样本特征进行骨骼点参数提取,确定与所述虚拟人脸图像样本对应的预测骨骼点参数;
基于所述第一图像样本特征和所述第二图像样本特征确定第一损失函数值,以及基于所述预设骨骼点参数和所述预测骨骼点参数,确定第二损失函数值;
基于所述第一损失函数值和所述第二损失函数值对所述骨骼点生成网络进行调整,得到训练好的骨骼点生成网络。
在一种可能的实施方式中,还包括域判别网络,所述基于所述第一图像样本特征和所述第二图像样本特征确定第一损失函数值,包括:
将所述第一图像样本特征和所述第二图像样本特征输入到所述域判别网络中,得到所述域判别网络输出的损失函数值;
基于所述域判别网络输出的损失函数值,确定所述第一损失函数值。
在一种可能的实施方式中,所述基于所述第一损失函数值和所述第二损失函数值对所述骨骼点生成网络进行调整,得到训练好的骨骼点生成网络,包括:
判断所述第一损失函数值和所述第二损失函数值对应的损失函数和值是否小于预设阈值;
若否,则对所述骨骼点生成网络以及所述域判别网络中的任意一个或多个网络进行调整,并基于调整后的网络确定调整后的第一损失函数值和第二损失函数值;
直至调整后的第一损失函数值和第二损失函数值对应的损失函数和值小于预设阈值,得到训练好的网络。
在一种可能的实施方式中,所述将所述第一图像样本特征和所述第二图像样本特征输入到所述域判别网络中,得到所述域判别网络输出的损失函数值,包括:
将所述第一图像样本特征输入到所述域判别网络,得到所述域判别网络输出的第一图像类别,并确定所述域判别网络输出的第一图像类别以及用户人脸图像样本指示的第一标注类别之间的第一对比结果;以及,
将所述第二图像样本特征输入到所述域判别网络,得到所述域判别网络输出的第二图像类别,并确定所述域判别网络输出的第二图像类别以及虚拟人脸图像样本指示的第二标注类别之间的第二对比结果;
基于所述第一对比结果和所述第二对比结果,确定所述域判别网络输出的损失函数值。
在一种可能的实施方式中,还包括与所述域判别网络连接的梯度反转层;所述方法还包括:
利用所述梯度反转层对所述域判别网络输出的损失函数值对应的梯度值进行反转,得到反转后的梯度值;
根据所述反转后的梯度值对所述骨骼点生成网络进行调整。
在一种可能的实施方式中,按照如下步骤得到所述虚拟人脸图像样本:
响应于所述用户的输入请求,获取所述用户输入的预设骨骼点参数;
利用预设渲染引擎对所述预设骨骼点参数进行人脸渲染,得到虚拟人脸图像样本。
第二方面,本公开实施例还提供了一种虚拟角色捏脸的装置,所述装置包括:
获取模块,用于响应于用户的获取请求,获取所述用户的用户人脸图像;
生成模块,用于利用训练好的骨骼点生成网络对所述用户人脸图像进行骨骼点参数提取,得到与所述用户人脸图像对应的骨骼点参数;所述骨骼点生成网络利用用户人脸图像样本、以及基于预设骨骼点参数生成的虚拟人脸图像样本训练得到;
渲染模块,用于基于所述骨骼点参数进行人脸渲染,得到与所述用户人脸图像对应的虚拟人脸图像。
第三方面,本公开实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式任一所述的虚拟角色捏脸的方法的步骤。
第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式任一所述的虚拟角色捏脸的方法的步骤。
本公开实施例提供的虚拟角色捏脸的方案,在获取到用户人脸图像的情况下,可以利用训练好的骨骼点生成网络对用户人脸图像进行骨骼点参数提取以得到与用户人脸图像对应的骨骼点参数。骨骼点生成网络作为通用网络,可以是基于用户人脸图像样本以及虚拟人脸图像样本训练得到的,这样,任意真实的用户人脸均可以通过上述骨骼点生成网络提取对应的骨骼点参数,省时省力。
与此同时,上述骨骼点生成网络可以同时学习到用户人脸和虚拟人脸的特征,预设骨骼点参数还可以为用户人脸图像对应的骨骼点参数提供数据支持,进而可以快速的渲染出与用户人脸相似的虚拟人脸图像,捏脸的效率和相似度均较高。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种虚拟角色捏脸的方法的流程图;
图2示出了本公开实施例所提供的一种虚拟角色捏脸的方法的应用示意图;
图3示出了本公开实施例所提供的另一种虚拟角色捏脸的方法的应用示意图;
图4示出了本公开实施例所提供的一种虚拟角色捏脸的装置的示意图;
图5示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,相关技术中提供的捏脸方案,针对每个用户可以训练一个特定的骨骼点参数回归器,在该个骨骼点参数回归器可以输出相应的骨骼点参数的情况下,可以利用骨骼点参数渲染出游戏角色。由于该捏脸方案采用迭代回归的方式来训练骨骼点参数回归器,训练过程收敛较慢,且需要为不同的用户训练不同的骨骼点参数回归器,费时费力。
基于上述研究,本公开提供了一种虚拟角色捏脸的方法、装置、电子设备及存储介质。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种虚拟角色捏脸的方法进行详细介绍,本公开实施例所提供的虚拟角色捏脸的方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该虚拟角色捏脸的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的虚拟角色捏脸的方法的流程图,方法包括步骤S101~S103,其中:
S101:响应于用户的获取请求,获取用户的用户人脸图像;
S102:利用训练好的骨骼点生成网络对用户人脸图像进行骨骼点参数提取,得到与用户人脸图像对应的骨骼点参数;骨骼点生成网络利用用户人脸图像样本、以及基于预设骨骼点参数生成的虚拟人脸图像样本训练得到;
S103:基于骨骼点参数进行人脸渲染,得到与用户人脸图像对应的虚拟人脸图像。
这里,为了便于理解本公开实施例提供的虚拟角色捏脸的方法,接下来首先对该方法的应用场景进行详细说明。本公开实施例提供的虚拟角色捏脸的方法主要可以应用于游戏技术领域,或者其它具有捏脸需求的相关技术领域。这里以游戏技术领域为例,在游戏用户意图使用虚拟人物进行游戏体检的情况下,往往希望所使用虚拟人物与真人是更为相似的,以进一步提升游戏沉浸感。
为了满足用户的个性化需求,相关技术中提供了相应的捏脸方案,该捏脸方案针对每个用户可以训练一个特定的骨骼点参数回归器,利用这一回归器输出的骨骼点参数来渲染游戏角色。然而,上述捏脸方案采用迭代回归的方式来训练骨骼点参数回归器,训练过程收敛较慢,且需要为不同的用户训练不同的骨骼点参数回归器,费时费力。
正是为了解决上述问题,本公开实施例才提供了一种结合用户人脸图像样本以及预设骨骼点参数生成的虚拟人脸图像样本训练得到的骨骼点生成网络来实现捏脸的方案,由于上述骨骼点生成网络的训练完成满足所输出的目标骨骼点参数与预设骨骼点参数之间的参数匹配程度、以及虚拟人脸图像样本与对应的用户人脸图像样本之间的特征匹配程度满足目标条件,因而可以使得针对用户的用户人脸图像所最终所渲染出来的虚拟人脸图像与用户人脸图像更为相似,且上述骨骼点生成网络作为通用网络,可以快速收敛,整体的捏脸效率也较高。
其中,上述用户人脸图像可以是经过用户授权后所获取的有关用户的人脸图像,这里,可以是用户利用当前手持的用户端拍摄得到的人脸图像,也可以是预先保存在用户端的人脸图像,本公开实施例对此不做具体的限制。
这里的骨骼点生成网络可以是基于用户人脸图像样本以及虚拟人脸图像样本训练得到的,也即,上述生成网络可以同时学习有关真实的用户人脸的特征以及虚拟人脸的特征,从而通过特征的一致性来约束真实人脸(对应用户人脸)与最终捏脸得到的虚拟人脸之间的相似度,此外,这里的虚拟人脸图像样本可以是基于预设骨骼点参数生成的,这样,基于骨骼点参数之间的参数匹配度可以确定利用骨骼点生成网络所得到的与用户人脸图像对应的骨骼点参数,进一步实现在较快捏脸效率的情况下,得到与真实人脸更为相似的虚拟人脸。
本公开实施例中,基于与用户人脸图像对应的骨骼点参数,可以得到与用户人脸图像对应的虚拟人脸图像。具体可以通过如下步骤来确定:
步骤一、将骨骼点参数输入到预设渲染引擎以便预设渲染引擎基于骨骼点参数重建出人脸信息;
步骤二、接收预设渲染引擎重建出的人脸信息,并基于人脸信息确定与用户人脸图像对应的虚拟人脸图像。
这里,可以利用预设渲染引擎实现人脸渲染。在游戏技术领域中,上述预设渲染引擎可以是游戏引擎,利用这一引擎可以将输入的骨骼点参数重建出人脸信息。这里的人脸信息可以对应的三维人脸模型,该三维人脸模型可以是基于各个骨骼点的相关参数所确定的,在确定用户人脸图像对应的骨骼点参数的情况下,基于对应的参数值可以确定三维人脸模型,进而可以通过三维空间值二维空间的转换关系,确定渲染出的虚拟人脸图像。
本公开实施例中的骨骼点生成网络可以包括特征提取层和全连接层,前者用于进行特征提取,后者用于生成骨骼点参数,具体可以通过如下步骤来实现:
步骤一、将用户人脸图像输入到骨骼点生成网络包括的特征提取层,得到特征提取层输出的图像特征;
步骤二、将特征提取层输出的图像特征输入到骨骼点生成网络包括的全连接层,得到全连接层输出的骨骼点参数;
步骤三、基于全连接层输出的骨骼点参数,确定与用户人脸图像对应的骨骼点参数。
这里,可以先将用户人脸图像输入到特征提取层,以提取出图像特征,在将该图像特征输入到全连接层的情况下,可以确定出与用户人脸图像对应的骨骼点参数。
需要说明的是,本公开实施例中的特征提取层可以是由四个残差卷积模块组成的。全连接层可以是一层,也可以是多层,这里可以结合不同的训练目的设置不同层数的全连接层,例如,可以设置三层全连接层。
为了便于理解上述骨骼点参数的确定过程,可以结合图2进一步进行说明。
如图2所示,对于获取的用户人脸图像(即真实人脸图像)而言,在通过骨骼点生成网络包括的特征提取层的情况下,可以确定特征提取层输出的图像特征,将该图像特征输入到顺序连接的三个全连接层,可以得到与用户人脸图像对应的骨骼点参数。可见,这里的全连接层映射的是图像特征与骨骼点参数之间的对应关系。
考虑到骨骼点生成网络的训练过程是实现虚拟角色捏脸的关键步骤,接下来可以对这一训练过程进行具体说明。
本公开实施例提供的虚拟角色捏脸的方法可以通过如下步骤训练骨骼点生成网络:
步骤一、获取用户人脸图像样本以及基于预设骨骼点参数生成的虚拟人脸图像样本;
步骤二、利用骨骼点生成网络包括的特征提取层分别对用户人脸图像样本和虚拟人脸图像样本进行特征提取,得到第一图像样本特征和第二图像样本特征;以及利用骨骼点生成网络包括的全连接层对第二图像样本特征进行骨骼点参数提取,确定与虚拟人脸图像样本对应的预测骨骼点参数;
步骤三、基于第一图像样本特征和第二图像样本特征确定第一损失函数值,以及基于预设骨骼点参数和预测骨骼点参数,确定第二损失函数值;
步骤四、基于第一损失函数值和第二损失函数值对骨骼点生成网络进行调整,得到训练好的骨骼点生成网络。
本公开实施例中,骨骼点生成网络的训练过程与应用过程相同的是,均需要骨骼点生成网络包括的特征提取层进行特征的提取以及骨骼点生成网络包括的全连接层进行骨骼点参数的生成。
与应用过程中,直接对单张用户人脸图像进行骨骼点参数的确定不同的是,在训练过程中可以是针对虚拟人脸所对应的骨骼点参数的确定,这主要是考虑到直接对用户人脸图像进行骨骼点参数的确定的难度较高,往往需要专业美术人员通过调节几百个参数来捏出一个像真实人脸的游戏人脸,针对一张图片需要花费大概一个小时以上的时间,而针对虚拟人脸图像而言,可以利用用户输入的预设骨骼点参数以及预设渲染引擎来生成,省时省力。另外,可以将预设骨骼点参数作为全连接层输出的预测骨骼点参数的参考信息,通过参数匹配度来训练骨骼点生成网络。
为了使得虚拟人脸与真实人脸的逼近,这里,可以通过第一图像特征(对应用户人脸图像样本的特征)和第二图像特征(对应虚拟人脸图像样本的特征)之间的特征一致性来约束骨骼点生成网络的训练。
其中,上述特征一致性可以对应的是第一损失函数值,参数匹配度可以对应的是第二损失函数值,通过两个损失函数值共同调整骨骼点生成网络,以得到训练好的骨骼点生成网络。
本公开实施例中,上述第一损失函数值的确定可以是基于域判别网络实现的,具体可以通过如下步骤来实现:
步骤一、将第一图像样本特征和第二图像样本特征输入到域判别网络中,得到域判别网络输出的损失函数值;
步骤二、基于域判别网络输出的损失函数值,确定第一损失函数值。
本公开实施例中,可以按照如下步骤确定域判别网络输出的损失函数值:
步骤一、将第一图像样本特征输入到域判别网络,得到域判别网络输出的第一图像类别,并确定域判别网络输出的第一图像类别以及用户人脸图像样本指示的第一标注类别之间的第一对比结果;以及,将第二图像样本特征输入到域判别网络,得到域判别网络输出的第二图像类别,并确定域判别网络输出的第二图像类别以及虚拟人脸图像样本指示的第二标注类别之间的第二对比结果;
步骤二、基于第一对比结果和第二对比结果,确定域判别网络输出的损失函数值。
这里,假设用户人脸图像样本指示的第一标注类别的标签为0,虚拟人脸图像样本指示的第二标注类别的标签为1,优化第一损失函数值的目的在于使得真实人脸的特征通过域判别网络后能预测为0,虚拟人脸的特征通过域判别网络后能预测为1。可知的是,第一图像类别与第一标注类别越接近,且第二图像类别与第二标注类别越接近,上述损失函数值即越小。
本公开实施例提供的虚拟角色捏脸的方法可以基于第一损失函数值和第二损失函数值对骨骼点生成网络进行调整,具体包括如下步骤:
步骤一、判断第一损失函数值和第二损失函数值对应的损失函数和值是否小于预设阈值;
步骤二、若否,则对骨骼点生成网络以及域判别网络中的任意一个或多个网络进行调整,并基于调整后的网络确定调整后的第一损失函数值和第二损失函数值;
步骤三、直至调整后的第一损失函数值和第二损失函数值对应的损失函数和值小于预设阈值,得到训练好的网络。
这里,基于损失函数值和值与预设阈值的比较结果可以确定网络调整策略,例如,仅调整骨骼点生成网络,或者,仅调整域判别网络,或者既调整前一个网络,又调整后一个网络,直至在损失函数和值足够小的情况下,各个网络达到收敛。
需要说明的是,在进行骨骼点生成网络调整的过程中,可以是针对骨骼点生成网络中包括的特征提取层的调整,还可以是针对全连接层的调整,这里可以结合不同的训练需求进行适应选取,在此不做具体的限制。
为了便于说明有关网络的训练过程,这里结合图3进一步进行说明:
如图3所示,输入为真实人脸图像样本(对应用户人脸图像样本)和虚拟人脸图像样本,在经过骨骼点生成网络包括的特征提取层的情况下,可以确定与用户人脸图像样本对应的第一图像样本特征以及与虚拟人脸图像样本对应的第二图像样本特征。
将第一图像样本特征和第二图像样本特征输入到域判别网络中,得到域判别网络输出的损失函数值,作为第一损失函数值。除此之外,经过骨骼点生成网络包括的后两个全连接层可以确定预测骨骼点参数,基于预设骨骼点参数和预测骨骼点参数,可以确定第二损失函数值。
基于上述第一损失函数值和第二损失函数值可以进行有关网络的训练。
考虑到本公开实施例提供的虚拟角色捏脸的方法旨在生成与真实人脸更为相似的虚拟人脸的技术目的,这里,可以利用梯度反转层实现对抗学习以使得骨骼点生成网络无法区别真实人脸和虚拟人脸,从而便于后续利用骨骼点生成网络对待处理的用户人脸图像进行骨骼点参数的提取。
本公开实施例中的梯度反转层可以与域判别网络相连接。利用梯度反转层对域判别网络输出的损失函数值对应的梯度值进行反转,得到反转后的梯度值,根据反转后的梯度值对骨骼点生成网络进行调整。
可知的是,通过梯度反转层的作用,真实人脸的特征会被预测为来自虚拟人脸,虚拟人脸的特征会被预测为来自真实人脸,从而达到使得真实人脸的特征和虚拟人脸的特征趋于一致的目的。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与虚拟角色捏脸的方法对应的虚拟角色捏脸的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述虚拟角色捏脸的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本公开实施例提供的一种虚拟角色捏脸的装置的示意图,装置包括:获取模块401、生成模块402、渲染模块403;其中,
获取模块401,用于响应于用户的获取请求,获取用户的用户人脸图像;
生成模块402,用于利用训练好的骨骼点生成网络对用户人脸图像进行骨骼点参数提取,得到与用户人脸图像对应的骨骼点参数;骨骼点生成网络利用用户人脸图像样本、以及基于预设骨骼点参数生成的虚拟人脸图像样本训练得到;
渲染模块403,用于基于骨骼点参数进行人脸渲染,得到与用户人脸图像对应的虚拟人脸图像。
本公开实施例,在获取到用户人脸图像的情况下,可以利用训练好的骨骼点生成网络对用户人脸图像进行骨骼点参数提取以得到与用户人脸图像对应的骨骼点参数。骨骼点生成网络作为通用网络,可以是基于用户人脸图像样本以及虚拟人脸图像样本训练得到的,这样,任意真实的用户人脸均可以通过上述骨骼点生成网络提取对应的骨骼点参数,省时省力。
与此同时,上述骨骼点生成网络可以同时学习到用户人脸和虚拟人脸的特征,预设骨骼点参数还可以为用户人脸图像对应的骨骼点参数提供数据支持,进而可以快速的渲染出与用户人脸相似的虚拟人脸图像,捏脸的效率和相似度均较高。
在一种可能的实施方式中,渲染模块403,用于按照以下步骤基于骨骼点参数进行人脸渲染,得到与用户人脸图像对应的虚拟人脸图像:
将骨骼点参数输入到预设渲染引擎以便预设渲染引擎基于骨骼点参数重建出人脸信息;
接收预设渲染引擎重建出的人脸信息,并基于人脸信息确定与用户人脸图像对应的虚拟人脸图像。
在一种可能的实施方式中,骨骼点生成网络包括特征提取层和全连接层;生成模块402,用于按照以下步骤利用训练好的骨骼点生成网络对用户人脸图像进行骨骼点参数提取,得到与用户人脸图像对应的骨骼点参数:
将用户人脸图像输入到骨骼点生成网络包括的特征提取层,得到特征提取层输出的图像特征;
将特征提取层输出的图像特征输入到骨骼点生成网络包括的全连接层,得到全连接层输出的骨骼点参数;
基于全连接层输出的骨骼点参数,确定与用户人脸图像对应的骨骼点参数。
在一种可能的实施方式中,还包括训练模块404:
训练模块404,用于按照如下步骤训练骨骼点生成网络:
获取用户人脸图像样本以及基于预设骨骼点参数生成的虚拟人脸图像样本;
利用骨骼点生成网络包括的特征提取层分别对用户人脸图像样本和虚拟人脸图像样本进行特征提取,得到第一图像样本特征和第二图像样本特征;以及利用骨骼点生成网络包括的全连接层对第二图像样本特征进行骨骼点参数提取,确定与虚拟人脸图像样本对应的预测骨骼点参数;
基于第一图像样本特征和第二图像样本特征确定第一损失函数值,以及基于预设骨骼点参数和预测骨骼点参数,确定第二损失函数值;
基于第一损失函数值和第二损失函数值对骨骼点生成网络进行调整,得到训练好的骨骼点生成网络。
在一种可能的实施方式中,还包括域判别网络,训练模块404,用于按照如下步骤基于第一图像样本特征和第二图像样本特征确定第一损失函数值:
将第一图像样本特征和第二图像样本特征输入到域判别网络中,得到域判别网络输出的损失函数值;
基于域判别网络输出的损失函数值,确定第一损失函数值。
在一种可能的实施方式中,训练模块404,用于按照如下步骤基于第一损失函数值和第二损失函数值对骨骼点生成网络进行调整,得到训练好的骨骼点生成网络:
判断第一损失函数值和第二损失函数值对应的损失函数和值是否小于预设阈值;
若否,则对骨骼点生成网络以及域判别网络中的任意一个或多个网络进行调整,并基于调整后的网络确定调整后的第一损失函数值和第二损失函数值;
直至调整后的第一损失函数值和第二损失函数值对应的损失函数和值小于预设阈值,得到训练好的网络。
在一种可能的实施方式中,训练模块404,用于按照如下步骤将第一图像样本特征和第二图像样本特征输入到域判别网络中,得到域判别网络输出的损失函数值:
将第一图像样本特征输入到域判别网络,得到域判别网络输出的第一图像类别,并确定域判别网络输出的第一图像类别以及用户人脸图像样本指示的第一标注类别之间的第一对比结果;以及,
将第二图像样本特征输入到域判别网络,得到域判别网络输出的第二图像类别,并确定域判别网络输出的第二图像类别以及虚拟人脸图像样本指示的第二标注类别之间的第二对比结果;
基于第一对比结果和第二对比结果,确定域判别网络输出的损失函数值。
在一种可能的实施方式中,还包括与域判别网络连接的梯度反转层;训练模块404,还用于:
利用梯度反转层对域判别网络输出的损失函数值对应的梯度值进行反转,得到反转后的梯度值;
根据反转后的梯度值对骨骼点生成网络进行调整。
在一种可能的实施方式中,获取模块401,用于按照如下步骤得到虚拟人脸图像样本:
响应于用户的输入请求,获取用户输入的预设骨骼点参数;
利用预设渲染引擎对预设骨骼点参数进行人脸渲染,得到虚拟人脸图像样本。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种电子设备,如图5所示,为本公开实施例提供的电子设备结构示意图,包括:处理器501、存储器502、和总线503。存储器502存储有处理器501可执行的机器可读指令(比如,图4中的装置中获取模块401、生成模块402、渲染模块403对应的执行指令等),当电子设备运行时,处理器501与存储器502之间通过总线503通信,机器可读指令被处理器501执行时执行如下处理:
响应于用户的获取请求,获取用户的用户人脸图像,以及训练好的骨骼点生成网络;
利用训练好的骨骼点生成网络对用户人脸图像进行骨骼点参数提取,得到与用户人脸图像对应的骨骼点参数;骨骼点生成网络利用用户人脸图像样本、以及基于预设骨骼点参数生成的虚拟人脸图像样本训练得到;
基于骨骼点参数进行人脸渲染,得到与用户人脸图像对应的虚拟人脸图像。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的虚拟角色捏脸的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的虚拟角色捏脸的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种数字摄影测量方法、电子设备及系统