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

一种驱动虚拟人物表情的方法和装置

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及计算机技术领域,尤其涉及一种驱动虚拟人物表情的方法和装置。

背景技术

随着人工智能技术迅速发展,虚拟人物已经是目前市面上非常流行的产品。使用虚拟形象直播进行社交、表演、直播等已经成为目前互联网上的流行趋势。利用自己定制的卡通化虚拟形象作为自己的代言,既能保证每个人都能拥有自己满意的外形,又能很大程度地保护个人隐私,还能实时捕捉人的表情动作,因此受到人们的追捧。虚拟人物的呈现形式多种多样,主要取决于不同的驱动方式,例如语音驱动、文字驱动以及图像驱动等。

目前主流的虚拟形象表情驱动方式是使用表情捕捉技术来驱动虚拟人物,但是采用这种虚拟形象表情驱动方式对网络稳定性和带宽的要求较高,流量消耗较大,如果网络稳定性较低或者带宽较小,便会影响驱动的时效性和流畅性;并且,虚拟人物的表情不够真实自然准确,影响观众体验。

发明内容

有鉴于此,本发明实施例提供一种驱动虚拟人物表情的方法和装置,能够较为真实自然准确的快速驱动虚拟人物,网络消耗量极小,驱动速度快,且泛化性较强。

为实现上述目的,根据本发明实施例的一个方面,提供了一种驱动虚拟人物表情的方法,包括:

获取人脸图像,并对所述人脸图像进行关键点提取以得到人脸关键点;

将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值;

根据所述表情系数值对虚拟人物进行表情驱动。

可选地,对所述人脸图像进行关键点提取包括:通过将所述人脸图像输入到预先训练的人脸关键点识别模型中进行关键点提取,所述人脸关键点识别模型是通过对已进行关键点标注的人脸图像进行训练得到的。

可选地,将所述人脸关键点输入至预先训练的表情系数模型中之前,还包括:将所述人脸图像限制为指定大小的图片,并对所述人脸关键点进行归一化处理。

可选地,对所述人脸关键点进行归一化处理包括:获取人脸关键点的中心点的横坐标和纵坐标,以及人脸图像的高度和宽度;对每个人脸关键点,根据所述人脸关键点的横坐标、中心点的横坐标以及人脸图像的高度和宽度计算所述人脸关键点的归一化横坐标,根据所述人脸关键点的纵坐标、中心点的纵坐标以及人脸图像的高度和宽度计算所述人脸关键点的归一化纵坐标;将所述人脸关键点的中心点平移至指定大小的人脸图像的左上角,以对所述归一化横坐标和所述归一化纵坐标进行平移,完成对所述人脸关键点的归一化处理。

可选地,所述表情系数模型是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;对打标后的人脸图像对应的人脸关键点进行学习以得到所述表情系数模型。

可选地,所述预先训练的表情系数模型包括眨眼表情系数模型和非眨眼表情系数模型;将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值,包括:从所述人脸关键点中提取眼部关键点,并将所述眼部关键点输入至所述眨眼表情系数模型中,得到所述人脸图像对应的眨眼表情系数值;将所述人脸关键点输入至所述非眨眼表情系数模型中,得到所述人脸图像对应的非眨眼表情系数值;根据所述眨眼表情系数值和所述非眨眼表情系数值得到所述人脸图像对应的表情系数值。

可选地,所述眨眼表情系数模型是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;对打标后的人脸图像对应的人脸关键点,从所述人脸关键点中提取眼部关键点,通过深度学习优化算法对所述眼部关键点进行学习得到所述眨眼表情系数模型。

可选地,所述非眨眼表情系数模型是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;将打标后的人脸图像对应的人脸关键点进行坐标格式变换得到方块矩阵,通过深度学习优化算法对所述方块矩阵进行学习以得到所述非眨眼表情系数模型。

可选地,所述非眨眼表情系数模型在训练时,损失函数包括眨眼表情之外的全脸表情对应的第一损失函数和张嘴表情对应的第二损失函数。

可选地,将打标后的人脸图像对应的人脸关键点进行坐标格式变换得到方块矩阵之前,还包括:在打标后的人脸图像对应的人脸关键点的坐标无法直接变换为方块矩阵的情况下,使用0值进行补充,直至由打标后的人脸图像对应的人脸关键点的坐标和所述0值构成的关键点坐标集合,可进行坐标格式变换得到方块矩阵。

根据本发明实施例的另一方面,提供了一种驱动虚拟人物表情的装置,包括:

关键点获取模块,用于获取人脸图像,并对所述人脸图像进行关键点提取以得到人脸关键点;

系数值计算模块,用于将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值;

表情驱动模块,用于根据所述表情系数值对虚拟人物进行表情驱动。

根据本发明实施例的又一方面,提供了一种驱动虚拟人物表情的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的驱动虚拟人物表情的方法。

根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的驱动虚拟人物表情的方法。

上述发明中的一个实施例具有如下优点或有益效果:通过获取人脸图像,并对人脸图像进行关键点提取以得到人脸关键点;将人脸关键点输入至预先训练的表情系数模型中,得到人脸图像对应的表情系数值;根据表情系数值对虚拟人物进行表情驱动的技术方案,通过学习人脸关键点的位置坐标与表情系数模型的对应关系来驱动虚拟人物表情,使虚拟人物模型表现出与真人相同的表情,能够较为真实自然准确的快速驱动虚拟人物,网络消耗量极小,驱动速度快,且泛化性较强。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的驱动虚拟人物表情的方法的主要步骤示意图;

图2是本发明实施例的人脸关键点识别结果示意图;

图3是本发明实施例的对人脸关键点进行归一化处理得到的归一化人脸关键点结果示意图;

图4是本发明实施例的眨眼表情系数模型的网络结构示意图;

图5是本发明实施例的非眨眼表情系数模型的网络结构示意图;

图6是根据本发明实施例的驱动虚拟人物表情的装置的主要模块示意图;

图7是本发明实施例可以应用于其中的示例性系统架构图;

图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本发明技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。

为了解决现有技术中存在的技术问题,本发明提供了一种驱动虚拟人物表情的方法和装置,通过学习人脸关键点的位置坐标与表情系数模型(在本发明的实施例中个,例如为变形器)的对应关系来驱动虚拟人物表情,其中,变形器即blendshape,是指可以驱动3D人物模型的参数,它可以被赋予不同的权重,不同权重决定动作的张合程度。本发明主要基于输入的图像信息学习相应的表情系数模型来驱动模型表情,使模型表现出与真人相同的表情。本发明能够较为真实自然准确的快速驱动虚拟人物,网络消耗量极小,驱动速度快,且泛化性较强。

本发明提供的一种驱动虚拟人物表情的方法,首先通过摄像头获取人脸图像,通过表情系数模型输出表情系数值作为表情控制参数,进而驱动虚拟人物3D模型进行表情展示。

图1是根据本发明实施例的驱动虚拟人物表情的方法的主要步骤示意图。如图1所示,本发明实施例的驱动虚拟人物表情的方法主要包括如下的步骤S101至步骤S103。

步骤S101:获取人脸图像,并对所述人脸图像进行关键点提取以得到人脸关键点。根据本发明的技术方案,可以通过摄像头获取人物照片,并进行处理得到人脸图像,例如从人物照片中进行目标检测并抠图以得到人脸图像。之后,对人脸图像进行关键点提取已得到人脸关键点。其中,在进行关键点提取时,可以基于已存在的人脸关键点识别模型来进行提取。在得到人脸关键点之后,即可获取每个人脸关键点对应的坐标值,包括横坐标x和纵坐标y。后续在对人脸关键点进行处理运算时,均是针对人脸关键点的坐标值来进行的。

