一种基于分部式稀疏成分分析模型的笑脸合成方法转让专利

申请号 : CN201610473441.2

文献号 : CN106097373B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王存刚王斌

申请人 : 聊城大学

摘要 :

本发明涉及一种基于分部式稀疏成分分析模型的笑脸合成方法,首先,导出用于人脸表示的分部式稀疏成分分析模型;接着,基于该模型给出重构和投影的规则;紧接着,利用投影规则得到投影系数,利用重构规则对输入的人脸进行重建;然后,对重建后的人脸重复上述投影和重构的过程;最后,把重建后的多幅人脸图像输出,作为输入人脸的笑容合成过程。本发明的显著效果体现在:合成的人脸基本上合理,并且光滑,合成的笑容具有真实感。

权利要求 :

1.一种基于分部式稀疏成分分析模型的笑脸合成方法,其特征在于,包括如下具体步骤:步骤一、学习构建产生式模型,用于人脸表示;

该产生式模型为给定的人脸图片寻找共同的空间分割,并且为这个分割的每个部分学习一个稀疏成分分析模型;

设产生式模型的概率分布为P(x,Z,R),其计算方式为P(x,Z,R)=P(x|R,Z)P(R)P(Z);

首先,导出产生式模型的连续诱导先验,并利用PoE(product of experts)将连续诱导先验和多项式先验结合在一起构成P(R),即:其中,Z0是归一化函数,用于记录人脸图像像素的选择的变量为rd.=(rd1,…,rdK)T,且rd.~Mult(n=1,αd.),Dd是变量rdk的相邻变量集,P1(rd.)为多项式先验,P2(rd.)为连续性诱导先验;

接着,将人脸的每个部分建模成稀疏成分分析模型,并为每个人脸部分学习稀疏成分分析模型,求得P(x|R,Z)和P(Z);具体来说,对于一个人脸像素xd,首先从K个人脸部分中选择一个部分,记为k,相应地从第k个稀疏成分分析模型中产生一个像素;得到下述模型:rd.~Multi(n=1,αd.);

zkm~Lap(u=0,b=1);

其中,xd是人脸的像素, 为第k个部分的过完备基,M是基的数目,μd为均值;

为随机噪声;αd.=(αd1,…,αdK)T为多项式分布的参数;由上述模型可得:考虑到P(R)(式(1)),P(Z)(式(3))和P(x|R,Z)(式(2)),导出人脸表示的产生式模型P(x,Z,R):步骤二、计算人脸笑容合成的投影系数;

令学习出的分部式稀疏成分分析模型为θ;样本Xc在模型θ上的投影系数,是组合系数的均值;

系数的均值可通过下式估计:

其中, 是从 中采样的样本;

是隐变量zkm的采样分布(或后验分布),本发明采用蒙特卡罗EM算法来估计隐变量的后验分布;蒙特卡罗方法首先使用Gibbs采样方法把隐变量的样本从后验采样,rdk的Gibbs采样分布可以表示为:其中,R-dk表示从R除去rdk以后所得到的变量集合;把公式(2)和公式(3)代入上面的式子,得到:zkm的采样分布可以类似地推导成如下形式:其中,

由此得到的采样分布是不连续的,可以通过以下方式从上述分布采样:(1)从式(8)中的分布P+采样,并输出非负样本(zkm≥0);

(2)从式(8)中的分布P-采样,并输出负样本(zkm≤0);

(3)将这两组样本合并起来作为输出; 即为按照这种方式从该分布中采样得到的样本;在用模型θ合成给定图像Xc的笑容时,首先是利用公式(5)将该人脸图片投影到模型θ上,计算投影系数步骤三、给出人脸笑容合成的重构规则;

计算出投影系数以后,Xc的重建值是式(2)所示条件分布的均值:通过公式(9)在模型θ上重建人脸;

步骤四、重复步骤二和步骤三,直至把所有的中间人脸全部输出,最终合成人脸笑容。

说明书 :

一种基于分部式稀疏成分分析模型的笑脸合成方法

技术领域

[0001] 本发明涉及一种基于分部式稀疏成分分析模型的笑脸合成方法,可广泛应用于电影制作、虚拟社区、游戏娱乐和动画合成等领域。属于计算机视觉,模式识别和人机交互领域。

背景技术

