Towards High-Fidelity 3D Face Reconstruction from In-the-Wild Images

论文链接:https://arxiv.org/pdf/2003.05653.pdf

 

Abstract

首先肯定了3DMM 从单视图图片重建人脸的巨大成功,然后点出了存在的不足——面部纹理失真,然后介绍了近几年的研究方向向使用从面部纹理的高分辨率 UV map的大规模数据库训练的生成网络恢复高质量面部纹理,但是这些网络是不公开的,并且难以复现,本文提出了从 in-the-wild单视图图像重建具有高保真度的3D人脸,而无需捕获大规模人脸纹理数据库。主要思想是使用输入图像中的面部细节改进由基于 3DMM 的方法生成的初始纹理。文章提出用图卷积网络来重建mesh的细节颜色,代替原本的重建UV map。

1、Introduction

3DMM是一种从数百张人脸扫描中重建出3D人脸的统计模型,但是纹理还不够保真,原因是基于3DMM重建出的人脸不能捕捉人脸的面部纹理细节,尤其是in-the-wild图片。为了从2D图片重建出高质量纹理,Uv-gan: Adversarial facial uv map completion for pose-invariant face recognition和Ganfit: Generative adversarial network fitting for high fidelity 3d face reconstruction做了很多工作。前者学习一个生成模型来完成自遮挡区域面部UV贴图,后者首先利用 GAN 在 UV 空间中训练面部纹理生成器,然后使用非线性优化以找到最佳潜在参数。虽然它们可以实现高保真纹理,但它们的方法需要大规模的高分辨率数据库UV 贴图,不公开。 此外,捕获这样的数据库相当费力,这是不可行的对于普通用户。

本论文的目的就是从单张图片高质量重建出人脸而不需要大规模的数据,文章认为,虽然缺乏细节,3DMM纹理模型可以提供一个整个面部网格的全局合理颜色。通过将图像中的面部细节引入面部网格,进一步细化此初始纹理。 为此,我们建议重建网格顶点的详细颜色而不是重建UV贴图。特别的是,文章利用GCN来解码图像特征并传播详细的 RGB面网格顶点的值。

文章重建框架基于 3DMM 模型和 GCN 的组合以从粗到细的方式工作。训练卷积神经网络 (CNN) 以从 2D 图像回归 3DMM 系数(身份/表情/纹理)和渲染参数(姿势/光照)。使用 3DMM 模型,可以使用仿射模型。

在关键阶段,我们利用预训练的 CNN 从图像中提取人脸特征,并将它们馈送到图形卷积网络,为网格顶点生成详细的颜色。 我们的框架采用可微渲染层 [13] 来实现自监督训练,并通过 GAN 损失 [16] 进一步改进结果。 总之,本文做出了以下贡献:
• 我们提出了一种从粗到细的框架,用于从单个图像重建具有高保真纹理的 3D 人脸,而无需捕获大量高分辨率的人脸纹理数据。
• 据我们所知,我们是第一个使用图卷积网络生成高保真面部纹理的人,它能够为图像中的网格顶点生成详细的颜色。
• 我们将我们的结果与最先进的方法进行比较,我们的方法在定性和定量比较方面都优于其他方法。

2、relate work

2.1 3DMM

2.2 Fitting a Morphable Face Model

从单个图像重建 3D 人脸的经典方法是将模板模型迭代地拟合到输入 2D 图像。 然而,这种方法对 2D 人脸图像的光照、表情和姿势很敏感。 已经进行了一些改进 [2, 22, 30] 以提高拟合稳定性和准确性,但它们在野外图像上表现不佳。

基于深度学习的方法直接从图像中回归 3DMM 系数。 为了获得用于监督学习的配对 2D-3D 数据,Richardson 等人。 [28, 29] 通过从可变形人脸模型中随机采样生成合成数据,但这种方法在处理复杂的光照、遮挡和其他野外条件时可能表现不佳。 陈等人。 [35] 不生成合成数据
直接地。 相反,他们使用迭代优化来创建地面实况以适应大量人脸图像。
尽管如此,在不受控制的环境中变得脆弱的问题仍然存在。

最近,引入了可微渲染器 [13, 34]。 它根据人脸形状、纹理、光照等相关参数将 3D 人脸网格渲染为 2D 图像,并将渲染图像与输入图像进行比较,以计算图像差异方面的损失。
有了这样一个固定的、可区分的渲染层,无需训练对就可以启用无监督或弱监督的训练。 我们也遵循这个策略。采用 Genova 等人的可微渲染器。 [13] Unsupervised training for 3d morphable model regression,它被称为“tf-mesh-renderer”,作为我们的可微渲染层。

