CN107705341A - 用户表情头像生成的方法及其装置 - Google Patents
用户表情头像生成的方法及其装置 Download PDFInfo
- Publication number
- CN107705341A CN107705341A CN201610645774.9A CN201610645774A CN107705341A CN 107705341 A CN107705341 A CN 107705341A CN 201610645774 A CN201610645774 A CN 201610645774A CN 107705341 A CN107705341 A CN 107705341A
- Authority
- CN
- China
- Prior art keywords
- user
- data
- head
- angle
- characteristic point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种用户表情头像生成的方法及其装置,所述方法包括如下步骤:发送端获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包;接收端根据所述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。借此,本发明提高了发送端获取用户表情头像的面部的特征点位置以及接收端生成用户表情头像的速率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用户表情头像生成的方法及其装置。
背景技术
由计算机仿真头像(avatar)或绘制成的卡通头像由最简单的静态的代表个人图标以至动态的代表个人情绪的图标,变成头像动画。动态的头像,除了可以代表一个人或角色的特点外,也可以使用变动的头像的形状增加内容,包括用作动画代表一个人或角色正在唱歌、谈话,还可以是以不用的图像代表一个角色的面部表情,进一步显示一个角色的喜、怒、哀、乐。此外,这种面部表情包括眼眉未端向上向下、嘴角向上向下、眼睛张大或正常大细等,都是组成一个头像的表情的单元。
头像的变动,可以是预设的,包括由绘画师以动画式制成卡通头像,根据动画的内容,例如要表现角色唱歌、说话、或要显示角色的情绪,可以根据剧情而序列地变动头像的嘴角、嘴的开合、眼角的上下移动等。这是预设的,根据剧本而编程的。更进一步,现在流行的线上游戏(online games)或称网络游戏,由一个或多个由参与游戏的角色在一个虚拟场景中比赛,各参与者选用不同的头像去代表个人性格,或具体地参与者想投射出来的模拟性格。现在的线上游戏,除了使用选用的模拟头像外,还可以准许参与者直接以言语与其它游戏参与其沟通,这种沟通方法,一方面不用显示参与者的相片而以模拟头像所替代,另一方面是使用参与者的声音而无须参与者使用键盘等装置输入对话,空出参与者双手就可全程控制网络游戏。
现有的网络游戏或会因应游戏的进程而对模拟头像的表情改动,例如参与者A消灭了或抢劫了参与者B的武器,参与者A的仿真头像可以显示胜利的表情,而参与者B的仿真头像可以显示痛苦的表情。在参与者使用左右手操控游戏装置,以言语传播感情,不容易再外加操控装置控制仿真头像的表情。
在现有技术中,以计算机仿真头像,去控制一个头像的变动,在学术界及实际软件开发已有一段时间,其理论是基于由动画专家组(Moving Pictures Expers Group)所开发而成的国际面部及体形动画(Face and Body Animation,FBA)标淮ISO/IEC 14496-1,其中面部动态参数(Face Animation Parameter,FAP)定义一个最少的参数数量标淮,而能够表达模拟人物或近似人物角色的面部表情,足以应用于说话、感情、表情而尽量减低所需数据。面部动态参数代表66个面部的特征点的位置,而所述移位是某一特征点与其原本的、没有特别表情时的位置差距。具体地,原本的、没有特别表情时的面部是指合口,眼睛自然张开(眼睛自然张开定义为眼皮刚与虹膜边接触,eyelids tangent to the iris),头及眼睛目视向正前方,上下牙齿接合,舌尖接门牙等。根据所述ISO 14496-1的标淮,程序向仿真头像显示的子程序需要发出66组参数数据(也有标淮是用68组参数)。现在很多能控制头像变动的程序都以面部动态参数为最基本的数据去控制头像。使用这个标淮,或作微细变异,可以将操控动态的头像的数据,以传送的方式传送到远程而对网络传输量要求较底,例如从网络游戏网站发出的代表游戏参与者的头像无须以动画视讯传输,而只是传输数据。
为了增加游戏的可观性,现有技术中,可以使用一个或多个摄像境头,对着参与者,录取及分析参与者的面部表情,之后以上述所介绍的面部动态参数组传送到其它网络游戏终端。这种方法仍然保护了网络游戏参与者的私隐(没有显示参与者的真实面貌),并减少了网络传输所需频宽(传输数据而非传输视频),这种方法其中一个必须要求是参与者的网络游戏终端设置有摄像镜头、较高效能的处理器及高速内存才可实时处理参与者的面部表情。要分析参与者的面部表情,可以参考上述讨论控制模拟头像时所以提供的66(或68)个特征点(landmark)的数据,为了进行分析,基本上可以分为决定头的方向,及分析六十多个特征点的位置及方向。即要进行一个立体(三维)的特征点分析,分析后以数据方式将面部动态参数组数据传输到网络游戏的服务器再转传到游戏终端。
但是,在现有技术中,一方面有很多硬件或软件系统用作分析人类的面部表情,这些系统大多数能够分析面部表情或分析头部的方向,但未必能简易地同时两种分析都可以做到,即不能进行三维的头部转动及面部表情分析。另一方面,对于在一个相对细少的空间内进行对高密度的特征点进行准确分析,需要较高的计算能力。例如,一个美国制帽商估计美国妇女头顶圆周平均为23英吋,大约等如面部为7英吋宽9英吋长,即约406平方厘米内有68个特征点必须分析。而这种高计算能力可能不适合在现有市场的移动电话中的处理器进行。
另外,在本技术领域中,人员在操控动态头像中,进一步分析人类感情的表达,将部份表情参数(Partial Expression Parameters,PEP)组合成一般通用的面部表情,以下巴(Jaw)的4种形态之中为例,例如下巴移上,则包括面部动态参数中由6个特征点的参数的特别数据。下巴的其它形态,则用同一组的6个特征点的参数的其它数据去代表下巴向上、下巴向左及下巴向右。即要处理下巴,则需要使用相关的表情参数去表达。
但是,现有技术对三维的六十多个特征点进行视像分析,所需运算功能较大,一般需要在前摄取影像时处理(预处理,preprocess)或是在视像分析时加强处理器的功能,包含由多个核心的处理器或多个处理器组成的并行处理(parallel processing),因此,通常以台式计算机或服务器级的系统才能有一个较适用于网络游戏的反应系统。而对于普通的游戏端,一些低配置的台式机,均难以实现。
综上可知,现有的用户表情头像生成的技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种用户表情头像生成的方法及其装置,以提高发送端获取用户表情头像的面部的特征点位置以及接收端生成用户表情头像的速率。
为了实现上述目的,本发明提供一种用户表情头像生成的方法,所述方法包括如下步骤:
A、发送端获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包;
B、接收端根据所述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;
所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。
根据所述的方法,所述动画单元数据组合包包括:零组或者多组动画单元数据组合;每组所述动画单元数据组合包括:
动画单元,所述动画单元标识用户的面部表情的一个或者多个所述预设的特征点;
动画单元数据,所述动画单元数据以所述动画单元代表的所述预设的特征点在自然表情时的位置到极端表情时的位置的距离的百份比表示。
根据所述的方法,所述根据所述预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包的步骤包括:
根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;
根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据。
根据所述的方法,所述用户头颅转动的角度数据及动画单元数据组合包组成动画驱动单元参数;在所述步骤B之前还包括:
C、所述发送端对获取的所述用户动画单元数据组合包进行压缩,将所述用户头颅转动的角度数据和压缩后的所述用户动画单元数据组合包发送到所述接收端;
在所述步骤B中,所述接收端解压所述压缩后的所述用户动画单元数据组合包后,将根据获得的所述动画单元数据组合包和所述用户头颅转动的角度数据生成替代所述用户头像的图像的用户表情头像。
根据所述的方法,所述用户的面部表情的全部特征点为ISO/IEC 14496-1标准中的66个特征点或者68个特征点;
所述预设的特征点为所述66个特征点或者68个特征点中表示面部的预选数目的特征点。
根据所述的方法,所述获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据的步骤包括初步估计特征点的位置的步骤,具体包括:
A1、在所述发送端拍摄和/或输入用户头像的图像;
A2、根据所述用户头像的图像,分析所述用户头颅转动的角度数据;
A3、获得所述用户头颅转动的角度数据后,分析表示所述用户的面部表情的全部特征点的位置数据;
所述输入用户头像的图像为预设的上一时间段内或者当前拍摄的用户头像的图像;
所述用户的面部表情的全部特征点的位置数据包括所述用户的面部表情的全部特征点的位置数据;
所述用户头颅转动的角度数据包括所述用户头颅摆左、摆右、向左、向右、向上和/或向下转动的角度数据,并以三维轴方式表示所述用户头颅转动的角度数据。
根据所述的方法,所述根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包的步骤还包括:
A4、在所述发送端拍摄和/或输入用户头像的图像;
A5、根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动角度数据进行适配,选择相适配的头颅转动角度数据;
A6、根据所述用户头像的图像,将所述表示所述用户的面部表情的预设的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;
A7、根据所述相适配的头颅转动角度数据和相适配的面部表情数据,计算所述动画单元数据组合包,并将所述动画单元数据组合包发送到所述接收端;
所述根据所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像的步骤包括:
B1、所述接收端以预存的动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴的组件显示替代所述用户头像的图像的所述用户表情头像。
根据所述的方法,所述获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据的步骤包括:
A8、在所述发送端拍摄和/或输入用户头像的图像;
A9、判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果,若否则执行步骤A10,若是则执行步骤A11;
A10、对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
A11、根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
A12、根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据;
A13、根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据;和/或
A14、根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。
所述获得用户头颅转动的角度数据以及修正用户头颅转动的角度数据与预设的特征点的位置数据分别进行或者并行进行。
根据所述的方法,所述获取用户头颅转动的角度数据的步骤包括:获取所述用户头颅转动的初始的角度数据的步骤;以及根据所述用户头颅转动的初始的角度数据获取所述用户头颅转动的角度数据的步骤;其中所述获取所述用户头颅转动的初始的角度数据的步骤包括:
A18、在所述发送端拍摄和/或输入用户头像的图像;
A19、判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,若否则执行步骤A20,若是则执行步骤A21;
A20、从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据模板,结合所述用户头像的图像的面部图像,获得所述用户头颅最初的角度数据,并将所述用户头颅最初的角度数据作为初始的所述用户头颅转动的角度数据;
A21、使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据;
A22、将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;
A23、将扭曲变化后的用户头像的图像与在所述发送端拍摄和/或输入的用户头像的图像进行匹配,如果两者相匹配,则输出所述用户头颅转动的初始的角度数据,否则,调整所述用户头颅转动的初始的角度数据,转到步骤A19。
根据所述的方法,所述根据所述用户头颅转动的初始的角度数据获取所述用户头颅转动的角度数据的步骤包括:
A25、将在所述发送端输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
A26、将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新的面部表情的所述预设的特征点的位置数据进行适配;若适配不成功则执行步骤A27,若成功则执行步骤A28;
A27、调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转,并返回A25,直至述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;
A28、输出适配的所述用户头颅转动的角度数据。
根据所述的方法,所述获取代表所述用户的面部表情的预设的特征点的位置数据的步骤包括:获取用户的面部表情的预设的特征点的初始位置数据的步骤;以及根据所述用户的面部表情的预设的特征点的初始位置数据获取代表所述用户的面部表情的预设的特征点的位置数据的步骤;其中,所述获取用户的面部表情的预设的特征点的初始位置数据的步骤包括:
A29、判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据,若否则执行步骤A30,若是则执行步骤A31;
A30、从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;
A31、将由上一个预设的时间段内输入的用户头像的图像获取的表示所述用户的面部表情的所述全部特征点的位置数据,作为代表所述用户的面部表情的全部特征点的位置数据;
A32、将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;
A33、从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。
根据所述的方法,所述根据所述用户的面部表情的预设的特征点的初始位置数据获取代表所述用户的面部表情的预设的特征点的位置数据的步骤包括:
A34、将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;
A35、经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;若有执行步骤A36;若没有则执行步骤A37;
A36、对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,并转到A34;
A37、输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据。
所述图像特征检测值的计算包括:以方向梯度直方图、尺度不变特征转换特征、加速稳健特征、哈尔特征、局部二值模式、小波特征中一个或多个组合的计算。
根据所述的方法,在所述A26之前还包括:
A38、检测表示所述面部表情的预设的特征点的深度;
在所述步骤A26中,根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配。
根据所述的方法,在所述步骤B之前还包括:
D、将所述动画单元数据组合包进行平滑处理操作,使由所述动画单元数据组合包表示的用户的面部表情图像平滑;
E、对所述动动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突。
根据所述的方法,在所述发送端和接收端之间由预定的传送格式传送所述动画驱动单元参数;其中,所述传送格式的内容至少包括:所述动画单元数据组合包和用户头颅转动的角度数据;
所述动画单元数据表示每个对应的所述动画单元所代表的特征点在预设时间内的位置;和/或
在所述动画单元数据在预设时间与上一预设时间的移动距离未达到距离阈值时,所述动画驱动单元参数不包括所述动画单元数据组合包;并且在达到所述预设的移动距离阈值时,所述动画驱动单元参数则包括所述动画单元数据组合包。
根据所述的方法,所述步骤C包括:
C1、将所述用户头颅转动的角度数据和动画单元数据组合包;和/或所述动画单元数据组合包中每个动画单元代表的预设的特征点在预设时间内的位置数据组成所述动画驱动单元参数;
C2、对所述动画单元数据组合包进行哈夫曼算法压缩;
C3、将包括经过哈夫曼算法压缩后的所述动画单元数据组合包和所述用户头颅转动的角度数据的动画驱动单元参数发送到所述接收端;
所述步骤B包括:
B6、对所述经过哈夫曼算法压缩后的所述动画单元数据组合包进行解哈夫曼算法压缩,获得所述动画单元数据组合的数据。
根据所述的方法,所述发送端和接收端为参与网络游戏的至少两个游戏终端;或者
所述发送端为虚拟教育的授课端;所述接收端为所述虚拟教育的至少一个听课端。
根据所述的方法,所述游戏终端包括:
中央处理器,
拍摄装置,用于拍摄用户头像的图像;
输入装置,用于所述游戏终端的游戏操作;
输出装置,用于所述游戏终端的声音和图像的输出;
网络装置,用于所述游戏终端的通讯连接;以及
存储装置,用于存储所述游戏终端的数据文件;所述数据文件包括所述用户头像的图像、所述获取的所述用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;以及所述动画单元的代码库。
根据所述的方法,所述输入装置包括:键盘、麦克风、摇杆、方向盘、按钮;
所述输出装置包括:发声模块和显示屏。
根据所述的方法,所述发送端和接收端之间无线通信或者有线通信。
所述发送端和接收端为移动终端和/或台式电脑。
为了实现本发明的另一发明目的,本发明还提供了一种用户表情头像生成的装置,所述装置包括:
获取模块,设置于发送端,用于获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包;
生成模块,设置于接收端,用于根据所述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;
所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。
根据所述的装置,所述动画单元数据组合包包括零组或者多组动画单元数据组;每组所述动画单元数据组合包括:
动画单元,所述动画单元标识用户的面部表情的一个或者多个所述预设的特征点;
动画单元数据,所述动画单元数据以所述动画单元代表的所述预设的特征点在自然表情时的位置到极端表情时的位置的距离的百份比表示。
根据所述的装置,所述获取模块包括:
第一位移计算子模块,用于根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;
第一获得子模块,用于根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据。
根据所述的装置,所述用户头颅转动的角度数据及动画单元数据组合包组成动画驱动单元参数;所述装置还包括:
压缩模块,设置于所述发送端,用于所述发送端对获取的所述用户动画单元数据组合包进行压缩,将所述用户头颅转动的角度数据和压缩后的所述用户动画单元数据组合包发送到所述接收端;
解压模块,设置于所述接收端,用于解压压缩后的所述用户动画单元数据组合包;
所述生成模块将根据所述解压模块解压获得的所述动画单元数据组合包和所述用户头颅转动的角度数据生成替代所述用户头像的图像的用户表情头像。
根据所述的装置,所述用户的面部表情的全部特征点为ISO/IEC 14496-1标准中的66个特征点或者68个特征点;
所述预设的特征点为所述66个特征点或者68个特征点中表示面部的预选数目的特征点。
根据所述的装置,所述获取模块包括:
输入子模块,用于在所述发送端拍摄和/或输入用户头像的图像;
第一分析子模块,用于根据所述用户头像的图像,分析所述用户头颅转动的角度数据;
第二分析子模块,用于获得所述用户头颅转动的角度数据后,分析表示所述用户的面部表情的特征点的位置数据;
所述输入用户头像的图像为预设的上一时间段内或者当前拍摄的用户头像的图像;
所述用户的面部表情的特征点的位置数据包括所述用户的面部表情的特征点的位置数据;
所述用户头颅转动的角度数据包括所述用户头颅摆左、摆右、向左、向右、向上和/或向下转动的角度数据,并以三维轴方式表示所述用户头颅转动的角度数据。
根据所述的装置,所述获取模块还包括:
第一适配子模块,用于根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动角度数据进行适配,选择相适配的用户头颅转动的角度数据;
第二适配子模块,用于根据所述用户头像的图像,将所述表示所述用户的面部表情的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;
第一选择子模块,用于根据所述相适配的头颅转动角度数据和相适配的面部表情数据,计算所述动画单元数据组合包,并将所述动画单元数据组合包发送到所述接收端;
所述生成模块还包括:
第一显示子模块,用于预存的动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴的组件显示替代所述用户头像的图像的所述用户表情头像。
根据所述的装置,所述获取模块还包括:
第一判断子模块,用于判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果;
第一检测子模块,用于在所述第一判断子模块判断存在所述检测结果后,根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
第二检测子模块,用于在所述第一判断子模块判断不存在所述检测结果后,对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
第一匹配子模块,用于根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据;
第一修正子模块,用于根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据;
第一获取子模块,用于根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。
根据所述的装置,所述获取模块还包括:
第二判断子模块,用于判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
第一调整子模块,用于在所述第二判断子模块判断不存在所述角度数据时,从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据模板,结合所述用户头像的图像的面部图像,获得所述用户头颅最初的角度数据,并将所述用户头颅最初的角度数据作为初始的所述用户头颅转动的角度数据;
第二调整子模块,用于在所述第二判断子模块判断存在所述角度数据时,使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据;
第三获取子模块,用于将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;
第一扭曲及输出子模块,用于将扭曲变化后的用户头像的图像与在所述发送端拍摄和/或输入的用户头像的图像进行匹配,并在两者相匹配,则输出所述用户头颅转动的初始的角度数据,否则,调整所述用户头颅转动的初始的角度数据。
根据所述的装置,所述获取模块还包括:
第一适配子模块,用于将在所述发送端输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
第二适配子模块,用于将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新的面部表情的所述预设的特征点的位置数据进行适配;
第三调整子模块,用于在所述第二适配子模块适配失败后,调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转后重新由第一适配子模块将其数据作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,直至所述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;
第二输出子模块,用于输出适配的所述用户头颅转动的角度数据。
根据所述的装置,所述获取模块还包括:
第三判断子模块,用于判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据;
第三选择子模块,用于在所述第三判断子模块判断为否时,从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;
第四选择子模块,用于在所述第三判断子模块判断为是时,将由上一个预设的时间段内输入的用户头像的图像获取的表示所述用户的面部表情的所述全部特征点的位置数据,作为代表所述用户的面部表情的全部的特征点的位置数据;
第三匹配子模块,用于将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;
第五选择子模块,用于从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。
根据所述的装置,所述获取模块还包括:
第一计算子模块,用于将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;
第四判断子模块,用于经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;
第三修正子模块,用于在所述第四判断子模块判断有偏差时,对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,获得所述用户的面部表情的所述预设的特征点的位置数据;
第三输出子模块,用于在所述第四判断子模块判断没有偏差时,输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据。
根据所述的装置,所述获取模块还包括:
深度检测子模块,用于检测表示所述面部表情的预设的特征点的深度;
所述第二调整子模块根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配。
根据所述的装置,所述装置还包括:
平滑处理模块,设置于所述发送端,用于将动画单元数据组合包进行平滑处理操作,使由所述动画单元数据组合包表示的用户的面部表情图像平滑;
冲突处理模块,设置于所述发送端,用于对所述动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突。
根据所述的装置,在所述发送端和接收端之间由预定的传送格式传送所述动画驱动单元参数;其中,所述传送格式的内容至少包括:所述动画单元数据组合包和用户头颅转动的角度数据;
所述动画单元数据表示每个对应的所述动画单元所代表的特征点在预设时间内的位置;和/或
在所述动画单元数据组合包在预设时间与上一预设时间的移动距离未达到距离阈值时,所述动画驱动单元参数不包括所述动画单元数据组合包;并且在达到所述预设的移动距离阈值时,所述动画驱动单元参数则包括所述动画单元数据组合包。
根据所述的装置,所述压缩模块包括:
组成子模块,用于将所述用户头颅转动的角度数据和动画单元数据组合包;和/或所述动画单元数据组合包中每个动画单元代表的预设的特征点在预设时间内的位置数据组成所述动画驱动单元参数;
哈夫曼算法压缩子模块,用于对所述动画单元数据组合包进行哈夫曼算法压缩;
发送子模块,用于将包括经过哈夫曼算法压缩后的所述动画单元数据组合包和所述用户头颅转动的角度数据的动画驱动单元参数发送到所述接收端;
所述解压模块还包括:
哈夫曼算法解压缩子模块,用于对所述经过哈夫曼算法压缩后的所述动画单元数据组合包进行解哈夫曼算法压缩,获得所述动画单元数据组合包的数据。根据所述的装置,所述发送端和接收端为参与网络游戏的至少两个游戏终端;或者
所述发送端为虚拟教育的授课端;所述接收端为所述虚拟教育的至少一个听课端。
根据所述的装置,所述游戏终端包括:
中央处理器,
拍摄装置,用于拍摄用户头像的图像;
输入装置,用于所述游戏终端的游戏操作;
输出装置,用于所述游戏终端的声音和图像的输出;
网络装置,用于所述游戏终端的通讯连接;以及
存储装置,用于存储所述游戏终端的数据文件;所述数据文件包括所述用户头像的图像、所述获取的所述用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;以及所述动画单元的代码库。
根据所述的装置,所述输入装置包括:键盘、麦克风、摇杆、方向盘、按钮;
所述输出装置包括:发声模块和显示屏。
根据所述的装置,所述发送端和接收端之间无线通信或者有线通信。
所述发送端和接收端为移动终端和/或台式电脑。
本发明通过发送端获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述预设的特征点的位置数据计算动画单元数据组合包;接收端根据所述用户头颅转动的角度数据和所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;而所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。由此对分别分析头颅转动及分析面部表情,分两个子程序去分析头颅转动及面部表情,而且用预设的选定数量的面部表情的特征点去代替68个面部特征点的分析,由此降低了运算量,能够将所述方法进行实时分析而可以在较低处理器功能的装置上运作,包括现市场中的移动电话和低端的台式机。更进一步,由于所输传输的数据量较少,摄取分析面部表情终端装置及动画头像显示终端装置可以各自独立的装置,而以传输网络传送分析所得的面部动态参数。
附图说明
图1是本发明实施例提供的用户表情头像生成的装置结构示意图;
图2是本发明实施例中的用户表情头像生成的过程中分析的预设的特征点的示意图;
图3是本发明实施例提供的用户表情头像生成的装置结构示意图;
图4是本发明实施例提供的用户表情头像生成的过程示意图;
图5是本发明实施例提供的用户表情头像的头颅转动的角度数据和预设特征点位置数据生成的过程示意图;
图6是本发明实施例提供的用户表情头像编码及图像示意图;
图7是本发明实施例提供的户表情头像的头颅转动的角度数据和预设特征点位置数据生成的过程示意图;
图8是本发明实施例提供的初始的用户头颅转动的角度数据的获取过程示意图;
图9是本发明实施例提供的用户头颅转动的角度数据的获取过程示意图;
图10是本发明实施例提供的用户的面部表情的预设的特征点的初始位置数据获取过程示意图;
图11是本发明实施例提供的用户的面部表情的预设的特征点的位置数据获取过程示意图;
图12是本发明实施例提供的用户的面部表情的预设的特征点的正面化流程图;
图13是本发明实施例提供的发送端对动画驱动单元参数平滑及冲突处理流程图;
图14是本发明实施例提供的用户表情头像生成的装置在网络游戏场景的应用的示意图;
图15是本发明实施例提供的用户表情头像生成的装置在网络教育场景的应用的示意图;
图16是本发明实施例提供的用户表情头像生成的装置的组成示意图;
图17A是本发明实施例提供的用户表情头像生成的装置中的摄取分析面部表情装置的组成示意图;
图17B是本发明实施例提供的用户表情头像生成的装置中的动画头像显示终端装置的组成示意图;
图17C是本发明实施例提供的游戏终端的组成示意图;
图18是本发明实施例提供的用户表情头像生成的流程图;
图19是本发明实施例提供的发送端对动画驱动单元参数的压缩及打包发送的流程图;
图20是本发明实施例提供的接收端对动画驱动单元参数的解压缩的流程图;
图21是本发明中哈夫曼编码空间压缩运算模型示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,在本发明的第一实施例中,提供了一种用户表情头像生成的装置100,包括:
获取模块10,设置于发送端1,用于获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包;
生成模块20,设置于接收端2,用于接收端根据所述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;
所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。
在该实施中,用户表情头像生成的装置100由分别设置于发送端1和接收端2的获取模块10和生成模块20组成。当然,发送端1和接收端2均可以设置为相同的结构,即可以同时设置有获取模块10和生成模块20,以及其他的各种模块。通过获取模块10分别获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据,优选的由获取模块10先获取用户头颅转动的角度数据,再获取表示所述用户的面部表情的预设的特征点的位置数据,然后根据所述预设的特征点的位置数据计算出动画单元数据组合包;由此,不必同时对用户的头颅的转动及面部表情的特征进行读取运算,所以可以降低运算的复杂度,将复杂的3D运算变化较为简单的2D运算,因此可以使配置较为低端的一些移动终端或者是台式机也能够通过运行用户表情头像生成的装置100,实现在发送端1拍摄用户头像的图像,然后在接收端2根据所述用户头颅转动的角度数据和所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像。
在本发明的一个实施方式中,动画单元数据组合包括零组或者多组动画单元数据组;每组所述动画单元数据组合包括:
动画单元,所述动画单元标识用户的面部表情的一个或者多个所述预设的特征点;
动画单元数据,所述动画单元数据以所述动画单元代表的所述预设的特征点在自然表情时的位置到极端表情时的位置的距离的百份比表示。
动画单元标识的代码为数字1、2、3……等,每个数字代表一个预设的特征点。而动画单元数据则以所述动画单元代表的所述特征点在自然表情时的位置到极端表情时的位置的距离的百份比表示。如例如在表2中在其中一个实施方案中的动画单元1的右眉毛外侧向上提,其可以向上提的距离是有限制的,即在自然表情时,『右眉毛外侧』在所在点设定为所述单元数据为0,而在一个普通人可以自然的尽力向上提右眉毛的极端点的位置设定为100。而一个人的表情可以使用:
【动画单元,动画单元数据】=【01,45】代表右眉毛外侧向上提到正常极端点的45%的距离。
【动画单元,动画单元数据】=【01,0】代表右眉毛外侧没有向上提,为自然表情位置。
【动画单元,动画单元数据】=【01,100】代表右眉毛外侧向上提到正常极端点。
即所有动画单元数据皆以由自然表情点到极端点距离的百份比。
在另一个实施方案中,动画单元5的右眉毛向下拉,其可以向下拉的距离是有限制的,而这个相关连的动画单元数据仍是以0-100的数值代表向下拉的百份比,而所述百份比并以动画单元预定其方向及数值的代表。例如动画单元1的数值100是代表向上提1.2长度单元,而动画单元数5的数值100是代表向下拉0.8长度单元。进一步,所述长度单位不是故定的单位,即不是使用厘米(cm)或豪米(mm),因为长度是因人的头颅大小而定,例如每人的头颅大小不同,所述长度单位可以在确定被摄取表情的同时确认,可以定义为头颅中两眼之间距离为一长度单位等。
此外,在本发明的一个优选的实施例方式中,该用户表情头像可以是与用户表情头像相同,也可以是跟获得对应的用户表情头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴的比例显示替代所述用户头像的图像的用户表情头像。如以马面,或者大象等动物的头,其五官的比例如动画单元数据组合表示的表情相同。
具体的,由于所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点,因此用户表情头像生成的装置100需要分析面部表情的特征点也比较少,进而提高了运算的速度。另一方面,还可以是获取模块10在获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据后,根据所述预设的特征点的位置数据计算出动画单元数据组合包;如图6和图6所示,以及表2,一个动画单元由一个代码表示,如26表示颔往右拉,而27表示颔往左拉,不同的动画单元数据组合在一起形成用户的面部表情,构成一串动画单元数据组合。然后将这些动画单元数据组合包发送到接收端2,在接收端2中根据用户的头颅转动的角度数据和动画单元数据组合包,从而生成替代所述用户头像的图像的用户表情头像。这种方式,由于传送过程中传送的一些数字代码,因此更加节省运算及传送的时间。而在接收端2在通讯开始之前,可以预设动画图像,即已选定用什么样的动画图像:例如米奇老鼠、狮子、或一个卡通人物,但是这些动画图像最后显示的面部表情将是根据接收到的用户的头颅转动的角度数据和动画单元数据组合包进行输出,即接收端2显示的表情与发送端1获取的用户表情是一致的。
参见图2,在本发明的一个优选实施方式中,所述用户的面部表情的全部特征点为ISO/IEC 14496-1标准中的66个特征点或者68个特征点;所述预设的特征点为所述66个特征点或者68个特征点中预先选定数量的预设的特征点代表本发明的实施方案中要较准确显示的肌肉部份,其他特征点就由模拟运算得出。在其中一个实施方案,较重视咀部肌肉,所预先选定数量的特征点主要围绕咀部(202)。或者是眼睛及其附近(201)的特征点。
在该实施方式中,用户表情头像生成的装置100对面部表情进行分析,在ISO/IEC14496-1标准中68个面部动态参数中的68个特征点,概括地选取预设选定数量的预设的特征点作为驱动整理全部面部表情的方式;集中分析这预设选定数量的预设的特征点,即分析特征点所需要的计算功能大大减低。而不需要分析其余通常情况下发生变化不大且没有包括在预设特征点内的特征点。例如,根据在一般人的面部各68个特征点的相对位置的距离及角度,在特定的情况下,如要实时传输一个名人(例如一位当代科技名人)的面部表情,可以对这名人的68个面部特征点进行分析及纪录。在得到这余下没有选定的特征点与基本的预设选定数量的特征点的距离及角度关系之后,再进一步使用预设选定的特征点的位置计算出动画单元的位置(即动画单元数据),可以根据所收到的包括动画单元数据包的动画驱动单元参数,显示动画头像。即在接收端2中有相同的程式设置,可以根据动画单元数据组合在接收端2进行显示。为了方便进一步描述,本发明的说明书中统一使用68个特征点。在另一个实施方案,预设选定数量的特征点包括15个特征点,平均分布在眼部及咀部(咀嚼部)。其他部份例如鼻的移动则不在测试之列。
参见图3,在本发明的第二实施例中所述用户头颅转动的角度数据及动画单元数据组合包组成动画驱动单元参数;所述装置还包括:
压缩模块30,设置于发送端1,用于所述发送端对获取的所述用户动画单元数据组合包进行压缩,将所述用户头颅转动的角度数据和压缩后的所述用户动画单元数据组合包发送到接收端2;
解压模块40,设置于接收端2,用于解压压缩后的所述用户动画单元数据组合包;
所述生成模块20将根据解压模块40解压获得的所述动画单元数据组合包和所述用户头颅转动的角度数据生成替代所述用户头像的图像的用户表情头像。
在该实施例中,可以对获取表示所述用户的面部表情所述动画单元数据组合包进行压缩,以减少在接收端2和发送端1之间的传送数据的大小。在发送端1通过压缩模块30对表示所述用户的面部表情的动画单元数据组合包进行压缩后,在接收端2接收到解压模块40解压被压缩的动画单元数据组合包。由此获得所述用户头颅转动的角度数据和解压缩后的动画单元数据组合包。
参见图3、图19及图20,在本发明的一个实施方式中,压缩模块30包括:
组成子模块31,用于将所述用户头颅转动的角度数据和动画单元数据组合包;和/或所述动画单元数据组合包中每个动画单元代表的预设的特征点在预设时间内的位置数据组成所述动画驱动单元参数;
哈夫曼算法压缩子模块32,用于对所述动画单元数据组合包进行哈夫曼算法压缩;
发送子模块33,用于将包括经过哈夫曼算法压缩后的所述动画单元数据组合包和所述用户头颅转动的角度数据的动画驱动单元参数发送到所述接收端2;
所述解压模块40还包括:
哈夫曼算法解压缩子模块42,用于对所述经过哈夫曼算法压缩后的所述动画单元数据组合包进行解哈夫曼算法压缩,获得所述动画单元数据组合包的数据。
具体的,组成子模块31将所述用户头颅转动的角度数据和动画单元数据组合包;和/或所述动画单元数据组合中每个动画单元代表的预设的特征点在预设时间内的位置数据组成所述动画驱动单元参数。即若所述动画单元数据组合包中每个动画单元代表的预设的特征点在预设时间内的移动距离达不到预设的阈值时,则动画驱动单元参数中不包括其位置数据,或者说是移动的距离,则相应的在接收端2则认为该动画单元对应的特征点位置并没有发生变化。之后,在通过哈夫曼(Huffman Coding)算法压缩子模块32对所述动画单元数据组合包的数据进行哈夫曼算法压缩。该数据压缩第二步是根据哈夫曼编码的空间压缩,这种压缩方法无损数据准确性而只是减少数据量,为了成功减少数据量,减少数据量是以选用可变数据数量(即数字的长度length of bits)代表面部动态参数,较短的数据量代表出现最多的面部动态参数。相反,较长的数据量代表出现最少的面部动态参数。发送子模块33则将经过哈夫曼算法压缩后的所述动画单元数据组合包的压缩数据发送到接收端2;相应的,设置在接收端2的哈夫曼算法解压缩子模块42对所述压缩数据进行解压缩包,获得所述经过哈夫曼算法压缩后的所述动画单元数据组合包,由此获得包括动画单元数据组合包以及所述用户头颅转动的角度数据的动画驱动单元参数。在本发明的一个实施方式中,可以获得所述用户头颅转动的角度数据和动画单元数据组合包,以及动画单元数据组合中每个动画单元代表的预设的特征点在预设时间内的移动距离。当然,若在预设的时间内预设的特征点没有发生移动,也可以不包含该移动距离的数据。甚至动画单元数据组合包也可以不发送到接收端2,而接收端2则继续沿用上一个预设时间段内的数据进行相应的表情头像的显示。由此,可以在接收端2生成用户表情头像。
在本发明的一个实施方式中,在所述发送端1和接收端2之间由预定的传送格式(如表1)传送动画驱动单元参数,其中,所述传送格式的内容至少包括:所述动画单元数据组合包和用户头颅转动的角度数据;所述动画单元数据表示每个对应的所述动画单元所代表的特征点在预设时间内的位置;和/或
在所述动画单元数据组合包在预设时间与上一预设时间的移动距离未达到距离阈值时,所述动画驱动单元参数不包括所述动画单元数据组合包;并且在达到所述预设的移动距离阈值时,所述动画驱动单元参数则包括所述动画单元数据组合包。其中,所述传送格式的内容至少包括:所述动画单元数据组合包和用户头颅转动的角度数据。所述动画驱动单元参数还可以包括所述动画单元数据表示每个对应的所述动画单元所代表的特征点在预设时间内的移动距离。可参见表1。而在某些时候,可能用户表情变动少,只是改变了某个器官的位置。Head Pose(用户头颅转动的角度)X、Y、Z表示用户头颅转动的角度,以X、Y、Z轴为基准。如用户头颅在X轴向上转动了10度。相应的信息可以填写在其中。
表1
表1代表其中一个实施方案的动画驱动单元参数,其中包括讯息
-报文头;
-信息类形;
-通讯段编号;
-游戏者编号;
-动画单元数量:在本节通讯的动画驱动单元参数内,有多少个动画单元数据组合需要传送,如果预设的特征点所引入的动画单元共用30个,即动画单元数量为30;不同的实施方案所选取的动画单元数量不同;在同一实施方案中,所述动画单元数量为常数;
-动画单元选取位:以每1位(bit)的位置代表所相对的位的动画单元是否有数据包括在本动画驱动单元参数,即在本实施方案共有30个动画单元,动画单元选取位其中30位,第3位代表动画单元第三个有数据要包括在动画驱动单元参数中;所述动画单元数量定义所述动画单元选取位的长度;
-动画单元代码长度:所需的动画单元数据的数据总长度;
-压缩:代表动画单元数据是否有压缩;
-动画单元数据:零或多个动画单元的数据,而每个动画单元数据可以被哈夫曼方法压缩;
-用户头颅转动方向:X、Y及Z轴的角度;
-校验码;
AU parameters为相对值,0–100。
本发明的发明人对动物,特别是人类面部表情的研究,人类面部的表情是由一组的肌肉牵引其他邻近肌肉而形成的面部肌肉变动,而一组或多于一组的肌肉变动会完整地表达到一种表情。这些一组或多于一组肌肉的移动,是有其局限性。即而所述预设特征点的移动可以用作计算出其他特征点的移动,和/或可用作简易估算其他特征点的移动。
要传输一个可以共用的移位距离,不可以使用绝对长度,例如厘米或豪米为单位,因为每个人的面部大少及长、宽、高比例不同。为了统一估算及交换数据,每一预设的特征点在预先的估算中设定其可移动的有效范围,以0代表其自然表情(无表情时或者说正常表情时)的位置,而100代表其移动到其极端点。这些特征点、特征点的可移动方向及其移动范围成为发明的内储知识,利用这种知识,发送端及接收端可以交换简单资讯用作代表面部肌肉的移动,从而代表面部表情。
在本发明的一个实施例中,选取的预设的特征点,可以是从全部特征点中选取有效全面代表所有面部肌肉的特征点;在其中一个实施方案,预设特征点包括较多围绕眼睛的特征点,即可以较准确代表被摄取表情的参与人的眼部表情;有另一个实施方案,预设特征点可以突出咀的部份,代表被摄取的人说话时咀部的移动。在选定预设特征点后,进一步选定动画单元,每一动画单元代表一个预设特征点的可移动方向,在其中一个实施方案,预设特征点包括下齿,而下齿可以向左移,可以向右移。即一个预设的特征点可以有两把动画单元,而可以设定下齿可以向左右移的极限为其口宽的1/4距离,而在任何时间,这两把动画单元只会其中一个有效(或下齿为中位而两个动画单元皆为没有移位),代表一个动画单元的数值,是以移动距离与极限距离的比例,例如一个被摄取的人的口的宽度的1/8,则其数据为50:
动画单元=下齿向左;数据=50。
参见图3和图4,在本发明的第三实施例中,获取模块10包括:
第一位移计算子模块131,用于根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;
第一获得子模块132,用于根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据。
在该实施例中,第一位移计算子模块131根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;由此可以获知用户面部表情中的预设的特征点的位置的变化。而第一获得子模块132则根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据。由此,可以获得一个或者多个所述预设的特征点的动画单元和动画单元数据,根据这些数据,最后可以将零组或者多组动画单元数据组合,组合成动画单元数据组合包。
参见图3和图4,在本发明的第四实施例中,获取模块10包括:
输入子模块11,用于在发送端1拍摄和/或输入用户头像的图像;
第一分析子模块12,用于根据所述用户头像的图像,分析所述用户头颅转动的角度数据;
第二分析子模块13,用于获得所述用户头颅转动的角度数据后,分析表示所述用户的面部表情的全部的特征点的位置数据;
所述输入用户头像的图像为全部的上一时间段内或者当前拍摄的用户头像的图像;
所述用户的面部表情的全部的特征点的位置数据包括所述用户的面部表情的全部的特征点的位置数据;
所述用户头颅转动的角度数据包括所述用户头颅摆左、摆右、向左、向右、向上和/或向下转动的角度数据,并以三维轴方式表示所述用户头颅转动的角度数据。
在该实施例中,首先输入子模块11在发送端1拍摄和/或输入用户头像的图像,而该拍摄头像可以是发送端1的拍摄装置拍摄的,也可以由用户表情头像生成的装置100中设置的拍摄模块进行用户头像的拍摄。之后,首先由第一分析子模块12根据所述用户头像的图像,分析所述用户头颅转动的角度数据;在分析获得用户头颅转动的角度数据后,参考其头颅的转动信息后,继续由第二分析子模块13分析表示所述用户的面部表情的全部的特征点的位置数据,即第二分析子模块13在用户的头颅转动位置的基础上分析全部的预设选定数量的特征点,继而获得用户表情头像的参数。所述用户的面部表情的全部的特征点的位置数据包括所述用户的面部表情的全部的特征点的位置数据;如前述表1中的动画单元数据(AU Parameters)传输的相应动画单元的代码对应的移动比例。所述用户头颅转动的角度数据包括所述用户头颅摆左、摆右、向左、向右、向上和/或向下转动的角度数据,如前述表1中的用户头颅转动的角度数据,最终以X、Y、Z轴为基准,以三维轴方式表示。由此,将同时处理全部特征点,初步估计特征点的位置。其中,用户头颅摆左、摆右是用户的头颅在摆正的基础上,向左肩靠、向右肩靠。而用户头颅向左、向右是用户头颅向左转动、向右转动。
在本发明的一个实施例中,在动画单元数据组合在预设时间与上一预设时间的移动距离未达到或超过预设的移动距离阈值时,所述动画驱动单元参数不包括所述动画单元数据组合包;并且在达到所述预设的移动距离阈值时,所述动画驱动单元参数则包括所述动画单元数据组合包。即在预设的时间的预设的时间内如0.5秒内,某动画单元数据组合对应的移动距离比较小如5,未到达预设8的阈值,则并不将该变动的5的变动距离传送到接收端2。只在达到预设的移动距离8,才将该移动距离进行传送到接收端2,由此减少了两端(接收端2及发送端1)的运算量。而且接收端2可以对这段时间内动画单元数据组合,使显示的表情头像自然,适应低配置的电脑或者手机进行使用。而且在接收端2将动画单元数据组合包变成所显示的动画头像的显示(实施方案中包括狮子头颅、人类头颅、老鼠头颅等)。而发送端1平滑方面是处理在包括计算动画单元数据过程中所引起的数据噪音(data noise)。如表1的数据,是送出动画单元数据组合(AU),但与上一AU为一样的不会送出。因而减少送出数据。例如:
AU=01,AU Parameter=10–右眉毛外侧向上提10单位(相对自然表情及极端点);如果到下一时间,如果没有改变,所述动画单元数据组合的数据不传输。这个压缩,有一个减缩的差误,在其中一个实施方案,差误为2,即在以后的量度中,如果动画单元=01的移动距离的数据为由0到1,则皆不传送到接收端2,即有摄取的面部表情有些微变动,但在远端的动画头像显示不变。在一个较佳的实施方案中,远端亦可进行平滑工作。
例如:在时序11时:AU=01,AU Parameter=5;
在时序12-14:都没有传送AU=01的数据;
在时序15时:AU=01,AU Parameter=6;
(在其中的一个实施方案,每一秒钟有16个frame,即每一时序相距1/16秒),接收端2的显示装置可以将时序11-14之间进行平滑。
参见图3和图5、6、7,在本发明的第五实施例中,获取模块10还包括:
第一适配子模块14,用于根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动角度数据进行适配,选择相适配的用户头颅转动的角度数据;
第二适配子模块15,用于根据所述用户头像的图像,将所述表示所述用户的面部表情的预设的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;
第一选择子模块16,用于根据所述相适配的头颅转动角度数据和相适配的面部表情数据,计算所述动画单元数据组合,并将所述动画单元数据组发送到所述接收端2;
所述生成模块20还包括:
第一显示子模块22,用于以预存的动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴的组件显示替代所述用户头像的图像的所述用户表情头像。
在该实施例中,在输入的用户头像的图像后,第一适配子模块14根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动位置数据进行适配,选择相适配的用户头颅转动的角度数据;而第二适配子模块15则是将所述表示所述用户的面部表情的预设的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;由此,第一选择子模块16根据所述相适配的头颅转动角度数据和相适配的面部表情数据,计算所述动画单元数据组合包,并将所述动画单元数据组合包发送到接收端2。在接收端2中存储有预存的动画头像或者说是用户表情头像,同时根据用户头颅转动的角度数据,最后在接收端2由第一显示子模块22以所述动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴等的预设组件显示替代所述用户头像的图像的所述用户表情头像进行显示。所述动画单元基于面部的预设的特征点构成,具体如表2所示:
动画单元代码 | 英文描述 | 中文描述 |
1 | Outer Brow Raiser Right | 右眉毛外侧向上提 |
26 | Jaw Right(Reserved) | 颔往右拉(预留) |
27 | Jaw Left(Reserved) | 颔往左拉(预留) |
表2
参见图3和图7,在本发明的第六实施例中,获取模块10还包括:
第一判断子模块17,用于判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果;
第一检测子模块18,用于在所述第一判断子模块17判断存在所述检测结果后,根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
第二检测子模块19,用于在所述第一判断子模块17判断不存在所述检测结果后,对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
第一匹配子模块101,用于根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据;
第一修正子模块102,用于根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据;
第一获取子模块103,用于根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。
在该实施例中,在输入用户头像的图像后,第一判断子模块17判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果;若存在所述检测结果,则第一检测子模块18根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;若不存在,则第二检测子模块19对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像。第一匹配子模块101根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据。第一获取子模块103根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据。另一方面,第一发送子模块104根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。在该实施例中,用户头颅转动的角度数据的获取和所述面部表情的预设的特征点的位置数据的获取是可以并行进行的。两者相互进行纠正处理,提高数据获取的精度及效率。此外,其还可以将上一个时间段内的用户头像的图像作为用户的头颅转动的分析基础,或者是作为用户的面部表情的预设的特征点的面部动态参数的分析基础。由此,可以减少分析的时间,而且在预设的上一个时间段到下一个时间段内,用户的面部表情及头颅的转动均有可能不发生改变,由此可以节省分析运算的计算量。预设的上一个时间段内,可以根据设计需要进行设置,例如2秒、5秒,或者更长30秒,也可以更短比如0.5秒等。
参见图3和图8,在本发明的第七实施例中,获取模块10还包括:
第二判断子模块107,用于判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
第一调整子模块108,用于在所述第二判断子模块107判断不存在所述角度数据时,从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据模板,结合所述用户头像的图像的面部图像,获得所述用户头颅最初的角度数据,并将所述用户头颅最初的角度数据作为初始的所述用户头颅转动的角度数据;
第二调整子模块109,用于在所述第二判断子模块107判断存在所述角度数据时,使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据;
第三获取子模块110,用于将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;
第一扭曲子及输出模块111,用于将扭曲变化后的用户头像的图像与在所述发送端拍摄和/或输入的用户头像的图像进行匹配,并在两者相匹配,则输出所述用户头颅转动的初始的角度数据,否则,调整所述用户头颅转动的初始的角度数据。
在该实施例中,用户表情头像生成的装置100可以具有一个训练头颅转动的方向的数据库。在该库中,也多个与多个不同的头颅转动的方向适配的面部表情图像,第二判断子模块107判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;在判断为不存在时,第一调整子模块108从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据模板,结合所述用户头像的图像的面部图像,获得所述用户头颅最初的角度数据,并将所述用户头颅最初的角度数据作为初始的所述用户头颅转动的角度数据;在判断为存在时,第二调整子模块109使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据;接着,第三获取子模块110将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;第一扭曲子及输出模块111将将扭曲变化后的用户头像的图像与在所述发送端拍摄和/或输入的用户头像的图像进行匹配,并在两者相匹配,则输出所述用户头颅转动的初始的角度数据,否则,调整所述用户头颅转动的初始的角度数据由此,获得用户头颅转动的初始的角度数据。根据该用户头颅转动的初始的角度数据,可以经过下一实施例的运算,获得最终的用户头颅转动的角度数据。同样的,预设的上一个时间段内,可以根据设计需要进行设置,例如2秒、5秒,或者更长30秒,也可以更短比如0.5秒等。
参见图3和图9,在本发明的第八实施例中,所述获取模块10还包括:
第一适配子模块113,用于将在所述发送端1输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
第二适配子模块114,用于将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新的面部表情的所述预设的特征点的位置数据进行适配;
第三调整子模块115,用于在所述第二适配子模块114适配失败后,调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转后重新由第一适配子模块113将其数据作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,直至所述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;
第二输出子模块116,用于输出适配的所述用户头颅转动的角度数据。
在该实施例中,第一适配子模块113将在发送端1输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;第二适配子模块114则将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新面部表情的所述预设的特征点的位置数据进行适配。其中,在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新的面部表情的所述预设的特征点的位置是:在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配的过程中,将会不断的对的面部表情的所述预设的特征点的位置进行更新,以在对用户头颅转动的角度数据和预设的特征点的位置的进行相互帮助加强准确性及加快处理的过程中,如图7中的步骤S813获得的上一个预设时段的面部特征点位置,或者在步骤S812中获得的不断更正更新的面部特征点位置。第三调整子模块115在所述第二适配子模块114适配失败后,调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转后重新由第一适配子模块113将其数据作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,直至所述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;最后第二输出子模块116输出适配的所述用户头颅转动的角度数据。由此获得最终的用户头颅转动的角度数据。同样的,预设的上一个时间段内,可以根据设计需要进行设置,例如2秒、5秒,或者更长30秒,也可以更短比如0.5秒等。
参见图3和图10,在本发明的第九实施例中,所述获取模块10还包括:
第三判断子模块117,用于判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据;
第三选择子模块118,用于在所述第三判断子模块117判断为否时,从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;
第四选择子模块119,用于在所述第三判断子模块117判断为是时,将由上一个预设的时间段内输入的用户头像的图像获取的表示所述用户的面部表情的所述全部的特征点的位置数据,作为代表所述用户的面部表情的全部的特征点的位置数据;
第三匹配子模块120,用于将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;
第五选择子模块121,用于从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。
在该实施例中,计算获取用户的面部表情的预设的特征点的初始位置数据。第三判断子模块117判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据;第三选择子模块118在所述第三判断子模块117判断为否时,从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;第四选择子模块119在所述第三判断子模块117判断为是时,将由上一个预设的时间段内输入的用户头像的图像获取的表示所述用户的面部表情的全部的特征点的位置数据,作为代表所述用户的面部表情的预设的特征点的位置数据;第三匹配子模块120将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;第五选择子模块121从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。由此获得用户的面部表情的预设的特征点的初始位置数据,根据该初始位置数据,可以计算获得最终的用户的面部表情的预设的特征点的位置数据。
参见图3和图11,在本发明的一个实施例中,所述获取模块10还包括:
第一计算子模块123,用于将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;
第四判断子模块124,用于经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;
第三修正子模块125,用于在所述第四判断子模块判断有偏差时,对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,获得所述用户的面部表情的所述预设的特征点的位置数据;
第三输出子模块126,用于在所述第四判断子模块判断没有偏差时,输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据;
所述图像特征检测值的计算包括:以方向梯度直方图、尺度不变特征转换特征、加速稳健特征、哈尔特征、局部二值模式、小波特征中一个或多个组合的计算。
在该实施例中,第一计算子模块123将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;可以选择以方向梯度直方图(HOG,Histogram of Gradient),尺度不变特征转换特征(SIFT,(Scale-invariantfeature transform),加速稳健特征(SURF,Scale-invariant feature transform),哈尔特征(HAAR),局部二值模式(LBP,Local Binary Patterns),小波特征(Gabor)或其他方法中一个或多个组合计算。第四判断子模块124经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;第三修正子模块125在所述第四判断子模块判断有偏差时,对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,获得所述用户的面部表情的所述预设的特征点的位置数据;第三输出子模块126则输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据。根据提取图像特征检测值的计算,对计算结果进行判断,判断获取的表示所述用户的面部表情的所述预设的特征点的位置数据是否与预设的用户的面部表情的训练库中存储的用户的面部表情的特征点的位置数据有偏差。其中预设的用户的面部表情的训练库中存储的用户的面部表情的特征点的位置数据是标准的,合理的,若有偏差,则说明检测或者运算出现失误。例如出现不合理的面部表情,都是可以通过该计算后进行判断的。在判断出现偏差后,则对所述表示所述用户的面部表情的所述预设的特征点的位置数据进行修正至无偏差后,输出无偏差的最终的所述用户的面部表情的所述预设的特征点的位置数据。
所述特征检测值(feature extraction value)是对图像分析时使用,具体地是分析一个特征点的图像的数据,例如分析及寻找其中一个特征点左眼角,(以正面镜头来说)特征点的右边为面部及延伸到耳朵,而左边为上下眼帘、眼白,以至眼珠,上下边为面部,所以上、下及右大部份为皮肤的颜色等、右端有耳朵的形状,而左边为眼白(白色)及眼珠(较深色),所以在分析一特定图像的局部地区时(例如一个10像素x 10像素或在另一个例子,分析20像素x 20像素的区域)将所述特征点进行特征检测值计算,从对比中确定特征点位置。对比是利用预录的多个不同人的右眼角的局部图像进行分析,作出特征检测值计算,计算出的一个局部图像的多元矢量(multiple dimension vector)去代表一个特征点的特征检测值,做成特征点检测值的数据库,将所摄取的图像局部图像计算出所要比较的局部区域计算出一个局部图像的多元矢量,将这一多元矢量与特征检测值数据库比较,比较的方法为上述的第一计算子模块123中所选用的一个或多个方法所组成。
参见图3和图12,在本发明的第十个实施例中,所述获取模块10还包括:
深度检测子模块127,用于检测表示所述面部表情的预设的特征点的深度;
第二调整子模块109根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配。
在该实施例中,当进行拍摄人像时,由于用户的头颅转动了,其面部表情的特征点移动了,所以头颅为向正前方时比较的面部表情的特征点的相对位置会产生相对位移,若要辨别这种变动,则需要进行三维计算的辨别。为了减少这种用户的头颅——面部的三维式辨别。则可以通过对用户头像的图像的深度计算。在实际接收到的数据,并没有特征点的深度,该深度指的是特征点距离摄影镜头的距离的变动,例如一特征点由于用户的头颅转动而与上一时间距离摄影镜头相差+0.1厘米或-0.05厘米等。增加这个深度的计算,可以在辨别程序产生用作比较预设的正面面部特征。具体的,通过深度检测子模块127检测表示所述面部表情的预设的特征点的深度;第二调整子模块109根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配,即第二调整子模块109在调整所述用户头颅转动的角度数据时,考虑了深度的影响。
参见图3和图13,在本发明的第十一个实施例中,所述装置100还包括:
平滑处理模块50,设置于发送端1,用于用于将动画单元数据组合包进行平滑处理操作,使由所述动画单元数据组合包表示的用户的面部表情图像平滑;
冲突处理模块60,设置于发送端1,用于对所述动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突。
在该实施例中,将可以在发送端1由平滑处理模块50将包括对动画驱动单元参数中的所述动画单元数据组合包进行平滑处理操作,使由动画单元数据组合包表示的用户的面部表情图像平滑;以及由冲突处理模块60对所述动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突。减低各种原因所引起的跳格现象。冲突的表现可以是多个表情不自然,不可能发生。例如,用户的右眉毛即右向上提,也向下拉,这样的情况是不存在的,只可能存在其中的一种,可以根据面部表情不合理的判断,进行动画单元数据组合包的数据冲突的纠正。
在上述多个实施例中,用户表情头像生成的装置100的多个模块可以是软件单元,硬件单元或软硬件结合单元。接收端2和发送端可以是移动终端可以是手机、PDA(PersonalDigital Assistant,个人数字助理)、掌上电脑等。或者是台式电脑等。
参见图14~图16,以及图17A~图17C,在本发明的第十二个实施例中,发送端1和接收端2为参与网络游戏的至少两个游戏终端200。
如图17C所示,在该实施例中,发送端1和接收端2为参与网络游戏的至少两个游戏终端200;所述游戏终端200包括:中央处理器201,
拍摄装置202,用于拍摄用户头像的图像;
输入装置203,用于所述游戏终端的游戏操作;
输出装置204,用于所述游戏终端的声音和图像的输出;
网络装置205,用于所述游戏终端的通讯连接;以及
存储装置206,用于存储所述游戏终端的数据文件;所述数据文件包括所述用户头像的图像、所述获取的所述用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;以及所述动画单元的代码库。为了简化网络游戏机的设计、制造及维修。参见图14,在网络游戏的应用环境,具有游戏服务器以及多个通过网络连接的游戏终端装置(用户面部表情手机装置);即每一个网络游戏参与者所使用的游戏终端装置可同时用作分析参与者自身的面部表情,也同时将远程传来的面部表情参数以动画头像显示。更进一步,网络游戏包括端游(台式计算机支持的网络游戏)及手游(手机、移动电话支持的网络游戏)。发送端1和接收端2之间无线通信或者有线通信;发送端1和接收端2为移动终端和/或台式电脑。此外,所述输入装置203包括:键盘、麦克风、摇杆、方向盘、按钮;所述输出装置204包括:发声模块和显示屏。所述发送端和1接收端2之间无线通信或者有线通信。发送端1和接收端2为移动终端和/或台式电脑。
在本发明的另一个实施例中,参见图15,发送端1为虚拟教育的授课端;接收端2为所述虚拟教育的至少一个听课端。在本发明提供的用户表情头像生成的装置100的一个应用环境中,一组教育导师以提供一种虚拟的辅导学生环境,提供的辅导导师所使用的终端机装置——用户面部表情手机装置(发送端1)包括摄取分析面部表情终端装置。教学终端装置——用户面部表情手机装置(接收端2)与上述的游戏终端装置大致一样,包括显示屏、发声装置及输入装置。教学终端装置进一步包括摄影镜头。所述教学终端输入装置包括收音用麦克风(microphone)、键盘(keyborad)、按钮(button)等。教学终端装置包括处理器、内储(memory)及存储(storage)。所述存储用作记录终端机所使用的程序及数据。内储则用作存放需要使用的程序、数据等。用作分析教学系统的导师及学生的面部表情的程序及数据在教学终端的处理器、内储上运作。教学终端装置还包括通讯装置,以有线或无线网络连接教学系统的服务器,所述连接包括使用本地网络、无线网络(wifi network)、蓝牙接点(bluetooth access point)、各种制式的无线移动网络以私人网络或互联网络连接教学系统服务器。
由此可见,在上述多个实施例中简化了用户表情头像的传输及显示的运算,解决现有技术的不足,特别是对处理系统的高功能要求,受现有的程序及电子部份的限制,不能普及到移动装置或中下档次的台式装置上进行实时由网络游戏参与者的面部表情操控远程的动画式头像的问题,获得了很好的解决。
参见图16和图17A,在本发明的一个实施例中,摄取分析面部表情终端装置(获取模块10)与动画头像显示终端装置(生成模块20)为一体,摄取分析面部表情终端装置所须摄取面部表情的头像,使用所述摄影镜头将视像实时传输到内储。在其中一个应用环境,摄取分析面部表情终端装置为游戏终端装置。游戏终端装置设置了显示屏、发声装置及游戏输入装置。游戏终端装置进一步包括摄影镜头。所述游戏输入装置包括收音用麦克风(microphone)、键盘(keyborad)、摇杆(joy stick)、方向盘(steering wheel)、按钮(button)等。游戏终端装置包括处理器、内储(memory)及存储(storage)。所述存储用作记录终端机所使用的程序及数据。内储则用作存放需要使用的程序、数据等。用作分析网络游戏参与者的面部表情的程序及数据在游戏终端的处理器、内储上运作。游戏终端还包括通讯装置,以有线或无线网络连接网络游戏的服务器,所述连接包括使用本地网络、无线网络(wifi network)、蓝牙接点(bluetooth access point)、各种制式的无线移动网络以私人网络或互联网络连接网络游戏服务器。
参见图17B和图17C,在本发明的一个实施例中,还包括动画头像显示终端装置(显示屏)。在其中一个应用环境,动画头像显示终端装置为游戏终端装置。游戏终端装置设置了显示屏、发声装置及游戏输入装置。游戏终端装置进一步包括摄影镜头。所述游戏输入装置包括收音用麦克风(microphone)、键盘(keyborad)、摇杆(joy stick)、方向盘(steeringwheel)、按钮(button)等。游戏终端装置包括处理器、内储(memory)及存储(storage)。所述存储用作记录终端机所使用的程序及数据。内储则用作存放需要使用的程序、数据等。用作根据所接收到的面部表情参数而操控动画头像的程序及数据在游戏终端的处理器、内储上运作。游戏终端还包括通讯装置,以有线或无线网络连接网络游戏的服务器,所述连接包括使用本地网络、无线网络(wifi network)、蓝牙接点(bluetooth access point)、各种制式的无线移动网络以私人网络或互联网络连接网络游戏服务器。面部表情参数即为动画驱动单元参数。
如图17A所示,在本发明的一个实施方式中,摄取分析面部表情终端装置包括摄影镜头、处理器、内储(memory)及存储(storage)。所述存储用作记录终端机所使用的程序及数据。内储则用作存放需要使用的程序、数据等。用作分析被摄取面部表情的程序及数据在游戏终端的处理器、内储上运作。摄取分析面部表情终端装置还包括通讯装置,以有线或无线网络联机远程装置,所述连接包括使用本地网络、无线网络(wifi network)、蓝牙接点(bluetooth access point)、各种制式的无线移动网络以私人网络或互联网络连接远程装置。
优选的,摄取分析面部表情终端装置进一步包括显示屏及发声装置,用作本地的视像及声音输出。如图5所示,所需拍摄活动的面部表情的头像,使用所述摄影镜头将视像实时传输到内储,并进行图5所示的头颅转动(head pose)分析,由于头颅转动分析比较容易,所需处理器时间较短,完成后将面容进行正面化(Face Landmark Frontalization),再将从摄影镜头所得的储存在内储的实时视像再进行面部表情分析比较(Face AnimationUnit Analysis),进而生成动画单元及动画单元数据组合,这些步骤是以上一步骤所得数据以简化下一步骤的功作量。而全部数据是以摄影镜头所得的实时视像储存于内储而使用同时储存在内储的分析程序,减低对处理与外部设置的数据传输。进一步为了减少数据传输,在内储进一步进行影像的平滑化减少『跳格』现象,及因为任何理由而产生的面部动态参数所表达的表情冲突。完成后进一步进行压缩,减少传输数据量。所述的摄取分析面部表情终端装置的内储包括面部动态参数的压缩及还原程序。所述面部动态参数的压缩及还原程序将数据压缩。运算完后经过所述摄取分析面部表情终端装置的网络装置传输已压缩的面部动态参数到远程装置。
在本发明的一个实施方式中,如图17B所示,动画头像显示终端装置设置了显示屏、发声装置。动画头像显示终端装置进一步包括摄影镜头及/或输入装置。所述动画头像显示终端装置输入装置包括收音用麦克风(microphone)、键盘(keyborad)、摇杆(joystick)、方向盘(steering wheel)、按钮(button)等。动画头像显示终端装置包括处理器、内储(memory)及存储(storage)。所述存储用作记录动画头像显示终端装置所使用的程序及数据。内储则用作存放需要使用的程序、数据等。用作根据所接收到的面部表情参数由动画驱动单元(获取模块10),在动画头像显示终端装置的处理器、内储上运作。动画头像显示终端装置还包括通讯装置,以有线或无线网络连接网络游戏的服务器,所述连接包括使用本地网络、无线网络(wifi network)、蓝牙接点(bluetooth access point)、各种制式的无线移动网络以私人网络或互联网络连接网络游戏服务器。动画头像显示终端装置通过动画头像显示终端装置的网络装置与远程装置联机,接收面部动态参数。根据本发明的方法,所述接收的面部动态参数(即用户的头颅转动的位置数据和表示用户的面部表情的动画单元数据组合包)。所述的动画头像显示终端装置的内储包括面部动态参数的压缩及还原程序。所述面部动态参数的压缩
及还原程序将接收到的数据还原。在接收端2只处理动画单元驱动参数,即动画单元数据组合包及用户头颅转动的角度数据,而不处理特征点。
在本发的另一个实施方式中,如图14、图15所示,在图17A~图17B中没有显示的远程装置为与摄取分析面部表情终端装置及动画头像显示终端装置的有网络功能的装置。在其中一个实施方案,网络为星形网络,即各终端装置需要与一中央式装置联机,例如服务器,由服务器转发压缩的面部动态参数,这种联机,适用于动态头像的广播,例如一位或多位人仕进行网络演说,而视像是以动态头像发表,所代表的演说者的表情以面部动态参数向多个终端发放。在另一个实施方案,远程装置为另一个终端装置,例如摄取分析面部表情终端装置连接的远程装置为动画头像显示终端装置,这种网络联机可称为点对点的联机而无须经过另一装置作为中续。
参见图18和图1,在本发明的第十三个实施例中,提供了一种用户表情头像生成的方法,所述方法包括如下步骤:
步骤S1801,发送端1的获取模块10获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包;
步骤S1802,接收端2的生成模块20接收端根据所述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;
在该实施例中,为了提高三维面部表情分析以获得用户表情头像的效率,获取模块10分析面部动态及头颅转向,可用作生成模块20远程动画头像显示的数据。并且,这种分析面部表情的方法的实时分析功能而须要较低的处理器(CPU)处理功率。具体的,发送端1的获取模块10获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。接收端2的生成模块20述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像。所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。获取模块10还可以通过根据所述用户头颅转动的角度数据和预设的特征点的位置数据在预存的代码库中获取对应的动画单元数据组合包;接收端2的生成模块20则根据所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像。
其中,发送端1和接收端2为参与网络游戏的至少两个游戏终端;或者发送端1为虚拟教育的授课端;接收端2为所述虚拟教育的至少一个听课端。发送端1和接收端2之间无线通信或者有线通信。发送端1和接收端2为移动终端和/或台式电脑。
优选的,所述用户的面部表情的全部特征点为ISO/IEC 14496-1标准中的66个特征点或者68个特征点;所述预设选定数量的特征点为所述66个特征点或者68个特征点中表示部份面部肌肉的位置,选定用作简化地代表整个面部的可移动肌肉。
在本发明的一个实施例中,对面部表情进行分析,在68个面部动态参数中的68个特征点,概括地选取预设数量的特征点(预设的特征点)作为驱动整理全部面部表情的方法。经过发明人的长期研究,发现人物的表情变化主要集中在面部的眉毛、眼睛、鼻子、嘴巴以及下巴的特征点。因此,在本发明的实施方式中分析是集中分析包括预设的面部的眉毛、眼睛、鼻子、嘴巴以及下巴的特征点的预设选定数量的特征点,即分析特征点所需要的计算要求大大减低。而没有分析其余没有包括在预设特征点内的特征点,在接收端2显示装置的动画驱动仍是需要根据在一般人的面部各68个特征点的相对位置的距离及角度,在特定的情况,例如要实时传输一个名人(例如一位当代科技名人)的面部表情,而在本发明的实施例中也可以对这名人的68个面部特征点进行分析及纪录。在得到其余没有包括在预设特征点内特征点与基本的预设选定数量的特征点的距离及角度关系之后,再进一步使用预设特征点的位置计算出动画单元的位置(即动画单元数据),作为动画驱动单元的获取模块10可以根据所收到的包括各动画单元数据的动画驱动单元参数后,用作显示动画头像。另一方面,面部表情的分析的复杂之处,包括头颅的转动,头颅转动包括左右、上下,即面部表情分析需要进行三维的特征点的分析,上述表达的本发明实施例中分析点简化为预设选定数量的特征点,但所需的计算功能是相对缩小。现有部分高端移动电话的处理器及摄影镜头在能力范围之内。
在公知的现有技术中所选用的六十多个特征点(也称为全部特征点)作测试或/及以数据表达面部表情的其中一个方法。本发明中则是选用全部特征点中的预设的部份特征点作为测试分析面部表情,即不需要选用共六十多的全部特征点进行分析,而只需要选用预设的特征点进行分析。参见图2,预设的特征点的数目比全部特征点为少,在本发明不同的实施方案,可以因应不同的动画效果而选用不同的预设的特征点数量及组合,包括可以尽量详细分析眼睛(201)附近的特征点,而在另一个实施方案,可以尽量详细分析咀巴部份(202)在说话时的移动。
进一步,本发明在分析面部表情后,使用动画单元的概念,传送面部肌肉的移动数据到接收端2。前述实施例中的,所述动画单元数据组合包包括:零组或者多组动画单元数据组;每组所述动画单元数据组合包括:动画单元,所述动画单元标识用户的面部表情的一个或者多个所述预设的特征点;动画单元数据,所述动画单元数据以所述动画单元代表的所述预设的特征点在自然表情时的位置到极端表情时的位置的距离的百份比表示。动画单元:为了确认所表达的每一动画单元,每一动画单元标识一个唯一的代码;动画单元数据:代表某一时段的动画单元的位置,如上所述,所述动画单元数据的数值为0到100之间(包括首尾0及100);动画单元数据组合:则是将上述动画单元代码及动画单元数据组合成。
另外,一个动画单元,表示的是面部的其中一点,也可以说是表示用户面部表情的预设的特征点中的一点,大致地,每一动画单元的位置是代表一个面部点(特征点),而这个面部点在普通人类面部的移动范围有限度,就是在头颅上可以移动的有一轨度而有两端,为了将这个移动距离进行数据化,将其中一端定义为点0(下称为动画单元数据为0),另一端定义为点100(下称为动画单元数据为100),在两端之间,以百份比定义在轨道上的位置,即以点1到99之间叙述其位置,即点50是在所述轨道的两端之中间。在自然表情(即正常表情或是说无表情)时所述动画单元的位置定义动画单元数据为0,当所摄取的参与者是无表情时,所有动画单元的数据值为0。从定义出发,即动画单元所代表的面部其一点只可单向移动,而为了可以定义某点可以从自然表情的位置向不同方向移动的面部的其中一点,同一面部点可以有两个或多个动画单元代表,例如右眉内端,向以向上提或向下挤,即可定义两个动画单元:(甲)右眉内端向上提;及(乙)右眉内端向下挤。当右眉内端向上时,其数据为1至100之内,而另一动画单元右眉内端向下挤没有意义,相反亦焉。另一个例子,面部点是下巴,下巴何以向左及右移动,所以可以有两个动画单元所代表同一面部点而有两个方向。
一般地,所选用的动画单元,是位于上述全部特征点的其中一点,或是与全部特征点的其中数个特征点有几何上的关系,即知悉一个动画单元的位置数据,可以计算(准确地)或估算(有偏差地计算)出全部特征点的其中一点或多点的位置。进而可以用作制作动画头像。
在其中一个实施方案,为了重现参与者的咀部表情,除了预设特征点较多环绕咀部外(较详细分析围绕咀部的表情),动画单元的数量,也较多围绕在咀部周围。在另一个实施方案,为了重现用户的眼部表情,除了预设特征点较多环绕眼睛外(较详细分析围绕眼睛的表情),动画单元的数量,也较多围绕在眼睛周围。
参见图3,在本发明的一个实施例中,所述根据所述预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合的步骤包括:
根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;该步骤由第一位移计算子模块131实现;
根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据;该步骤由第一获得子模块132实现。
在该实施例中,第一位移计算子模块131根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;第一获得子模块132则根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据。最终,可以获得一个或者多个所述预设的特征点的动画单元及其动画单元数据,根据这些数据,可以将零组或者多组动画单元数据组合成动画单元数据组合包。
参见图19和图20,在本发明的第十四个实施例中,所述用户头颅转动的角度数据及动画单元数据组合包组成动画驱动单元参数;在所述步骤S1802之前还包括:
发送端1的压缩模块30对获取的所述用户动画单元数据组合包进行压缩,将所述用户头颅转动的角度数据和压缩后的所述用户动画单元数据组合包发送到接收端2;
在所述步骤S1802中,接收端2的解压模块4解压所述压缩后的所述用户动画单元数据组合包后,将根据获得的所述动画单元数据组合包和所述用户头颅转动的角度数据生成替代所述用户头像的图像的用户表情头像。
在该实施例中,可以对动画单元数据组合包进行压缩,以减小数据的传输量,使接收端2可以更快的显示用户表情头像。因此,在该实施例中,需要先对需要传送到接收端2的动画单元数据组合包进行压缩。而优选的,在发送端1和接收端2之间由预定的传送格式传送所述用户头颅转动的角度数据和所述动画单元数据组合包;其中,(如表1)传送所述用户头颅转动的角度数据和表示所述用户的面部表情的动画单元数据组合包;其中,所述传送格式的内容至少包括:所述动画单元数据组合包和用户头颅转动的角度数据;所述动画单元数据表示每个对应的所述动画单元所代表的特征点在预设时间内的位置;和/或在所述动画单元数据在预设时间与上一预设时间的移动距离未达到距离阈值时,所述动画驱动单元参数不包括所述动画单元数据组合包;并且在达到所述预设的移动距离阈值时,所述动画驱动单元参数则包括所述动画单元数据组合包。具体的格式如表1所示。
参见图3和图4,在本发明的第十五个实施例中,所述获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据的步骤包括初步估计特征点的位置的步骤,具体包括:
A1、输入子模块11在发送端1拍摄和/或输入用户头像的图像;
A2、第一分析子模块12根据所述用户头像的图像,分析所述用户头颅转动的角度数据;
A3、第二分析子模块13获得所述用户头颅转动的角度数据后,分析表示所述用户的面部表情的全部的特征点的位置数据;
所述输入用户头像的图像为预设的上一时间段内或者当前拍摄的用户头像的图像;
所述用户的面部表情的全部的特征点的位置数据包括所述用户的面部表情的全部的特征点的位置数据;
所述用户头颅转动的角度数据包括所述用户头颅摆左、摆右、向左、向右、向上和/或向下转动的角度数据,并以三维轴方式表示所述用户头颅转动的角度数据。
在该实施例中,输入子模块11输入用户头像的图像,该头像可以是实时的拍摄头像,也可以是根据需要选择其他时间段的拍摄头像,例如,上一个预设时间段拍摄的用户头像的图像。如当前时间是T1,则根据需要可以输入T0时间拍摄的用户头像的图像。之后,首先由第一分析子模块12根据所述用户头像的图像,分析所述用户头颅转动的角度数据;在分析获得用户头颅转动的角度数据后,参考其头颅的转动信息后,继续由第二分析子模块13分析表示所述用户的面部表情的全部的特征点的位置数据。由于头颅转动(head pose)分析,由于头颅转动分析比较容易,所需处理器时间较短,完成后将面容进行正面化(FaceLandmark Frontalization),再将从获取模块10包含的摄影镜头所得的储存在内储的实时视像再进行面部特征点包围框,或上一预设时间的特征点位置,这些步骤是以上一步骤所得数据以简化下一步骤的工作量。而全部数据是以摄影镜头所得的实时视像储存于内储而使用同时储存在内储的分析程序,减低对处理与外部设置的数据传输。由此通过分析全部的特征点的位置,获得初步估计特征点的位置。
如图4所示,在本发明的一个实施例中,用户表情头像生成的过程包括:
步骤S401中,输入用户头像的图像;
步骤S402中,用户面部表情分析,包括用户头颅转动分析和面部表情的预设的特征点分析;
步骤S403中,经过面部表情分析计算出用户头颅方向及动画单元数据组合成的动画驱动单元参数;该用户头颅方向为用户头颅转动的角度数据。
步骤S404中,将用户头颅的转动角度的数据和包括动画单元数据组合包的动画驱动单元参数进行编码,
步骤S405中,将编码后的数据进行传输到对端。
步骤S406中,对端接收,并进行解码。
步骤S407中,在对端的动画驱动单元中对动画驱动单元参数中的动画单元数据组合及头颅方向进行分析。
步骤S408中,对所述面部表情进行重建。
步骤S409中,根据重建后所述面部表情与用户头颅转动的角度的数据显示用户表情头像。
参见图3和图5,在本发明的第十六个实施例中,所述根据所述用户头颅转动的角度数据和预设的特征点的位置数据在预存的动画单元的代码库中获取对应的动画单元数据组合的步骤还包括:
A4、输入子模块11在发送端1拍摄和/或输入用户头像的图像;
A5、第一适配子模块14根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动角度数据进行适配,选择相适配的头颅转动角度数据;
A6、第二适配子模块15根据所述用户头像的图像,将所述表示所述用户的面部表情的预设的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;
A7、第一选择子模块16根据所述相适配的头颅转动角度数据和相适配的面部表情数据,计算所述动画单元数据组合包,并将所述动画单元数据组合包发送到所述接收端;
所述根据所述所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像的步骤包括:
B1、所述接收端1的第一显示子模块22以以预存的动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴的组件显示替代所述用户头像的图像的所述用户表情头像。
在该实施例中,输入子模块11在输入的用户头像的图像后,第一适配子模块14根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动位置数据进行适配,选择相适配的头颅转动位置数据;而第二适配子模块15则是根据所述用户头像的图像,将所述表示所述用户的面部表情的预设的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;由此,第一选择子模块16根据所述相适配的头颅转动位置数据和相适配的面部表情数据,计算所述动画单元数据组合包,并且将该动画单元数据组合包发送到接收端2。在接收端2中存储的动画头像,第一显示子模块22以所述预存的动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴等预设部件显示替代所述用户头像的图像的所述用户表情头像最后在接收端20进行显示。
参见图5,在本发明的一个实施例中,获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据的过程包括;
步骤S501中,输入用户头像的图像和/或通过拍摄输入用户头像的图像;
步骤S502中,根据所述用户的头颅转动的适配;
步骤S503中,获取适配成功的用户的头颅转动的角度数据
步骤S504~S507中,在用户头颅转动数据库和用户面部表情数据库中取出常规的头颅或者常规的用户面部表情数据进行适配和相互调整;
步骤S508~S509中,选择最适配的面部表情数据作为用户面部表情数据。由此,获得了用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据。由此获得所述动画单元数据组合包。
其中,步骤S504中的各个数据库表示的是训练头颅转动方向的数据库:步骤S505中训练的意思是预先摄取的头颅图像(或叫相片),所有头颅图像中的面部是自然表情的,即人的面部没有任何表情,所摄取头颅图像是选用一个一般人,非特别长面或肥胖的面形,选取0度(人正视镜头)向左10度、向左20度、向左30度、向左40度等,向右不同的度数,向上及向下的不同度数。在不同实施方案这种度数的增加数可以是10度、可以是5度、可以是3度等。不同的度数增值会加快或减慢了图8所代表的程序所需时间。
在本发明的一个实施方式中,分析所得的面部表情,例如分析所得的面部特征,以所使用选定一预设数量的特征点的位置所代表。获取模块10,也可以使用称为动画单元(animation unit)以描绘基本的面部肌肉的位置来代表复习的面部表情,以这种数据化的信息,能以最简化的方式及数据量传输到远程,因此,对传输网络要求低,更加不需要如传输串流视像般需要较大的频宽,参数化的面部表情送达到动画驱动单元(生成模块20),可以转化为三维化的动画头像。由此,用户可以通过配置不高台式电脑或者是部分具有相应硬件水平的移动终端实现所述用户表情头像的生成及显示。
参见图3和图7,所述获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据的步骤包括:
A8、输入子模块11在发送端1拍摄和/或输入用户头像的图像;
A9、第一判断子模块17判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果,若否则执行步骤A10,若是则执行步骤A11;
A10、第一检测子模块18对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
A11、第二检测子模块19根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
A12、根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据;该步骤有第一匹配子模块101实现。
A13、根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据;该步骤由第一修正子模块102实现、和/或
A14、根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。该步骤由第一获取子模块103实现。
在该实施例中,第一判断子模块17判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果;若存在所述检测结果,则第一检测子模块18根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;若不存在,则第二检测子模块19对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像。第一匹配子模块101根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据。第一获取子模块103根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据。另一方面,第一发送子模块104根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。而且参考图7,在该实施例中,所述获得用户头颅转动的角度数据以及修正用户头颅转动的角度数据与预设的特征点的位置数据分别进行或者并行进行。由此,可以使获取用户头颅转动的角度数据及用户面部表情的预设的特征点的位置数据相互促进进行。
参见图7,在本发明的一个实施例中,所述面部表情的预设的特征点的位置数据和用户头颅转动的角度数据的获取过程包括:
步骤S701中,输入用户头像的图像;
步骤S702中,判断否存在上一个预设t输入的所述用户头像的图像的面部表情的预设的特征点的检测结果;是则执行步骤S703;否则执行步骤S704;
步骤S703中,进行人脸检测,获得面部的范围,由此获得用户面部范围的初始位置数据;
步骤S704中,从面部范围的初始估算,由此计算出特征点包围框,即所有可以图像中辨认的特征点在特征点包围框内;
步骤S705中,获得用户面部图像:分别进行或者并行进行S706及S707的;
步骤S706~S713中,最初的头颅转动的角度数据和最初的预设的特征的位置数据相互进行适配和修正,最后最终获得面部表情的预设的特征点的位置数据和用户头颅转动的角度数据。而且在不同的时间片段中,可能用户的头颅不转动或者是用户的面部表情没变化。因此在可以预设一定时间内,如0.5秒检测一次用户的头颅或者是面部表情是否发生变化,若变化则相应的调整相关的数据进行输出。若没变化,则可以不进行调整。
在本发明的一个实施方式中,由于用户在短时间内可能不会转动头颅,或者是有新的面部表情变化。因此,可以将上一个时间段内的用户头像的图像作为用户的头颅转动的分析基础,或者是作为用户的面部表情的预设的特征点的面部动态参数的分析基础,由于这些图像信息已经存储,无需花费其他时间再去进行分析。由此,可以减少分析的时间,而且在预设的上一个时间段到下一个时间段内,用户的面部表情及头颅的转动均有可能不发生改变,由此可以节省分析运算的计算量。预设的上一个时间段内,可以根据设计需要进行设置,例如预设的上一个时间段为T0,当前时间为T1。T0可以为1秒,T1可以为3秒。即两者间隔2秒。
参见图3和图8,在本发明的第十七实施例中,所所述获取用户头颅转动的角度数据的步骤包括:获取所述用户头颅转动的初始的角度数据的步骤;以及根据所述用户头颅转动的初始的角度数据获取所述用户头颅转动的角度数据的步骤;其中所述获取所述用户头颅转动的初始的角度数据的步骤包括:
A18、输入子模块11在所述发送端拍摄和/或输入用户头像的图像;
A19、第二判断子模块107判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,若否则执行步骤A20,若是则执行步骤A21;
A20、第一调整子模块108从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据模板,结合所述用户头像的图像的面部图像,获得所述用户头颅最初的角度数据,并将所述用户头颅最初的角度数据作为初始的所述用户头颅转动的角度数据;
A21、第二调整子模块109使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据;
A22、第一扭曲子模块111将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;
A23、第一输出子模块112将扭曲变化后的用户头像的图像与在所述发送端拍摄和/或输入的用户头像的图像进行匹配,如果两者相匹配,则输出所述用户头颅转动的初始的角度数据,否则,调整所述用户头颅转动的初始的角度数据,转到步骤A19。
在该实施例中,用户表情头像生成的装置100可以具有一个训练头颅转动的方向的数据库。在该数据库中,也多个与多个不同的头颅转动的方向适配的面部表情图像,在该实施例中,用户表情头像生成的装置100可以具有一个训练头颅转动的方向的数据库。在该库中,也多个与多个不同的头颅转动的方向适配的面部表情图像,第二判断子模块107判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;在判断为不存在时,第一调整子模块108从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据作为初始的所述用户头颅转动的角度数据;在判断为存在时,第二调整子模块109使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据。第一扭曲子模块111将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;第一输出子模块112将扭曲变化后的用户头像的图像与在发送端1拍摄和/或输入的用户头像的图像进行匹配,并在两者相匹配时,输出所述用户头颅转动的初始的角度数据。由此,获得用户头颅转动的初始的角度数据。根据该用户头颅转动的初始的角度数据,再经过第十八实施例的运算,最终获得用户头颅转动的角度数据。同样的,预设的上一个时间段内,可以根据设计需要进行设置,例如1分钟、2分钟,或者更短30秒、0.5秒等。
参见图8,在本发明的一个实施例中,提供了获取用户头颅转动的初始的角度数据的方法流程,描述如下:
步骤S801中,输入用户头像的图像;
步骤S802~S804中,选择上一个预设时间段的用户头颅转动的角度数据或者训练头颅转动方向的数据库中正视方向上的头颅数据分别扭曲化后与标准的面部(正常表情下)进行适配;
步骤S805~S808中,经过计算后判断是头颅转动的角度数据与标准的面部是否误差低于阈值;若否则调整头颅的转动的角度;若是则输出头颅转动的角度数据(即方向数据),该角度数据为用户头颅转动的初始的角度数据。由此可以尽快的找到适配的头颅转动的角度数据。调整的头颅转动的角度,可以进行逐步的微调,如进行5°向右调整等。具体的,在步骤S801中,即T0时,选用P(左右0度、上下0度)的头颅面部,进行测试,当有差误时所需要进行的修正,变成P=P+△p,△p为调整的角度的数据,如△p为3°等。从训练头颅转动方向的数据库选取下一个新的P的头颅面部,再重复测试。
参见图3和图9,在本发明的第十八实施例中,所述根据所述用户头颅转动的初始的角度数据获取所述用户头颅转动的角度数据的步骤包括:
A25、第一适配子模块113将在所述发送端输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
A26、第二适配子模块114将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新的面部表情的所述预设的特征点的位置数据进行适配;若适配不成功则执行步骤A27,若成功则执行步骤A28;
A27、第三调整子模块115调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转,并返回A25,直至述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;
A28、第二输出子模块116输出适配的所述用户头颅转动的角度数据。
在该实施例中,第一适配子模块113将在所述发送端1输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;第二适配子模块114则将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新面部表情的所述预设的特征点的位置数据进行适配;所述更新后的面部表情的所述预设的特征点的位置是:在不断的头颅与面部特征点适配过程中,对面部表情的所述预设的特征点的位置数据不断进行更新。由此,可以在对用户头颅转动的角度数据和预设的特征点的位置的进行相互帮助加强准确性及加快处理的过程中,如图7中的步骤S813获得的上一个预设时段的面部特征点位置,或者在步骤S812中获得的不断更正更新的面部特征点位置。然后,第三调整子模块115在第二适配子模块114适配失败后,调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转后重新由第一适配子模块113将其数据作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,直至所述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;最后第二输出子模块116输出适配的所述用户头颅转动的角度数据。由此,获得最终的用户头颅转动的角度数据。
参见图9,在本发明的一个实施例中,提供了通过初始的用户头颅转动的角度数据获取用户头颅转动的角度数据的方法流程,描述如下,
步骤S901中,输入用户当前的面部图像;
步骤S902~S904中,选择上一个预设时间段的用户头颅转动的角度数据或者训练头颅转动方向的数据库中正视方向上的头颅数据分别扭曲化后与用户当前的面部图像的预设的特征点位置数据进行适配;
步骤S905~S908中,经过计算后判断是头颅转动的角度数据与当前的面部图像的预设的特征点位置数据适配是否是低于预设的阈值;若否则调整头颅的转动的角度;若是则输出头颅转动的角度数据(即方向数据)。由此可以尽快的找到适配的头颅转动的角度数据。调整的头颅转动的角度,可以进行逐步的微调,如3°向右调整等。由此最终获得用户头颅转动的角度数据。
参见图3和图10,在本发明的第十九实施例中,所述获取代表所述用户的面部表情的预设的特征点的位置数据的步骤包括:获取用户的面部表情的预设的特征点的初始位置数据的步骤;以及根据所述用户的面部表情的预设的特征点的初始位置数据获取代表所述用户的面部表情的预设的特征点的位置数据的步骤;其中,所述获取用户的面部表情的预设的特征点的初始位置数据的步骤包括:
A29、第三判断子模块117判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据,若否则执行步骤A30,若是则执行步骤A31;
A30、第三选择子模块118从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;
A31、第四选择子模块119将由上一个预设的时间段内输入的用户头像的图像获取的表示所述用户的面部表情的所述全部特征点的位置数据,作为代表所述用户的面部表情的全部特征点的位置数据;
A32、第三匹配子模块120将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;
A33、第五选择子模块121从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。
在该实施例中,计算获取用户的面部表情的预设的特征点的初始位置数据。第三判断子模块117判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据;第三选择子模块118在所述第三判断子模块117判断为否时,从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;第四选择子模块119在所述第三判断子模块117判断为是时,将由上一个全部时间段内输入的用户头像的图像获取的表示所述用户的面部表情的所述全部特征点的位置数据,作为代表所述用户的面部表情的全部特征点的位置数据;第三匹配子模块120将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;第五选择子模块121从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。由此获得用户的面部表情的预设的特征点的初始位置数据,根据该初始位置数据,可以计算获得最终的用户的面部表情的预设的特征点的位置数据。
参见图10,在本发明的一个实施例中,提供了获取用户的面部表情的预设的特征点的初始位置数据的方法流程,具体描述如下:
步骤S1001~S1003中,输入上一个时间段的用户面部图像或者从训练用户面部图像的预设的特征点数据库中获取用户面部正常表情的特征点位置数据;以及选择修正的用户头颅转动的角度数据;
步骤S1004~S1007,将上一个时间段的用户面部图像预设的特征点和用户面部正常表情的预设的特征点位置数据与所述用户头颅转动的角度数据进行适配,直到两者适配成功,由此输出该用户面部表情的预设的特征点的位置数据作为用户的面部表情的预设的特征点的初始位置数据。
参加图3和图11,在本发明的一个实施例中,所述根据所述用户的面部表情的预设的特征点的初始位置数据获取代表所述用户的面部表情的预设的特征点的位置数据的步骤包括:
A34、第一计算子模块123将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;
A35、第四判断子模块124经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;若有执行步骤A36;若没有则执行步骤A37;
A36、第三修正子模块125对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,获得所述用户的面部表情的所述预设的特征点的位置数据;
A37、第三输出子模块126输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据;
所述图像特征检测值的计算包括:以方向梯度直方图、尺度不变特征转换特征、加速稳健特征、哈尔特征、局部二值模式、小波特征中一个或多个组合的计算。
在该实施例中,第一计算子模块123将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;可以选择直方图计算等或其他方式的运算方式。如以方向梯度直方图(HOG,Histogram of Gradient),尺度不变特征转换特征(SIFT,(Scale-invariant feature transform),加速稳健特征(SURF,Scale-invariantfeature transform),哈尔特征(HAAR),局部二值模式(LBP,Local Binary Patterns),小波特征(Gabor)或其他方法中一个或多个组合计算。第四判断子模块124经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;第三修正子模块125对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,获得所述用户的面部表情的所述预设的特征点的位置数据;第三输出子模块126输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据。根据提取图像特征检测值的计算,对计算结果进行判断,判断获取的表示所述用户的面部表情的所述预设的特征点的位置数据是否与预设的用户的面部表情的训练库中存储的用户的面部表情的特征点的位置数据有偏差。其中预设的用户的面部表情的训练库中存储的用户的面部表情的特征点的位置数据是标准的,合理的,若有偏差,则说明检测或者运算出现失误。例如出现不合理的面部表情,都是可以通过该计算后进行判断的。在判断出现偏差后,则对所述表示所述用户的面部表情的所述预设的特征点的位置数据进行修正至无偏差后,最终,输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据。
参见图11,在本发明一个实施例中,提供了获取用户的面部表情的预设的特征点的位置数据的方法流程,描述如下:
在步骤S1101~步骤S1103中,将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行特征值的计算;
步骤S1104~步骤S1106中,对经过所述特征值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差,若有则进行预设的特点的修正,最后输出无偏差的预设的特征点的位置数据。提取图像特征点位置的计算包括多种,如直方图的计算。
参见图3和图12,在本发明的第二十一个实施例中,在所述A26之前还包括:
深度检测子模块127检测表示所述面部表情的预设的特征点的深度;
在所述步骤A26中,根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配。
在该实施例中,通过深度检测子模块127检测表示所述面部表情的预设的特征点的深度;第二调整子模块109根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配,即第二调整子模块109在调整所述用户头颅转动的角度数据时,考虑了深度的影响。在该实施例中,提出需要进行深度计算,这是由于当进行拍摄人像时,由于用户的头颅转动了,其面部表情的特征点移动了,所以与头颅为向正前方时的特征点的相对位置会产生相对位移,若要辨别这种变动,就会是一种需要进行三维计算的辨别。为了减少这种用户的头颅——面部的三维式辨别。则可以通过对用户头像的图像的深度计算。在实际接收到的数据,并没有特征点的深度,该深度指的是特征点距离摄影镜头的距离的变动,例如一特征点由于用户的头颅转动而与上一时间距离摄影镜头相差+0.1厘米或-0.05厘米等。增加这个深度的计算,可以在辨别程序产生用作比较预设的正面面部特征。具体的,通过深度检测子模块127检测表示所述面部表情的预设的特征点的深度;第二调整子模块109根据所述深度调整所述用户头颅转动的,即第二调整子模块109在调整所述用户头颅转动的时,考虑了深度的影响。如图12中的步骤S1201~S1204。
参见图3和图13,在本发明的第二十二个实施例中,在所述步骤S1802前还包括:
平滑处理模块50将所述动画单元数据组合包进行平滑处理操作,使由所述动画单元数据组合包表示的用户的面部表情图像平滑;
冲突处理模块60对所述动动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突。
在该实施例中,进行数据的平滑处理。如将可以在发送端1由平滑处理模块50包括由所述动画单元数据组合包进行平滑处理操作,以及由冲突处理模块60对所述动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突,减低各种原因所引起的跳格现象。同样可以参考图13中的步骤S1301~S1306。
参见图3和图13,在本发明的第二十三个实施例中,通用的三维动画软件大都采用浮点数值运算,而浮点数值无论占用数字及处理器所需时间都较8-位整数为多,而本发明用作传输面部动态参数都是使用整数。但因为在数据分析阶段有使用有损性压缩,所以有动画驱动单元(生成模块20)将数据转换为驱动画,所以在动画驱动单元设置有平滑动态程序,以减少在动画中出现的不衔接,俗种跳格的现像。具体的,将所述用户的面部表情的动画单元显示所述用户的面部表情的矩像图。
同样的可以参考图13中的步骤S1301~S1306。参见图3和图19及图20,在本发明的第二十四个实施例中,所述发送端1对获取的所述用户头颅转动的角度数据和所述动画单元数据组合进行压缩,获得压缩后的所述用户表情头像数据包;并将所述用户表情头像数据包发送到所述接收端2的步骤包括:
C1、组成子模块31将所述用户头颅转动的角度数据和动画单元数据组合包;和/或所述动画单元数据组合包中每个动画单元代表的预设的特征点在预设时间内的位置数据组成所述动画驱动单元参数;
C2、哈夫曼算法压缩子模块32对所述动画单元数据组合的数据进行哈夫曼算法压缩;
C3、发送子模块33将包括经过哈夫曼算法压缩后的所述动画单元数据组合包和所述用户头颅转动的角度数据的动画驱动单元参数发送到接收端2;
所述步骤S1802包括:
B6、哈夫曼算法解压缩子模块42对所述经过哈夫曼算法压缩后的所述动画单元数据组合包进行解哈夫曼算法压缩,获得所述动画单元数据组合的数据。
在该实施例中,采用数据压缩的方法。对需要发送到接收端2的所述用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据进行压缩。数据压缩方法第一步,即步骤C1是有损性压缩,有这一步骤中,有损性压缩是将动画单元的现在位置,与上一时段的位置,其差距少于特定距离,则从发送的资料(即动画驱动参数)中删除。而压缩的程度可以根据所需的敏感度及准确度的要求而调节。如图21所示,数据压缩方法第二步,即步骤C2是根据哈夫曼编码(Huffman Coding)的空间压缩,这种压缩方法无损数据准确性而只是减少数据量,为了成功减少数据量,减少数据量是以选用可变数据数量(即数字的长度legth of bits)代表面部动态参数,较短的数据量代表出现最多的面部动态参数,相反,较长的数据量代表出现最少的动态参数。通过对上述的数据的压缩,可以减少传送的数据量,提高接收端2显示用户表情头像的速度。图19和图20分别为在发送端1和接收端2对用户表情头像数据包的压缩打包及解压缩包的方法流程。发送端1动画单元数据组合包进行哈夫曼算法压缩,如图19中的步骤S1901~S1905所示。接收端2对对所述经过哈夫曼算法压缩后的所述动画单元数据组合包进行解哈夫曼算法压缩,如图20中的步骤S2001~S2004所示。
在本发第一个实施例中个,发送端1和接收端2为参与网络游戏的至少两个游戏终端200。即本发明提供的用户表情头像生成的方法可以应用的游戏环境下。进一步,为了简化网络游戏机的设计、制造及维修,在网络游戏的应用环境,摄取分析面部表情终端装置与动画头像显示终端装置为一体,即每一个网络游戏参与者所使用的游戏终端装置可同时用作分析参与者自已的面部表情,亦同时将远程传来的面部表情参数以动画头像显示。更进一步,本发明的网络游戏包括端游(台式计算机支持的网络游戏)及手游(手机、移动电话支持的网络游戏)。另一方面的应用,可以是在一组教育导师以提供一种虚拟的辅导学生环境,接受辅导的学生所使用的学习终端装置终端机装置为动画头像显示终端装置。学习终端装置与上述的游戏终端装置大致一样,包括显示屏、发声装置及输入装置。学习终端装置进一步可选地包括摄影镜头。所述学习终端装置输入装置包括收音用麦克风(microphone)、键盘(keyborad)、按钮(button)等。学习终端装置包括处理器、内储(memory)及存储(storage)。所述存储用作记录终端机所使用的程序及数据。内储则用作存放需要使用的程序、数据等。用作根据所接收到的面部表情参数而操控动画头像的程序及数据在游戏终端的处理器、内储上运作。学习终端装置还包括通讯装置,以有线或无线网络连接教学系统的服务器,所述连接包括使用本地网络、无线网络(wifi network)、蓝牙接点(bluetooth access point)、各种制式的无线移动网络以私人网络或互联网络连接教学系统服务器。在本发明的实施例中,面部动态参数、面部表情参数均为动画驱动单元参数。
在本发明的其他实施方式中,可以所使用的三维面部表情分析方法由两部份所组成:深度近似方法及面部动态方法。进一步,当本发明要普及的应用于任何要表达表情的人物,如上所述的网络游戏参与者、以一对众的教学导师,进行采纳及分析表达表情的人环境参差,分析所得的面部表情,例如分析所得的面部特征,是以动画单元(animation unit)所使用的动画单元数据所代表其位置。本发明的动画单元以描绘基本的面部肌肉的位置来代表复习的面部表情,以这种数据化的信息,能以最简化的方式及数据量传输到远程,因此,对传输网络要求低,更加不需要如传输串流视像般需要较大的频宽,参数化的面部表情送达到动画驱动单元,可以转化为三维化的动画头像。
综上所述,本发明通过发送端获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述预设的特征点的位置数据计算动画单元数据组合包;接收端根据所述用户头颅转动的角度数据和所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;而所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。由此对分别分析头颅转动及分析面部表情,分两个子程序去分析头颅转动及面部表情,而且用预设的选定数量的面部表情的特征点去代替68个面部特征点的分析,由此降低了运算量,能够将所述方法进行实时分析而可以在较低处理器功能的装置上运作,包括现市场中的移动电话和低端的台式机。更进一步,由于所输传输的数据量较少,摄取分析面部表情终端装置及动画头像显示终端装置可以各自独立的装置,而以传输网络传送分析所得的面部动态参数。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (40)
1.一种用户表情头像生成的方法,其特征在于,所述方法包括如下步骤:
A、发送端获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包;
B、接收端根据所述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;
所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。
2.根据权利要求1所述的方法,其特征在于,所述动画单元数据组合包包括:零组或者多组动画单元数据组合;每组所述动画单元数据组合包括:
动画单元,所述动画单元标识用户的面部表情的一个或者多个所述预设的特征点;
动画单元数据,所述动画单元数据以所述动画单元代表的所述预设的特征点在自然表情时的位置到极端表情时的位置的距离的百份比表示。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包的步骤包括:
根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;
根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据。
4.根据权利要求2所述的方法,其特征在于,所述用户头颅转动的角度数据及动画单元数据组合包组成动画驱动单元参数;在所述步骤B之前还包括:
C、所述发送端对获取的所述用户动画单元数据组合包进行压缩,将所述用户头颅转动的角度数据和压缩后的所述用户动画单元数据组合包发送到所述接收端;
在所述步骤B中,所述接收端解压所述压缩后的所述用户动画单元数据组合包后,将根据获得的所述动画单元数据组合包和所述用户头颅转动的角度数据生成替代所述用户头像的图像的用户表情头像。
5.根据权利要求1所述的方法,其特征在于,所述用户的面部表情的全部特征点为ISO/IEC 14496-1标准中的66个特征点或者68个特征点;
所述预设的特征点为所述66个特征点或者68个特征点中表示面部的预选数目的特征点。
6.根据权利要求1所述的方法,其特征在于,所述获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据的步骤包括初步估计全部特征点的位置的步骤,具体包括:
A1、在所述发送端拍摄和/或输入用户头像的图像;
A2、根据所述用户头像的图像,分析所述用户头颅转动的角度数据;
A3、获得所述用户头颅转动的角度数据后,分析表示所述用户的面部表情的全部特征点的位置数据;
所述输入用户头像的图像为预设的上一时间段内或者当前拍摄的用户头像的图像;
所述用户的面部表情的全部特征点的位置数据包括所述用户的面部表情的全部特征点的位置数据;
所述用户头颅转动的角度数据包括所述用户头颅摆左、摆右、向左、向右、向上和/或向下转动的角度数据,并以三维轴方式表示所述用户头颅转动的角度数据。
7.根据权利要求2所述的方法,其特征在于,所述根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包的步骤还包括:
A4、在所述发送端拍摄和/或输入用户头像的图像;
A5、根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动角度数据进行适配,选择相适配的头颅转动角度数据;
A6、根据所述用户头像的图像,将所述表示所述用户的面部表情的预设的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;
A7、根据所述相适配的头颅转动角度数据和相适配的面部表情数据,计算所述动画单元数据组合包,并将所述动画单元数据组合包发送到所述接收端;
所述根据所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像的步骤包括:
B1、所述接收端以预存的动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴的组件显示替代所述用户头像的图像的所述用户表情头像。
8.根据权利要求6所述的方法,其特征在于,所述获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据的步骤包括:
A8、在所述发送端拍摄和/或输入用户头像的图像;
A9、判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果,若否则执行步骤A10,若是则执行步骤A11;
A10、对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
A11、根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
A12、根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据;
A13、根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据;和/或
A14、根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。
所述获得用户头颅转动的角度数据以及修正用户头颅转动的角度数据与预设的特征点的位置数据分别进行或者并行进行。
9.根据权利要求8所述的方法,其特征在于,所述获取用户头颅转动的角度数据的步骤包括:获取所述用户头颅转动的初始的角度数据的步骤;以及根据所述用户头颅转动的初始的角度数据获取所述用户头颅转动的角度数据的步骤;其中所述获取所述用户头颅转动的初始的角度数据的步骤包括:
A18、在所述发送端拍摄和/或输入用户头像的图像;
A19、判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,若否则执行步骤A20,若是则执行步骤A21;
A20、从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据模板,结合所述用户头像的图像的面部图像,获得所述用户头颅最初的角度数据,并将所述用户头颅最初的角度数据作为初始的所述用户头颅转动的角度数据;
A21、使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据;
A22、将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;
A23、将扭曲变化后的用户头像的图像与在所述发送端拍摄和/或输入的用户头像的图像进行匹配,如果两者相匹配,则输出所述用户头颅转动的初始的角度数据,否则,调整所述用户头颅转动的初始的角度数据,转到步骤A19。
10.根据权利要求9所述的方法,其特征在于,所述根据所述用户头颅转动的初始的角度数据获取所述用户头颅转动的角度数据的步骤包括:
A25、将在所述发送端输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
A26、将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新的面部表情的所述预设的特征点的位置数据进行适配;若适配不成功则执行步骤A27,若成功则执行步骤A28;
A27、调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转,并返回A25,直至述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;
A28、输出适配的所述用户头颅转动的角度数据。
11.根据权利要求1所述的方法,其特征在于,所述获取代表所述用户的面部表情的预设的特征点的位置数据的步骤包括:获取用户的面部表情的预设的特征点的初始位置数据的步骤;以及根据所述用户的面部表情的预设的特征点的初始位置数据获取代表所述用户的面部表情的预设的特征点的位置数据的步骤;其中,所述获取用户的面部表情的预设的特征点的初始位置数据的步骤包括:
A29、判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据,若否则执行步骤A30,若是则执行步骤A31;
A30、从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;
A31、将由上一个预设的时间段内输入的用户头像的图像获取的表示所述用户的面部表情的所述全部特征点的位置数据,作为代表所述用户的面部表情的全部特征点的位置数据;
A32、将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;
A33、从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。
12.根据权利要求11所述的方法,其特征在于,所述根据所述用户的面部表情的预设的特征点的初始位置数据获取代表所述用户的面部表情的预设的特征点的位置数据的步骤包括:
A34、将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;
A35、经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;若有执行步骤A36;若没有则执行步骤A37;
A36、对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,并转到A34;
A37、输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据;
所述图像特征检测值的计算包括:以方向梯度直方图、尺度不变特征转换特征、加速稳健特征、哈尔特征、局部二值模式、小波特征中一个或多个组合的计算。
13.根据权利要求9或10所述的方法,其特征在于,在所述A26之前还包括:
A38、检测表示所述面部表情的预设的特征点的深度;
在所述步骤A26中,根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配。
14.根据权利要求2所述的方法,其特征在于,在所述步骤B之前还包括:
D、将所述动画单元数据组合包进行平滑处理操作,使由所述动画单元数据组合包表示的用户的面部表情图像平滑;
E、对所述动动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突。
15.根据权利要求14所述的方法,其特征在于,在所述发送端和接收端之间由预定的传送格式传送所述动画驱动单元参数;其中,所述传送格式的内容至少包括:所述动画单元数据组合包和用户头颅转动的角度数据;
所述动画单元数据表示每个对应的所述动画单元所代表的特征点在预设时间内的位置;和/或
在所述动画单元数据在预设时间与上一预设时间的移动距离未达到距离阈值时,所述动画驱动单元参数不包括所述动画单元数据组合包;并且在达到所述预设的移动距离阈值时,所述动画驱动单元参数则包括所述动画单元数据组合包。
16.根据权利要求15所述的方法,其特征在于,所述步骤C包括:
C1、将所述用户头颅转动的角度数据和动画单元数据组合包;和/或所述动画单元数据组合包中每个动画单元代表的预设的特征点在预设时间内的位置数据组成所述动画驱动单元参数;
C2、对所述动画单元数据组合包进行哈夫曼算法压缩;
C3、将包括经过哈夫曼算法压缩后的所述动画单元数据组合包和所述用户头颅转动的角度数据的动画驱动单元参数发送到所述接收端;
所述步骤B包括:
B6、对所述经过哈夫曼算法压缩后的所述动画单元数据组合包进行解哈夫曼算法压缩,获得所述动画单元数据组合的数据。
17.根据权利要求1所述的方法,其特征在于,所述发送端和接收端为参与网络游戏的至少两个游戏终端;或者
所述发送端为虚拟教育的授课端;所述接收端为所述虚拟教育的至少一个听课端。
18.根据权利要求17所述的方法,其特征在于,所述游戏终端包括:
中央处理器,
拍摄装置,用于拍摄用户头像的图像;
输入装置,用于所述游戏终端的游戏操作;
输出装置,用于所述游戏终端的声音和图像的输出;
网络装置,用于所述游戏终端的通讯连接;以及
存储装置,用于存储所述游戏终端的数据文件;所述数据文件包括所述用户头像的图像、所述获取的所述用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;以及所述动画单元的代码库。
19.根据权利要求18所述的方法,其特征在于,所述输入装置包括:键盘、麦克风、摇杆、方向盘、按钮;
所述输出装置包括:发声模块和显示屏。
20.根据权利要求1所述的方法,其特征在于,所述发送端和接收端之间无线通信或者有线通信。
所述发送端和接收端为移动终端和/或台式电脑。
21.一种用户表情头像生成的装置,其特征在于,所述装置包括:
获取模块,设置于发送端,用于获取用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;并根据所述用户头颅转动的角度数据和/或预设的特征点的位置数据计算表示用户的面部表情的动画单元数据组合包;
生成模块,设置于接收端,用于根据所述用户头颅转动的角度数据和/或所述动画单元数据组合包生成替代所述用户头像的图像的用户表情头像;
所述预设的特征点为表示所述用户的面部表情的全部特征点中的部分特征点。
22.根据权利要求21所述的装置,其特征在于,所述动画单元数据组合包包括零组或者多组动画单元数据组;每组所述动画单元数据组合包括:
动画单元,所述动画单元标识用户的面部表情的一个或者多个所述预设的特征点;
动画单元数据,所述动画单元数据以所述动画单元代表的所述预设的特征点在自然表情时的位置到极端表情时的位置的距离的百份比表示。
23.根据权利要求22所述的方法,其特征在于,所述获取模块包括:
第一位移计算子模块,用于根据所述预设的特征点的位置数据计算所述预设的特征点的位移的数据;
第一获得子模块,用于根据所述预设的特征点的位移的数据获得一个或者多个所述预设的特征点的动画单元和动画单元数据。
24.根据权利要求22所述的装置,其特征在于,所述用户头颅转动的角度数据及动画单元数据组合包组成动画驱动单元参数;所述装置还包括:
压缩模块,设置于所述发送端,用于所述发送端对获取的所述用户动画单元数据组合包进行压缩,将所述用户头颅转动的角度数据和压缩后的所述用户动画单元数据组合包发送到所述接收端;
解压模块,设置于所述接收端,用于解压压缩后的所述用户动画单元数据组合包;
所述生成模块将根据所述解压模块解压获得的所述动画单元数据组合包和所述用户头颅转动的角度数据生成替代所述用户头像的图像的用户表情头像。
25.根据权利要求21所述的装置,其特征在于,所述用户的面部表情的全部特征点为ISO/IEC 14496-1标准中的66个特征点或者68个特征点;
所述预设的特征点为所述66个特征点或者68个特征点中表示面部的预选数目的特征点。
26.根据权利要求22所述的装置,其特征在于,所述获取模块包括:
输入子模块,用于在所述发送端拍摄和/或输入用户头像的图像;
第一分析子模块,用于根据所述用户头像的图像,分析所述用户头颅转动的角度数据;
第二分析子模块,用于获得所述用户头颅转动的角度数据后,分析表示所述用户的面部表情的特征点的位置数据;
所述输入用户头像的图像为预设的上一时间段内或者当前拍摄的用户头像的图像;
所述用户的面部表情的特征点的位置数据包括所述用户的面部表情的特征点的位置数据;
所述用户头颅转动的角度数据包括所述用户头颅摆左、摆右、向左、向右、向上和/或向下转动的角度数据,并以三维轴方式表示所述用户头颅转动的角度数据。
27.根据权利要求25所述的装置,其特征在于,所述获取模块还包括:
第一适配子模块,用于根据所述用户头像的图像,将所述用户头颅转动的角度数据与预设的用户头颅转动数据库中的头颅转动角度数据进行适配,选择相适配的用户头颅转动的角度数据;
第二适配子模块,用于根据所述用户头像的图像,将所述表示所述用户的面部表情的特征点的位置数据与预设的用户面部表情数据库中的面部表情数据进行适配,选择相适配的面部表情数据;
第一选择子模块,用于根据所述相适配的头颅转动角度数据和相适配的面部表情数据,计算所述动画单元数据组合包,并将所述动画单元数据组合包发送到所述接收端;
所述生成模块还包括:
第一显示子模块,用于预存的动画头像中面部的眉毛、眼睛、鼻子、嘴巴以及下巴的组件显示替代所述用户头像的图像的所述用户表情头像。
28.根据权利要求26所述的装置,其特征在于,所述获取模块还包括:
第一判断子模块,用于判断是否存在上一个预设的时间段内输入的所述用户头像的图像的面部表情的预设的特征点的检测结果;
第一检测子模块,用于在所述第一判断子模块判断存在所述检测结果后,根据上一个预设的时间段内所述面部表情的预设的特征点的检测结果,计算所述预设的特征点的包围框的位置,并将所述位置作为所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
第二检测子模块,用于在所述第一判断子模块判断不存在所述检测结果后,对所述用户头像的图像执行人脸侦测算法,获得所述用户头像的图像的面部包围框,从而获得所述用户头像的图像的面部图像;
第一匹配子模块,用于根据所述用户头像的图像的面部图像,以及预存的用户的面部表情的特征点的位置数据库中的自然表情的特征点位置模板,获得所述用户的面部表情的预设的特征点的初始位置数据;以及根据所述用户头像的图像的面部图像,以及预存于用户头颅转动的角度数据库中的角度数据模板,获得用户头颅转动的初始的角度数据;
第一修正子模块,用于根据所述用户的面部表情的预设的特征点的位置数据修正所述初始的用户头颅转动的角度数据,获得所述用户头颅转动的角度数据;
第一获取子模块,用于根据所述用户头颅转动的角度数据修正获得的所述用户的面部表情的预设的特征点的位置数据。
29.根据权利要求28所述的装置,其特征在于,所述获取模块还包括:
第二判断子模块,用于判断是否存在上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
第一调整子模块,用于在所述第二判断子模块判断不存在所述角度数据时,从预存的用户头颅转动的角度数据库中选择用户的头像图像为正面的头颅转动的角度数据模板,结合所述用户头像的图像的面部图像,获得所述用户头颅最初的角度数据,并将所述用户头颅最初的角度数据作为初始的所述用户头颅转动的角度数据;
第二调整子模块,用于在所述第二判断子模块判断存在所述角度数据时,使用所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据作为所述用户头颅转动的初始的角度数据;
第三获取子模块,用于将所述正常表情下的所述用户头像的图像按照所述用户头颅转动的初始的角度数据进行扭曲变化;
第一扭曲及输出子模块,用于将扭曲变化后的用户头像的图像与在所述发送端拍摄和/或输入的用户头像的图像进行匹配,并在两者相匹配,则输出所述用户头颅转动的初始的角度数据,否则,调整所述用户头颅转动的初始的角度数据。
30.根据权利要求29所述的装置,其特征在于,所述获取模块还包括:
第一适配子模块,用于将在所述发送端输出的所述用户头颅转动的初始的角度数据,作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据;
第二适配子模块,用于将上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据与在将所述用户头颅转动的角度数据与表示所述用户的面部表情的预设的特征点的位置数据适配过程中不断更新的面部表情的所述预设的特征点的位置数据进行适配;
第三调整子模块,用于在所述第二适配子模块适配失败后,调整所述用户头颅转动的角度数据,对所述用户头颅进行旋转后重新由第一适配子模块将其数据作为所述上一个预设的时间段内输入的用户头像的图像的用户头颅转动的角度数据,直至所述用户头颅转动的角度数据与所述面部表情的所述预设的特征点的位置数据相适配;
第二输出子模块,用于输出适配的所述用户头颅转动的角度数据。
31.根据权利要求22所述的装置,其特征在于,所述获取模块还包括:
第三判断子模块,用于判断是否存在上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的全部特征点的位置数据;
第三选择子模块,用于在所述第三判断子模块判断为否时,从预存的所述用户的面部表情的特征点的位置数据库中选择用户面部正常表情的特征点位置数据模板,结合所述用户头像的图像中的面部图像,获得所述预设的特征点的最初位置数据,并将所述预设的特征点的最初位置数据作为代表所述用户的面部表情的全部特征点的位置数据;
第四选择子模块,用于在所述第三判断子模块判断为是时,将由上一个预设的时间段内输入的用户头像的图像获取的表示所述用户的面部表情的所述全部特征点的位置数据,作为代表所述用户的面部表情的全部的特征点的位置数据;
第三匹配子模块,用于将代表所述用户的面部表情的预设的特征点的位置数据进行调整,直至与所述用户头颅转动的角度数据相匹配;
第五选择子模块,用于从代表所述用户的面部表情的全部特征点中选择所述预设的特征点的位置数据作为所述用户的面部表情的预设的特征点的初始位置数据。
32.根据权利要求31所述的装置,其特征在于,所述获取模块还包括:
第一计算子模块,用于将根据上一个预设的时间段内输入的用户头像的图像所获取的表示所述用户的面部表情的所述预设的特征点的初始位置数据对当前输入的用户头像的图像进行提取图像特征检测值的计算;
第四判断子模块,用于经过所述提取图像特征检测值的计算后判断与预设的用户的面部表情的训练库中存储的根据用户的面部表情的特征点的位置数据所计算的图像特征是否有偏差;
第三修正子模块,用于在所述第四判断子模块判断有偏差时,对所述表示所述用户的面部表情的所述预设的特征点的初始位置数据进行修正,获得所述用户的面部表情的所述预设的特征点的位置数据;
第三输出子模块,用于在所述第四判断子模块判断没有偏差时,输出无偏差的所述用户的面部表情的所述预设的特征点的位置数据;
所述图像特征检测值的计算包括:以方向梯度直方图、尺度不变特征转换特征、加速稳健特征、哈尔特征、局部二值模式、小波特征中一个或多个组合的计算。
33.根据权利要求29或30所述的装置,其特征在于,所述获取模块还包括:
深度检测子模块,用于检测表示所述面部表情的预设的特征点的深度;
所述第二调整子模块根据所述深度调整所述用户头颅转动的角度数据,至与所述面部表情的所述预设的特征点的位置数据相适配。
34.根据权利要求22所述的装置,其特征在于,所述装置还包括:
平滑处理模块,设置于所述发送端,用于将动画单元数据组合包进行平滑处理操作,使由所述动画单元数据组合包表示的用户的面部表情图像平滑;
冲突处理模块,设置于所述发送端,用于对所述动画单元数据组合包进行冲突纠正处理操作,使表示所述用户的面部表情的动画单元数据组合包的数据均不相互冲突。
35.根据权利要求34所述的装置,其特征在于,在所述发送端和接收端之间由预定的传送格式传送所述动画驱动单元参数;其中,所述传送格式的内容至少包括:所述动画单元数据组合包和用户头颅转动的角度数据;
所述动画单元数据表示每个对应的所述动画单元所代表的特征点在预设时间内的位置;和/或
在所述动画单元数据组合包在预设时间与上一预设时间的移动距离未达到距离阈值时,所述动画驱动单元参数不包括所述动画单元数据组合包;并且在达到所述预设的移动距离阈值时,所述动画驱动单元参数则包括所述动画单元数据组合包。
36.根据权利要求35所述的装置,其特征在于,所述压缩模块包括:
组成子模块,用于将所述用户头颅转动的角度数据和动画单元数据组合包;和/或所述动画单元数据组合包中每个动画单元代表的预设的特征点在预设时间内的位置数据组成所述动画驱动单元参数;
哈夫曼算法压缩子模块,用于对所述动画单元数据组合包进行哈夫曼算法压缩;
发送子模块,用于将包括经过哈夫曼算法压缩后的所述动画单元数据组合包和所述用户头颅转动的角度数据的动画驱动单元参数发送到所述接收端;
所述解压模块还包括:
哈夫曼算法解压缩子模块,用于对所述经过哈夫曼算法压缩后的所述动画单元数据组合包进行解哈夫曼算法压缩,获得所述动画单元数据组合包的数据。
37.根据权利要求22所述的装置,其特征在于,所述发送端和接收端为参与网络游戏的至少两个游戏终端;或者
所述发送端为虚拟教育的授课端;所述接收端为所述虚拟教育的至少一个听课端。
38.根据权利要求37所述的装置,其特征在于,所述游戏终端包括:
中央处理器,
拍摄装置,用于拍摄用户头像的图像;
输入装置,用于所述游戏终端的游戏操作;
输出装置,用于所述游戏终端的声音和图像的输出;
网络装置,用于所述游戏终端的通讯连接;以及
存储装置,用于存储所述游戏终端的数据文件;所述数据文件包括所述用户头像的图像、所述获取的所述用户头颅转动的角度数据和表示所述用户的面部表情的预设的特征点的位置数据;以及所述动画单元的代码库。
39.根据权利要求40所述的装置,其特征在于,所述输入装置包括:键盘、麦克风、摇杆、方向盘、按钮;
所述输出装置包括:发声模块和显示屏。
40.根据权利要求21所述的装置,其特征在于,所述发送端和接收端之间无线通信或者有线通信。
所述发送端和接收端为移动终端和/或台式电脑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610645774.9A CN107705341B (zh) | 2016-08-08 | 2016-08-08 | 用户表情头像生成的方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610645774.9A CN107705341B (zh) | 2016-08-08 | 2016-08-08 | 用户表情头像生成的方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107705341A true CN107705341A (zh) | 2018-02-16 |
CN107705341B CN107705341B (zh) | 2023-05-12 |
Family
ID=61169253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610645774.9A Active CN107705341B (zh) | 2016-08-08 | 2016-08-08 | 用户表情头像生成的方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107705341B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109711362A (zh) * | 2018-12-29 | 2019-05-03 | 深圳有咖互动科技有限公司 | 人脸表情提取方法、电子设备以及存储介质 |
CN109788210A (zh) * | 2018-12-28 | 2019-05-21 | 惠州Tcl移动通信有限公司 | 一种智能终端图像转换的方法、智能终端及存储装置 |
CN110942503A (zh) * | 2019-11-13 | 2020-03-31 | 中南大学 | 一种基于虚拟人脸模型的微表情数据生成方法 |
CN111105494A (zh) * | 2019-12-31 | 2020-05-05 | 长城汽车股份有限公司 | 一种三维动态头像的生成方法及系统 |
CN111460893A (zh) * | 2020-03-02 | 2020-07-28 | 平安科技(深圳)有限公司 | 人脸特征向量动态调整方法及相关设备 |
CN111768479A (zh) * | 2020-07-29 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备以及存储介质 |
CN116109798A (zh) * | 2023-04-04 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、设备及介质 |
WO2023075682A3 (zh) * | 2021-10-25 | 2023-08-03 | 脸萌有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
WO2023075681A3 (zh) * | 2021-10-25 | 2023-08-24 | 脸萌有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003058518A2 (en) * | 2002-01-07 | 2003-07-17 | Stephen James Crampton | Method and apparatus for an avatar user interface system |
US20070153005A1 (en) * | 2005-12-01 | 2007-07-05 | Atsushi Asai | Image processing apparatus |
CN102271241A (zh) * | 2011-09-02 | 2011-12-07 | 北京邮电大学 | 一种基于面部表情/动作识别的图像通信方法及系统 |
CN104011738A (zh) * | 2011-12-29 | 2014-08-27 | 英特尔公司 | 用于使用交互式化身进行通信的系统和方法 |
CN104902212A (zh) * | 2015-04-30 | 2015-09-09 | 努比亚技术有限公司 | 一种视频通信方法及装置 |
CN105704419A (zh) * | 2014-11-27 | 2016-06-22 | 程超 | 一种基于可调模板头像的人人交互的方法 |
-
2016
- 2016-08-08 CN CN201610645774.9A patent/CN107705341B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003058518A2 (en) * | 2002-01-07 | 2003-07-17 | Stephen James Crampton | Method and apparatus for an avatar user interface system |
US20070153005A1 (en) * | 2005-12-01 | 2007-07-05 | Atsushi Asai | Image processing apparatus |
CN102271241A (zh) * | 2011-09-02 | 2011-12-07 | 北京邮电大学 | 一种基于面部表情/动作识别的图像通信方法及系统 |
CN104011738A (zh) * | 2011-12-29 | 2014-08-27 | 英特尔公司 | 用于使用交互式化身进行通信的系统和方法 |
CN105704419A (zh) * | 2014-11-27 | 2016-06-22 | 程超 | 一种基于可调模板头像的人人交互的方法 |
CN104902212A (zh) * | 2015-04-30 | 2015-09-09 | 努比亚技术有限公司 | 一种视频通信方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109788210A (zh) * | 2018-12-28 | 2019-05-21 | 惠州Tcl移动通信有限公司 | 一种智能终端图像转换的方法、智能终端及存储装置 |
CN109711362B (zh) * | 2018-12-29 | 2020-02-14 | 深圳有咖互动科技有限公司 | 人脸表情提取方法、电子设备以及存储介质 |
CN109711362A (zh) * | 2018-12-29 | 2019-05-03 | 深圳有咖互动科技有限公司 | 人脸表情提取方法、电子设备以及存储介质 |
CN110942503A (zh) * | 2019-11-13 | 2020-03-31 | 中南大学 | 一种基于虚拟人脸模型的微表情数据生成方法 |
CN110942503B (zh) * | 2019-11-13 | 2022-02-11 | 中南大学 | 一种基于虚拟人脸模型的微表情数据生成方法 |
CN111105494B (zh) * | 2019-12-31 | 2023-10-24 | 长城汽车股份有限公司 | 一种三维动态头像的生成方法及系统 |
CN111105494A (zh) * | 2019-12-31 | 2020-05-05 | 长城汽车股份有限公司 | 一种三维动态头像的生成方法及系统 |
CN111460893A (zh) * | 2020-03-02 | 2020-07-28 | 平安科技(深圳)有限公司 | 人脸特征向量动态调整方法及相关设备 |
CN111768479A (zh) * | 2020-07-29 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备以及存储介质 |
WO2023075682A3 (zh) * | 2021-10-25 | 2023-08-03 | 脸萌有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
WO2023075681A3 (zh) * | 2021-10-25 | 2023-08-24 | 脸萌有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
CN116109798B (zh) * | 2023-04-04 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、设备及介质 |
CN116109798A (zh) * | 2023-04-04 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107705341B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107705341A (zh) | 用户表情头像生成的方法及其装置 | |
CN110457994B (zh) | 人脸图像生成方法及装置、存储介质、计算机设备 | |
CN110688911B (zh) | 视频处理方法、装置、系统、终端设备及存储介质 | |
CN110531860B (zh) | 一种基于人工智能的动画形象驱动方法和装置 | |
WO2021169431A1 (zh) | 交互方法、装置、电子设备以及存储介质 | |
KR102503413B1 (ko) | 애니메이션 인터랙션 방법, 장치, 기기 및 저장 매체 | |
Deng et al. | Expressive facial animation synthesis by learning speech coarticulation and expression spaces | |
Le et al. | Live speech driven head-and-eye motion generators | |
EP1326445B1 (en) | Virtual television phone apparatus | |
CN112669417B (zh) | 虚拟形象的生成方法、装置、存储介质及电子设备 | |
CN113228163B (zh) | 基于文本和音频的实时面部再现 | |
JP7246811B2 (ja) | 顔画像生成用のデータ処理方法、データ処理機器、コンピュータプログラム、及びコンピュータ機器 | |
CN111459454B (zh) | 交互对象的驱动方法、装置、设备以及存储介质 | |
CN113508369A (zh) | 交流支持系统、交流支持方法、交流支持程序以及图像控制程序 | |
CN111459452B (zh) | 交互对象的驱动方法、装置、设备以及存储介质 | |
CN111459450A (zh) | 交互对象的驱动方法、装置、设备以及存储介质 | |
WO2021196644A1 (zh) | 交互对象的驱动方法、装置、设备以及存储介质 | |
CN110349232A (zh) | 图像的生成方法、装置、存储介质和电子设备 | |
KR102373608B1 (ko) | 디지털 휴먼 영상 형성을 위한 전자 장치 및 방법과, 그를 수행하도록 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램 | |
CN109816758A (zh) | 一种基于神经网络的二维角色动画生成方法和装置 | |
CN110162598A (zh) | 一种数据处理方法和装置、一种用于数据处理的装置 | |
CN110125932A (zh) | 一种机器人的对话交互方法、机器人及可读存储介质 | |
Morillas-Espejo et al. | Sign4all: A low-cost application for deaf people communication | |
CN114783039B (zh) | 一种3d人体模型驱动的运动迁移方法 | |
CN114092712B (zh) | 图像生成方法、装置、可读介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |