3dmm近期论文综述

关于3d重建,离不开3dmm或者是3dmm的思想。

3dmm可以分为线性和非线性。

关于如何求解3dmm的形状及纹理参数,又可以分为对2d图片做卷积处理,或是直接在mesh上做处理。

在mesh上做图卷积是最近冒出来的新方向,在解决非欧几里德结构数据上有优越表现。

0. 回顾3dmm

基于单张图像的三维人脸建模较为基础的方法就是99年的这篇《A Morphable Model For The Synthesis Of 3D Faces》

算法的大致思路是利用一个人脸数据库构造一个平均人脸形变模型,在给出新的人脸图像后,将人脸图像与模型进行匹配结合,修改模型相应的参数,将模型进行形变,直到模型与人脸图像的差异减到最小,这时对纹理进行优化调整,即可完成人脸建模。

公式表示:

纹理也是相似的表达形式。

于是人脸重建问题转为了求 系数的问题。

得到一张单张正脸照片,可以从里面得到人脸的68个特征点坐标(X),在BFM模型中有对应的68个特征点(),根据这些信息便可以求出系数,将平均脸模型与照片中的脸部进行拟合。

这里的是三维模型到2维平面的点,为正交投影矩阵,R为旋转矩阵,是位移矩阵。

那么需要求解的参数包括

近期关于人脸的3d重建或校正,有很多发展,下面是4篇近期有代表性的papers。

1. 3DDFA

来自Stan li的论文《Face Alignment Across Large Poses: A 3D Solution》(2015)。

这篇论文主要做的是脸部校正face alignment,face aligment需要检测出人脸特征点,是许多人脸应用的关键步骤。

在人脸特征点识别中,一个比较大的问题在于大多数算法,只能应对小角度(小于45°),无法应对大角度的情况。

原因在于:

  1. 现行的基于特征点的模型的前提是:假设所有特征点都是可见的。这并不适用于侧脸。

  2. 比较激烈的表情,正脸和侧脸就会有很大的变化。

  3. 呼应第一点,很多姿态下,脸部的特征点并不都是可见的,标定数据就变得无聊且难。

    已有的数据库,包括AFM, LFPW, HELEN, IBUG只包含可见点。

为了应对这些问题,3DDFA的解决方案是:

  1. 为了解决不可见特征点的问题,作者决定不再拟合2d脸部图片,而是去拟合3d稠密脸部模型。那么遮挡和表情的问题就可以通过3d变换来解决。

  2. 为了解决拟合过程,作者提出基于回归的联级CNN网络。

  3. 为了解决数据的问题,作者构建了数据库,将2d脸部图片与3d模型一一配对。

特别之处:PNCC

设欲求的3dmm的参数为:

作者提出了一个PNCC(Projected Normalized Coordinate Code)。


PNCC.png

如图,NCC是归一化到0到1之间的大众脸,有RGB 3个色道。

而PNCC是在参数p下,新的3d脸部S,通过Z-Buffer渲染法得到的2d图片,公式如下:

image.png

网络架构

image.png

输入:图片+PNCC,图片和PNCC各有rgb3色道,所以输入大小为.
输出:234维的列向量。这234分别代表:

234维输出
199 shape parameters
29 expression parameters
6 个位姿参数

2. Nonlinear 3D Morphable Model

来自论文《On Learning 3D Face Morphable Model from In-the-wild Images》
3dmm公式表示为:

包括3DDFA也都是在线性层面寻找shape参数。

这些线性3dmm有一些不足之处:

  1. 需要高质量的3d扫描。

  2. 需要在严格的条件下获得。无法面对任意从网上抓图即刻复原的要求。

  3. 3dmm的表征能力不单单只被样本限制,还被其自身线性结构限制。

为了应对这些问题,Nonlinear 3dmm的解决方案是:

  1. 学习一个非线性3dmm模型;

  2. shape 和 albedo 都是由2d图片得到;

  3. 前端编码器和后端解码器只依赖2d图片,不使用3d扫描。加上最后一层渲染层,达到了
    end-to-end 。为弱监督学习。

特别之处:如何引入非线性?

观察shape(形状)&albedo(纹理):

可以发现他们形如全连接层的:

那么可以把它们看作是单层全连接层,那么自然为了增加模型表现力,浅层网络可以被拓展为深层结构,比如DNN。


image.png

网络结构

image.png

输入:单张图片。

先经过1个Encoder, 得到的参数,纹理的参数, 以及相机位姿参数和光源参数。