[0002] 作为传递人类情感和精神状态的介质,人脸在社会交流中起着非常重要的信息传送和表达功能。人脸通过丰富的面部表情来向外界传递各种信息,近些年来,利用计算机技术重建和合成真实感的人脸面部表情成为计算机视觉、人机交互和计算机图形学领域研究者专注的研究热点,并且被广泛应用于广告、动画、影视和游戏等产业。从20世纪70年代以来,利用计算机自动合成人脸表情的研究不断发展,与之相应的算法也层出不穷。人脸表情合成方法主要包括:基于混合样本的人脸表情合成;直接表情迁移;基于Sketch的人脸表情合成;基于机器学习的人脸表情合成。其中,基于机器学习的方法被广泛用于人脸表情合成,取得了较多的研究成果。基于机器学习的人脸表情合成技术,一般会对给定的训练样本进行分析,提取出有效的人脸表情的变化,进而实现人脸表情的重建和合成。
[0003] 经对现有文献的检索发现,目前基于机器学习的人脸合成方法主要分为以下几类:一类是基于典型关联分析(Canonical Correlation Analysis,CCA)的方法,比如:Wei-Wen Feng和Byung-Uck Kim2008年发表在《ACM Transactions on Graphics(ACM图形学会刊)》的论文“Real-time data driven deformation using kernel canonical correlation analysis(基于核典型关联分析的实时数据驱动的变形)”。这种方法把人脸的模型依据特征点分布划分成部件,利用典型关联分析技术,从训练样本中学习出特征点和部件之间的映射关系,并使用泊松变换技术计算得到人脸表情。这种方法的缺陷在于表情控制点需要事先确定下来,并且在之后的计算过程中不能更改。一类是基于独立主成分分析(Independent Component Analysis,ICA)合成人脸表情的方法,比如:Yong Cao和Petros Faloutsos于2003年发表在《Proceedings of the ACM SIGGRAPH/Eurographics Symposium on  Computer Animation(ACM计算机动画制作会议论文集)》的论文“Unsupervised learning for speech motion editing(基于半监督学习的语音动画编辑)”。该方法使用独立成分分析技术提取出人脸表情的参数,并且把初始的人脸数据分为表情和语音两部分,通过对每一个成分的操作可以编辑人脸表情的变化。最后一类是基于多维可变形模型(Multidimensional Morphable Model,MMM)的方法,比如:Yao-Jen Chang和Tony Ezzat于2005年发表在《Proceedings of the ACM SIGGRAPH/Eurographics Symposium on  Computer Animation(ACM计算机动画制作会议论文集)》的论文“Transferable videorealistic speech animation(可迁移的视频真实感语音动画制作)”,该论文基于多维可变形模型实现了人脸表情的迁移,把其他角色的面部表情迁移到了当前的模型当中,完成了面部表情的合成。这些方法中,人脸建模的模型过于复杂,计算复杂度太高,并且学习出的人脸部分不够灵活,缺乏鲁棒性。

发明内容

