(不错2DASL)论文笔记(1):单幅图像的三维人脸重建与密集人脸对齐

原文链接:https://blog.csdn.net/zhangpang06/article/details/89598374?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162686344116780271556083%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162686344116780271556083&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-89598374.first_rank_v2_pc_rank_v29&utm_term=2DASL&spm=1018.2226.3001.4187

论文题目:《Joint 3D Face Reconstruction and Dense Face Alignment from A Single Image with 2D-Assisted Self-Supervised Learning》

 

最近的基于学习的3D face重建方法通常旨在学习基于CNN的3D面部模型,其从2D图像回归3DMM的系数以渲染3D面部重建或密集面部对齐。 然而,带有3D注释(3DMM系数)的训练数据的不足大大限制了这些方法的性能。为了缓解这个问题,此论文提出了一种新颖的2D辅助自监督学习(2DASL)方法,该方法利用2D“in-the-wild”人脸图像来有效地监督和促进3D人脸模型学习。

在讨论具体内容前先来看论文的一些成果。

论文中对齐的结果和3D重建结果示例:

 在一些极端的例子中,该算法的对齐效果也很不错:

 

在3D人脸对齐方面该算法取得了目前的最高精度,超越PRNet。如下图:

 在人脸3D重建方面,与以前算法相比也取得了高质量的重建结果:

 1.总览

本文的一个主要出发点就是解决带有3D注释的训练数据的不足的问题,针对这个问题2DASL引入了四种新颖的自监督方案,将2D特征点和3D特征点预测视为自映射过程,包括2D和3D特征点自预测一致性、2D特征点预测的循环一致性和基于特征点预测的3DMM系数预测自评估(self-critic)。使用这四种自监督方案,2DASL方法显著减轻了对传统配对2D到3D注释的要求,并提供了更高质量的3D面部模型,而无需任何额外的3D注释。

2.论文细节

2.1算法流程

 从这张图可以看到,整个框架包含三个模块,1)第一个模块采用了传统的基于CNN的回归网络,使用的是ResNet-50深度网络。此模块根据输入图像回归3DMM系数。输入是4通道,一个3通道的RGB图像,一个1通道的2D Facial Landmark Map (FLM),FLM就是一张图像,对应于面部特征点的位置的值为1,其他位置的值为-1。2)第二个模块:输入的图像通过一个编码器将图像转为latent representation(就是编码器提取图像特征)。编码器包含6个卷积层,每一层连接一个ReLU层和最大池化层。3)将3DMM系数联合第二个模块的输出作为第三个模块的输入,来评估latent representation和对应的3DMM系数是否一致。此模块由4个全连接层组成,每层大小分别为512,1024,1024,1,然后是softmax层,输出是一个分数,用来说明输入对(latent representation和对应的3DMM系数)的一致性程度。

2DASL使用两组图像训练模型,即具有3DMM ground truth的2D图像和仅具有2D面部特征点注释的2D面部图像(2D特征点利用已有的特征点检测算法得到)。 通过最小化以下一个传统的3D监督函数和四个自监督损失来训练该模型。

2.2 Weighted 3DMM coefficient supervision

这个传统的3D监督函数是Weighted 3DMM coefficient supervision,其用来测量模型预测的3DMM系数的准确度。利用ground truth的3DMM系数监督模型的训练,以此使得模型预测的系数\hat{\alpha }更接近ground truth系数\alpha^{*}。此外作者还明确地考虑每个系数的重要性,并相应地重新衡量它们对损失计算的贡献。这样得到weighted coefficient prediction loss:

其中,\omega _{i}表示第i个系数的重要性 ,根据投影后2D特征点位置引入的误差计算。H(\cdot )表示3D shape投影,\hat{\alpha}_{i}表示的是第i个系数来自\hat{\alpha }而其他的系数来自\alpha^{*}。作者这样做的原因是,通过引入这样一个重新加权方案,在模型训练期间,CNN模型将首先关注学习权重较大的系数(例如,用于旋转和平移的系数)。在减少误差和权重后,模型再优化其他系数(例如identity和expression的系数)。(其实就是借鉴了坐标下降法的思想)。

