【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)

(2018-05-04)之前有一段时间没有follow人脸相关的工作,之后打算在这一块儿再进一步。近期抓紧恶补一下相关文章,趁零碎时间做点survey,跑点代码,组织一下后续文章的idea。

原文:http://openaccess.thecvf.com/content_ECCV_2018/papers/Yao_Feng_Joint_3D_Face_ECCV_2018_paper.pdf 

GitHub:https://github.com/YadiraF/PRNet

问题领域:三维人脸重建+稠密对齐

关键词:UV position map 

发表:ECCV2018

原文背景:三维人脸重建和人脸对齐是一对相辅相成的问题。许多工作通过得到3DMM的系数来同时达到这两个目的,但是这受限于model space的质量。但是一些model-free的方法却没有考虑到先验的语义信息,所以加大了训练的难度。(具体要见相关工作部分)

此文贡献
1. 是第一个在摆脱“低维空间”限制的前提下,end-to-end同时做到三维人脸重建和dense对齐的;

2. 创建了一种UV position map,记录UV坐标下的三维position;

3. 训练时,在position map上创建了一个weight mask,从而创建了一个weighted loss。

相关工作

1.  三维人脸重建。

    1.1  早期的三维人脸重建工作主要是先在图像上寻找landmark点或者某些局部特征,然后利用非线性优化的方法来解出3DMM的系数,这种方法非常依赖landmark点或者局部特征的准确性。后面的方法有的就利用CNNs来学习图像和三维template的dense correspondence,从而得到3DMM系数。近期工作有的也直接开始用CNNs学习3DMM系数,有监督或者无监督的都有。这些方法的一个弊端就是受到model space的限制。

    1.2  另外也有方法是基于一个reference model,采用warping的方法来做。这样虽然是model-free的,但是新的弊端就是受到reference的限制。

    1.3  另外也有基于voxel来做的。输入一张image,输出volume data,从而得到人脸的mesh。这样虽然是model-free并且reference-free的,但是却受到分辨率限制,且没有利用语义信息。最关键是输出的volume data包含太多冗余信息,使得网络模型太复杂。

    1.4  本篇工作是model-free、reference-free,并且不是voxel-based的。作者说简单轻量效果好。

2. 人脸对齐。

    2.1  起初,人脸对齐工作主要在二维上进行。输入单张图像,输出二维landmark点。方法包括AMM、CLM、级联回归、CNN-based方法等。这种工作没有办法找不可见的landmark,所以对于大角度的图像效果不好。

    2.2  后面演化到三维人脸对齐。三维人脸重建可以很好地指导三维人脸对齐工作。也有工作直接用网络学三维landmark点的heat map。

    2.3  稀疏对齐的工作做的差不多了,稠密的对齐又开始发展。稠密对齐要求找到两张image或者是image和3D geometry之间的dense correspondence。可以拟合3DMM系数,也可以直接学习image和3D geometry(可见部分)的correspondence。

    2.4  本篇工作直接通过UV position map解决了三维重建和所有区域的dense correspondence。

算法
1. UV position map的设计

        思路不是太难,所谓UV position map就是一张RGB图。称作RGB,其实代指的是xyz。UV map的(i,j)点处的RGB分别代表三维空间中的xyz,对应三维人脸上的一个点,那么有了UV map就有了三维人脸;另一方面,三维人脸上的点经过弱透视投影,可以找到图像上的位置,故建立了dense的correspondence。

【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第1张图片

        关于数据构造,文章是先根据数据集中(image,3DMM mesh)的pairs,来构造ground truth的UV position map。详细做法可见原文。UV map的尺寸在文中是256*256。

2. 网络结构和loss函数

        网络结构就比较简单,encoder+decoder的形式,encoder用了一些残差结构,decoder是反卷积。

【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第2张图片

        loss是在MSE loss的基础上给不同区域的点加上了权重。68个关键点权重为16,眼睛鼻子嘴巴权重为4,其他脸部区域权重为3,脖子权重为0。

【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第3张图片

代码测试结果

先上最近不太开心的GEM:

【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第4张图片【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第5张图片【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第6张图片

最近复联比较火,测试一下寡姐:

【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第7张图片【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第8张图片【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN)_第9张图片

重建和对齐效果都还不错。GEM的长相感觉还是不算很神似吧,嘟嘴的表情倒是做出来了。大体看上去纹理的分辨率还是不是很高,能看到有明显的条纹状。

你可能感兴趣的:(【ECCV2018】基于UV position map的三维人脸重建+稠密对齐(PRN))