本文主要是介绍使用PCA实现人脸变换(从一个人脸渐变为另一个)(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原理
PCA方式用于提取相似样本的共有特征,将样本投影到特征向量构成的特征空间可以使用较少的量表示原本复杂的量。在此的基础上,使用投影值可以重构出样本。若特征空间提取优良的话,重构出来的样本与原始样本将非常相似。因此可以通过重构的方式来实现人脸的变换。
本文原理:①将两个不同的人脸投影到特征空间,获得两个样本各自的投影坐标(n维,n为特征向量的数量);②在n维空间连接两个样本的投影坐标,均匀划分为m段(将产生m-1个中间变化人脸),得到m-1个中间坐标;③使用获得的中间坐标重构出相应的人脸,即为人脸变换中间脸。
实验一
使用一维PCA方式提取特征脸,使用前十个特征脸用于投影和重构,计算5个中间脸。
步骤
①使用“FERET_80_80人脸数据库”,提取每个人的第一张脸的特征脸,获得前5个特征脸如下:
②加载两张人脸,并尝试重构:
③计算中间脸
结果
效果奇差,重直接重构的效果可以看出,人脸特征提取不明显,或者选取的特征脸太少。
这篇关于使用PCA实现人脸变换(从一个人脸渐变为另一个)(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!