面部图像的表情控制方法及装置、计算设备与流程

文档序号:15494216发布日期:2018-09-21 21:18阅读:244来源:国知局

本发明涉及图像处理领域,具体涉及一种面部图像的表情控制方法及装置、计算设备。



背景技术:

随着科技的发展,图像采集设备的技术也日益提高。使用图像采集设备采集到的图像也更加清晰,分辨率、显示效果也大幅提高。在现有技术中,当图像采集设备获取到一帧图像之后,通常只是对获得的图像进行美化贴图等各种常规性处理,因此对所获取的图像数据的处理比较单一。

但是,发明人在实现本发明的过程中发现,通过现有技术无法直接控制所获取到的静态图像中的面部做表情,使静态的图像动起来,因此无法获得更加多元化的图像。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的面部图像的表情控制方法及装置、计算设备。

根据本发明的一个方面,提供了一种面部图像的表情控制方法,其包括:

确定与原始面部图像相对应的第一面部三维网格;

根据原始面部图像以及第一面部三维网格,确定第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系;

针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格;

根据纹理映射关系,生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。

可选地,其中,所述第一面部三维网格中包含的第一网格点的数量与所述第二面部三维网格中包含的第二网格点的数量相同;所述第二面部三维网格中的各个第二网格点分别与所述第一面部三维网格中的各个第一网格点一一对应,且各个第二网格点与其对应的第一网格点具有相同的纹理映射关系。

可选地,其中,所述针对所述第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与所述第一面部三维网格相对应的第二面部三维网格的步骤具体包括:

根据用于生成所述表情幅度数据的预设表情规则确定与所述第一面部三维网格中的各个第一网格点相对应的初始表情数据;

将所述表情幅度数据与所述初始表情数据进行比较,根据比较结果确定所述第一面部三维网格中的各个第一网格点的位移方向和/或位移大小;

根据所述位移方向和/或位移大小对各个第一网格点执行位移处理,以生成所述第二面部三维网格中的各个第二网格点;

其中,每个第二网格点分别对应于位移处理前的第一网格点且与该位移处理前的第一网格点具有相同的纹理映射关系。

可选地,其中,所述表情幅度数据进一步包括:分别与各个面部部位相对应的表情幅度子数据,且所述初始表情数据进一步包括:分别与各个面部部位相对应的初始表情子数据;

则所述将所述表情幅度数据与所述初始表情数据进行比较,根据比较结果确定所述第一面部三维网格中的各个第一网格点的位移方向和/或位移大小的步骤具体包括:

分别针对每个面部部位,将该面部部位所对应的表情幅度子数据以及初始表情子数据进行比较;

根据比较结果判断该面部部位是否符合预设表情处理规则;

若是,则根据所述预设表情处理规则确定所述第一面部三维网格中与该面部部位相对应的各个第一网格点的位移方向和/或位移大小,以得到第二面部三维网格中与该面部部位相对应的各个第二网格点。

可选地,其中,所述面部部位包括以下中的至少一个:脸颊部位、眼睛部位、眉毛部位、嘴巴部位、鼻子部位、以及耳朵部位。

可选地,其中,所述表情幅度数据进一步包括:多组按照预设顺序依次排列的表情幅度数据;

则所述针对所述第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与所述第一面部三维网格相对应的第二面部三维网格的步骤具体包括:针对所述第一面部三维网格中的各个第一网格点,依次执行与所述多组按照预设顺序依次排列的表情幅度数据相对应的处理,得到多个按照预设顺序依次排列的第二面部三维网格;

且所述根据所述纹理映射关系,生成与所述第二面部三维网格中的各个第二网格点相对应的面部表情图像的步骤具体包括:根据所述纹理映射关系以及所述多个按照预设顺序依次排列的第二面部三维网格,生成多个按照预设顺序依次排列的面部表情图像。

可选地,其中,所述根据所述原始面部图像以及所述第一面部三维网格,确定所述第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系的步骤具体包括:

分别确定所述第一面部三维网格中的各个第一网格点的第一网格标识;

根据所述原始面部图像,确定与各个第一网格标识相对应的纹理像素的像素值以及纹理坐标值;

根据各个第一网格标识所对应的纹理像素的像素值以及纹理坐标值生成所述纹理映射关系。

可选地,其中,所述根据所述纹理映射关系,生成与所述第二面部三维网格中的各个第二网格点相对应的面部表情图像的步骤具体包括:

分别针对所述第二面部三维网格中的每个第二网格点,确定该第二网格点的第二网格标识,以及与该第二网格标识相同的第一网格标识;根据所述纹理映射关系,查询与该第二网格标识相同的第一网格标识所对应的纹理像素的像素值以及纹理坐标值,根据查询结果对该第二网格点进行贴图处理;