在本发明的一个实施例中,在对所述人脸图像进行关键点提取时,其实现原理例如是:通过将所述人脸图像输入到预先训练的人脸关键点识别模型中进行关键点提取,所述人脸关键点识别模型是通过对已进行关键点标注的人脸图像进行训练得到的。人脸关键点识别模型是一种深度学习模型,为了满足模型的泛华性,可以收集多个人的人脸图片,通过标注每个人脸图片的关键点形成训练数据集,然后通过深度学习来训练到人脸关键点识别模型。图2是本发明实施例的人脸关键点识别结果示意图。在本发明的实施例中,通过人脸关键点识别模型识别得到的人脸关键点如图2中所示,在该实施例中,可选择一个300点的人脸关键点识别模型来进行人脸关键点提取,共提取300个人脸关键点,结合其横坐标x和纵坐标y共有600个坐标值。

步骤S102:将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值。表情系数模型用于根据人脸关键点来获取人脸表情,进而生成用于驱动虚拟人物表情的表情系数值。

根据本发明的一个实施例,在将所述人脸关键点输入至预先训练的表情系数模型中之前,还包括:将所述人脸图像限制为指定大小的图片,并对所述人脸关键点进行归一化处理。通过对人脸关键点进行归一化处理,可以便于进行后续数据处理,简化模型复杂度,提高模型运行效率。

根据本发明实施例的技术方案,对所述人脸关键点进行归一化处理具体可以包括:获取人脸关键点的中心点的横坐标和纵坐标,以及人脸图像的高度和宽度;对每个人脸关键点,根据所述人脸关键点的横坐标、中心点的横坐标以及人脸图像的高度和宽度计算所述人脸关键点的归一化横坐标,根据所述人脸关键点的纵坐标、中心点的纵坐标以及人脸图像的高度和宽度计算所述人脸关键点的归一化纵坐标;将所述人脸关键点的中心点平移至指定大小的人脸图像的左上角,以对所述归一化横坐标和所述归一化纵坐标进行平移,完成对所述人脸关键点的归一化处理。

在本发明的实施例中,记全部人脸关键点的x坐标为x_points,全部人脸关键点的y坐标为y_points,则整个归一化的过程如下:

求解全部人脸关键点的横坐标最小值:

min_x_val=min(x_points) (1)

求解全部人脸关键点的横坐标最大值:

max_x_val=max(x_points) (2)

求解全部人脸关键点的纵坐标最小值:

min_y_val=min(y_points) (3)

求解全部人脸关键点的纵坐标最大值:

max_y_val=max(y_points) (4)

根据横坐标最大值和横坐标最小值得到人脸图像的宽度:

width=max_x_val-min_x_val (5)

根据纵坐标最大值和纵坐标最小值得到人脸图像的高度:

height=max_y_val-min_y_val (6)

求解全部人脸关键点的中心点的横坐标:

mean_x=(max_x_val+min_x_val)/2 (7)

求解全部人脸关键点的中心点的纵坐标:

mean_y=(max_y_val+min_y_val)/2 (8)

所有人脸关键点的横坐标减去中心点的横坐标,更新人脸关键点的横坐标:

x_points=x_points-mean_x (9)

所有人脸关键点的纵坐标减去中心点的纵坐标,更新人脸关键点的纵坐标:

y_points=y_points-mean_y (10)

通过上述的公式(9)和(10)即可把人脸关键点的中心点移到脸部中心;

计算每个人脸关键点的归一化横坐标:

计算每个人脸关键点的归一化纵坐标:

根据上述的公式(11)与(12),通过将人脸关键点的横纵坐标除以人脸图像的高度和宽度的最大值做归一化;再缩放到预先规定好的图像尺寸当中;为了避免出现靠近边缘现象,乘以系数0.9,从而得到了每个人脸关键点的归一化横坐标和归一化纵坐标;

将每个人脸关键点的归一化横坐标进行平移:

x_points=x_points+(m_width/2) (13)

将每个人脸关键点的归一化纵坐标进行平移:

y_points=y_points+(m_height/2) (14)

