基于3DMM求解三维人脸模型的求解方法

网友投稿 887 2022-12-25

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

基于3DMM求解三维人脸模型的求解方法

1. 什么是人脸三维重建

(1) 软件建模作为最早的三维建模手段,现在仍然是最广泛地在电影,动漫行业中应用。顶顶大名的3DMax就是典型代表,作品如下图。

(3) 基于图像的建模技术(image based modeling),顾名思义,是指通过若干幅二维图像,来恢复图像或场景的三维结构,这些年得到了广泛的研究。

2. 什么是3DMM模型

2.1 基本思想

3DMM,即三维可变形人脸模型,是一个通用的三维人脸模型,用固定的点数来表示人脸。它的核心思想就是人脸可以在三维空间中进行一一匹配,并且可以由其他许多幅人脸正交基加权线性相加而来。我们所处的三维空间,每一点(x,y,z),实际上都是由三维空间三个方向的基量,(1,0,0),(0,1,0),(0,0,1)加权相加所得,只是权重分别为x,y,z。

转换到三维空间,道理也一样。每一个三维的人脸,可以由一个数据库中的所有人脸组成的基向量空间中进行表示,而求解任意三维人脸的模型,实际上等价于求解各个基向量的系数的问题。

人脸的基本属性包括形状和纹理,每一张人脸可以表示为形状向量和纹理向量的线性叠加。

形状向量Shape Vector:S=(X1,Y1,Z1,X2,Y2,Z2,。..,Yn,Zn):

任意的人脸模型可以由数据集中的m个人脸模型进行加权组合如下:

(1) 首先计算形状和纹理向量的平均值。

(2) 中心化人脸数据。

(3) 分别计算协方差矩阵。

上式可以转换为下式

其中第一项是形状和纹理的平均值,而si,ti则都是Si,Ti减去各自平均值后的协方差矩阵的特征向量,它们对应的特征值按照大小进行降序排列。

等式右边仍然是m项,但是累加项降了一维,减少了一项。si,ti都是线性无关的,取其前几个分量可以对原始样本做很好的近似,因此可以大大减少需要估计的参数数目,并不失精度。

基于3DMM的方法,都是在求解这几个系数,随后的很多模型会在这个基础上添加表情,光照等系数,但是原理与之类似。

2.2 3DMM模型求解方法

基于3DMM求解三维人脸需要解决的问题就是形状,纹理等系数的估计,具体就是如何将2D人脸拟合到3D模型上,被称为Model Fitting,这是一个病态问题。经典的方法是1999年的文章“A Morphable Model For The Synthesis Of 3D Faces”,其传统的求解思路被称为analysis-by-Synthesis;

(a) 初始化一个3维的模型,需要初始化内部参数α,β,以及外部渲染参数,包括相机的位置,图像平面的旋转角度,直射光和环境光的各个分量,图像对比度等共20多维,有了这些参数之后就可以唯一确定一个3D模型到2D图像的投影。

(b) 在初始参数的控制下,经过3D至2D的投影,即可由一个3D模型得到2维图像,然后计算与输入图像的误差。再以误差反向传播调整相关系数,调整3D模型,不断进行迭代。每次参与计算的是一个三角晶格,如果人脸被遮挡,则该部分不参与损失计算。

(c) 具体迭代时采用由粗到精的方式,初始的时候使用低分辨率的图像,只优化第一个主成分的系数,后面再逐步增加主成分。在后续一些迭代步骤中固定外部参数,对人脸的各个部位分别优化。

对于只需要获取人脸形状模型的应用来说,很多方法都会使用2D人脸关键点来估计出形状系数,具有更小的计算量,迭代也更加简单,另外还会增加一个正则项,所以一个典型的优化目标是如下:

对于Model fitting问题来说,除了模型本身的有效性,还有很多难点。

(1) 该问题是一个病态问题,本身并没有全局解,容易陷入不好的局部解。

(2) 人脸的背景干扰以及遮挡会影响精度,而且误差函数本身不连续。

(3) 对初始条件敏感,比如基于关键点进行优化时,如果关键点精度较差,重建的模型精度也会受到很大影响。

2.3 3DMM模型的发展

要使用3DMM模型来完成人脸重建,首先就需要一个数据库来建立人脸基向量空间,Blanz等人在1999年的文章中提出了采集方法,但是没有开源数据集,Pascal Paysan等人在2009年使用激光扫描仪精确采集了200个人脸数据得到了Basel Face Model数据集(简称BFM模型),基本信息如下:

(2)在对采集后的点进行处理的过程中,模型的每一个点的位置都进行了精确匹配,也就是说每一个点都有实际的物理意义,比如属于右嘴角等。经过处理后,每一个模型由53490个点描述。

该数据库的平均人脸形状和平均人脸纹理:

Basel Face Model数据集只有200个人,而近期研究者基于此模型采集了9663个人得到LSFM模型,能够进一步提升表达能力。

2009年发布的Basel Face Model版本中没有表情系数,而2017年发布的版本BFM 2017中提供了表情系数,同样还是一个线性模型。

当然了,在国内也有一个著名的数据集,就是FaceWarehouse,不过不开源,一般研究者拿不到数据。

当然也有一些商业号称会开源更好的模型,这个大家可以拭目以待。人脸的三维模型数据之所以不公开,是因为使用高精度的三维模型可以很容易仿真真实人脸,容易发生安全事故。

当前基于3DMM的表情模型主要有两个思路,分别是加性模型和乘性模型。加性模型就是线性模型了,将表情作为形状的一个偏移量,Es,Ee分别表示形状和表情基,Ws,We分别表示对应的系数。

但是因为表情也会改变人脸的形状,因此它和形状并非完全正交的关系,所以有的研究者提出了乘性模型,如下。

其中de是一个表情迁移操作集合,第j个操作即为Tj,δ都是校准向量。

另一方面,纹理模型也被称为表观模型,它相对于形状模型来说更加复杂,受到反射率和光照的影响,不过大部分的3DMM模型不区分两者,所以我们将其视为一个因素,即反射率。

光照模型通常采用的是球面模型,光照模型比较复杂,我们这里就不列出具体的表达式,大家可以自行阅读相关论文。

在2009年提出的BFM模型中,纹理模型是一个线性模型,即由多个纹理表情基进行线性组合。后续的研究者们在整个基础上增加了纹理细节,用于仿真脸部的皱纹等。

尽管在大多数情况下,我们使用的都是线性3DMM模型,但是非线性3DMM模型同样也被研究,由于不是主流,就不展开讲了。        责任编辑:pj

上一篇:关于it运维事件管理年度报告的信息
下一篇:高反光表面三维形貌测量技术的介绍及未来展望
相关文章

 发表评论

暂时没有评论,来抢沙发吧~