其中,每个第二网格点的第二网格标识与其对应的第一网格点的第一网格标识相同。

可选地,其中,所述方法执行之前,进一步包括:

预先针对获取到的图像数据进行分析,根据分析结果确定与所述图像数据相对应的表情幅度数据;

其中,所述图像数据包括:照片数据、和/或视频数据。

可选地,其中,所述确定与原始面部图像相对应的第一面部三维网格的步骤具体包括:

提取原始面部图像中包含的各个面部关键点,根据所述面部关键点确定与所述原始面部图像相对应的第一面部三维网格。

根据本发明的另一个方面,提供了一种面部图像的表情控制装置,包括:

第一确定模块,适于确定与原始面部图像相对应的第一面部三维网格;

第二确定模块,适于根据所述原始面部图像以及所述第一面部三维网格,确定所述第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系;

处理模块,适于针对所述第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与所述第一面部三维网格相对应的第二面部三维网格;

生成模块,适于根据所述纹理映射关系,生成与所述第二面部三维网格中的各个第二网格点相对应的面部表情图像。

可选地,其中,所述第一面部三维网格中包含的第一网格点的数量与所述第二面部三维网格中包含的第二网格点的数量相同;所述第二面部三维网格中的各个第二网格点分别与所述第一面部三维网格中的各个第一网格点一一对应,且各个第二网格点与其对应的第一网格点具有相同的纹理映射关系。

可选地,其中,所述处理模块具体适于:

根据用于生成所述表情幅度数据的预设表情规则确定与所述第一面部三维网格中的各个第一网格点相对应的初始表情数据;

将所述表情幅度数据与所述初始表情数据进行比较,根据比较结果确定所述第一面部三维网格中的各个第一网格点的位移方向和/或位移大小;

根据所述位移方向和/或位移大小对各个第一网格点执行位移处理,以生成所述第二面部三维网格中的各个第二网格点;

其中,每个第二网格点分别对应于位移处理前的第一网格点且与该位移处理前的第一网格点具有相同的纹理映射关系。

可选地,其中,所述表情幅度数据进一步包括:分别与各个面部部位相对应的表情幅度子数据,且所述初始表情数据进一步包括:分别与各个面部部位相对应的初始表情子数据;

则所述处理模块具体适于:

分别针对每个面部部位,将该面部部位所对应的表情幅度子数据以及初始表情子数据进行比较;

根据比较结果判断该面部部位是否符合预设表情处理规则;

若是,则根据所述预设表情处理规则确定所述第一面部三维网格中与该面部部位相对应的各个第一网格点的位移方向和/或位移大小,以得到第二面部三维网格中与该面部部位相对应的各个第二网格点。

可选地,其中,所述面部部位包括以下中的至少一个:脸颊部位、眼睛部位、眉毛部位、嘴巴部位、鼻子部位、以及耳朵部位。

可选地,其中,所述表情幅度数据进一步包括:多组按照预设顺序依次排列的表情幅度数据;

则所述处理模块具体适于:针对所述第一面部三维网格中的各个第一网格点,依次执行与所述多组按照预设顺序依次排列的表情幅度数据相对应的处理,得到多个按照预设顺序依次排列的第二面部三维网格;

且所述生成模块具体适于:根据所述纹理映射关系以及所述多个按照预设顺序依次排列的第二面部三维网格,生成多个按照预设顺序依次排列的面部表情图像。

可选地,其中,所述第二确定模块具体适于:

分别确定所述第一面部三维网格中的各个第一网格点的第一网格标识;

根据所述原始面部图像,确定与各个第一网格标识相对应的纹理像素的像素值以及纹理坐标值;

根据各个第一网格标识所对应的纹理像素的像素值以及纹理坐标值生成所述纹理映射关系。

可选地,其中,所述生成模块具体适于:

分别针对所述第二面部三维网格中的每个第二网格点,确定该第二网格点的第二网格标识,以及与该第二网格标识相同的第一网格标识;根据所述纹理映射关系,查询与该第二网格标识相同的第一网格标识所对应的纹理像素的像素值以及纹理坐标值,根据查询结果对该第二网格点进行贴图处理;

其中,每个第二网格点的第二网格标识与其对应的第一网格点的第一网格标识相同。

可选地,其中,所述装置进一步包括分析模块,适于:

预先针对获取到的图像数据进行分析,根据分析结果确定与所述图像数据相对应的表情幅度数据;

其中,所述图像数据包括:照片数据、和/或视频数据。

可选地,其中,所述第一确定模块具体适于:

提取原始面部图像中包含的各个面部关键点,根据所述面部关键点确定与所述原始面部图像相对应的第一面部三维网格。

根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述面部图像的表情控制方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述面部图像的表情控制方法对应的操作。