2.3. Texture of Morphable Face Models

最近基于深度学习方法是为了通过回归3DMM人脸纹理系数从单张图片中重建出人脸纹理。例如,Accurate 3d face reconstruction with weakly-supervised learning: From single image to image set同时预测3DMM的形状和纹理系数。它在训练过程中采用照明和渲染模型,并进行图像级和感知级损失,导致比其他人更好的结果。然而,他们生成的纹理仍然固有地受到 3DMM 纹理模型的限制。 在我们的方法中,我们部署他们的方案来训练 3DMM 系数回归模型,以获得全局合理的面部纹理。然后我们利用图卷积网络来用图像细节细化纹理。

2.4. Graph Convolutional Networks

为了在非欧几里得结构化数据中启用卷积运算,Bruna 等人。 [5] 利用图拉普拉斯算子和傅立叶基础对 CNN 进行了首次图上的扩展。
然而,它在计算上很昂贵并且忽略了局部特征。 德弗拉德等人。 [9] 提出了 ChebyNet,它通过截断的 Cehbyshev 多项式来近似光谱滤波器,避免了傅立叶基的计算。

CoMA [27] 引入了网格下采样和网格上采样层,它构建了一个自动编码器来学习 3D 面部网格的潜在嵌入。
受 CoMA [27] 的启发,我们的方法从 2D 图像中学习表示详细人脸颜色的潜在向量,然后对其进行解码以使用图卷积网络为人脸网格顶点生成详细颜色。

3、approach

我们提出了一种从粗到细的 3D 人脸重建方法。 如图 2 所示,我们的框架由三个模块组成。 特征提取模块包括一个用于回归 3DMM 系数、人脸姿态和光照参数的 Regressor,以及一个用于提取图像特征以进行后续细节细化和身份保留的 FaceNet [32]。

纹理细化模块由三个图卷积网络组成:一个 GCN 解码器,用于解码从 FaceNet 提取的特征并为网格顶点生成详细颜色,一个 GCN 细化器,用于细化从回归器生成的顶点颜色,以及一个组合器,用于组合两种颜色 产生最终的顶点颜色。 鉴别器试图通过对抗训练来提高纹理细化模块的输出。

3.1. 3DMM Coefficients Regression

算法的第一步是用CNNs回归 3DMM输入图像的系数和渲染参数。采用Accurate 3d face reconstruction with weakly-supervised learning: From single image to image set.中最先进的 3DMM 系数回归器来完成这项任务。

给定一个 2D 图像 I,它回归一个 257 维向量 (ci, ce, ct, p, l) ∈ R 257,其中ci ∈ R 80、ce ∈ R64 和ct ∈ R80 分别表示3DMM 身份、表达和纹理系数。

p ∈ R6 是面部姿势,l ∈ R 27 是光照。使用预测系数,人脸顶点的 3D 位置 S 和反照率值 T 可以用公式(1)计算。

 

此外,我们利用预训练的 FaceNet [Facenet: A unified embedding for face recognition and clustering] 从人脸图像中提取特征向量。 提取的特征有两个目的。 首先,它可以被视为我们的解码器的图像特征嵌入,以便为网格顶点生成详细的反照率颜色,这在第 3 节中描述。 3.3. 其次,它可以用于测量Sec中的身份保留损失中的身份距离在3.4中。

3.2. Differentiable Rendering

为了训练我们的网络,我们进行了一种带有可微渲染层的自监督方法。也就是说,我们将面部网格渲染为具有预测参数的 2D 图像,并根据渲染图像和输入图像之间的差异计算损失。我们采用了[Unsupervised training for 3d morphable model regression.]中的可微渲染层,它引入了基于延迟着色模型的通用可微光栅化器。

光栅化器使用三角形 ID 和像素的重心坐标计算屏幕空间缓冲区。 来自网格的颜色和法线在像素处进行插值。 在训练期间,顶点法线被计算为周围三角形法线的平均值。具体来说,利用回归器生成的形状 S、纹理 T 和姿势,我们可以计算投影到输入图像上的面部反照率。

由于投影的人脸反照率不是最终结果,我们进一步用估计的光照照亮人脸网格并渲染它以获得最终图像R,将其与输入图像进行比较以计算损失。 显示了照明和渲染的示例在图 3 中。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值