技术领域
[0001] 本
发明涉及基于面部运动单元(AU)的三维非真实感表情生成方法,属于智能
情感计算技术领域。
背景技术
[0002] 在人类情感信息的表达方式中,除了肢体动作和语言信息外,面部也是人类表达信息的重要部位,通过面部的动作表达人类的情感信息是人类日常交流的主要方式之一。人脸表情中含有丰富的信息,Mehrabian提出人类情感信息有55%是通过人脸传递的,而声音、言语等方式仅占了45%。随着计算机技术的发展,人类对
人机交互的要求越来越高,情感计算也受到广泛关注,它要求计算机不仅能识别人类情感,还能理解人类情感并做出应答,从而使计算机能够像人与人一样进行情感交流,既有表情的识别又有表情动作的互动。
识别面部表情并对面部情感信息做出表情应答,是一个完整的过程。在智能人机交互过程中,人类希望计算机能够像人一样,对人类的表情做出应答和模仿。
[0003] 表情动画生成方法主要是将表情的发出者作为表情的模板,使目标对象模仿模板表情,主流方法通过
定位面部的特征点,根据特征点的信息重建面部表情及面部动作。但是,选取的特征过点多会影响计算效率,选取的特征点少则会影响表情的表达效果。除此而外,目前的方法在目标重建表情过程中并不理解重建表情的种类,造成表情信息丢失。
[0004] 在人机交互过程中,需要提取参与者的表情信息并对提取的表情信息做出应答,显然,对于人类丰富多态的表情做出回应,已有的基于将源人物面部表情动作映射到目标人物面部图像的方式在人机交互过程中缺乏灵活性。
[0005] 著名
心理学家保罗·
艾克曼基于解剖学,根据肌肉的动作状态来表征人类表情,提出面部运动单元的概念,每一个面部运动单元代表与其他面部运动单元互不干扰的面部动作,由不同的面部运动单元组成具有表情意义的面部动作。基于AU的表情动画生成方法,可以通过AU组合生成表情,人作为面部动作的捕捉对象不再是方法的必要条件,并且可以更丰富化人类表情动作,从而更细致更贴近真实表情。
[0006] 在河北工业大学张满囤、葛新杰、吴鸿韬、李智、魏玮、2013年07月10日公开、公开号CN103198508A、
发明名称为“人脸表情动画生成方法”的中国发明
专利申请中,提出一种基于运动捕捉数据的人脸动画生成方法,他们首先使用摄像机捕捉人脸的
正面照片,使用径向基函数技术对人脸
变形,重新映射人脸的纹理部分,通过将面部划分成不同的区域进行局部形变,最后融合成人脸模型。该发明需要设备记录生气、悲伤、厌恶、惊讶、恐惧和高兴六种基本表情,通过其他方法
感知后进行处理,通过41个特征点提取特征。该发明在设备提取数据时采用的六种
基础表情,而人类表的面部表情丰富多彩、多种多样,每一种基础表情又由不同的表达方式,例如,微笑和大笑,都属于高兴;因而表达的丰富性不够。其次,基于特征点提取特征的方法,特征点
位置的精确度直接影响
算法后续的准确性,并不能避免特征点提取存在误差的问题。
[0007] 在大连东锐
软件有限公司王春成、刘鑫、郑媛媛、2018年12月28日公开、公开号CN109101953A、发明名称为“基于人类面部表情的分区要素化的表情动作生成方法”的中国发明专利申请中,提出基于人类面部表情的分区要素化的表情动作生成方法,通过采集多个对象的面部表情各部分的运动数据建立
数据库;根据外部输入表达内心情感参数,取面部综合表情动作参数L为最终面部表情参数R;将最终面部表情参数R用于控制目标模型运动,生成表情动作。该方法在建立数据库过程中,需要扫描采集多个对象的各个面部的不同
角度的运动数据,无疑增加
数据采集的工作量。
发明内容
[0008] 本发明技术解决问题:为了克服现有表情动画生成对特征点几何位置依赖的不足,本发明提出了一种基于面部运动单元的三维非真实感表情生成方法,面部运动单元AU具有独立、互不干扰的特点,独立的动作单元并不一定具有独立的语义信息,多个动作单元的组合则表达了有意义的情绪状态。本发明的方法不仅能够提取表情动画生成过程中的表情信息,而且摆脱了现存方法需要表情模板或特征点定位不准确的问题。相对于二维图像,三维模型提供了更丰富的空间信息。本方法大大提高了表情动画生成的灵活性并丰富了表情信息。
[0009] 本发明技术解决方案:一种基于面部运动单元的三维非真实感表情生成方法,包括以下步骤:
[0010] 1、建立三维AU模型基础训练集
[0011] 1.1)使用建模工具建立具有完整信息的三维中性面部模型。根据面部动作编码系统FACS和人体面部肌肉分布,以中性模型为基础,建立与AU对应的三维模型基础训练集。
[0012] 1.2)生成目标对象的AU模型数据
[0013] 对于生成目标对象的AU模型,形成扩增训练集,采用构造对抗神经网络的方式。构造的对抗神经网络分为两个部分:一是输入目标对象的三维中性模型和步骤1.1)中的AU模型Y,网络职能提取模型的特征信息,根据AU模型的特征信息,逐步调整目标模型的参数,最后输出目标的三维AU模型;二是输出模型的验证网络,网络职能是将调整参数后的目标模型与输入的目标模型、输入的AU模型对比,计算损失函数和生成模型的相似度,调整模型参数,生成可靠性高的模型。
[0014] 所述对抗神经网络由
编码器B、生成网络G与判别网络D组成。除了重建损失之外,潜在向量 经过判别器Dq的附加对抗网络规则化,即在q上施加先验分布Pq, 为模型参数。编码器 要提取源表达式参数 的个性特征,与目标AU标签yt合并,形成表*达目标个性特征参数 将
训练数据的样本分布表示为Pd,将随机样本从Pq表示为q ,根据最小-最大目标函数在该对抗网络中训练编码器B和判别器Dq:
[0015]
[0016] 判别器De尝试将数据与训练分布Pd和AU模型y的生成分布F(B(xe),y)的
采样数据区分开,而生成器Ge预期生成分布F(B(xe),y)混淆了De。因此,训练De和Ge具有类似的最小-最大目标函数:
[0017]
[0018] 计算模型的损失函数,利用空间点在傅里叶空间中哈达玛积(Hadamard product)构造
三维网格数据的卷积运算,描述三维空间形状特征,计算目标的AU模型与输入模型之间的相似度,作为模型的损失函数。设置损失
阈值,作为判别器De的判别真实模型与生成器Ge生成的模型的相似度。
[0019] 2、面部表情分析
[0020] 2.1)分析目标表情的设计
[0021] 构造一个
卷积神经网络作为二维表情图像的AU分析模型,设计并实现深度卷积神经网络。此网络中包括了卷积层、捷径层、全连接层、
输出层。对于捷径层,为了加强特征信息的对比,在隔一层卷积层之间加入一个捷径层,如下式为捷径层的形式化描述:o(x)=ωix+x,其中ωi为第i个卷积层的卷积模板参数,x为卷积层输入,o(x)为输入与卷积层运算的输出相
叠加作为捷径层。
[0022] 每一个卷积层都通过一组卷积参数模板对上一层特征图像进行卷积运算,并获得与卷积参数模板个数相同的特征图像作为输出层,卷积层的激活函数采用有
泄漏的线性整流函数:
[0023] 多标签的交叉熵损失函数:
[0024]
[0025] 其中,V是全体AU集合,R是图像中人像AU区域的集合,y(r,v)=1表示v号AU在区域r上出现。模型会将输入图像规范化,将图像划分成S×S的格子。每个边框负责检测目标中心落在其中的可信度和
精度有多大,并预测B个边框以及
置信度,置信度表示一个边框内含有AU的可信度,形式为: 其中,预测值的概率Pr, 为预测的正确范围P与真实范围T的交并比。
[0026] 2.2)训练表情AU分析模型
[0027] 2.2.1)利用步骤2.1)的方法构建一个AU识别的深度卷积神经网络结构;
[0028] 2.2.2)对卷积神经网络中的参数初始化,一般卷积层的卷积核用标准差为0.01的高斯函数初始化,偏置初始化为0;
[0029] 2.2.3)卷积神经网络初始化后,开始训练表情AU分析的卷积神经网络,对输入的训练数据,首先将图片标准化,神经网络的第三层和第五层为捷径层,为上一层的输出和
输入层的和值,提取并加强图像特征,第六层到第十层对图像的特征进行分类,并在输出层输出结果。最后,计算输入的训练集图像经过卷积神经网络各层后得到的结果与真实数据分布图之间的损失,即 然后采用随机
梯度下降法在每一次优化
迭代中更新整个卷积神经网络的参数,在迭代一定次数后把验证集图像输入卷积神经网络得到输出与标准图之间的损失,直到损失收敛到一个设定的阈值后暂停训练。
[0030] 2.3)表情图像AU分析
[0031] 对于二维图像表情分析,由上述步骤2.2)训练得到AU分析模型,然后进行检测:获取的检测图像,首先提取图像
块,将图形块缩放到固定
像素大小,输入到卷积神经网络中,通过卷积神经网络处理,产生对应的AU数据。
[0032] 3、生成三维表情模型
[0033] 3.1)根据人类面部肌肉收缩和舒张,面部呈现出不同的面部动作,人脸面部动作的程度直接影响面部表情,根据步骤2.3)对表情分析AU信息,对于每一个面部动作设置一个强度值γi表示面部肌肉的收缩和舒张程度,代表AU的表达强度。0≤γi≤1,γi=0表示该AU未参与面部表情活动,γi=1表示面部肌肉舒张和收缩均达到最大程度,AU表达达到最大强度。
[0034] 3.2)对于三维AU模型M由纹理信息和形状信息组成,模型M是由中性表情模型N形变得到,因此,模型M与模型N具有相同的
顶点集。因此可以提取模型M相对与中性表情模型N的信息特征:形状信息ΔS和纹理信息ΔT。其中:ΔSM=SM-SN,ΔTM=TM-TN,SM表示模型M的形状信息,SN表示中性表情模型N的形状信息,TM表示模型M的纹理信息,TN表示中性表情模型N的纹理信息。并且形状信息ΔS和纹理信息ΔT存在一一对应的映射关系。
[0035] 3.3)根据步骤3.2)中提取的基础模型的特征信息:形状信息ΔS和纹理信息ΔT,及步骤3.1)对面部表情设置的阈值γi,将特征信息融合到三维中性模型中,三维面部表情模型的形状模型 和纹理信息 形成目标表情模型。其中,SN为中性模型的形状信息,ΔSi为第i个模型的形状特征,TN为中性模型的纹理信息,ΔTi为第i个模型的纹理特征。
[0036] 有益效果:
[0038] (1)采用由中性模型到AU模型进而形成模型基础训练集的方式,不需要基于特征点的方式提取面部特征,克服现有表情动画生成对特征点几何位置依赖的不足,从而避免了在提取特征过程中面部对齐、特征点提取以及模型之间的差异等产生的误差,使特征提取更加精确。
[0039] (2)基于AU组合生成特定表情的3D模型,只需要输入对应的AU数据信息,通过基础AU模型与表情的对应关系,即可生成表情模型,解决了现有方法需要获取相关表情几何信息作为数据源的问题,方法使用者通过控制相关AU的参数,更方便的灵活生成目标表情。
[0040] (3)在表情合成上,根据面部肌肉运动而划分的AU单元融合表情,不仅方便控制面部的局部动作,而且使产生的表情更加丰富多样。
附图说明
[0042] 图2是FACS中性表情图;
[0043] 图3是人体面部肌肉分布图;
[0044] 图4是生成器网络结构图;
[0045] 图5是目标模型生成图;
[0046] 图6是神经网络结构图;
[0047] 图7是表情生成图。
具体实施方式
[0048] 下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。
[0049] 本发明提出了一种基于面部运动单元的三维非真实感表情生成方法。包括:
[0050] 步骤1,建立标准的三维面部中性模型,以中性模型为基础,建立与AU对应的三维模型基础训练集。
[0051] 使用GAN网络生成AU与对应三维模型的扩增训练集。将已经建立的三维模型基础训练集中的AU模型,与目标对象模型作为GAN网络的输入,使用GAN网络生成目标对象的AU模型,建立目标对象的AU模型与三维人脸模型的对应关系,扩增训练集。
[0052] 步骤2,对所要生成的目标对象的面部表情进行分析,输入人脸二维图像,使用神经网络分析人脸表情,获取表情的AU模型数据。
[0053] 步骤3,根据得到的表情AU数据信息,以及目标对象的相关AU模型数据,目标对象的AU模型是由中性模型形变形成,独立提取每个AU模型特征,并叠加到中性模型,融合生成目标表情的三维模型。
[0054] AU是面部动作表达的基础,AU具有独立、互不干扰的特点,独立的动作单元并不一定具有独立的语义信息,多个动作单元的组合则表达了有意义的情绪状态。基于AU的特点,本发明将面部表情分解到基础的AU,使用基于AU的面部模型融合形成面部表情,不仅可以实现基于六种基础表情的表情仿真,也可以实现基于面部运动单元的表情迁移,实现了面部表情到模型的表情迁移。
[0055] 本发明根据每个AU的特征,采用由一个初始的中性模型为出发点,为每一个AU建立一个三维模型,通过与中性模型做差值提取模型特征。对于基于特征点的表情生成方法,在面部对齐的过程,即使同一个人脸在不同的环境下,面部对齐总存在误差。
[0056] 本发明采用由同一个模型衍生其他模型的方式,避免了在提取特征过程中面部对齐、特征点提取以及模型之间的差异等产生的误差,提高了AU模型特征提取的精度。基于AU模型的表情融合,只需要知道所要生成的表情的AU数据信息就可以生成目标模型,摆脱了传统方法需要表情发出者作为数据源的问题,对于表情的AU数据分析,本发明使用卷积神经网络对二维
图像分析表情的AU组合。在表情合成上,根据面部肌肉运动而划分的AU单元融合表情,不仅方便控制面部的局部动作,而且使产生的表情更加丰富多样。
[0057] 如图1所示,本发明基于面部运动单元的三维非真实感表情生成方法主要有创建模型基础训练集并扩增训练集、分析面部表情数据和生成表情模型三个阶段。
[0058] 步骤1创建模型基础训练集并扩增训练集
[0059] 目前创建三维模型的方法诸多,如众多研究者研究出使用二维图像生成三维模型的方法,基于二维图像创建三维模型,需要多张图像才能创建出完整的模型,并且存在模型的深度数据计算差等问题。也有许多专业的建模工具和动画工具,如Maya、3D MAX、AUTOCAD等强大的专业工具。
[0060] 步骤1.1创建三维中性模型
[0061] 根据FACS中对中性表情的描述以及提供的中性表情的插图,如图2所示,使用Maya创建中性表情模型,根据不同需求,可以创建出不同精细程度的头像模型。
[0062] 步骤1.2创建三维AU基础模型
[0063] 依据解剖学对人脸面部肌肉的解析,如图3所示,保罗·艾克曼对面部划分了AU。根据保罗·艾克曼在FACS中对AU的描述以及插图示例,使用Maya软件对步骤1.1)中的中性模型依据解剖学中肌肉的分布进行拉伸等操作,创建出每个AU单元对应的AU模型,形成基础训练集。参与面部运动的面部顶点产生顶点位移,无关位置的顶点的位移量为零。
[0064] 步骤1.3GAN网络设计
[0065] 如图4所示,用于生成目标对象的三维模型的GAN网络(生成式对抗网络)分为四个部分,即编码器B、产生器G、判别器De和判别器Dq。网络中的卷积层采用5×5的卷积核。
[0066] 图4中的编码器B有三层结构,模型有4096个顶点组成,第一层将模型的形状信息根据
坐标系xyz划分成64×64×3的矩阵,第二层将第一层的64×64×3的矩阵通过5×5×9卷积操作提取的特征维度为32×32×9,第三层经过卷积核:5×5×18后,提取的特征维度为16×16×18。判别器Dq接收编码器B处理后的数据 Dq将16×16×18的矩阵数据经过5×5×9卷积计算,充分提取数据特征转化为第二层的32×32×9的矩阵数据,第三层是1×9的矩阵,最后一层输出0或者1。生成器G将采用三层卷积操作,根据16×16×18的矩阵特征产生模型的参数,第一层是根据输入层的数据经过卷积层,提取32×32×9维的特征数据,第二层是提取64×64×3维的模型特征,最后一层输出模型的参数。判别器De首先将模型数据和模型的AU类别转换为64×64×4的矩阵数据,经过卷积计算,充分提取数据特征转化为第二层的32×32×16的矩阵数据,第三层是1×16的矩阵,最后一层输出0或者1。
最后计算输出模型与输入模型之间的损失函数。
[0067] 步骤1.4生成对象AU模型库
[0068] 根据设计的GAN网络,将所要生成对象的无表情三维模型和基础训练集中的AU模型作为GAN网络的输入,通过GAN网络生成与AU对应的目标对象的三维模型。如图5所示,将目标的中性模与基础训练集中的模型Model_1输入GAN网络中,GAN网络通过提取目标模型的中性模型特征、基础训练集中模型的特征、以及输入AU模型的标签,经过处理,不断调整模型参数,直到生成目标的模型Model_1。以此类推,基础训练集中的模型Model_2、Model_3…Model_n和目标的中性模型分别输入GAN网络中,分别生成目标模型的模型Model_2、Model_3…Model_n。最后形成扩展训练集。
[0069] 步骤2分析面部表情
[0070] 步骤2.1表情分析模型设计
[0071] 本发明用于分析面部表情的卷积神经网络分为两个部分,一部分是对图像特征加强的捷径层设计,一部分是提取特征识别AU的设计。如图6所示,捷径层设计的第一层是输入层,第二层和第四层是上一层经过1个5×5、1个3×3和1个1×1卷积核卷积计算形成,第三层和第五层是上一层与输入层形成的特征叠加层。神经网络中的
池化层的步长为2。第五层到第六层之间经过卷积计算,含有128个7×7的卷积核,第六层到第七层之间经过卷积计算,含有256个3×3的卷积核,第七层到第八层之间经过卷积计算,含有512个3×3的卷积核,第八层到第九层之间经过卷积计算,含有1024个3×3的卷积核,第九层到第十层之间经过卷积计算,含有1024个3×3的卷积核。第十一层是全连接层,第十二层是输出层,本发明含有23个AU,将标准化的图像划分成7×7的网格,每个网格预测两个边框,因此输出是7×7×33。表示7×7网格中每个网格中预测的AU数据。
[0072] 正如上面提到的,发明的卷积神经网络需要学习到从一个图像块到一个AU数据分析的非线性映射。因此,需要训练卷积神经网络来解决这个回归问题。为了达到这个目标,需要计算输入训练图像与预测图像的损失函数: 其中V是全体AU集合,R是图像中人像AU区域的集合,y(r,v)=1表示v号AU在区域r上出现。
[0073] 步骤2.2获取训练样本
[0074] 使用已有的CK+表情数据库作为数据集,将数据集以2:3分为测试集和训练集。
[0075] 步骤2.3图像预处理
[0076] 首先,使用标注工具LabelImg在训练集的图像上标注出AU的标签以及AU的特征在面部的区域,形成数据文件作为训练数据的输入。其次,对于输入的图像,首先将图像标准化,通过图像采用将图像转变为224×224,输入卷积神经网络中训练模型。
[0077] 步骤2.4训练表情分析模型
[0078] 在训练卷积神经网络时,首先要对卷积神经网络中的参数初始化,一般卷积层的卷积核用标准差为0.01的高斯函数初始化,偏置初始化为0。同时设置好学习率ε,对于训练集的m个样本{x(1),...,x(m)}和其对应的目标y(i),i∈[1,m],计算估计梯度其中x(i)为第i个样本,θ为学习的参数,f(x(i);θ)为第i幅图像的估计结果, 为网络估计结果与目标之间的损失, 为对θ求导。计算输入图像经过卷积神经网络各层后得到的结果与标准图之间的损失 根据卷积层特征提取特征,统计AU的强度,形成预估AU强度的概率分布模型,然后采用随机梯度下降法在每一次优化迭代中更新整个卷积神经网络的参数,在迭代一定次数后把验证集图像输入卷积神经网络得到输出与标准度图之间的损失,直到损失收敛到一个设定的阈值后暂停训练。
[0079] 步骤2.5面部表情分析测试
[0080] 将待测二维图像输入分析系统,系统输出图像中的AU数据。
[0081] 步骤3生成表情模型
[0082] 步骤3.1提取模型特征
[0083] 根据步骤2对所生成表情的分析,从步骤1.4)创建的扩展训练集中提取相关AU模型。根据每个AU模型和中性模型差异性,提取相关AU单元的特征信息并存储。由步骤1.4)得到的AU模型与中性模型之间顶点一一对应,将AU模型与中性模型做差值,提取AU模型相对中性模型的特征信息,特征信息分为形状信息ΔSi=Si-SN和纹理信息ΔTi=Ti-TN,SN为中性模型的形状信息,ΔSi为第i个模型的形状特征,TN为中性模型的纹理信息,ΔTi为第i个模型的纹理特征。每个AU模型和中性模型的顶点能够实现双射,能够精确的提取AU模型的运动信息和纹理信息。
[0084] 步骤3.2面部表情融合
[0085] 根据步骤3.1)提取的AU特征信息和步骤2)对所生成表情的分析,对中性表情进行AU特征融合生成新的表情模型。根据AU的独立性,可以对已经经过生成的模型形状S'在进行AU单元融合S=S'+ΔSi*γi,阈值γi表示第i个AU的表达程度,调整阈值γi可以调整表情的局部信息,表情生成起始模型形状S'为中性模型。纹理信息T=T'+ΔTi*γi。形成目标表情的三维模型。在信息融合时,面部对齐过程产生的误差是影响表情生成
质量的影响因素之一,传统方法采用取平均模型与特征信息差值进行叠加,这样并不能避免面部对齐过程中误差产生的影响。在步骤1)中,由中性模型产生AU模型,从而代替了面部对齐过程。
[0086] 如图7所示,将提取目标的AU_10和AU_25的特征与中性模型融合,形成了图中融合AU_10和AU_25特征的模型M,从目标的AU_5和AU_25模型中提取模型特征,调整模型M、AU_5模型和AU_25模型参数,将三个模型融合形成最终模型,如图中表情“震惊”的模型。
[0087] 输入目标模型的中性模型与生成表情的相关AU模型,通过融合特征生成目标模型。首先融合中性模型与第一个AU模型的特征,得到融合后的模型后,再融合第二个相关模型的特征,直到最后一个模型的特征融合完成,生成目标模型。
[0088] 步骤3.3多角度表情图像生成
[0089] 对于融合形成的三维表情模型,改变观察模型的不同角度、光照等条件,提取图像的多角度表情图像。
[0090] 本发明基于AU的3D模型到非真实感的表情生成的映射,使用由一个模型衍生其余AU模型的方法,避免了模型信息提取过程中的面部对齐操作,从而避免了面部对齐所产生的误差。使用AU组合产生表情的方式,达到了人为可以控制参数进而调整面部动作,从而避免了传统表情生成方式需要人或者图像表现出表情作为表情数据源的缺点。将表情程度考虑到表情融合过程中,从而达到了专业的控制表情微动作,产生的表情多样化和更加逼真。
[0091] 尽管上面对本发明说明性的具体实施方式进行了描述,以便于
本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的
权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。