通过上述的公式(13)和(14),再次将中心点的横纵坐标平移到设定图片的左上角,此时人脸关键点的横坐标值在(0,m_width)之间,纵坐标值在(0,m_height)之间。

图3是本发明实施例的对人脸关键点进行归一化处理得到的归一化人脸关键点结果示意图,其示出了对本发明实施例的人脸关键点进行归一化处理后得到的归一化人脸关键点。其中白色像素在图中的位置就是提取的人脸关键点的坐标值。在本发明的实施例中,可以设定m_width=96,m_height=96,即不同分辨率的图像输入到后续模型中的数值都会被归一化到0-96之间,除以96后,归一化到0-1之间,输入进表情系数模型进行训练,可以降低数据处理的复杂度,提升模型训练效率。

根据本发明的一个实施例,表情系数模型例如是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;对打标后的人脸图像对应的人脸关键点进行学习以得到所述表情系数模型。

在本发明的实施例中,为了满足模型的泛化性,需要捕获多个人的多种表情,全面的捕获各种人的表情才能够使网络学习到更多的表情特征,具体要求录制人员做出例如张嘴、嘟嘴、微笑、眨眼等各种夸张表情,同时也会录制正常讲话状态下的图片,构成人脸图像集合。对于人脸图像集合中的每个人脸图像,都需要进行关键点提取以得到每个人脸图像对应的人脸关键点,其中在进行关键点提取时,可根据步骤S101中所描述的方法来提取,最终得到每个人脸图像对应的人脸关键点。同样地,在进行人脸关键点提取之后,对人脸关键点进行打标之前,还可以对提取的每个人脸图像对应的人脸关键点进行归一化处理,并且对人脸关键点进行归一化处理可根据前述的归一化处理方法来实现。

在学习人脸关键点与表情系数值的对应关系之前,需要使用人脸图像的混合变形值(blendshape值)对人脸图像对应的人脸关键点进行打标。在确定人脸图像的混合变形值时,首先制作训练数据,网络的输入是人脸图片,要求得到的是每张图片对应的blendshape值,blendshape是指单个网格以实现许多预定义形状和任何数量之间组合的技术,在一些动画制作软件例如Maya和3dsMax当中称为变形目标,多种形状混合起来可以表达笑、皱眉、闭眼等表情。目前3DMM(3Dmorphable Model,3D形变模型)领域可以通过单张图片重建相应人物的三维形象,单张图片的人脸重建基于一些特殊格式的三维模型,该类模型含有可更改的顶点坐标使模型达到形变的效果,同时含有可控制面部表情的blendshape值。在本发明的实施例中,可根据前述获取的人脸图像集合中的人脸图像,通过人脸模型重建方法得到每个人脸图像相应的blendshape值。并将模型得到的混合变形值blendshape值作为本发明的人脸图像对应的人脸关键点的标签,对人脸图像对应的人脸关键点进行打标。之后,即可对打标后的人脸图像对应的人脸关键点进行学习以得到表情系数模型。

根据本发明的又一个实施例,预先训练的表情系数模型包括眨眼表情系数模型和非眨眼表情系数模型。其中,眨眼表情系数模型仅用于计算眨眼表情对应的表情系数值,非眨眼表情系数模型用于计算除了眨眼表情之外的其他面部表情对应的表情系数值。在本发明的实施例中,采用分步网络学习不同人脸部位的关系。在驱动虚拟人物表情变化时,张嘴时会影响眼部的变化,因此本发明提出分部位学习人脸关键点与面部表情之间的映射关系。另外,由于正常人在眨一只眼睛时另一只眼睛会稍微闭眼,但是体现在3D模型上不希望这种效果产生,因此本发明提出左右眼睛各自学习相应的表情系数值,以得到眨眼表情系数。也就是说,本发明的眨眼表情系数模型有两个,分别用于计算左眼和右眼的表情系数值。

根据本发明的其中一个实施例,在将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值时,具体可以包括:

从所述人脸关键点中提取眼部关键点,并将所述眼部关键点输入至所述眨眼表情系数模型中,得到所述人脸图像对应的眨眼表情系数值;

