基于Hermite插值神经网络回归模型的人脸面部渲染方法转让专利

申请号 : CN201610940958.8

文献号 : CN106530383B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钱苏斌刘惠义韦伟

申请人 : 河海大学

摘要 :

本发明公开了一种基于Hermite插值神经网络回归模型的人脸面部渲染方法,属于真实感图形实时绘制技术领域。该方法包括人脸面部区域划分、面部辐射度参数预计算、样本数据采集、Hermite插值神经网络回归模型的构建及训练、最终渲染。采用此方法,将回归分析理论引入到人脸面部渲染过程中,使用Hermite插值神经网络构建学习模型,利用样本集进行训练,确定各隐层神经元之间的权值矩阵,从而有效发掘出面部各分区内可见点的物理属性与几何特征属性之间的非线性关联。通过这种非线性映射,可以将人脸表面各点的特征属性快速映射成为该点在给定光照条件下的颜色值。此方法能够有效减少计算规模,很好地实现人脸面部真实感图形实时渲染。

权利要求 :

1.一种基于Hermite插值神经网络回归模型的人脸面部渲染方法,其特征是,包括如下步骤:步骤一,基于人脸面部各点的反射强度属性值将人脸面部划分为Re个分区,在各分区内基于各点的弯曲度属性值继续将分区划分为M个子分区,每个子区中分布的点数目为N,随机选取各子分区中的S个点作为样本点;

步骤二,基于各片段点的法向量、辐照度和深度信息,计算各片段点的前后向属性及辐射度值;

在第m个子分区中,选择索引号为i的点作为样本点时,其中m∈[0,M-1],i∈[0,S-1],此样本点所属子分区内分布的点作为片段点,计算当前片段点的前后向属性及辐射度值的具体过程为:S201、从视点位置开始绘制,将当前片段点在世界坐标下的法向量、辐照度、深度信息分别绘制到ENormTex、IrraTex和EDepthTex 3幅纹理中;

S202、从2幅纹理ENormTex、IrraTex中分别获取法向量及辐照度信息,计算出当前片段点的辐射度值;

S203、通过纹理映射,读取EDepthTex中当前片段点的深度信息;计算当前片段点和视点的距离,将该距离与深度信息进行比较,如果该距离等于深度距离,则当前片段点为前向点,如果该距离大于深度距离,则当前片段点为后向点;

S204、根据当前片段点的前后向属性分别记录其辐射度值;

步骤三,计算各样本点与所属子分区内分布的其他点及其所对应的后向点之间的欧氏距离,以及该样本点处的颜色值及颜色梯度值;

在第m个子分区中,当选择索引号为i的点作为样本点时,计算当前片段点与样本点之间欧氏距离、颜色值及颜色梯度值的过程为:S301、从视点位置开始绘制,生成纹理IRegTex,IRegTex中包含当前片段点与样本点之间的欧氏距离;

S302、从视点位置开始绘制,生成纹理LuminTex,LuminTex中包含当前片段点的颜色值;对纹理LuminTex进行梯度运算,得到梯度纹理Lumin_gradientTex,Lumin_gradientTex中包含当前片段点的颜色梯度值;

S303、加载纹理EDepthTex,通过纹理映射,读取EDepthTex中当前片段点的深度信息;

计算当前片段点和视点的距离,将此距离与深度信息进行比较,如果此距离大于深度距离,则当前片段点为后向点;

S304、如果是后向点,则计算该点与样本点之间距离值;反之,进一步判断当前片段点是否为样本点,如果是样本点,则读取纹理LuminTex中该点处的颜色值及纹理Lumin_gradientTex中该点处的颜色梯度值;反之,表明当前片段点为前向点,则读取纹理IRegTex中当前片段点与样本点之间的欧氏距离;

步骤四,Hermite插值神经网络回归模型的构建及训练:

构造包含1个输入层、3层隐含层、1个输出层的Hermite插值神经网络模型;其中将样本点pi与其子分区内点pj之间的欧氏距离xij、pi与pj所对应的后向点pb,j之间的欧氏距离yij作为输入层节点数据,将样本点处的颜色值、颜色梯度值作为输出层节点数据,辐射度参数作为输入层节点与第一个隐含层中的节点之间的权值;并利用样本集对模型进行训练;

