图形处理(十三)基于可变形模板的三维人脸重建-学习笔记

来源:互联网 发布:怎样成为淘宝直播 编辑:程序博客网 时间:2024/04/27 17:41

基于可变形模板的三维人脸重建-学习笔记

原文地址:http://blog.csdn.net/hjimce/article/details/50331423

作者:hjimce

一、数据库处理:

我们通过扫瞄得到的数据,每个人脸模型的网格顶点个数各不相同,也就是拓扑结构不同,因此我们需要对我们的训练数据,做一个归一化处理。使得每个模型的顶点一一对应,拓扑结构相同,这一步采用的算法是,参数化的方法,进行网格重构划分。

1首先采用柱面参数化的方法,把网格参数化到圆柱上,对应到二维平面。

2然后在参数空间采用光流法进行稠密对齐,并对网格进行重新划分

3采用重心坐标放射不变性的方法,进行网格重建。

这个算法流程,刚好跟我研究生的课题搞的算法,很类似。这样我们的数据库中的每个人脸模型的顶点、拓扑结构都是相同的,我们可以得到一个平均脸,包好了:

 

这个平均脸,将后续使用。

二、人脸重建主要公式

基于形变模型的人脸重建的主要思想,是利用数据库的人脸模型,作为基底向量,表示出任何一个人脸模型(我们即将重建的人脸的三维模型):

 

其中SavgTavg就是我们上面第一步求得的平均脸模型。Si表示人脸数据库样本i的形状向量、Ti则表示纹理向量,α、β是未知的系数。因此假设我们输入一张用户人脸,我们要重建其三维人脸模型,我们的目标就是要求解α、β,只要这两个系数知道了,我们就可以利用上面的公式,求解出其对应的三维模型了。当然上面的计算公式,我们后面将会使用PCA进行简化降维。

三、优化求解

上面我们说到我们的目标是求解未知的系数:α、β,说是这么说,说起来简单,做起来难,因此接着我们要讲解的α、β求解,也是paper算法的灵魂了。那么具体要怎么解呢?我们有如下已知条件:

1、用户输入的一张人脸图片

2、人脸数据库平均脸(包含了贴图)

3、人脸数据库

OK,没了,这就是我们目前所知道的已知条件了。那么到底是怎么从2D重建出3D?也就是怎么求解α、β?算法的总体思路是采用迭代优化的方法,先随机初始化α、β,然后我们可以得到3D的模型,然后我们把这个3D模型,投影到2D平面,得到一张新的人脸图片。然后采用这张人脸图片与用户输入的人脸图片构建损失函数:

 

使得用户输入的图片与我们投影到二维的图片,差值最小化。然后对上面的式子α、β进行求导,最后采用梯度下降法,更新参数α、β,如此一直循环迭代,直到收敛。因为我们从三维投影到二维的过程中,涉及到相机等相关的参数,这些参数也是未知数,所以统一用:ρ表示,然后梯度下降的过程中α、β、ρ这三个参数一起更新。

参考文献:

1、《A Morphable Model For The Synthesis Of 3D Faces》

**********************作者:hjimce   时间:2015.12.15  联系QQ:1393852684   地址:http://blog.csdn.net/hjimce   原创文章,版权所有,转载请保留本行信息(不允许删除)********************

0 0
原创粉丝点击