根据本发明实施例提供的面部图像的表情控制方法及装置、计算设备,通过确定与原始面部图像相对应的第一面部三维网格并根据原始面部图像以及第一面部三维网格,并根据原始面部图像以及第一面部三维网格,确定第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系,然后针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格,最后根据纹理映射关系,生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。由此可见,根据该方法能够控制所获取的原始图像(包括一帧或者多帧图像)中的面部做出各种表情,使静态的图像动起来,从而能够获得更加多元化的图像,提升了获取到的图像的趣味性,满足用户的各种需要。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的面部图像的表情控制方法的流程图;

图2示出了根据本发明另一个实施例的面部图像的表情控制方法的流程图;

图3示出了根据本发明一个实施例的面部图像的表情控制装置的功能框图;

图4示出了根据本发明一个实施例的一种计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的面部图像的表情控制方法的流程图。如图1所示,面部图像的表情控制方法具体包括如下步骤:

步骤s101,确定与原始面部图像相对应的第一面部三维网格。

其中,原始面部图像可以是照片数据或者视频数据中的一帧图像中的面部图像。具体地,可以提取原始面部图像中包含的各个面部关键点,然后根据面部关键点确定与原始面部图像相对应的第一面部三维网格。或者根据其它的方式确定与原始面部图像相对应的第一面部三维网格。其中,第一面部三维网格用于确定面部关键部位的立体轮廓,具体形式可由本领域技术人员灵活设置。

步骤s102,根据原始面部图像以及第一面部三维网格,确定第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系。

具体地,可以对上述第一面部三维网格中的各个第一网格点添加第一网格标识,并且获取上述各个第一网格标识相对应的像素值以及纹理坐标值,然后根据各个第一网络标识相对应的纹理像素的像素值以及纹理坐标值生成纹理映射关系。其中,纹理映射关系用于确定各个第一网格点与其对应的像素的像素值以及纹理坐标值之间的映射关系。由此可见,通过纹理映射关系,一方面,能够确定各个第一网格点所对应的像素的像素值(例如确定嘴巴边缘部位的第一网格点所对应的像素的像素值为与嘴唇颜色相对应的数值);另一方面,能够确定各个第一网格点的纹理坐标值,即位置坐标。具体实施时,纹理坐标值可通过多种形式表示,例如,可以通过预设坐标系中的坐标值表示,也可以通过第一面部三维网格中的各个第一网格点之间的相对位置关系表示,本发明对纹理坐标值的具体形式不做限定,只要能够反映对应网格点中第一面部三维网格中的位置信息即可。

步骤s103,针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格。

其中,表情幅度数据可以为以预先建立的表情体系为标准的多组数值范围在0到1之间的系数,还可以为其它的自定义数值范围内的数值,针对其中一组表情幅度数据,不同大小的表情幅度数据对应不同的面部表情幅度。比如针对眼睛部位,闭眼的时候,眼睛部位的表情幅度数据可以为0;眼睛睁到最大的时候,眼睛部位的表情幅度数据可以为1。表情幅度数据的具体的组数可以根据各个面部部位以及面部轮廓的类型进行确定或者根据其它的标准由本领域人员进行自定义设定。上述预设的表情幅度数据也可以由本领域技术人员根据想要实现的面部图像的表情控制效果自定义设置。该预设的表情幅度数据可以是具体的某个数值,比如为0,0.5,1等数值,数值的具体大小可以根据想要获得的表情进行设置。为了实现对面部图像连续地动态控制,上述预设的表情幅度数据还可以为多组按照预设顺序依次排列的表情幅度数据。

另外,除了可以以针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理的方式,得到与第一面部三维网格相对应的第二面部三维网格外,还可以根据预设的表情幅度数据以及预设的表情处理规则重新生成第二面部三维网格中的各个第二网格点,从而得到与第一面部三维网格相对应的第二面部三维网格。也就是说,第二面部三维网格既可以是对第一面部三维网格进行处理后得到的,也可以是另行生成的独立于第一面部三维网格的。上述两种方式,本领域技术人员可以任意自行选择。但无论采用何种方式,第二面部三维网格与第一面部三维网格中的网格点的数量都是相同的,且每个第一网格点分别对应于一个第二网格点。

步骤s104,根据纹理映射关系,生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。