[0004] 本发明的目的在于针对现有方法的不足,提出一种基于分部式稀疏成分分析模型的笑脸合成方法,可在仅有少量有标签训练样本的情况下合成真实感的人脸图像。人脸图像具有良好的可对齐性,具有一致的结构,本发明以此为基础设计了产生式模型--分部式稀疏成分分析模型,并基于该模型进行人脸表示,构建投影和重构规则,进而完成笑脸合成。由于人脸典型的结构,分部式方法在人脸表示上有很好的效果,并能捕获对应训练图像的某些语义部分,用这些部分的组合来表示图像。而稀疏成分分析学习到的基与样本更接近,因此在人脸表示上鲁棒性较强。分部式稀疏成分分析模型结合了分部式方法和稀疏成分分析的优点。
[0005] 为实现上述目的,本发明通过下述技术方案来实现。一种基于分部式稀疏成分分析模型的笑脸合成方法,首先,导出用于人脸表示的分部式稀疏成分分析模型;接着,基于该模型给出重构和投影的规则;紧接着,利用投影规则得到投影系数,利用重构规则对输入的人脸进行重建;然后,对重建后的人脸重复上述投影和重构的过程;最后,把重建后的多幅人脸图像输出,作为输入人脸的笑容合成过程。
[0006] 一种基于分部式稀疏成分分析模型的笑脸合成方法,具体步骤是,
[0007] 步骤一、学习构建产生式模型,用于人脸表示;
[0008] 该产生式模型为给定的人脸图片寻找共同的空间分割,并且为这个分割的每个部分学习一个稀疏成分分析模型;
[0009] 设产生式模型的概率分布为P(x,Z,R),其计算方式为P(x,Z,R)=P(xR,Z)P(R)P(Z)。首先,导出产生式模型的连续诱导先验,并利用PoE(product of experts)将连续诱导先验和多项式先验结合在一起构成P(R),即:
[0010]
[0011] 其中,Z0是归一化函数,用于记录人脸图像像素的选择的变量为rd.=(rd1,,rdK)T,且rd.~Mult(n=1,αd.),Dd是变量rdk的相邻变量集,P1(rd.)为多项式先验,P2(rd.)为连续性诱导先验;
[0012] 接着,将人脸的每个部分建模成稀疏成分分析模型,并为每个人脸部分学习稀疏成分分析模型,求得P(xR,Z)和P(Z);具体来说,对于一个人脸像素xd,首先从K个人脸部分中选择一个部分,记为k,相应地从第k个稀疏成分分析模型中产生一个像素。得到下述模型:
[0013]
[0014] rd.~Multi(n=1,αd.)
[0015] zkm~Lap(u=0,b=1);
[0016] 其中,xd是人脸的像素, 为第k个部分的过完备基,M是基的数目,μd为均值; 为随机噪声;αd.=(αd1,,αdK)T为多项式分布的参数;由上述模型可得:
[0017]
[0018]
[0019] 考虑到P(R)(式(1)),P(Z)(式(3))和P(x|R,Z)(式(2)),导出人脸表示的产生式模型P(x,Z,R):
[0020]
[0021] 步骤二、计算人脸笑容合成的投影系数;
[0022] 令学习出的分部式稀疏成分分析模型为θ;样本Xc在模型θ上的投影系数,是组合系数 的均值;
[0023] 系数的均值可通过下式估计:
[0024]
[0025] 其中, 是从 中采样的样本;
[0026] 是隐变量zkm的采样分布(或后验分布),本发明采用蒙特卡罗EM算法来估计隐变量的后验分布;蒙特卡罗方法首先使用Gibbs采样方法把隐变量的样本从后验采样,rdk的Gibbs采样分布可以表示为:
[0027]
[0028] 其中,R-dk表示从R除去rdk以后所得到的变量集合。把公式(2)和公式(3)代入上面的式子,得到:
[0029]
[0030] zkm的采样分布可以类似地推导成如下形式:
[0031]
[0032] 其中,
[0033]
[0034]
[0035]
[0036] 由此得到的采样分布是不连续的,可以通过以下方式从上述分布采样:
[0037] (1)从式(8)中的分布P+采样,并输出非负样本(zkm≥0);
[0038] (2)从式(8)中的分布P_采样,并输出负样本(zkm≤0);
[0039] (3)将这两组样本合并起来作为输出; 即为按照这种方式从该分布中采样得到的样本;在用模型θ合成给定图像Xc的笑容时,首先是利用公式(5)将该人脸图片投影到模型θ上,计算投影系数
[0040] 步骤三、给出人脸笑容合成的重构规则;
[0041] 计算出投影系数以后,Xc的重建值是式(2)所示条件分布的均值:
[0042]
[0043] 通过公式(9)在模型θ上重建人脸;
[0044] 步骤四、重复步骤二和步骤三,直至把所有的中间人脸全部输出,最终合成人脸笑容。
[0045] 本发明提供的基于分部式稀疏成分分析模型的笑脸合成方法,其包括如下具体步骤:
[0046] (1)构建并学习产生式模型,用于人脸表示和建模。该产生式模型为给定的人脸图片寻找共同的空间分割,并且为这个分割的每个部分学习一个稀疏成分分析模型,完成人脸建模。首先,导出产生式模型的连续诱导先验,并利用PoE(product of experts)将连续诱导先验和多项式先验结合在一起构成模型总的先验P(R),接着,将人脸的每个部分建模成稀疏成分分析模型,并为每个人脸部分
[0047] 学习稀疏成分分析模型,求得P(x|R,Z)和P(Z)。
[0048] (2)计算人脸笑容合成在学习好的分部式稀疏成分分析模型上的投影系数;
[0049] (3)计算出投影系数以后,通过人脸笑容合成的重构规则在人脸模型上重建人脸;
[0050] (4)对重建后的人脸重复步骤(2)的投影和步骤(3)的重构过程;
[0051] (5)最后,把重建后的多幅人脸图像输出,作为输入人脸的笑容合成过程。
[0052] 本发明涉及一种基于分部式稀疏成分分析模型的笑脸合成方法。首先,构建学习产生式模型,用于人脸表示。该产生式模型为给定的人脸图片寻找共同的空间分割,并且为这个分割的每个部分学习一个稀疏成分分析模型,完成人脸建模。接着,计算输入样本(人脸图像)在学习好的模型上的投影系数,投影系数是一组组合系数的均值,该组合系数通过蒙特卡罗EM算法估计得出。紧接着,通过人脸笑容合成的重构规则在分部式稀疏成分分析模型上重建人脸。然后,对重建后的人脸重复上述投影和重构的过程。最后,把重建后的多幅人脸图像输出,作为输入人脸的笑容合成过程。
[0053] 与现有技术相比,本发明的显著效果体现在:由于对人脸建模采用的是分部式稀疏成分分析模型,学习出的人脸部分的形状非常灵活(受益于分部式表示方法),并且每个部分的鲁棒性较强(受益于稀疏成分分析模型建模每个部分)。值得注意的是,本发明的方法允许输入的图片不在训练集中,也就是输入图像对于训练好的模型来说是全新的图像,这种情况下,只有学习到的模型足够灵活时,才能稳定地重建输入人脸,使人脸逐步具有笑容,本发明的方法合成的人脸基本上合理,并且光滑,合成的笑容具有真实感。