再经过2个Decoder, 将shape以及albedo参数,解码为shape和albedo。

最后为了使得网络端对端且弱监督,decoders得到的3d模型,需要一步渲染,得到模型的2d图片,与输入图片做对比,作为损失函数。

image.png

线性3dmm和非线性3dmm的对比:


image.png

以上这两篇还是在CNN的基础上操作,最近由于Geometric Deeplearning的发展,3dmm本身的样本是mesh,也是看作是图或者流体数据,近期有一些研究将GDL在应用在3dmm上。

3. Convolutional Mesh Autoencoder(CoMA)

来自论文《Generating 3D faces using Convolutional Mesh Autoencoders》(2018)。

这篇论文主要是:

  1. 提出了针对mesh的卷积网络mesh convolutions。

  2. 提出了编码解码结构(encoder-decoder structure),证明mesh convolution是可行的。

特别之处:mesh operators.

数据分为2类:

  1. 欧几里结构数据;

  2. 非欧几里德结构数据。

欧几里德结构数据

image

图片(image),视频(video),语音(voice)。

简单来说:排列整齐

  1. 邻节点清晰;

  2. 邻节点数目确定。

非欧几里德结构数据

(1) 图数据(graphic)

image

(2) 流形数据(manifold)

image

简单来说:排列不整齐

  1. 邻节点难以确定;

  2. 邻节点数目不确定。

这也意味这非欧几里德数据无法用相同的卷积操作来进行。

所以我们希望将非欧几里德结构数据嵌入到欧几里德空间。

对图的拓扑结构进行表示:

image

拉普拉斯矩阵为:

D是度数矩阵;A是邻接矩阵。

对L进行特征值分解:

U是每列为特征向量的正交矩阵;是特征值的对角矩阵。

那么,

(正交矩阵的转置等于它的逆)。

对于一个信号 x(n维),它的傅里叶变换可以定义为:

反傅里叶变换为:

那么对于信号x与卷积核y:

在图上的卷积操作可以定义为用循环切比雪夫多项式,制定一个mesh fileter,kenerl为

那么这个filter可以参数化为:

这里, 参数是切比雪夫参数向量,是在阶数为k时的切比雪夫多项式,。

谱卷积定义为:

x是输入,y是输出,整体的滤波操作很高效。

上述是mesh的卷积操作,下面是卷积的采样操作。包括上取样和下取样。

整个mesh共由m个顶点,

下取样:

上取样:

下面的图片可视化了mesh convolutions的作用。


image.png



网络结构

包含一个Encoder和一个Decoder.
Encoder:
从一个的空间映射到的向量空间

image.png

image.png

可以看出mesh convolution可以充分解决mesh的卷积问题。

4. Dense 3D Face Decoding

来自论文《Dense 3D Face Decoding over 2500FPS: Joint Texture & Shape Convolutional
Mesh Decoders》(2019).

这篇论文主要是将2.Nonlinear 3dmm 和3.Convolutional Mesh Autoencoder结合在了一起。即:

  1. 提出了应用mesh convolutions 的非线性3dmm。

  2. 提出了编码解码结构(encoder-decoder structure),直接从2d脸部图片生成包含形状和纹理的3d重建。

网络结构

image.png

包括4个部分:
1 Image encoder;
2 mesh encoder;
3 shared mesh decoder;
4 differentiable rendering module.

Image encoder:

输入: 的单张图片。
经过10个卷积层 输出
再经过一个全连接层 输出

mesh encoder和shared mesh decoder与Convolutional Mesh Autoencoder(CoMA)相同。


image.png

shared mesh decoder:

image encoder的输出,作为shared mesh decoder输入:
经过4个mesh convolutions和上采样,得到

最后的differentiable rendering module是为了约束代价函数。使生成的3d脸部mesh模型的2d投影图片与输入图片最相似。

值得一提的是,此网络的代价函数除了最后的图片相似性,还约束了中间decoder的过程,公式表达为:

这里的

作为中间decoder的约束;
而是约束投影图片和输入图片的。

5. 总结

关于3d重建,离不开3dmm或者是3dmm的思想。

3dmm可以分为线性和非线性。

关于如何求解3dmm的形状及纹理参数,又可以分为对2d图片做卷积处理,或是直接在mesh上做处理。

在mesh上做图卷积是最近新冒出的新方向,在解决非欧几里德结构数据上有优越表现。

你可能感兴趣的:(3dmm近期论文综述)