具体地,可以先确定第一面部三维网格中各个第一网格点与第二面部三维网格中的各个第二网格点之间的对应关系;然后根据第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系以及上述第一三维网格中各个第一网格点与第二面部三维网格中的各个第二网格点之间的对应关系,确定与第二面部三维网格中的各个第二网格点存在纹理映射关系的纹理像素,最后根据第二面部三维网格中的各个第二网格点与其对应的纹理像素之间的纹理映射关系对各个第二网格点进行贴图处理,从而生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。由此可见,第二面部三维网格中的各个第二网格点与其对应的第一网格点具有完全相同的纹理映射关系。通俗的讲,相对于第一面部三维网格而言,第二面部三维网格中的各个第二网格点的位置可能与其对应的第一网格点的位置略有不同(例如嘴角在微笑时会上扬),但是,每个第二网格点所对应的像素值对其对应的第一网格点的像素值完全相同(例如嘴角上扬时嘴唇的颜色并未发生改变)。

具体地,确定第一面部三维网格中各个第一网格点与第二面部三维网格中的各个第二网格点之间的对应关系时,可以通过对各个第一网格点与其对应的第二网格点设置相同或相应的网格标识的方式实现。例如,针对第一面部三维网格中与嘴唇左边缘部位相对应的第一网格点,设置对应的第一网格标识为10。相应地,针对第二面部三维网格中与嘴唇左边缘部位相对应的第二网格点,设置对应的第二网格标识为10’。由此可见,通过网格标识即可快速确定各个第二网格点所对应的第一网格点。除此之外,还可以根据其它的方式来确定第一面部三维网格中各个第一网格点与第二面部三维网格中的各个第二网格点之间的对应关系。例如,可以设置一个对照表,用于查询每个第二网格点所对应的第一网格点。

根据本实施例提供的面部图像的表情控制方法,通过确定与原始面部图像相对应的第一面部三维网格,并根据原始面部图像以及第一面部三维网格,确定第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系,然后针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格,最后根据纹理映射关系,生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。由此可见,根据该方法能够控制所获取的待处理的原始图像数据中的一帧或者多帧图像中的面部做出各种表情,使静态的图像动起来,从而能够获得更加多元化的图像,提升了获取到的图像的趣味性,满足用户的各种需要。

图2示出了根据本发明另一个实施例的面部图像的表情控制方法的流程图。如图2所示,面部图像的表情控制方法具体包括如下步骤:

步骤s201,预先针对获取到的图像数据进行分析,根据分析结果确定与图像数据相对应的表情幅度数据。

其中,上述图像数据包括但不限于以下中的一种:照片数据、和/或视频数据。进一步地,上述表情幅度数据进一步包括:分别与各个面部部位相对应的表情幅度子数据。上述各个面部部位包括以下中的至少一个:脸颊部位、眼睛部位、眉毛部位、嘴巴部位、鼻子部位、以及耳朵部位。通过对图像中的各个面部部位相对应的表情幅度数据进行分析,根据分析结果可以确定与各个面部部位相对应的表情幅度子数据。

在本实施例中,可以预先建立一套表情标准体系,这套表情标准体系可以为blendship表情体系或者其它类型的表情体系。当建立该表情体系后,可以以这套表情体系的表情幅度系数为标准来设置表情幅度系数,比如在该套表情体系中共设置40组数值范围为0到1的表情幅度系数,并且任一组表情幅度系数中的不同的表情幅度系数值对应着该组表情幅度系数相对应的面部部位的不同的表情幅度。比如,针对嘴巴部位,当闭嘴的时候,嘴巴部位相对应的表情幅度子数据为0,当嘴巴张到最大的时候,嘴巴部位相对应的表情幅度子数据为1;其它0到1之间的表情幅度子数据可以根据嘴巴张开的程度来相应地设置。根据上述各个系数值可以确定与图像数据相对应的表情,反之,通过对获取到的图像数据进行分析,根据分析结果可以确定与图像数据相对应的表情幅度数据。

由此可见,通过本步骤能够确定与一张照片或一段视频相对应的表情幅度数据,以便根据该张照片或该段视频所对应的表情控制下述步骤中的原始面部图像的表情发生相应变化。可选的,本步骤还可以替换为其他的实现方式,例如,通过程序设定一套表情幅度数据,以便控制下述步骤中的原始面部图像的表情发生相应变化。比如针对图像嘴巴部位,如果想要控制图像面部嘴巴张到最大,则可以将嘴巴部位的表情幅度子数据设置为1,如果想要控制图像面部嘴巴部位闭合,则可以将嘴巴部位的表情幅度子数据设置为0,其它面部部位的预设表情幅度数据的设置也可以根据想要控制面部图像做出的表情的效果来设置,本实施例在此不对其进行限制。总之,表情幅度数据用于控制下述步骤中的原始面部图像的表情发生相应变化,该表情幅度数据既可以根据已有的图像或视频生成,也可以灵活定义,本发明对表情幅度数据的具体来源不做限定。

步骤s202,确定与原始面部图像相对应的第一面部三维网格。

其中,原始面部图像可以是照片数据或者视频数据中的一帧或者多帧待控制的图像中的面部图像。具体地,可以提取原始面部图像中包含的各个面部关键点,然后根据面部关键点确定与原始面部图像相对应的第一面部三维网格,该第一面部三维网格用于确定面部关键部位的立体轮廓,具体形式可由本领域技术人员灵活设置。其中,面部关键点包括:与面部五官和/或面部轮廓相对应的特征点,可以通过深度学习的方式获得还可以根据其它的方式获得。比如可以在图像脸部部位共布置95个关键点,然后在脸颊部位、眼睛部位、眉毛部位、嘴巴部位、鼻子部位以及脸部轮廓部位分别布置若干个关键点。通过获取各个面部关键点的位置信息和各个面部关键点的相对位置关系,则可以确定与原始面部图像相对应的第一面部三维网格。

在确定上述第一面部三维网格之后,根据原始面部图像以及第一面部三维网格可以确定第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系。具体地,可以通过执行步骤s203~s205中的内容来实现。

步骤s203,分别确定第一面部三维网格中的各个第一网格点的第一网格标识。

由于三维网格是由多个相互交叉的线条构成,上述多个线条相互交叉则会形成多个网格点。可以通过对各个网格点添加网格标识以区分并标识各个网格点,上述网格标识可以为“1、2、3、4”等阿拉伯数字序列,还可以为“a、b、c、d”等字母序列,当然还可以为其它类型的网格标识,在此不一一类述。通过对第一面部三维网格中的各个第一网格点添加网格标识,可以分别确定第一面部三维网格中的各个第一网格点的第一网格标识,通过查找各个第一网格标识则可以获取其对应的各个第一网格点。

步骤s204,根据原始面部图像,确定与各个第一网格标识相对应的纹理像素的像素值以及纹理坐标值。

由于纹理坐标是二维数组,纹理坐标值可以用于表示纹理像素在纹理坐标中的位置,以坐标值的形式来表示可以确定各个面部关键点所对应的纹理像素值在面部图像中的纹理坐标以及在3d网格中的位置,从而确定各个像素值在面部图像中的位置。每一个纹理像素在纹理中都有一个唯一的地址,这个地址可以被认为是一个行和列的值,并且可以用u和v来表示。并且由于原始面部图像是将图像纹理通过uv坐标映射到3d网格表面所得到的,所以根据这种关系,并通过对原始面部图像的纹理进行分析,可以获取并确定与各个第一网格标识相对应的纹理坐标值及其相应的纹理像素的像素值。

步骤s205,根据各个第一网格标识所对应的纹理像素的像素值以及纹理坐标值生成纹理映射关系。

具体地,通过确定与各个第一网格标识相对应的纹理像素的像素值以及纹理坐标值,并根据各个第一网格标识所对应的纹理像素的像素值以及纹理坐标值可以生成纹理映射关系。根据这种纹理映射关系,可以根据各个第一网格标识确定其对应的纹理像素的像素值以及纹理坐标值;反之,根据纹理像素的像素值以及纹理坐标值可以确定与之相对应的各个第一网格标识。

步骤s206,针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格。

具体地,可以通过执行下述步骤一~步骤三来实现步骤s206中的内容:

步骤一:根据用于生成表情幅度数据的预设表情规则确定与第一面部三维网格中的各个第一网格点相对应的初始表情数据。

其中,上述预设表情规则可以根据上述预先建立的表情标准体系确定,既用于根据各个面部关键点的位置关系生成步骤s201中的表情幅度数据,也用于生成与第一面部三维网格中的各个第一网格点相对应的初始表情数据。具体地,可以通过提取原始面部图像中包含的各个面部关键点,根据上述面部关键点确定与原始面部图像相对应的第一面部三维网格。相应地,根据各个面部关键点与原始面部图像相对应的第一面部三维网格的对应关系,可以根据第一面部三维网格中的各个第一网格点的位置信息确定各个面部关键点的位置信息,从而根据各个面部关键点的位置信息确定与各个面部关键点相对应的初始表情数据。由于表情幅度数据包括分别与各个面部部位相对应的表情幅度子数据,相应地,初始表情数据进一步包括:分别与各个面部部位相对应的初始表情子数据。由此可见,初始表情数据是根据预设表情规则确定的与原始面部图像相对应的表情数据。

步骤二:将表情幅度数据与初始表情数据进行比较,根据比较结果确定第一面部三维网格中的各个第一网格点的位移方向和/或位移大小。