附图说明

[0054] 图1为本发明的人脸笑容合成方法流程图。
[0055] 图2为不同方法学习出的人脸部分对比,图2(1):MCFA学习出的人脸部分;图2(2):SSPCA学习出的部分;图2(3):本发明学习出的部分。
[0056] 图3为本发明合成的人脸笑容。
[0057] 图4为本发明和经典方法在实施例数据库上的笑容合成对比图。
[0058] 图5为本发明和经典方法在实施例数据库上的笑容合成对比图。

具体实施方式

[0059] 以下结合附图和具体实施例对本发明的技术方案做更详细的阐述。以下实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围不限于下述的实施例。
[0060] 实施例1:一种基于分部式稀疏成分分析模型的笑脸合成方法,通过以下几个步骤具体实现:
[0061] 步骤一、学习构建产生式模型,用于人脸表示。
[0062] 该产生式模型为给定的人脸图片寻找共同的空间分割,并且为这个分割的每个部分学习一个稀疏成分分析模型。设产生式模型的概率分布为P(x,Z,R),其计算方式为P(x,Z,R)=P(x|R,Z)P(R)P(Z)。首先,导出产生式模型的连续诱导先验,并利用PoE(product of experts)将连续诱导先验和多项式先验结合在一起构成P(R),即:
[0063]
[0064] 其中,Z0是归一化函数,用于记录人脸图像像素的选择的变量为rd.=(rd1,,rdK)T,且rd.~Mult(n=1,αd.),Dd是变量rdk的相邻变量集,P1(rd.)为多项式先验,P2(rd.)为连续性诱导先验。
[0065] 接着,将人脸的每个部分建模成稀疏成分分析模型,并为每个人脸部分学习稀疏成分分析模型,求得P(x|R,Z)和P(Z)。具体来说,对于一个人脸像素xd,首先从K个人脸部分中选择一个部分,记为k,相应地从第k个稀疏成分分析模型中产生一个像素。得到下述模型: rd.~Multi(n=1,αd.);zkm~Lap(u=0,b=1)。其中,xd是人脸的像素, 为第k个部分的过完备基,M是基的数目,μd为均值;
T
为随机噪声;αd.=(αd1,,αdK)为多项式分布的参数。由上述模型可得:
[0066]
[0067]
[0068] 考虑到P(R)(式(1)),P(Z)(式(3))和P(x|R,Z)(式(2)),导出本发明中人脸表示的产生式模型P(x,Z,R):
[0069]
[0070] 步骤二、计算人脸笑容合成的投影系数。
[0071] 令学习出的分部式稀疏成分分析模型为θ。样本Xc在模型θ上的投影系数,是组合系数 的均值。系数的均值可通过下式估计:
[0072]
[0073] 其中, 是从 中采样的样本。 的计算方式如下。
[0074] 是隐变量zkm的采样分布(或后验分布),本发明采用蒙特卡罗EM算法来估计隐变量的后验分布。蒙特卡罗方法首先使用Gibbs采样方法把隐变量的样本从后验采样,rdk的Gibbs采样分布可以表示为:
[0075]
[0076] 其中,R-dk表示从R除去rdk以后所得到的变量集合。把公式(2)和公式(3)代入上面的式子,得到:
[0077]
[0078] zkm的采样分布可以类似地推导成如下形式:
[0079]
[0080] 其中,
[0081]
[0082]
[0083] 由此得到的采样分布是不连续的,可以通过以下方式有效地从上述分布采样:(1)从式(8)中的分布P+采样,并输出非负样本(zkm≥
0);(2)从式(8)中的分布P-采样,并输出负样本(zkm≤0);(3)将这两组样本合并起来作为输c
出。 即为按照这种方式从该分布中采样得到的样本。在用模型θ合成给定图像X的笑容时,首先是利用公式(5)将该人脸图片投影到模型θ上,计算投影系数
[0084] 步骤三、给出人脸笑容合成的重构规则。
[0085] 计算出投影系数以后,Xc的重建值是式(2)所示条件分布的均值:
[0086]
[0087] 通过公式(9)在模型θ上重建人脸。
[0088] 步骤四、重复步骤二和步骤三,直至把所有的中间人脸全部输出,最终合成人脸笑容。
[0089] 本发明的具体实施例为从训练样本中学习人脸笑容,然后将学习到的表情迁移到新输入的人脸。这在动画与合成中十分有用,例如用给定的人脸自动合成一段笑容视频。训练样本从面部表情视频中获取。
[0090] 实施例2;一种基于分部式稀疏成分分析模型的笑脸合成方法,具体的实施步骤详述如下(使用Visual C++语言编程实现):
[0091] 1、学习人脸部分先验,实现人脸分部式表示。
[0092] 本实施例使用CBCL人脸数据库来学习人脸部分先验,并将它迁移到人脸面部表情数据库上的笑容合成实验中。人脸部分的数目设置为K=6,基的数目设置为M=40。M在一个较大的范围内(根据经验M∈[20,240])都可以工作得很好,并且能够学习出合理的人脸部分先验。人脸部分学习出的基如图2所示,为了便于比较,图2中还列出了另外两种方法学习出的基,这两种方法分别是多因素因子分析(Multiple Cause Factor Analysis,MCFA)和结构化稀疏主成分分析(Structured Sparse Principle Component Analysis,SSPCA)。图2中,图2(1)是MCFA学习出的人脸部分,图2(2)是SSPCA学习出的人脸部分,图2(3)是本发明的方法学习出的人脸部分。从图2可以看出,MCFA学习到的“眼睛”和“鼻子”合理但并不连续。SSPCA学习到连续且凸的部分,但这些部分将“嘴巴”至少分割成两个不同的部分。本发明学习到的部分是合理的,参见底行的“脖子”。
[0093] 2、学习产生式模型—分部式稀疏成分分析模型。
[0094] 训练样本从面部表情视频中获取。对于60个人中的每一个,本实施例从中性表情和笑容之间大致选择8个中间状态(每个状态对应一副人脸图像)。对于每个状态s(s=1,...,8),用50个不同的人脸图像学习模型θs,其中基的数目设置为M=40(研究发现较小的M容易丢失人脸细节,较大的M则会增加计算复杂度)。
[0095] 3、给定一副具有中性表情的人脸x0,笑容合成过程如下:
[0096] (1)将人脸x0投影到第一个模型θ1上,利用式(5)得到投影系数(投影);
[0097] (2)通过式(9)在模型θ1上重建人脸,定义为 (重建);
[0098] (3)将 作为输入图片,重复模型θ2上的投影步骤(1)和重建步骤(2);
[0099] (4)输出 作为输入人脸x0的结果。
[0100] 本发明方法合成得到的笑脸如图3所示。如该图所示,合成的人脸从左到右逐步微笑。值得注意的是,实施例中所有的输入人脸都不在训练集中,即输入图像对于学习好的模型是全新的,只有学习到的模型足够灵活时,才能稳定地重建输入人脸,使人脸逐步具有笑容。从图3可以看出,本发明方法合成的人脸基本上合理并且光滑。图4和图5给出了本发明方法、MCFA、SSPCA和结构化稀疏潜在空间方法(Latent Spaces with Structured Sparsity,LSSS)合成的人脸笑容对比。从图4和图5看出,MCFA合成的人脸有可能不光滑(如图5所示)。SSPCA和LSSS合成的结果有一些模糊。本发明方法的结果受益于两个方面:人脸部分的形状很灵活;每个部分的稀疏成分分析有很强的鲁棒性。