将所述人脸关键点输入至所述非眨眼表情系数模型中,得到所述人脸图像对应的非眨眼表情系数值;

根据所述眨眼表情系数值和所述非眨眼表情系数值得到所述人脸图像对应的表情系数值。

具体地,眨眼表情系数模型可以是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;对打标后的人脸图像对应的人脸关键点,从所述人脸关键点中提取眼部关键点,通过深度学习优化算法对所述眼部关键点进行学习得到所述眨眼表情系数模型。其中,在训练眨眼表情系数模型时,仅需对打标后的人脸关键点中与眼部相关的几十个眼部关键点的坐标信息进行学习即可。

图4是本发明实施例的眨眼表情系数模型的网络结构示意图。如图4所示,本发明实施例的眨眼表情系数模型的网络主要应用了三层全连接网络,且在全连接网络中间加入激活(RELU)函数。由于网络的输入参数较少,仅有眼部的几十个关键点坐标信息,因此不需要过多的复杂网络层。在训练眨眼表情系数模型时,损失函数设定为均方损失函数MSE损失函数,模型输出是1*1的控制眨眼的参数权重值,因此loss为如下公式(15),其中y为人脸关键点对应的标签值,y’为预测的表情系数值,

loss=MSE(y,y') (15)。

眨眼表情系数模型的训练方法可选择深度学习优化算法Adam训练方法,其中opt

opt=Adam(opt

根据本发明的实施例,非眨眼表情系数模型是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;将打标后的人脸图像对应的人脸关键点进行坐标格式变换得到方块矩阵,通过深度学习优化算法对所述方块矩阵进行学习以得到所述非眨眼表情系数模型。非眨眼表情系数模型主要学习人脸除眨眼外其他表情映射关系,故而可将人脸关键点全部输入进行网络模型的训练。

其中,在将打标后的人脸图像对应的人脸关键点进行坐标格式变换得到方块矩阵时,若在打标后的人脸图像对应的人脸关键点的坐标无法直接变换为方块矩阵的情况下,使用0值进行补充,直至由打标后的人脸图像对应的人脸关键点的坐标和所述0值构成的关键点坐标集合,可进行坐标格式变换得到方块矩阵。例如,结合前述的实施例,提取的人脸关键点个数为300,结合其横坐标x和纵坐标y共有600个坐标值,其无法直接进行格式转换为方块矩阵,故而需要补充一些0值。具体地,在本发明的实施例中,可以加入300个非人脸关键点(如图3中的黑色像素点)的像素值(黑色像素点的像素值为0),构成关键点坐标集合,从而可以将关键点坐标集合中900个值进行格式转换,得到一个30*30的方块矩阵输入网络,便于网络训练。具体地,可通过python当中的一个函数实现,其原理其实就是将关键点坐标集合中的900个值排成30行30列的方块矩阵,即组成了一张灰度图像,送入到网络当中进行训练。

图5是本发明实施例的非眨眼表情系数模型的网络结构示意图。如图5所示,本发明实施例的非眨眼表情系数模型的输入为全脸的关键点位置坐标。为满足网络输入格式,将关键点坐标信息格式转换reshape成30*30的图片。非眨眼表情系数模型的网络结构中包括卷积层(前5个网络层)和全连接层(后3个网络层),例如,25*8*8代表卷积核尺寸是8*8,个数为25个的卷积层,1*1800代表全连接层参数为1800。网络的输出是一组1*51的向量,该向量即的非眨眼表情系数模型的表情系数值,51个表情系数值分别驱动脸部的51个部位,完成例如张嘴,咧嘴,嘟嘴,闭嘴等动作。在训练非眨眼表情系数模型时,通过利用MSE作为损失函数,并且利用Adam优化方法进行参数更新,其中,非眨眼表情系数模型的训练方法与眨眼表情系数模型的训练方法相同,生成的非眨眼表情系数模型opt可参见公式(16)。

另外,在训练非眨眼表情系数模型时,本发明考虑到张嘴的表情对应的表情系数值尤为重要,因此,非眨眼表情系数模型在训练时,损失函数包括眨眼表情之外的全脸表情对应的第一损失函数和张嘴表情对应的第二损失函数。损失函数如下公式(17)所示:

Loss=MSE(y,y')+λ*MSE(mouth_open_label,mouth_open_predict) (17)。

上式(17)中,第一项MSE(y,y')是眨眼表情之外的全脸表情对应的第一损失函数,y为人脸关键点对应的标签值,y’为预测的表情系数值;第二项是张嘴表情对应的第二损失函数,其中λ为权重系数,mouth_open_label是张嘴表情系数值的标签值,mouth_open_predict是张嘴表情系数值的预测值。在本发明的实施例中,可设置λ为0.3,可以保证学习出的张嘴值更加正确,占有较大的权重。

步骤S103:根据所述表情系数值对虚拟人物进行表情驱动。

根据上述步骤S101至步骤S103,通过获取人脸图像,并对人脸图像进行关键点提取以得到人脸关键点;将人脸关键点输入至预先训练的表情系数模型中,得到人脸图像对应的表情系数值;根据表情系数值对虚拟人物进行表情驱动的技术方案,通过学习人脸关键点的位置坐标与表情系数模型的对应关系来驱动虚拟人物表情,使虚拟人物模型表现出与真人相同的表情,能够较为真实自然准确的快速驱动虚拟人物,网络消耗量极小,驱动速度快,且泛化性较强。

图6是根据本发明实施例的驱动虚拟人物表情的装置的主要模块示意图。如图6所示,本发明实施例的驱动虚拟人物表情的装置600主要包括关键点获取模块601、系数值计算模块602和表情驱动模块603。

关键点获取模块601,用于获取人脸图像,并对所述人脸图像进行关键点提取以得到人脸关键点;

系数值计算模块602,用于将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值;

表情驱动模块603,用于根据所述表情系数值对虚拟人物进行表情驱动。

根据本发明的一个实施例,关键点获取模块601还可以用于:通过将所述人脸图像输入到预先训练的人脸关键点识别模型中进行关键点提取,所述人脸关键点识别模型是通过对已进行关键点标注的人脸图像进行训练得到的。

根据本发明的另一个实施例,驱动虚拟人物表情的装置600还可以包括关键点归一处理模块(图中未示出),用于:在将所述人脸关键点输入至预先训练的表情系数模型中之前,将所述人脸图像限制为指定大小的图片,并对所述人脸关键点进行归一化处理。

根据本发明的又一个实施例,关键点归一处理模块(图中未示出)还可以用于:获取人脸关键点的中心点的横坐标和纵坐标,以及人脸图像的高度和宽度;对每个人脸关键点,根据所述人脸关键点的横坐标、中心点的横坐标以及人脸图像的高度和宽度计算所述人脸关键点的归一化横坐标,根据所述人脸关键点的纵坐标、中心点的纵坐标以及人脸图像的高度和宽度计算所述人脸关键点的归一化纵坐标;将所述人脸关键点的中心点平移至指定大小的人脸图像的左上角,以对所述归一化横坐标和所述归一化纵坐标进行平移,完成对所述人脸关键点的归一化处理。

根据本发明的又一个实施例,所述表情系数模型是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;对打标后的人脸图像对应的人脸关键点进行学习以得到所述表情系数模型。

根据本发明的又一个实施例,所述预先训练的表情系数模型包括眨眼表情系数模型和非眨眼表情系数模型;

系数值计算模块602还可以用于:从所述人脸关键点中提取眼部关键点,并将所述眼部关键点输入至所述眨眼表情系数模型中,得到所述人脸图像对应的眨眼表情系数值;将所述人脸关键点输入至所述非眨眼表情系数模型中,得到所述人脸图像对应的非眨眼表情系数值;根据所述眨眼表情系数值和所述非眨眼表情系数值得到所述人脸图像对应的表情系数值。

根据本发明的又一个实施例,所述眨眼表情系数模型是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;对打标后的人脸图像对应的人脸关键点,从所述人脸关键点中提取眼部关键点,通过深度学习优化算法对所述眼部关键点进行学习得到所述眨眼表情系数模型。

根据本发明的又一个实施例,所述非眨眼表情系数模型是通过以下方式训练得到的:获取人脸图像集合;对每个人脸图像进行关键点提取以得到每个人脸图像对应的人脸关键点;对每个人脸图像,基于人脸模型重建方法得到所述人脸图像的混合变形值,并使用所述混合变形值对所述人脸图像对应的人脸关键点进行打标;将打标后的人脸图像对应的人脸关键点进行坐标格式变换得到方块矩阵,通过深度学习优化算法对所述方块矩阵进行学习以得到所述非眨眼表情系数模型。

根据本发明的又一个实施例,所述非眨眼表情系数模型在训练时,损失函数包括眨眼表情之外的全脸表情对应的第一损失函数和张嘴表情对应的第二损失函数。

根据本发明的又一个实施例,驱动虚拟人物表情的装置600还可以包括坐标格式变换模块(图中未示出),用于:在将打标后的人脸图像对应的人脸关键点进行坐标格式变换得到方块矩阵之前,在打标后的人脸图像对应的人脸关键点的坐标无法直接变换为方块矩阵的情况下,使用0值进行补充,直至由打标后的人脸图像对应的人脸关键点的坐标和所述0值构成的关键点坐标集合,可进行坐标格式变换得到方块矩阵。

根据本发明实施例的技术方案,通过获取人脸图像,并对人脸图像进行关键点提取以得到人脸关键点;将人脸关键点输入至预先训练的表情系数模型中,得到人脸图像对应的表情系数值;根据表情系数值对虚拟人物进行表情驱动的技术方案,通过学习人脸关键点的位置坐标与表情系数模型的对应关系来驱动虚拟人物表情,使虚拟人物模型表现出与真人相同的表情,能够较为真实自然准确的快速驱动虚拟人物,网络消耗量极小,驱动速度快,且泛化性较强。

图7示出了可以应用本发明实施例的驱动虚拟人物表情的方法或驱动虚拟人物表情的装置的示例性系统架构700。

如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如图像处理类应用、图像关键点提取应用、图像特征提取类应用、拍照软件等(仅为示例)。

终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所发来的虚拟人物表情驱动请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的虚拟人物表情驱动请求等数据进行获取人脸图像,并对所述人脸图像进行关键点提取以得到人脸关键点;将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值;根据所述表情系数值对虚拟人物进行表情驱动等处理,并将处理结果(例如虚拟人物表情显示结果--仅为示例)反馈给终端设备。

需要说明的是,本发明实施例所提供的驱动虚拟人物表情的方法一般由服务器705执行,相应地,驱动虚拟人物表情的装置一般设置于服务器705中。

应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图8,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统800的结构示意图。图8示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括关键点获取模块、系数值计算模块和表情驱动模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,关键点获取模块还可以被描述为“用于获取人脸图像,并对所述人脸图像进行关键点提取以得到人脸关键点的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取人脸图像,并对所述人脸图像进行关键点提取以得到人脸关键点;将所述人脸关键点输入至预先训练的表情系数模型中,得到所述人脸图像对应的表情系数值;根据所述表情系数值对虚拟人物进行表情驱动。

根据本发明实施例的技术方案,通过获取人脸图像,并对人脸图像进行关键点提取以得到人脸关键点;将人脸关键点输入至预先训练的表情系数模型中,得到人脸图像对应的表情系数值;根据表情系数值对虚拟人物进行表情驱动的技术方案,通过学习人脸关键点的位置坐标与表情系数模型的对应关系来驱动虚拟人物表情,使虚拟人物模型表现出与真人相同的表情,能够较为真实自然准确的快速驱动虚拟人物,网络消耗量极小,驱动速度快,且泛化性较强。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术分类

06120114723080