可以直接将表情幅度数据与初始表情数据进行比较,根据比较结果以及预设表情处理规则确定第一面部三维网格中的各个第一网格点的位移方向和/或位移大小。还可以分别针对每个面部部位,将该面部部位所对应的表情幅度子数据以及初始表情子数据进行比较;根据比较结果判断该面部部位是否符合预设表情处理规则;若是,则根据上述预设表情处理规则确定第一面部三维网格中与该面部部位相对应的各个第一网格点的位移方向和/或位移大小,以得到第二面部三维网格中与该面部部位相对应的各个第二网格点。比如针对嘴巴部位,将嘴巴部位所对应的表情幅度子数据与初始表情子数据进行比较;然后根据比较的结果判断嘴巴部位是否符合预设表情处理规则;若符合预设表情处理规则,则根据预设表情处理规则确定第一面部三维网格中与嘴巴部位相对应的各个第一网格点的位移方向和/或位移大小,以得到第二面部三维网格中与该嘴巴部位相对应的各个第二网格点。其中,预设表情处理规则用于确定第一网格点根据初始表情子数据以及表情幅度子数据之间的比较结果发生位移的规律。例如,预设表情处理规则可以为:当一部位的初始表情子数据与该部位对应的表情幅度子数据之间的差值大于预设表情阈值时,控制与该部位相对应的第一网格点发生位移,以使位移后的该部位与表情幅度子数据的数值一致。其中,预设表情阈值的大小可根据控制精度的要求灵活设置。

步骤三:根据位移方向和/或位移大小对各个第一网格点执行位移处理,以生成第二面部三维网格中的各个第二网格点,从而得到与第一面部三维网格相对应的第二面部三维网格。

其中,每个第二网格点分别对应于位移处理前的第一网格点且与该位移处理前的第一网格点具有相同的纹理映射关系。

并且,第一面部三维网格中包含的第一网格点的数量与第二面部三维网格中包含的第二网格点的数量相同;第二面部三维网格中的各个第二网格点分别与第一面部三维网格中的各个第一网格点一一对应,且各个第二网格点与其对应的第一网格点具有相同的纹理映射关系。通过该步骤三,能够得到与每个第一面部三维网格中的第一网格点相互对应的第二网格点,从而得到与第一面部三维网格相对应的第二面部三维网格。

值得注意的是,本实施例可以通过执行步骤s206中的内容,通过针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格。还可以针对预设的表情幅度数据和预设表情规则重新生成第二面部三维网格中的各个第二网格点,从而得到与第一面部三维网格相对应的第二面部三维网格。本实施例可以通过上述两种方式中的任意一种来获取到与第一面部三维网格相对应的第二面部三维网格,在此不予以限制。

另外,为了控制图像中的面部表情不断地发生变化,比如为了实现对图像眼睛部位不断的睁开和闭合的控制,上述表情幅度数据可以进一步包括:多组按照预设顺序依次排列的表情幅度数据。

则针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格的步骤具体包括:针对第一面部三维网格中的各个第一网格点,依次执行与多组按照预设顺序依次排列的表情幅度数据相对应的处理,得到多个按照预设顺序依次排列的第二面部三维网格;并且上述根据纹理映射关系,生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像的步骤具体包括:根据纹理映射关系以及多个按照预设顺序依次排列的第二面部三维网格,生成多个按照预设顺序依次排列的面部表情图像。具体地,比如针对眼睛部位,为了实现图像中眼睛不断的睁开与闭合,眼睛部位所对应的预设的表情幅度子数据可以设置为按照预设顺序依次排列的表情幅度数据,即可以按照时间的顺序控制眼睛部位所对应的表情幅度子数据从0增大到0.1、0.2…等一直增大到1,再从1依次减回0。然后,针对第一面部三维网格中的眼睛部位相对应的各个第一网格点,依次执行与该组按照预设顺序依次排列的表情幅度数据相对应的处理,得到多个按照预设顺序依次排列的第二面部三维网格;并且根据纹理映射关系以及多个按照预设顺序依次排列的眼睛部位所对应的第二面部三维网格,生成多个按照预设顺序依次排列的眼睛部位的表情图像,从而实现眼睛部位的不断地睁开与闭合。针对其它的面部部位相对应的第一面部三维网格中的各个第一网格点,也可以通过这样的方式来执行与预设的表情幅度数据相对应的处理,从而得到随着时间依次发生变化的各个面部部位的表情。

步骤s207,根据纹理映射关系,生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。

具体地,分别针对第二面部三维网格中的每个第二网格点,确定该第二网格点的第二网格标识,以及与该第二网格标识相同或相应的第一网格标识;根据纹理映射关系,查询与该第二网格标识相同或相应的第一网格标识所对应的纹理像素的像素值以及纹理坐标值,根据查询结果对该第二网格点进行贴图处理,从而生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。其中,每个第二网格点的第二网格标识与其对应的第一网格点的第一网格标识相同或相应。通过查询第一网格标识以及第二网格标识能够准确地生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像,减小误差。