步骤五,最终渲染:使用训练后的Hermite插值神经网络对面部各子分区次表面散射效果进行拟合,得到人脸面部各点的颜色值。

2.根据权利要求1所述的一种基于Hermite插值神经网络回归模型的人脸面部渲染方法,其特征是,步骤一中,采用K-means算法对人脸面部进行区域划分。

3.根据权利要求1所述的一种基于Hermite插值神经网络回归模型的人脸面部渲染方法,其特征是,使用中值差分法对纹理LuminTex进行梯度运算。

说明书 :

基于Hermite插值神经网络回归模型的人脸面部渲染方法

技术领域

[0001] 本发明属于真实感图形实时绘制技术领域,具体涉及一种基于Hermite插值神经网络回归模型的人脸面部渲染方法。

背景技术

[0002] 近年来,人脸面部的真实感实时渲染已经成为图形学领域的一个研究热点。采用传统的多极子对偶模型可以得到真实的皮肤渲染效果,但建立此模型必须构建相应的皮肤测量设备,事先获得大量的物理参数。在纹理空间中,使用多个高斯函数卷积线性求和的方法也可以很好的逼近人脸面部次表面散射效果,相对于传统极子模型方法而言,此方法获得了大约26FPS的绘制速度。但是,每个片段的计算需要完成大量一维卷积操作,其计算代价仍然很大。

发明内容

[0003] 本发明的目的在于克服现有技术中的不足,提供了一种基于Hermite插值神经网络回归模型的人脸面部渲染方法,使用Hermite插值神经网络构建学习模型,通过模型所具备的非线性映射,将人脸表面各点的特征属性直接映射成为给定光照条件下该点的颜色值,从而实现了人脸面部真实感实时渲染。
[0004] 为解决上述技术问题,一种基于Hermite插值神经网络回归模型的人脸面部渲染方法,其特征是,包括如下步骤:
[0005] 步骤一,基于人脸面部各点的反射强度属性值将人脸面部划分为Re个分区,在各分区内基于各点的弯曲度属性值继续将分区划分为M个子分区,每个子区中分布的点数目为N,随机选取各子分区中的S个点作为样本点;
[0006] 步骤二,基于各片段点的法向量、辐照度和深度信息,计算各片段点的前后向属性及辐射度值;
[0007] 在第m个子分区中,选择索引号为i的点作为样本点,其中m∈[0,M-1],i∈[0,S-1],此样本点所属子分区内分布的点作为片段点,计算当前片段点的前后向属性及辐射度值的具体过程为:
[0008] S201、从视点位置开始绘制,将当前片段点在世界坐标下的法向量、辐照度、深度信息分别绘制到ENormTex、IrraTex和EDepthTex3幅纹理中;
[0009] S202、从2幅纹理ENormTex、IrraTex中分别获取法向量及辐照度信息,计算出当前片段点的辐射度值;
[0010] S203、通过纹理映射,读取EDepthTex中当前片段点的深度信息;计算当前片段点和视点的距离,将该距离与深度信息进行比较,如果该距离等于深度距离,则当前片段点为前向点,如果该距离大于深度距离,则当前片段点为后向点;
[0011] S204、根据当前片段点的前后向属性分别记录其辐射度值;
[0012] 步骤三,计算各样本点与所属子分区内分布的其他点及所对应的后向点之间的欧氏距离,以及该样本点处的颜色值及颜色梯度值;
[0013] 在第m个子分区中,当选择索引号为i的点作为样本点时,计算当前片段点与样本点之间欧氏距离、颜色值及颜色梯度值的过程为:
[0014] S301、从视点位置开始绘制,生成纹理IRegTex,IRegTex中包含当前片段点所在的子分区索引号、样本点索引号、片段点索引号、当前片段点与样本点之间的欧氏距离;
[0015] S302、从视点位置开始绘制,生成纹理LuminTex,LuminTex中包含当前片段点的颜色值;对纹理贴图LuminTex进行梯度运算,得到梯度纹理Lumin_gradientTex,Lumin_gradientTex中包含当前片段点的颜色梯度值;
[0016] S303、加载纹理EDepthTex,通过纹理映射,读取EDepthTex中当前片段点的深度信息;计算当前片段点和视点的距离,将此距离与深度信息进行比较,如果此距离大于深度距离,则当前片段点为后向点;
[0017] S304、如果是后向点,则计算该点与样本点之间欧氏距离;反之,进一步判断当前片段点是否为样本点,如果是样本点,则读取纹理LuminTex中该点处的颜色值及纹理Lumin_gradientTex中该点处的颜色梯度值;反之,表明当前片段点为前向点,则读取纹理IRegTex中当前片段点与样本点之间的欧氏距离;
[0018] 步骤四,Hermite插值神经网络回归模型的构建及训练:
[0019] 构造包含1个输入层、3层隐含层和1个输出层的Hermite插值神经网络模型;将样本点pi与其子分区内点pj之间的欧氏距离xij、pi与pj所对应的后向点pb,j之间的欧氏距离yij作为输入层节点数据,将样本点处的颜色值、颜色梯度值作为输出层节点数据,辐射度参数作为输入层节点与第一个隐含层中的节点之间的权值;并利用样本集对模型进行训练;
[0020] 步骤五,最终渲染:使用训练后的Hermite插值神经网络对面部各子分区次表面散射效果进行拟合,得到人脸面部各点的颜色值。
[0021] 进一步的,步骤一中,采用K-means算法对人脸面部进行区域划分。
[0022] 进一步的,使用中值差分法对纹理贴图LuminTex进行梯度运算。
[0023] 与现有技术相比,本发明所达到的有益效果是:本发明将回归分析理论引入到人脸面部渲染过程中,使用Hermite插值神经网络构建学习模型,通过对样本数据集进行训练,确定各隐层神经元之间的权值矩阵,有效发掘出面部各分区内可见点的物理属性与几何特征属性之间的非线性关联。通过这种非线性映射,可以将人脸表面各点的特征属性快速映射成为该点在给定光照条件下的颜色值。由于面部同一子区内的各点具备相同的物理及几何属性,所以在构建网络学习模型时,仅需对子区内的一部分样本点进行训练,就可以构建适用于整个子区的映射网络。因此,相对于逐点训练而言,此方法在确保与传统人脸渲染品质相当的前提下,也有效减少冗余数据,很好地实现人脸面部真实感图形实时渲染。

