本小节运用11.3.3节提出的改进的DFFD算法,实现虚拟人脸部结构的年龄变化。由于控制点已在11.3.3节中设计完成,本小节只需确定不同年龄阶段的控制点的逼近函数,即可由特征点的位移计算出非特征点的位移变化,然后针对纹理进行相应处理,得到最终目标年龄的仿真结果。这里重点对特征点逼近函数进行介绍。
采用RBF神经网络逼近不同年龄段人脸特征点之间的函数,RBF神经网络是较常用的神经网络。
图11-33 RBF神经网络
图11-33所示为一个多输入多输出且具有M个隐层神经元的RBF神经网络模型,本书所研究的系统为多输入多输出系统。对于一个有K维输入、M个隐含层单元的网络,可以得出对于某个输入样本XN=[s1C,…,smC]T(sNi表示第i个特征值)网络的输出为YT=[s1T,…,smT]T:
式中,wij为隐层第i个节点到输出层第j个节点之间的连接权值;m、p分别为隐层和输出层节点个数;Ri为径向基函数,即
其中,X是n维输入向量;vi是第i个基函数的中心,它与X的维数相同;σi是第i个基函数的宽度;范数||X-vi||表示X和vi间的距离,通常取欧几里得距离。
本书采用K均值聚类方法和梯度下降法来训练RBF神经网络:
(1)用K均值法确定聚类中心vi
1)随机选择初始中心vi(0)(i=1,…,m),给出初始学习率a(0);
2)计算第k步的最小距离:
di(k)=||x(k)-vi(k-1)|| (11-28)
3)求最小距离的节点q:
q=arg[mindi(k)] (11-29)
4)更新中心
5)重新计算第q个节点的距离(www.xing528.com)
dq(k)=||x(k)-vq(k-1)|| (11-31)
6)修正学习率
(2)用梯度下降法来确定wij
1)随机选择初始权值wij(0);
2)用梯度下降法得到wij的更新式为
wij(k+1)=wij(k)+ηRi(k)(yi(k)-yj′(k)) (11-33)
式中,η为学习步长;yj(k)和yj′(k)分别是网络输出层第j个节点的实际输出和理想输出。
人脸特征点函数逼近是指神经网络的输出与目标年龄段人脸特征点相符,本书以人脸库中手动得到的人脸特征点向量FC为样本,再以此作为RBF神经网络的输入进行学习。年龄仿真功能实现具体步骤如下:
1)训练RBF神经网络:对于已有目标年龄人像的图像,手动选取特征点向量F(N),构成训练样本集
S={[FC(0),FT(0)],…,[FC(N),FT(N)]} (11-34)
式中,FT(k)表示第k个人脸在目标年龄段的特征点向量。用K均值聚类方法和梯度下降法来训练RBF神经网络,直到网络收敛。
2)目标年龄段人脸特征点向量计算:对需求取的人脸图像手动选取得到其特征点向量FC;以FC作为RBF神经网络的输入,得到RBF神经网络的输出FT。
3)根据特征点的位移计算出非特征点的位移。
4)处理纹理贴图,生成或消除皱纹等年龄特征信息。
最后效果如图11-34所示。
图11-34 虚拟人年龄仿真效果图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。