根据本实施例提供的面部图像的表情控制方法,通过预先针对获取到的图像数据进行分析,根据分析结果确定与图像数据相对应的表情幅度数据,然后确定与原始面部图像相对应的第一面部三维网格,然后分别确定第一面部三维网格中的各个第一网格点的第一网格标识,并确定与各个第一网格标识相对应的纹理像素的像素值以及纹理坐标值,从而根据各个第一网格标识所对应的纹理像素的像素值以及纹理坐标值生成纹理映射关系,进而针对第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与第一面部三维网格相对应的第二面部三维网格,最后根据纹理映射关系,生成与第二面部三维网格中的各个第二网格点相对应的面部表情图像。由此可见,根据该方法能够控制所获取的待处理的原始图像数据中的一帧或者多帧图像中的面部做出各种表情,使静态的图像动起来,从而能够获得更加多元化的图像,提升了获取到的图像的趣味性,满足用户的各种需要。

图3示出了根据本发明一个实施例的面部图像的表情控制装置的功能框图。如图3所示,所述装置包括:分析模块31、第一确定模块32、第二确定模块33、处理模块34、生成模块35。

其中,第一确定模块32,适于确定与原始面部图像相对应的第一面部三维网格;

第二确定模块33,适于根据所述原始面部图像以及所述第一面部三维网格,确定所述第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系;

处理模块34,适于针对所述第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与所述第一面部三维网格相对应的第二面部三维网格;

生成模块35,适于根据所述纹理映射关系,生成与所述第二面部三维网格中的各个第二网格点相对应的面部表情图像。

可选地,其中,所述第一面部三维网格中包含的第一网格点的数量与所述第二面部三维网格中包含的第二网格点的数量相同;所述第二面部三维网格中的各个第二网格点分别与所述第一面部三维网格中的各个第一网格点一一对应,且各个第二网格点与其对应的第一网格点具有相同的纹理映射关系。

可选地,其中,所述处理模块34具体适于:

根据用于生成所述表情幅度数据的预设表情规则确定与所述第一面部三维网格中的各个第一网格点相对应的初始表情数据;

将所述表情幅度数据与所述初始表情数据进行比较,根据比较结果确定所述第一面部三维网格中的各个第一网格点的位移方向和/或位移大小;

根据所述位移方向和/或位移大小对各个第一网格点执行位移处理,以生成所述第二面部三维网格中的各个第二网格点;

其中,每个第二网格点分别对应于位移处理前的第一网格点且与该位移处理前的第一网格点具有相同的纹理映射关系。

可选地,其中,所述表情幅度数据进一步包括:分别与各个面部部位相对应的表情幅度子数据,且所述初始表情数据进一步包括:分别与各个面部部位相对应的初始表情子数据;

则所述处理模块34具体适于:

分别针对每个面部部位,将该面部部位所对应的表情幅度子数据以及初始表情子数据进行比较;

根据比较结果判断该面部部位是否符合预设表情处理规则;

若是,则根据所述预设表情处理规则确定所述第一面部三维网格中与该面部部位相对应的各个第一网格点的位移方向和/或位移大小,以得到第二面部三维网格中与该面部部位相对应的各个第二网格点。

可选地,其中,所述面部部位包括以下中的至少一个:脸颊部位、眼睛部位、眉毛部位、嘴巴部位、鼻子部位、以及耳朵部位。

可选地,其中,所述表情幅度数据进一步包括:多组按照预设顺序依次排列的表情幅度数据;

则所述处理模块34具体适于:针对所述第一面部三维网格中的各个第一网格点,依次执行与所述多组按照预设顺序依次排列的表情幅度数据相对应的处理,得到多个按照预设顺序依次排列的第二面部三维网格;

且所述生成模块35具体适于:根据所述纹理映射关系以及所述多个按照预设顺序依次排列的第二面部三维网格,生成多个按照预设顺序依次排列的面部表情图像。

可选地,其中,所述第二确定模块33具体适于:

分别确定所述第一面部三维网格中的各个第一网格点的第一网格标识;

根据所述原始面部图像,确定与各个第一网格标识相对应的纹理像素的像素值以及纹理坐标值;

根据各个第一网格标识所对应的纹理像素的像素值以及纹理坐标值生成所述纹理映射关系。

可选地,其中,所述生成模块34具体适于:

分别针对所述第二面部三维网格中的每个第二网格点,确定该第二网格点的第二网格标识,以及与该第二网格标识相同的第一网格标识;根据所述纹理映射关系,查询与该第二网格标识相同的第一网格标识所对应的纹理像素的像素值以及纹理坐标值,根据查询结果对该第二网格点进行贴图处理;

其中,每个第二网格点的第二网格标识与其对应的第一网格点的第一网格标识相同。

可选地,其中,所述装置进一步包括分析模块31,适于:

