淘先锋技术网

首页 1 2 3 4 5 6 7

该论文输入的是一个扫描的3d mesh,输出是一个顶点数的3d mesh。这个过程很像NICP的3d人脸配准过程,但是NICP是一个优化的过程。而该方法在学习好了网络后,可以直接使用。使用GPU的话,速度应该可以非常快。

该论文还为利用CNN重建3D人脸提供了另一种思路。目前看到的用CNN进行3D人脸重建,其输出要么是3DMM的系数(没有人脸的真是深度信息),要么是将mesh立方体化(一个n1×n2×n3的矩阵,顶点数不固定)。而该论文学习的是论文Learning the Multilinear Structure of Visual Data [1]中的核心张量M,并且预测每个mesh的重构系数 W W 。这样就能够使得预测出来的mesh顶点数一样;但是,对于是否能够预测出真实的人脸深度信息有待实验验证。

先看看整个模型的结构:
这里写图片描述

模型的输入是一个未经处理的3d mesh,然后利用该mesh获取深度图作为网络的(resnet-18+几层全连接层)的输入;网络中间会输出Multilinear的重构系数W(Decoupled representation),然后将重构系数输入到Tensor-based reconstruction(论文将论文[1]的重构过程写成了一层网络层,其中要学习的参数就是核心张量M )中去。

用Multilinear来表征一个mesh的具体内容可以参考论文[1]。本论文的重构与论文[1]有点不大一样,具体如下:
这里写图片描述
mesh x是由平均人mesh x¯ 加上 Multilinear的重构特征。其中M就是要学习的核心张量,w是用来重构mesh的系数。
论文用来两个损失函数,分别是几何损失函数和重构系数损失函数。几何损失函数就是每个顶点的xyz坐标的均方误差:
这里写图片描述
重构系数损失函数:因为multilinear中的每一个重构系数向量都代表不同的大类别(如表情、光照方向和身份),因此重构系数损失函数是为了使得网络预测出来的每一种重构系数都代表同一类别的mesh:
这里写图片描述
大概的意思是第j种重构系数中的第i个样本的重构系数 wij w j i 要与其他样本的第j种重构系数近似。

如果直接训练该模型会比较难得到好的效果,因此该论文先使用论文[1]的方法预训练了核心张量M,然后用这个预训练的核心张量M生成一些数据(mehs和对应的重构系数w)用来预训练重构系数预测网络。

ok,先记录到这里。附上论文主页:http://mae.gforge.inria.fr/