附图说明

[0024] 图1是本发明方法的流程示意图。

具体实施方式

[0025] 下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0026] 本发明提供的一种基于Hermite插值神经网络回归模型的人脸面部渲染方法,如图1所示,包括如下步骤:
[0027] 步骤一,基于人脸面部各点的反射强度属性值将人脸面部划分为Re个分区,在各分区内基于各点的弯曲度属性值继续将分区划分为M个子分区,每个子区中分布的点数目为N,随机选取各子分区中的S个点作为样本点。
[0028] 将人脸面部区域划分的具体过程为,
[0029] S101、基于人脸面部各点的反射强度属性值,采用K-means算法对面部各点进行聚类分析,获得人脸面部的Re个分区,并记录面部各点所属分区的索引号;
[0030] S102、在划分的Re个分区内,依照皮肤面部各点的弯曲度属性值,采用K-means算法再次进行聚类分析,获得各分区内的M个子分区,每个子区中分布的点数目为N,并记录面部各点所属的子分区索引号及其在所属子分区中的索引号。
[0031] 随机选取各子分区中的S个点作为样本点,作为训练样本集。对于各子分区内任意一个片段点其索引信息包括子分区索引号、样本点索引号和片段点索引号。
[0032] 采用经典高斯卷积线性叠加方法构建一个面部渲染平台,本申请中所涉及到的所有参数纹理均由此渲染平台生成。
[0033] 步骤二,基于各片段点给定的法向量、辐照度和深度信息,计算各片段点的前后向属性及辐射度值。
[0034] 在第m个子分区中,当选择索引号为i的点作为样本点时,其中m∈[0,M-1],i∈[0,S-1],此样本点所属子分区内分布的点作为片段点,计算当前片段点的前后向属性及辐射度值的详细过程为:
[0035] S201、从视点位置开始绘制,将当前片段点在世界坐标下的法向量、辐照度、深度信息分别绘制到ENormTex(法向量纹理)、IrraTex(面部平铺纹理)和EDepthTex(深度纹理)3幅纹理中。ENormTex中存储了当前片段点在世界坐标下的法向量,IrraTex中存储了当前片段点的辐照度信息(二维平铺纹理,记录了整个头像的辐照度信息),EDepthTex中存储了当前片段点的深度信息。
[0036] S202、通过纹理映射,从2幅纹理ENormTex、IrraTex中分别获取法向量及辐照度信息,根据公式 计算出当前片段点的辐射度值,其中,Ft(η,v)为菲涅尔反射系数,其中根据现有技术经验值取η=1.3,v为当前视向量,Icurrent为当前片段点的辐照度;ΔA为微面元在片段点处的面积,它的值通过|v·n|-1计算得到,n为当前片段点的法向量。
[0037] S203、通过纹理映射,读取EDepthTex中存储的当前片段点的深度信息;计算当前片段点和视点的距离,将此距离与深度距离进行比较,如果此距离等于深度距离,则判定当前片段点为前向点,如果此距离大于深度距离,则判定当前片段点为后向点。
[0038] S204、根据当前片段点的前后向属性分别记录其辐射度值,即如果是前向点,则依照步骤一所获取的子分区索引号、样本点索引号、片段点索引号,将辐射度值存储在Index[m][i][j].Preval_f中;反之,通过纹理映射,确定当前片段点所对应的前向点的子分区索引号、样本点索引号、片段点索引号,并将辐射度值存储在Index[m][i][j].Preval_b中。其中,Index[M][S][N]为一个3维的结构体数组(M:每个分区中的子分区数目,S:每个子分区中的训练样本点数目,N:每个子区中分布的聚类点数目)。Index[m][i][j].Preval_f变量记录了在第m个子分区中,当选择索引号为i的点作为样本点时,索引号为j的当前片段点为前向点Pj时的辐射度值,Index[m][i][j].Preval_b变量记录了前向点Pj所对应的后向点Pb,j的辐射度值。
[0039] 重复以上S201-S204过程,计算所有子分区中各片段点相对于各样本点的前后向属性及辐射度值,并依次将辐射度值记录在相应的变量中。
[0040] 步骤三,样本数据采集:计算各样本点与所属子分区内分布的其他点及所对应的后向点之间的欧氏距离,以及该样本点处的颜色值及颜色梯度值。
[0041] 在第m个子分区中,当选择索引号为i的点作为样本点时,计算当前片段点与样本点之间欧氏距离、颜色值及颜色梯度值的详细过程为:
[0042] S301、在面部渲染平台中生成纹理IRegTex,IRegTex中存储了当前片段点所在的子分区索引号、样本点索引号、片段点索引号、当前片段点与样本点之间的欧氏距离。
[0043] S302、在面部渲染平台中生成纹理LuminTex,LuminTex中存储了当前片段点的颜色值;使用中值差分法对纹理贴图LuminTex进行梯度运算,得到梯度纹理Lumin_gradientTex,Lumin_gradientTex中存储了当前片段点的颜色梯度值。
[0044] S303、加载纹理EDepthTex,通过纹理映射,读取EDepthTex中存储的当前片段点的深度信息;计算当前片段点和视点的距离,将此距离与深度信息进行比较,如果此距离大于深度距离,则当前片段点为后向点。
[0045] S304、如果是后向点,则通过纹理映射,确定当前片段点所对应的前向点的子分区索引号、样本点索引号、片段点索引号,计算该点与样本点之间欧氏距离,并依照索引号记录在Index[m][i][j].dis_b中;反之,进一步判断当前片段点是否为样本点,如果是样本点,则读取纹理LuminTex中该点处的颜色值及纹理Lumin_gradientTex中该点处的颜色梯度值,依照子分区索引号及样本点索引号分别记录在irradiance[m][i].color及irradiance[m][i].gradient;反之,表明当前片段点为前向点,则读取纹理IRegTex中存储的距离值,并记录在变量Index[m][i][j].dis_f中。其中,irradiance[M][S]为二维结构体数组(M:每个分区中的子分区数目,S:每个子区中的样本点数目)。
[0046] 重复以上S301-S304过程,计算所有子分区内各样本点与所属子分区内分布的其他点pj及pj所对应的后向点pb,j之间的欧氏距离,以及该样本点处的颜色值及颜色梯度值。
[0047] 步骤四,Hermite插值神经网络回归模型的构建及训练:采用自动确定隐层神经元数目的方法,动态构建Hermite神经网络学习模型;使用输入整合矩阵的伪逆直接计算网络权值;确定测试样本集,对网络性能进行测试。
[0048] S401、训练样本集
[0049] 由于面部同一子区内的各点具备相同的物理及几何属性,所以在构建网络学习模型时,仅需对子区内的一部分样本点进行训练,就可以构建适用于整个子区的映射网络。基于在面部各子区内随机采样S个样本点,通过面部渲染平台得到如下输入样本集:
[0050] {(xij,yij),i∈[0,S-1],j∈[0,N-1]}
[0051] 其中,xij为样本点pi与其子分区内点pj之间的欧氏距离,xij=Index[m][i][j].dis_f,yij为pi与pj所对应的面部后向点pb,j之间的欧氏距离,yij=Index[m][i][j].dis_b。
[0052] 进一步通过面部渲染平台生成如下输出样本集:
[0053] {(L(pi),L′(pi)),i∈[0,S-1]}
[0054] 其中,L(pi)为样本点pi的颜色值,即L(pi)=irradiance[m][i].color,L'(pi)为样本点pi的颜色梯度值,即L'(pi)=irradiance[m][i].gradient。
[0055] S402、构建Hermite神经网络模型
[0056] 构造包含1个输入层、3层隐含层及1个输出层的Hermite插值神经网络模型。对该网络模型进行分块,每个块为2个小型的Hermite网络结构的集合。一个完整的Hermite神经网络模型将由若干个这样的块结构构成。
[0057] (1)第1层为输入层,包含2N个节点(N为每个子分区中的聚类点个数),将样本点pi与其子分区内点pj之间的欧氏距离xij、pi与pj所对应的面部后向点pb,j之间的欧氏距离yij分别作为节点的输入数据。
[0058] (2)第2层为隐含层,包含(h1+h2)·N个节点,h1和h2分别为块结构中两个插值网络的隐神经元数目,在构建学习模型的过程中动态确定。选取线性无关的幂激励函数系及 分别作为这两个插值网络的隐层神经元激励函数。输入层与第2层之间的权值为常数 和 分别为步骤二中所获取的前向及后向辐射度参数。即权值常数 为存储在Index[m][i][j].Preval_f中的辐射度值;权值常数 为存储在Index[m][i][j].Preval_b中的辐射度值。
[0059] (3)第3层为隐含层,包含4N个节点,传输函数分别为:
[0060]
[0061]
[0062]
[0063]
[0064] 其中,j∈[0,N-1],h1,h2∈[0,H-1](H为隐神经元个数); 和 为第2层隐层神经元和第3层隐层神经元之间待求的网络权值。
[0065] (4)第4层为隐含层,包含2N个节点,传输函数分别为:
[0066]
[0067]
[0068] 其中j∈[0,N-1]; 为第3隐层神经元与第4隐层神经元之间待求的网络权值。
[0069] (5)第5层为输出层,包含2个节点:L(pi)和L'(pi),传输函数分别为:网络权值设置为1。
[0070] (6)误差函数
[0071]
[0072] 其中, 为第2隐层的每个块中,第1个Hermite子结构的第h1+1个神经元与第3隐层中的神经元 之间的网络权值; 为第2个Hermite子结构的第h2+1个神经元与第3隐层中的神经元 之间的网络权值; 和 为第3、4隐层之间的网络权值。
[0073] S403、直接确定网络权值
[0074] 对于每个Hermite子结构而言,网络权值ωi,j可以直接通过下式给出:ωi,j=T -1 T(XX) Xα,i∈[0,S-1],j∈[0,N-1]。
[0075] 其中, 为样本输入整合矩阵,(XTX)-1XT为X的伪逆;α=[Li,j L'i,j]∈R2S为样本输出向量,ωi,j=[wj,0 wj,1 wj,2…wj,H-1]T∈RH为网络权值向量。
[0076] 权值向量ωi,j为该神经网络的稳态最优权值,并且能够最小化误差函数E。
[0077] S404、动态确定网络结构
[0078] 使用一种动态确定隐神经元数目的算法,快速、准确的确定能够使网络具备最佳性能所需的最少隐神经元数目。
[0079] (1)对于每个Hermite子结构,定义变量h,表示当前接受训练的隐层神经元个数,将h初始化为1;定义变量Min_rms,表示最优隐神经元结构所对应的均方根误差,初始化为1015;为了确保获得最优隐神经元数目,定义变量e,表示需要向后附加检测的神经元数目,初始化为15;定义变量rms为Hermite网络输出的均方根误差,初始化rms=Min_rms;定义变量H,表示最小均方误差下所对应的隐神经元个数。
[0080] (2)判断rms≤Min_rms或者H≥h-e,如果上述条件均不满足,表示已经找到构建最优Hermite神经网络结构所需的隐神经元数目,结束运算;如果满足上述条件之一,表示还未达到最优隐神经元数目,则构建具有h个隐神经元的Hermite插值神经网络,利用ω=(XTX)-1XTα直接获取网络权值,并且计算出相应的输出均方根误差rms。
[0081] (3)判断rms<Min_rms,如果满足上述条件,则Min_rms=rms,H=h,h=h+1,返回上一步(2);如果不满足上述条件,则仅仅增加一个隐神经元(h=h+1),返回上一步(2)。
[0082] 通过上述步骤产生的权值将会构建出一组结构最优的子神经网络,对这组最优子网络进行组合形成最终的Hermite插值神经网络,用于逼近面部各子区次表面散射效果。
[0083] S405、网络性能测试
[0084] 将面部各子分区内未经采样标识的N-S个点作为测试样本点,通过面部渲染平台生成一组测试样本集。
[0085] {(xkj,ykj,Ltest(pk),Ltest'(pk)),k∈[0,N-S-1],j∈[0,N-1]}
[0086] 其中,xkj为测试样本点pk与其子分区内点pj之间的欧氏距离,ykj为pk与pj所对应的面部后向点pb,j之间的欧氏距离,Ltest(pk)为测试样本点pk的颜色值,Ltest'(pk)为测试样本点pk的颜色梯度值。
[0087] 将测试样本数据传递到已经训练好的网络中,可得到每一个测试样本点处的拟合颜色值 和拟合颜色梯度值 使用如下函数计算误差值,当误差值E≤10-5,网络性能达到理想状态。
[0088]
[0089] 步骤五,最终渲染:使用测试后的Hermite插值神经网络对面部各子分区的光照效果进行拟合,得到人脸面部各点的颜色值。
[0090] 对于面部某子分区中的一点x,基于给定光源、视点及法向量参数,预计算x所处子分区内的点pj及pj所对应的后向点pb,j的辐射度值作为输入层与第1隐层之间网络权值;预计算x与所属子区内分布的其他点pj及pj所对应的后向点pb,j之间的欧氏距离,将欧氏距离作为网络输入,传递到Hermite插值神经网络回归模型中,直接获得x点处的颜色值。
[0091] 本发明将回归分析理论引入到人脸面部渲染过程中,使用Hermite插值神经网络构建学习模型,通过对样本数据集进行训练,确定各隐层神经元之间的权值矩阵,有效发掘出面部各分区内可见点的物理属性(如光照、视点、反射强度等)与几何特征属性(面部弯曲度、法向量)之间的非线性关联。通过这种非线性映射,可以将人脸表面各点的特征属性快速映射成为该点在给定光照条件下的颜色值。
[0092] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。