2.3 2D assisted selfsupervised learning

 由于3D数据的不足,想要充分利用2D图像进行训练(这些图像可以通过特征点检测算法得到稀疏的2D特征点),就必须要引入新颖的自监督方案,这也是此篇论文的出发点之一。自监督方案包含有三种不同的自监督损失,包括2D特征点一致性损失L_{2d-con},3D特征点一致性损失L_{3d-con}和循环一致性损失(cycle-consistency)L_{cyc}。 

我们可以这样理解这三个损失,直观上如果网络模型足够好的话,那它应该保证三种一致性:1)以原始2D特征点X_{2d}作为模型输入,将模型预测得到的3D特征点X_{3d}投影会得到2D特征点Y_{2d},投影得到的2D特征点与模型的输入的2D特征点X_{2d}要尽可能接近的;2)反过来,如果将Y_{2d}输入模型,那预测到的3D特征点\hat{X}_{3d}X_{3d}也是要非常接近的;3)接着如果对\hat{X}_{3d}做投影得到的\hat{X}_{2d}应该与X_{2d}一致。这样就形成了循环一致性。

这样上述三个损失函数就不难理解了。三个损失分别为:

          L_{3d-con}=\sum_{i=1}^{68}||x_{i}^{3d}-\hat{x}_{i}^{3d}||

          L_{2d-con}=\sum_{i=1}^{18}v_{i}\times ||x_{i}^{2d}-y_{i}^{2d}||

          L_{cyc}=L_{2d-con}(x^{2d},\hat{x}^{2d})

因为2D图像上的面部边界特征点是不能准确地表示对应的3D特征点的,因此不考虑它们并采样了18个特征点,同时对每个点分配了权重。

2.4 Self-critic learning

接着进一步引入了一种自评估(self-critic),用“in-the-wild”2D人脸图像来弱化监督模型训练。这一部分就是整个网络框架的第三个模块,这一模块的输入有两个人脸图像集,一个没有任何3D注释\boldsymbol{\mathit{I}}=\left \{ I_1,...,I_n \right \},一个带有ground truth的3DMM系数\boldsymbol{\mathit{J}}=\left \{ (J_1,{\alpha }_1^*),...,(J_m,{\alpha }_m^*) \right \},CNN回归模型会预测I_i 的3DMM系数\alpha _i。将两组图像输入,经过encoder之后得到图像的latent representation \textsl{z},然后结合对应的3DMM系数通过一个判别器。此模块需要优化一个损失函数:

          L_{sc}=E_{I\in\mathbf{I}}[log(D([z^*,\alpha ^*]))+log(1-D([\bar{z},R(I)]))]

至此,整体损失函数为L=L_{3d}+\lambda _1L_{2d-con}+\lambda _2L_{3d-con}+\lambda _3L_{cyc}+\lambda _4L_{sc}

3. Experiments

 论文中用到的训练数据集是300W-LP和UMDFaces。300W-LP数据集包含60K+张人脸图像及对应的3DMM系数。UMDFaces是“in-the-wild”图像数据集,包含367,888张人脸图像。测试数据集使用的是AFLW2000-3D和AFLW-LFPA。

此外,作者还通过评估模型的几个变体对AFLW2000-3D进行消融研究:

1)2DASL (base),只输入RGB图像,没有自监督和自评估监督;

2)2DASL (cyc),输入RGB图像以及对应的2D FLMs进行自监督,但没有自评估监督;

3)2DASL (sc),只输入RGB图像且只使用自评估监督;

4)2DASL (cyc+sc),同时包含cyc和sc。

同时, 对于每个变体,还使用带有(w )或不带(w / o)权重的L_{2d-con}。下图是实验结果:

4. Code 

代码地址:https://github.com/XgTu/2DASL

目前该库仅放出了测试代码,作者称等论文被接收之后会放出训练代码。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值