欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 虚拟表情生成方法及装置独创技术52442字

虚拟表情生成方法及装置

2021-03-31 05:24:18

虚拟表情生成方法及装置

  技术领域

  本申请涉及图像处理技术领域,尤其涉及一种虚拟表情生成方法及装置。

  背景技术

  在影视游戏制作中,通常需要采用实时面部表情动捕技术追踪用户的面部表情得到用户面部表情的参数化表示,并通过用户面部表情的参数化表示来驱动游戏人物的面部表情,使得游戏人物的表情接近用户的面部表情。

  在相关技术中,根据实时面部表情动捕技术追踪用户的面部表情得到用户面部表情的参数化表示的方法,通常可以包括:获取用户图像;在用户图像中追踪用户的面部关键点;根据面部关键点,确定户面部表情的参数化表示,通过用户面部表情的参数化表示来驱动游戏人物的面部表情。在上述方法中,在用户图像中追踪面部关键点的过程中,若用户的头部运动,则导致对某些位置(例如:下颚、眉头等)的关键点的追踪并不稳定,进而导致用户面部表情的参数化表示不准确,降低实时面部表情动捕技术的准确性,进而导致游戏人物的面部表情和用户的面部表情差异较大。

  发明内容

  本申请提供一种虚拟表情生成方法及装置,用于提高实时面部表情动捕技术的准确性,进而降低虚拟表情和用户的面部表情的差异。

  第一方面,本申请提供一种虚拟表情生成方法,包括:

  对用户图像进行关键点检测,得到面部关键点;

  根据所述面部关键点和预设表情基,确定初始面部表情信息和头部姿态信息;

  根据所述用户图像、所述面部关键点、所述初始面部表情信息和所述头部姿态信息驱动动画模型做出虚拟表情。

  在一种可能的设计中,所述根据所述用户图像、所述面部关键点、所述初始面部信息面部表情信息和所述头部姿态信息驱动动画模型做出不同的虚拟表情,包括:

  根据所述面部关键点、所述用户图像、所述初始面部表情信息、所述头部姿态信息中的至少一项,确定鼓腮信息、嘟嘴信息、眨眼信息、视线信息和舌部状态信息;

  根据所述初始面部表情信息、所述头部姿态信息、所述视线信息、所述鼓腮信息、所述嘟嘴信息、所述眨眼信息和所述舌部状态信息驱动动画模型做出虚拟表情。

  在另一种可能的设计中,所述根据所述面部关键点、所述用户图像、所述初始面部表情信息、所述头部姿态信息中的至少一项,确定鼓腮信息、嘟嘴信息、眨眼信息、视线信息和舌部状态信息,包括:

  根据初始面部表情信息和所述面部关键点,确定所述鼓腮信息;

  根据初始面部表情信息、所述头部姿态信息和所述面部关键点,确定所述嘟嘴信息;

  根据所述面部关键点、所述用户图像、所述初始面部表情信息和所述头部姿态信息,确定所述眨眼信息;

  根据所述面部关键点和所述用户图像,确定所述视线信息和所述舌部状态信息。

  在另一种可能的设计中,根据所述初始面部表情信息和所述面部关键点,确定所述鼓腮信息,包括:

  若根据所述初始面部表情信息确定需要对所述用户图像进行鼓腮检测,则对所述面部关键点进行插值处理,得到至少一个脸颊关键点对;

  在至少一个脸颊关键点对中确定目标脸颊关键点对;

  根据所述目标脸颊关键点对确定所述鼓腮信息。

  在另一种可能的设计中,根据所述初始面部表情信息、所述头部姿态信息和所述面部关键点,确定所述嘟嘴信息,包括:

  若据所述初始面部表情信息和所述头部姿态信息确定需要对所述用户图像进行嘟嘴检测,则在所述面部关键点中确定嘴部关键点;

  根据所述嘴部关键点,确定嘴部特征信息;

  通过预设模型对嘴部特征信息进行聚类分析,得到嘟嘴信息。

  在另一种可能的设计中,根据所述面部关键点、所述用户图像、所述初始面部表情信息和所述头部姿态信息,确定所述眨眼信息,包括:

  若据所述初始面部表情信息和所述头部姿态信息确定需要对所述用户图像进行眨眼检测,则根据所述面部关键点,在所述用户图像中获取第一眼部图像;

  对所述第一眼部图像进行预处理得到第二眼部图像,所述第二眼部图像与第一预设网络模型适配;

  通过所述第一预设网络模型对所述第二眼部图像进行处理得到所述眨眼信息。

  在另一种可能的设计中,根据所述面部关键点和所述用户图像,确定所述视线信息和所述舌部状态信息,包括:

  根据所述面部关键点,在所述用户图像中获取第一眼部图像和第一嘴部图像;

  对所述第一眼部图像进行预处理得到第三眼部图像,所述第三眼部图像与第二预设网络模型适配,通过所述第二预设网络模型对所述第三眼部图像进行处理得到所述视线信息;

  对所述第一嘴部图像进行预处理得到第二嘴部图像,所述第二嘴部图像和第三预设网络模型适配,通过所述第三预设网络模型对所述第二嘴部图像进行处理得到所述舌部状态信息。

  在另一种可能的设计中,所述根据所述初始面部表情信息、所述头部姿态信息、所述视线信息、所述鼓腮信息、所述嘟嘴信息、所述眨眼信息和所述舌部状态信息驱动动画模型做出虚拟表情,包括:

  对所述初始面部表情信息、所述鼓腮信息、所述嘟嘴信息、所述眨眼信息和所述舌部状态信息进行融合,得到目标面部表情信息。

  根据所述目标面部表情信息、所述头部姿态信息和所述视线信息驱动动画模型做出虚拟表情。

  在另一种可能的设计中,根据所述面部关键点和预设表情基,确定初始面部表情信息和头部姿态信息,包括;

  根据面部关键点和预设表情基中与面部关键点对应的模型关键点,建立代价函数;

  对代价函数进行优化处理,得到初始面部表情信息和头部姿态信息。

  第二方面,本申请提供一种虚拟表情生成装置,包括:获取模块、确定模块和驱动模块,其中,

  所述获取模块用于,对用户图像进行关键点检测,得到面部关键点;

  所述确定模块用于,根据所述面部关键点和预设表情基,确定初始面部表情信息和头部姿态信息;

  所述驱动模块用于,根据所述用户图像、所述面部关键点、所述初始面部表情信息和所述头部姿态信息驱动动画模型做出虚拟表情。

  在一种可能的设计中,所述驱动模块具体用于:

  根据所述面部关键点、所述用户图像、所述初始面部表情信息、所述头部姿态信息中的至少一项,确定鼓腮信息、嘟嘴信息、眨眼信息、视线信息和舌部状态信息;

  根据所述初始面部表情信息、所述头部姿态信息、所述视线信息、所述鼓腮信息、所述嘟嘴信息、所述眨眼信息和所述舌部状态信息驱动动画模型做出虚拟表情。

  在另一种可能的设计中,所述驱动模块具体用于:

  根据所述初始面部表情信息和所述面部关键点,确定所述鼓腮信息;

  根据所述初始面部表情信息、所述头部姿态信息和所述面部关键点,确定所述嘟嘴信息;

  根据所述面部关键点、所述用户图像、所述初始面部表情信息和所述头部姿态信息,确定所述眨眼信息;

  根据所述面部关键点和所述用户图像,确定所述视线信息和所述舌部状态信息。

  在另一种可能的设计中,所述驱动模块具体用于:

  若根据所述初始面部表情信息确定需要对所述用户图像进行鼓腮检测,则对所述面部关键点进行插值处理,得到至少一个脸颊关键点对;

  在至少一个脸颊关键点对中确定目标脸颊关键点对;

  根据所述目标脸颊关键点对确定所述鼓腮信息。

  在另一种可能的设计中,所述驱动模块具体用于:

  若据所述初始面部表情信息和所述头部姿态信息确定需要对所述用户图像进行嘟嘴检测,则在所述面部关键点中确定嘴部关键点;

  根据所述嘴部关键点,确定嘴部特征信息;

  通过预设模型对嘴部特征信息进行聚类分析,得到嘟嘴信息。

  在另一种可能的设计中,所述驱动模块具体用于:

  若据所述初始面部表情信息和所述头部姿态信息确定需要对所述用户图像进行眨眼检测,则根据所述面部关键点,在所述用户图像中获取第一眼部图像;

  对所述第一眼部图像进行预处理得到第二眼部图像,所述第二眼部图像与第一预设网络模型适配;

  通过所述第一预设网络模型对所述第二眼部图像进行处理得到所述眨眼信息。

  在另一种可能的设计中,所述驱动模块具体用于:

  根据所述面部关键点,在所述用户图像中获取第一眼部图像和第一嘴部图像;

  对所述第一眼部图像进行预处理得到第三眼部图像,所述第三眼部图像与第二预设网络模型适配,通过所述第二预设网络模型对所述第三眼部图像进行处理得到所述视线信息;

  对所述第一嘴部图像进行预处理得到第二嘴部图像,所述第二嘴部图像和第三预设网络模型适配,通过所述第三预设网络模型对所述第二嘴部图像进行处理得到所述舌部状态信息。

  在另一种可能的设计中,所述驱动模块具体用于:

  对所述初始面部表情信息、所述鼓腮信息、所述嘟嘴信息、所述眨眼信息和所述舌部状态信息进行融合,得到目标面部表情信息。

  根据所述目标面部表情信息、所述头部姿态信息和所述视线信息,生成所述虚拟表情。

  在另一种可能的设计中,所述确定模块具体用于;

  根据面部关键点和预设表情基中与面部关键点对应的模型关键点,建立代价函数;

  对代价函数进行优化处理,得到初始面部表情信息和头部姿态信息。

  第三方面,本申请提供一种虚拟表情生成装置,包括:存储器和处理器;

  所述存储器用于存储程序指令;

  所述处理器用于调用所述存储器中的程序指令执行如上第一方面中任一项所述的方法。

  第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如上第一方面中任一项所述的方法。

  本申请提供一种虚拟表情生成方法及装置,该方法包括:对用户图像进行关键点检测,得到面部关键点;根据面部关键点和预设表情基,确定初始面部表情信息和头部姿态信息;根据用户图像、面部关键点、初始面部表情信息和头部姿态信息驱动动画模型做出虚拟表情。在本申请中,根据用户图像、面部关键点、初始面部表情信息和头部姿态信息,生成虚拟表情,可以避免用户的头部运动导致对某些位置(例如:下颚、眉头等)关键点的追踪并不稳定,提高实时面部表情动捕技术的准确性,进而降低虚拟表情和用户的面部表情的差异。

  附图说明

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

  图1为本申请提供的虚拟表情生成方法的应用场景示意图;

  图2为本申请提供的虚拟表情生成方法的流程示意图一;

  图3为本申请提供的预设表情基的示意图;

  图4为本申请提供的虚拟表情生成方法的流程示意图二;

  图5为本申请提供的一种确定鼓腮信息的方法流程图;

  图6为申请提供的确定嘟嘴信息的方法流程示意图;

  图7为本申请提供的确定眨眼信息的方法流程示意图;

  图8为本申请提供的确定视线信息的方法流程示意图;

  图9为本申请提供的一种眼部图像分区的示意图;

  图10为本申请提供的确定舌部状态信息的方法流程示意图;

  图11为本申请提供的虚拟表情示意图;

  图12为本申请提供的虚拟表情生成装置的结构示意图;

  图13为本申请提供的虚拟表情生成装置的硬件结构示意图。

  具体实施方式

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

  图1为本申请提供的虚拟表情生成方法的应用场景示意图。如图1所示,例如包括:摄像设备101、主机102、显示器103、表情模型104、用户图像105。其中,主机102分别与摄像设备101和显示器103连接,显示器103中显示表情模型104和用户图像105。

  具体的,摄像设备101可以对用户进行图像采集得到用户图像105(也可以为视频帧),主机102获取摄像设备101采集得到的用户图像105,对用户图像和预先存储的预设表情基进行处理生成虚拟表情,并通过虚拟表情驱动表情模型104,以使表情模型104具有虚拟表情。在本申请中,对用户图像和预先存储的预设表情基进行处理生成虚拟表情,可以避免用户的头部运动导致对某些位置(例如:下颚、眉头等)的关键点的追踪并不稳定,提高实时面部表情动捕技术的准确性,进而降低虚拟表情和用户的面部表情的差异。

  下面结合图2,对本申请提供的虚拟表情生成方法进行说明,具体的,请参见图2。

  图2为本申请提供的虚拟表情生成方法的流程示意图一。如图2所示,本实施例提供的虚拟表情生成方法包括:

  S201:对用户图像进行关键点检测,得到面部关键点。

  可选地,本申请实施例的执行主体为计算机设备,可以为设置在计算机设备上的虚拟表情生成装置,该虚拟表情生成装置可以通过软件和/或硬件的结合来实现。

  可选地,该计算机设备可以为台式电脑(包括图1所示的主机、摄像设备和显示器),还可以为笔记本电脑。

  可选地,台式电脑或者笔记本电脑中的摄像设备可以为RGB(色彩)摄像机或者RGBD(色彩深度)摄像机。其中,RGBD摄像机可以采集得到场景深度信息和二维图像,RGB摄像机只可以采集得到二维图像。

  可选地,用户图像可以为2D图像,也可以为3D图像。

  具体的,可以通过人脸检测器确定用户人脸在用户图像中的位置,然后通过提前训练好的人脸对齐神经网络获得面部关键点。该面部关键点中包括脸部轮廓关键点、嘴部关键点、鼻部关键点、眼部关键点、以及眉部关键点。

  S202:根据面部关键点和预设表情基,确定初始面部表情信息和头部姿态信息。

  具体的,预设表情基为满足拓扑条件的一组混合形状(Blendshape),该组混合形状中包括多个人脸表情模型,该组混合形状中的每个人脸表情模型和其他人脸表情模型拓扑一致。其中,拓扑一致是指两个人脸表情模型的顶点数量、顶点顺序、顶点连接方式都是相同的。

  进一步地,请参见图3对预设表情基的详细说明。图3为本申请提供的预设表情基的示意图。如图3所示,预设表情基包括:K个人脸表情模型,例如分别为:人脸表情模型b0、b1、……、bk。可选地,可以通过如下两种方法得到人脸表情模型b0、b1、……、bk:第一种方法,通过参数化人脸模型(3D Morphable Model,3DMM)重建中性表情模型(即人脸表情模型b0),对该中性表情模型进行形变转移可以得到人脸表情模型b1、……、bk;第二种方法,通过多视角立体几何算法、或结构光三维扫描的方式重建出各个表情的几何形状,然后用模板模型和基于非刚体注册的方式,对各个表情的几何形状进行处理生成人脸表情模型b0、b1、……、bk。

  S203:根据用户图像、面部关键点、初始面部表情信息和头部姿态信息驱动动画模型做出虚拟表情。

  在一种可能的设计中,可以根据面部关键点、用户图像、初始面部表情信息、头部姿态信息中的至少一项,确定鼓腮信息、嘟嘴信息、眨眼信息、视线信息和舌部状态信息;

  根据初始面部表情信息、头部姿态信息、视线信息、鼓腮信息、述嘟嘴信息、眨眼信息和舌部状态信息驱动动画模型做出虚拟表情。具体的,请参见图4实施例中的S403~S408,此处不再进行赘述。

  本实施例提供的虚拟表情生成方法包括:对用户图像进行关键点检测,得到面部关键点;根据面部关键点和预设表情基,确定初始面部表情信息和头部姿态信息;根据用户图像、面部关键点、初始面部表情信息和头部姿态信息,生成虚拟表情。在本申请中,根据用户图像、面部关键点、初始面部表情信息和头部姿态信息驱动动画模型做出虚拟表情,可以避免用户的头部运动导致对某些位置(例如:下颚、眉头等)的关键点的追踪并不稳定,提高实时面部表情动捕技术的准确性,进而降低虚拟表情和用户的面部表情的差异。

  与现有技术不同,在现有技术中,在传统的电影、游戏制作中使用的面部表情动捕系统得到虚拟表情的过程中,需要一套专业的硬件设备以及配套的工具软件来满足对虚拟表情的准确性要求,然而随着手游、直播行业的迅速发展,若仍然使用传统的电影、游戏制作中采用的硬件设备,则无法满足手游、直播行业对虚拟表情的准确性要求,若满足手游、直播行业对虚拟表情的准确性要求,则需要增加硬件的配置,从而导致硬件的成本过大。进一步地,在现有技术中,ARKit通过深度摄像机同时获得深度和图像有利于虚拟表情的准确性和鲁棒性,但是由于目前能获取深度的设备还没有完全普及,因此只能使用苹果公司特定的硬件设备,导致通用性较差。而在本申请中,用于执行本申请虚拟表情生成方法的计算机可以为通常使用的计算机,节省了硬件的成本,而且采集用户图像的摄像设备可以为RGB设备,通用性较强。

  图4为本申请提供的虚拟表情生成方法的流程示意图二。如图4所示,本实施例提供的虚拟表情生成方法包括:

  S401:对用户图像进行关键点检测,得到面部关键点。

  具体的,S401的执行过程与S201的执行过程相同,此处不再赘述S401的执行方法。

  S402:根据面部关键点和预设表情基中与面部关键点对应的模型关键点,建立代价函数,对代价函数进行优化处理,得到初始面部表情信息和头部姿态信息。

  其中,根据面部关键点和预设表情基中与面部关键点对应的模型关键点,建立代价函数,包括:根据面部关键点和预设表情基中与面部关键点对应的模型关键点,构建约束函数;进而根据约束函数,得到代价函数。

  可选地,约束函数包括:二维约束函数C2D、三维约束函数C3D、正则项约束函数Creg、对称性约束函数Cequal、互斥性约束函数Cmutex和平滑约束函数Csmooth。其中,二维约束条函数C2D为根据面部关键点和预设表情基得到,三维约束函数C3D是根据RGBD摄像机得到的三维关键点和预设表情基获得,正则项约束函数Creg、对称性约束函数Cequal和互斥性约束函数Cmutex根据人脸各种表情组合的合理性获得,平滑约束函数Csmooth为根据视频帧中的表情的连续性获得。

  具体的,构建二维约束函数C2D的方法包括:对如下公式1和公式2进行结合,得到二维约束函数C2D(即公式3):

  

  [xm ym zm]T=b0+Bx(公式2);

  

  其中,zc为预设比例系数(通常可以为1),px和py为面部关键点的二维坐标(px,py)中的坐标值,P为摄像设备的投影矩阵,[R,T]为待求解头部姿态,xm、ym、zm为预设表情基中与(px,py)对应的三维坐标(xm,ym,zm)中的坐标值,其中,[xm ym zm]T为[xm ym zm]的转置矩阵,x为待求解初始表情,P(x,y)为[px,py]T(即,[px,py]的转置矩阵),b0为中性表情模型,B=[b1,b2,…bk]。

  进一步地,可以通过如下公式4,根据约束函数得到代价函数Ccost:

  Ccost=C2D+w1Creg+w2Cmutex+w3Cequal+w4C3D+w5Csmooth (公式4);

  其中,w1、w2、w3、w4、w5权重值。可选地,在用户图像中没有包括深度信息时,w4=0。

  可选地,对公式4进行优化处理之前,先对公式4进行变形得到公式5:

  

  其中,x为大于等于0且小于等于1之间的数值。其中,公式5说明初始面部表情信息和代价函数Ccost之间的关系。

  可选地,可以通过预设最优化处理算法对公式5所示的关系进行优化处理,获取待求解初始表情x的具体取值和待求解头部姿态[R,T]的具体取值,并将待求解初始表情x的具体取值确定为初始面部表情信息,将待求解头部姿态[R,T]的具体取值确定为头部姿态信息。

  可选地,还可以通过如下可行的方法获取初始面部表情信息:获取多个样本数据对构成的训练数据集;通过训练数据集对第一预设模型进行回归训练,获得回归模型;将面部关键点中的每个关键点输入回归模型,得到每个关键点对应的初始表情;将每个关键点对应的初始表情进行组合得到初始面部表情信息。其中,第一预设模型可以为支持向量机(Support Vector Machine,SVM)、深度神经网络等。

  需要说明的是,通过回归模型得到初始面部表情信息可以作为对上述公式4进行优化处理时的初始迭代数据,从而加快对公式4的优化处理速度,进而提高生成虚拟表情的效率。

  S403:根据初始面部表情信息和面部关键点,确定鼓腮信息。

  具体的,确定鼓腮信息的方法可以参见图5实施例,此处不再进行赘述。

  S404:根据初始面部表情信息、头部姿态信息和面部关键点,确定嘟嘴信息。

  具体的,确定鼓腮信息的方法可以参见图6实施例,此处不再进行赘述。

  S405:根据面部关键点、用户图像、初始面部表情信息和头部姿态信息,确定眨眼信息。

  具体的,确定眨眼信息的方法可以参见图7实施例,此处不再进行赘述。

  S406:根据面部关键点和用户图像,确定视线信息和舌部状态信息。

  具体的,确定视线信息的方法可以参见图8实施例,此处不再进行赘述。

  具体的,确定舌部状态信息的方法可以参见图10实施例,此处不再进行赘述。

  S407:对初始面部表情信息、鼓腮信息、嘟嘴信息、眨眼信息和舌部状态信息进行融合,得到目标面部表情信息。

  具体的,初始面部表情信息中包括初始鼓腮信息、初始嘟嘴信息、初始眨眼信息和初始舌部状态信息。

  在一种可能的设计中,得到目标面部表情信息包括:将初始鼓腮信息替换为鼓腮信息,将初始嘟嘴信息替换为嘟嘴信息、将初始眨眼信息替换为眨眼信息、将初始舌部状态信息替换为舌部状态信息,从而得到目标面部表情信息。

  在另一种可能的设计中,得到目标面部表情信息包括:将鼓腮信息进行加权,将初始鼓腮信息替换为加权后的鼓腮信息,将嘟嘴信息进行加权,将初始嘟嘴信息替换为加权后的嘟嘴信息、将眨眼信息进行加权,将初始眨眼信息替换为加权后的眨眼信息、将舌部状态信息进行加权,将初始舌部状态信息替换为加权后的舌部状态信息,从而得到目标面部表情信息。

  需要说明的是,在得到初始面部表情信息与舌部状态信息之后,通常需要处理规则约束初始面部表情信息中与嘴部相关的信息,例如对嘴角的拉伸、上嘴唇下嘴唇的上下运动等进行约束。在实际应用中,由于舌头伸出会造成对于嘴部轮廓的遮挡,导致嘴唇周围的关键点的误差加大,若反应目标面部表情信息上,则会使得表情模型(如图4所示)出现一些异常的表情,当对嘴角的拉伸、上嘴唇和下嘴唇的上下运动等进行约束,降低嘴巴的运动幅度之后,可以抑制这些异常表情的出现。

  S408:根据目标面部表情信息、头部姿态信息和视线信息驱动动画模型做出虚拟表情。

  具体的,通过预设滤波处理方法,对目标面部表情信息、头部姿态信息和视线信息进行滤波处理,并将滤波处理后得到的数据保存至本地,然后对本地数据进行解析,进而驱动虚拟模型做出虚拟表情。

  可选地,预设滤波处理方法可以为双边滤波处理方法、卡尔曼滤波处理方法、高斯滤波处理方法等。

  在本申请中,对目标面部表情信息进行滤波处理,可以使得视线角度(即视线信息)、舌头的动作幅度(即舌部状态信息)达到更好的视觉效果。具体的,请参见图11所示的虚拟表情示意图。

  本实施例提供的虚拟表情生成方法,包括:对用户图像进行关键点检测,得到面部关键点;根据面部关键点和预设表情基中与面部关键点对应的模型关键点,建立代价函数,对代价函数进行优化处理,得到初始面部表情信息和头部姿态信息;根据初始面部表情信息和面部关键点,确定鼓腮信息;根据初始面部表情信息、头部姿态信息和面部关键点,确定嘟嘴信息;根据面部关键点、用户图像、初始面部表情信息和头部姿态信息,确定眨眼信息;根据面部关键点和用户图像,确定视线信息和舌部状态信息;对初始面部表情信息、鼓腮信息、嘟嘴信息、眨眼信息和舌部状态信息进行融合,得到目标面部表情信息;根据目标面部表情信息、头部姿态信息和视线信息驱动动画模型做出虚拟表情。在上述方法中,根据目标面部表情信息、头部姿态信息和视线信息,生成虚拟表情,可以提高虚拟表情的准确性。进一步地,上述虚拟表情生成方法,可以形成一套自动化地处理流程,提供了生成虚拟表情的效率。

  图5为本申请提供的一种确定鼓腮信息的方法流程图。如图5所示,确定鼓腮信息的方法包括:

  S501:获取初始面部表情信息。

  具体的,经过上述S402的执行过程生成初始面部表情信息之后,可以将初始面部表情信息存储至存储器中。进一步地,可以从存储器中获取初始面部表情信息。

  S502:根据初始面部表情信息,判断是否需要对用户图像进行鼓腮检测。

  若否,则执行S503。

  若是,则执行S504。

  具体的,在初始面部表情信息中确定与鼓腮动作相关的面部表情信息,其中,与鼓腮动作相关的面部表情信息,例如包括:嘴部信息和下巴区域信息。其中,嘴部信息包括嘴部的每个关键点对应的表情系数,下巴区域信息包括下巴区域的每个关键点对应的表情系数。

  进一步地,预先生成一批数据,通过该批数据对第二预设模型进行训练,得到判别器模型,将通过判别器模型对初始面部表情信息进出处理,得到鼓腮可能性,进而根据鼓腮可能性判断是否需要对用户图像进行鼓腮检测。其中,第二预设模型可以为SVM、混合高斯模型。其中,包含鼓腮动作等各种表情的RGBD视频数据。

  例如,鼓腮可能性较大时,确定需要对用户图像进行鼓腮检测,鼓腮可能性较小时,确定不需要对用户图像进行鼓腮检测。其中,用户图像为3D图像。

  S503:输出初始面部表情信息。

  S504:对面部关键点进行插值处理,得到至少一个脸颊关键点对。

  在实际中,对用户图像进行鼓腮检测时,由于鼓腮动作主要体现在面颊上,因此在目前面部关键点中没有面颊点时,无法通过关键点检测确定鼓腮信息,即需要对面部关键点进行插值处理,得到至少一个对脸颊关键点。

  需要说明的是,本实施例中的用户图像为3D图像。在实际中,由于鼓腮动作主要体现在面颊的深度上,一般的RGB摄像机采集到的用户图像不包含深度信息,因此很难通过用户图像获得鼓腮动作,即需要在用户图像包括深度信息时,才能得到鼓腮信息。

  可选地,可以通过线性插值、或者样条插值对面部关键点进行插值处理。

  可选地,脸颊关键点对的个数可以为6、7、8等,其中,一个脸颊关键点对包括两个关键点,其中,两个关键点分别分部在左脸颊和右脸颊上。

  S505:在至少一个脸颊关键点对中确定目标脸颊关键点对。

  具体的,获取每个脸颊关键点对的中心点和距离Distancei,通过多个预设聚类模型对每个脸颊关键点对的中心点和距离Distancei进行聚类分析,得到每个脸颊关键点对对应的聚类结果,根据每个脸颊关键点对对应的聚类结果,在至少一个脸颊关键点对中确定目标脸颊关键点对。其中,一个预设聚类模型对一个脸颊关键点对的中心点和距离Distancei进行聚类分析。

  可选地,预设聚类模型为预先训练好的模型,该预设聚类模型可以为k-means聚类模型,混合高斯聚类模型,密度聚类模型、密度聚类模型、层次聚类模型等。

  例如,当预设聚类模型为混合高斯聚类模型时,聚类结果为概率值,可以将概率值最大时对应的脸颊关键点对,确定为目标脸颊关键点对。

  S506:根据目标脸颊关键点对确定鼓腮信息。

  可选地,目标脸颊关键点对应的概率值大于或等于第一阈值,则将目标脸颊关键点对应的概率值确定鼓腮信息。

  图6为申请提供的确定嘟嘴信息的方法流程示意图。如图6所示,确定嘟嘴信息的方法包括:

  S601:获取初始面部表情信息和头部姿态信息。

  具体的,经过上述S402的执行过程生成初始面部表情信息和头部姿态信息之后,可以将初始面部表情信息和头部姿态信息存储至存储器中。进一步地,可以从存储器中获取初始面部表情信息和头部姿态信息。

  S602:根据初始面部表情信息和头部姿态信息,判断是否需要对用户图像进行嘟嘴检测。

  若否,则执行S603。

  若是,则执行S604。

  可选地,用户图像可以为2D图像、或者3D图像。

  具体的,当初始面部表情信息中嘟嘴动作对应的信息(系数数值)较大且没有满足常识性的组合规则,头部姿态信息的偏航角(yaw)小于或等于第一角度阈值、俯仰角(pitch)小于或等于第二角度阈值,确定需要对用户图像进行嘟嘴检测,否则,确定不需要进行嘟嘴检测。

  其中,满足常识性的组合规则为实际中用户可以做到的表情规则。

  可选地,第一角度阈值可以为30度、35度等,第二角度阈值可以为10度、15度。

  S603:输出初始面部表情信息和头部姿态信息。

  可选地,在S603中可以仅输出初始面部表情信息。

  S604:在面部关键点中确定嘴部关键点。

  具体的,面部关键点中的每个关键点具有对应的二维坐标和对应的部位标识,其中,部位标识包括脸部轮廓标识、嘴部标识、鼻部标识、眼部标识、以及眉部标识。

  例如,可以根据嘴部标识,在面部关键点中确定嘴部关键点。

  S605:根据嘴部关键点,确定嘴部特征信息。

  具体的,嘴部特征信息为根据嘴部关键点确定的嘴部的几何特征。

  例如,用户图像可以为2D图像时,几何特征包括上下嘴唇之间的距离和左右嘴角之前的距离

  例如,用户图像可以为3D图像时,几何特征包括上下嘴唇之间的距离左右嘴角之前的距离和嘴巴中心的深度

  S605:通过预设模型对嘴部特征信息进行聚类分析,得到嘟嘴信息。

  例如,可以通过混合高斯聚类模型,对上下嘴唇之间的距离和左右嘴角之前的距离或者上下嘴唇之间的距离左右嘴角之前的距离和嘴巴中心的深度进行聚类分析,得到嘟嘴信息。

  其中,混合高斯聚类模型为预先训练好的聚类模型。

  图7为本申请提供的确定眨眼信息的方法流程示意图。如图7所示,确定眨眼信息的方法包括:

  S701:获取初始面部表情信息和头部姿态信息。

  具体的,S701的执行过程与S601的执行过程相同,此处不再赘述S701的执行方法。

  S702:根据初始面部表情信息和头部姿态信息,判断是否需要对用户图像进行眨眼检测。

  若否,则执行S703。

  若是,则执行S704。

  具体的,对初始面部表情信息进行统计分析,得到统计结果,根据统计结果和头部姿态信息,判断是否需要对用户图像进行眨眼检测。

  其中,对初始面部表情信息进行统计分析,得到统计结果包括:统计当前图像帧(即用户图像)至当前图像帧之前的图像帧之前,每个图像帧的眨眼系数Oeye,统计眨眼系数Oeye大于或等于眨眼系数阈值的图像帧数,获取眨眼系数大于或等于眨眼系数阈值的图像帧数与图像总帧数的比值,将该比值作为统计结果。

  进一步地,根据统计结果和头部姿态信息,判断是否需要对用户图像进行眨眼检测,包括:若上述比值小于或等于设定阈值Teye,且头部姿态信息的偏航角(yaw)小于或等于第四角度阈值、俯仰角(pitch)小于或等于第五角度阈值,确定需要进行眨眼检测,否则,确定不需要进行眨眼检测。

  可选地,用户图像可以为2D图像、或者3D图像,可选地,第四角度阈值可以为30度、35度等,第五角度阈值可以为10度、15度。

  S703:输出初始面部表情信息和头部姿态信息。

  S704:根据面部关键点,在用户图像中获取第一眼部图像。

  具体的,可以根据眼部标识,在面部关键点中确定眼部关键点,进而根据眼部关键点,在用户图像中获取第一眼部图像,其中,第一眼部图像通常包括左右两只眼睛的图像。

  S705:对第一眼部图像进行预处理得到第二眼部图像,第二眼部图像与第一预设网络模型适配。

  具体的,对第一眼部图像进行预处理包括:对第一眼部图像进行放缩处理、分辨率调整处理等。进一步地,对第一眼部图像进行预处理之后的第二眼部图像可以与第一预设网络模型适配。

  其中,第一预设网络模型为根据样本眼部图像和样本眨眼信息对神经网络进行训练后得到的网络模型。

  S706:通过第一预设网络模型对第二眼部图像进行处理得到眨眼信息。

  具体的,第一预设网络模型对第二眼部图像进行处理之后,得到当前图像帧的眼睛状态是闭眼状态的概率O,当概率O大于或者等于闭眼状态阈值Oblink时,确定眨眼信息为闭眼。在实际应用中,可以调整闭眼状态阈值Oblink的大小,从而改变眨眼检测的灵敏度。

  在实际中,闭眼状态的概率O偶尔会闭眼状态阈值Oblink附近抖动,该抖动的时间很短,因此可以根据当前图像帧的眼睛状态是闭眼状态的概率O和前一图像帧的眼睛状态是闭眼状态的概率O1之间的差值Om确定眨眼信息。其中,前一图像帧为在当前图像帧之前、且与当前图像帧相邻的图像帧。

  例如,差值Om小于或等于预设差值,则认为当前图像帧的眨眼信息和前一图像帧的眨眼信息相同,因此可以将前一图像帧的眨眼信息确定为当前图像帧(即用户图像)的眨眼信息。

  在本实施例中,通过第一预设网络模型对第二眼部图像进行处理得到眨眼信息,可以在头部姿态比较大的情况下,仍然能够稳定的确定眨眼信息。

  图8为本申请提供的确定视线信息的方法流程示意图。如图8所示,确定视线信息的方法包括:

  S801:获取面部关键点。

  具体的,在执行完上述S201之后,可以将得到的面部关键点存储至存储器。进一步地,从存储器中获取面部关键点。

  S802:根据面部关键点,在用户图像中获取第一眼部图像。

  具体的,S802的执行过程与S804的执行过程相同,此处不再赘述S802的执行方法。

  其中,用户图像可以为2D图像、或者3D图像。

  S803:对第一眼部图像进行预处理得到第三眼部图像,第三眼部图像与第二预设网络模型适配。

  具体的,对第一眼部图像进行预处理包括:对第一眼部图像进行放缩处理、分辨率调整处理等。

  其中,对第一眼部图像进行预处理之后的第三眼部图像与第二预设网络模型适配。

  其中,第二预设网络模型为根据样本眼部图像和样本视线信息对神经网络进行训练后得到的网络模型。

  S804:通过第二预设网络模型对第三眼部图像进行处理得到视线信息。

  需要说明的是,第二预设网络模型是一个分类网络模型,通过检测瞳孔相对于整个眼部轮廓的位置来确定视线信息(视线的方向)。

  在本实施例中,将瞳孔运动角度在水平方向分成5个区间,瞳孔运动角度在垂直方向分成3个区间,每个区间具有对应的角度,通过第二预设网络模型对第三眼部图像进行处理,得到瞳孔在水平和垂直方向上落在各个区间的概率。进一步地,对每个区间对应的角度和概率进行加权求和,得到瞳孔视线在水平和垂直方向的变化角度,进而将瞳孔视线在水平和垂直方向的变化角度确定为视线信息。

  图9为本申请提供的一种眼部图像分区的示意图。如图9所示,在眼睛图像中,将瞳孔运动角度在水平方向分成5个区间,分别为区间51、52、53、54、55。将瞳孔运动角度在垂直方向分成3个区间,分别为区间31、32、33。

  例如,区间31对应的角度5、区间32对应的角度为0、区间33对应的角度为-5、区间51对应的角度10、区间52对应的角度为5、区间53对应的角度为0、区间54对应的角度-5、区间55对应的角度为-10时,若通过第二预设网络模型对第三眼部图像进行处理之后,得到的区间31对应的概率为0.7、区间32对应的概率为0.3、区间33对应的概率为0,得到的区间51、52、54、55对应的概率为0,区间53对应的概率为0.4,则瞳孔视线在垂直方向的变化角度为5*0.7+0*0.3+(-5)*0=3.5、在水平方向的变化角度为0。

  进一步地,可以将瞳孔视线在垂直方向的变化角度3.5、在水平方向的变化角度0,确定为视线信息。

  图10为本申请提供的确定舌部状态信息的方法流程示意图。如图10所示,确定舌部状态信息的方法包括:

  S1001:获取面部关键点。

  S1002:根据面部关键点,在用户图像中获取第一嘴部图像。

  具体的,可以根据嘴部标识,在面部关键点中确定嘴部关键点,进而根据嘴部关键点,在用户图像中获取第一嘴部图像。

  S1003:对第一嘴部图像进行预处理得到第二嘴部图像,第二嘴部图像和第三预设网络模型适配。

  具体的,对第一嘴部图像进行预处理包括:对第一嘴部图像进行放缩处理、分辨率调整处理等。进一步地,对第一嘴部图像进行预处理之后的第二嘴部图像可以与第三预设网络模型适配。

  其中,第三预设网络模型为根据样本嘴部图像和样本舌部状态信息对神经网络进行训练后得到的网络模型。

  S1004:通过第三预设网络模型对第二嘴部图像进行处理得到舌部状态信息。

  可选地,舌部状态可以分为未伸出、伸出、往左伸、往右伸四类。

  进一步地,通过第三预设网络模型对第二嘴部图像进行处理后可以得到属于上述4类中每一类的概率,进而将概率最大时对应的舌部状态确定所述舌部状态信息。

  图11为本申请提供的虚拟表情示意图。如图11所示,包括:图像帧11、12、13、14、15,以及虚拟表情21、22、23、24、25,其中,图像帧11、12、13、14、15包括在图像信息中。

  通过本申请提供的虚拟表情生成方法,可以根据图像帧11得到虚拟表情21,根据图像帧12得到虚拟表情22,根据图像帧13得到虚拟表情23,根据图像帧14得到虚拟表情24,根据图像帧15得到虚拟表情25。

  图12为本申请提供的虚拟表情生成装置的结构示意图。如图12所示,该虚拟表情生成装置10包括:获取模块11、确定模块12和驱动模块13,其中,

  所述获取模块11用于,对用户图像进行关键点检测,得到面部关键点;

  所述确定模块12用于,根据所述面部关键点和预设表情基,确定初始面部表情信息和头部姿态信息;

  所述驱动模块13用于,根据所述用户图像、所述面部关键点、所述初始面部表情信息和所述头部姿态信息驱动动画模型做出虚拟表情。

  本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。

  在一种可能的设计中,所述驱动模块13具体用于:

  根据面部关键点、用户图像、初始面部表情信息、头部姿态信息中的至少一项,确定鼓腮信息、嘟嘴信息、眨眼信息、视线信息和舌部状态信息;

  根据初始面部表情信息、头部姿态信息、视线信息、鼓腮信息、嘟嘴信息、眨眼信息和舌部状态信息,生成虚拟表情。

  在另一种可能的设计中,所述驱动模块13具体用于:

  根据所述初始面部表情信息和所述面部关键点,确定所述鼓腮信息;

  根据所述初始面部表情信息、所述头部姿态信息和所述面部关键点,确定所述嘟嘴信息;

  根据面部关键点、用户图像、初始面部表情信息和头部姿态信息,确定眨眼信息;

  根据面部关键点和所述用户图像,确定所述视线信息和所述舌部状态信息。

  在另一种可能的设计中,所述驱动模块13具体用于:

  若根据所述初始面部表情信息确定需要对所述用户图像进行鼓腮检测,则对所述面部关键点进行插值处理,得到至少一个脸颊关键点对;

  在至少一个脸颊关键点对中确定目标脸颊关键点对;

  根据所述目标脸颊关键点对确定所述鼓腮信息。

  在另一种可能的设计中,所述驱动模块13具体用于:

  若据所述初始面部表情信息和所述头部姿态信息确定需要对所述用户图像进行嘟嘴检测,则在所述面部关键点中确定嘴部关键点;

  根据所述嘴部关键点,确定嘴部特征信息;

  通过预设模型对嘴部特征信息进行聚类分析,得到嘟嘴信息。

  在另一种可能的设计中,所述驱动模块13具体用于:

  若据所述初始面部表情信息和所述头部姿态信息确定需要对所述用户图像进行眨眼检测,则根据所述面部关键点,在所述用户图像中获取第一眼部图像;

  对所述第一眼部图像进行预处理得到第二眼部图像,所述第二眼部图像与第一预设网络模型适配;

  通过所述第一预设网络模型对所述第二眼部图像进行处理得到所述眨眼信息。

  在另一种可能的设计中,所述驱动模块13具体用于:

  根据所述面部关键点,在所述用户图像中获取第一眼部图像和第一嘴部图像;

  对所述第一眼部图像进行预处理得到第三眼部图像,所述第三眼部图像与第二预设网络模型适配,通过所述第二预设网络模型对所述第三眼部图像进行处理得到所述视线信息;

  对所述第一嘴部图像进行预处理得到第二嘴部图像,所述第二嘴部图像和第三预设网络模型适配,通过所述第三预设网络模型对所述第二嘴部图像进行处理得到所述舌部状态信息。

  在另一种可能的设计中,所述驱动模块13具体用于:

  对所述初始面部表情信息、所述鼓腮信息、所述嘟嘴信息、所述眨眼信息和所述舌部状态信息进行融合,得到目标面部表情信息。

  根据所述目标面部表情信息、所述头部姿态信息和所述视线信息,生成所述虚拟表情。

  在另一种可能的设计中,所述确定模块12具体用于;

  根据所述面部关键点和预设表情基中与面部关键点对应的模型关键点,建立代价函数;

  对代价函数进行优化处理,得到初始面部表情信息和头部姿态信息。

  图13为本申请提供的虚拟表情生成装置的硬件结构示意图。如图13所示,该虚拟表情生成装置20包括:存储器21和处理器22;

  所述存储器21用于存储程序指令;

  所述处理器22用于调用存储器中的程序指令执行上述方法实施例中的各个步骤。具体可以参见前述方法实施例中的相关描述。

  可选地,21既可以是独立的,也可以跟处理器22集成在一起。

  当存储器21独立设置时,该虚拟表情生成装置20还包括总线23,总线23用于连接存储器21和处理器22。

  本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如上方法实施例中的各个步骤。

  在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

  上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。

  应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

  存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。

  总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

  上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

  本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

  最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

《虚拟表情生成方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)