预先针对获取到的图像数据进行分析,根据分析结果确定与所述图像数据相对应的表情幅度数据;

其中,所述图像数据包括:照片数据、和/或视频数据。

可选地,其中,所述第一确定模块具体适于:

提取原始面部图像中包含的各个面部关键点,根据所述面部关键点确定与所述原始面部图像相对应的第一面部三维网格。

上述各个模块的具体结构和工作原理可参照方法实施例中相应部分的描述,此处不再赘述。

图4示出了根据本发明一个实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(communicationsinterface)404、存储器(memory)406、以及通信总线408。

其中:

处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。

通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器402,用于执行程序410,具体可以执行上述面部图像的表情控制方法实施例中的相关步骤。

具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

处理器402可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序410具体可以用于使得处理器402执行以下操作:

确定与原始面部图像相对应的第一面部三维网格;

根据所述原始面部图像以及所述第一面部三维网格,确定所述第一面部三维网格中的各个第一网格点与其对应的纹理像素之间的纹理映射关系;

针对所述第一面部三维网格中的各个第一网格点执行与预设的表情幅度数据相对应的处理,得到与所述第一面部三维网格相对应的第二面部三维网格;

根据所述纹理映射关系,生成与所述第二面部三维网格中的各个第二网格点相对应的面部表情图像。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:其中,所述第一面部三维网格中包含的第一网格点的数量与所述第二面部三维网格中包含的第二网格点的数量相同;所述第二面部三维网格中的各个第二网格点分别与所述第一面部三维网格中的各个第一网格点一一对应,且各个第二网格点与其对应的第一网格点具有相同的纹理映射关系。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

根据用于生成所述表情幅度数据的预设表情规则确定与所述第一面部三维网格中的各个第一网格点相对应的初始表情数据;

将所述表情幅度数据与所述初始表情数据进行比较,根据比较结果确定所述第一面部三维网格中的各个第一网格点的位移方向和/或位移大小;

根据所述位移方向和/或位移大小对各个第一网格点执行位移处理,以生成所述第二面部三维网格中的各个第二网格点;

其中,每个第二网格点分别对应于位移处理前的第一网格点且与该位移处理前的第一网格点具有相同的纹理映射关系。

在一种可选的方式中,其中,所述表情幅度数据进一步包括:分别与各个面部部位相对应的表情幅度子数据,且所述初始表情数据进一步包括:分别与各个面部部位相对应的初始表情子数据;

则程序410具体可以进一步用于使得处理器402执行以下操作:分别针对每个面部部位,将该面部部位所对应的表情幅度子数据以及初始表情子数据进行比较;

根据比较结果判断该面部部位是否符合预设表情处理规则;

若是,则根据所述预设表情处理规则确定所述第一面部三维网格中与该面部部位相对应的各个第一网格点的位移方向和/或位移大小,以得到第二面部三维网格中与该面部部位相对应的各个第二网格点。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:其中,所述面部部位包括以下中的至少一个:脸颊部位、眼睛部位、眉毛部位、嘴巴部位、鼻子部位、以及耳朵部位。

在一种可选的方式中,所述表情幅度数据进一步包括:多组按照预设顺序依次排列的表情幅度数据;

程序410具体可以进一步用于使得处理器402执行以下操作:针对所述第一面部三维网格中的各个第一网格点,依次执行与所述多组按照预设顺序依次排列的表情幅度数据相对应的处理,得到多个按照预设顺序依次排列的第二面部三维网格;

且程序410具体可以进一步用于使得处理器402执行以下操作:根据所述纹理映射关系以及所述多个按照预设顺序依次排列的第二面部三维网格,生成多个按照预设顺序依次排列的面部表情图像。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:分别确定所述第一面部三维网格中的各个第一网格点的第一网格标识;

根据所述原始面部图像,确定与各个第一网格标识相对应的纹理像素的像素值以及纹理坐标值;

根据各个第一网格标识所对应的纹理像素的像素值以及纹理坐标值生成所述纹理映射关系。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:分别针对所述第二面部三维网格中的每个第二网格点,确定该第二网格点的第二网格标识,以及与该第二网格标识相同的第一网格标识;根据所述纹理映射关系,查询与该第二网格标识相同的第一网格标识所对应的纹理像素的像素值以及纹理坐标值,根据查询结果对该第二网格点进行贴图处理;

其中,每个第二网格点的第二网格标识与其对应的第一网格点的第一网格标识相同。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

预先针对获取到的图像数据进行分析,根据分析结果确定与所述图像数据相对应的表情幅度数据;

其中,所述图像数据包括:照片数据、和/或视频数据。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:提取原始面部图像中包含的各个面部关键点,根据所述面部关键点确定与所述原始面部图像相对应的第一面部三维网格。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的视频数据实时处理的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1