文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)

目录

  • 摘要
  • 1.介绍
  • 2.相关工作
  • 3.准备工作:模型和输出
    • 3D人脸模型(3D Face Model)
    • 光照模型(Illumination Model)
    • 相机模型(Camera Model)
  • 4.用于单图像重建的混合级弱监督方法(Hybrid-level Weak-supervision for SingleImage Reconstruction)
    • 4.1 图像层级的损失(Image-Level Losses)
      • 4.1.1鲁棒性强的光度损失(Robust Photometric Loss)
        • 皮肤注意力(Skin Attention)
    • 4.1.2关键点损失(Landmark Loss)
    • 4.2感知层的损失(Perception-Level Loss)
    • 4.3. 正则化(Regularization)
  • 5. 用于多图像人脸重建的弱监督聚合神经网络(Weakly-supervised Neural Aggregation for Multi-Image Reconstruction)
  • 6. 实验(Experiments)
      • 实现细节(Implementation Details)
    • 6.1 单张图片的模型重建结果
      • 6.1.1 Ablation Study
      • 6.1.2 和前人的成果进行对比
        • 在MICC Florence数据集上与 [51, 16, 14, 25, 57,31]进行对比.

摘要

        最近,基于深度学习的3D人脸重建方法已经在质量和效率上都给出了令人信服的结果。然而,训练深度神经网络通常需要巨大规模的样本,可是拥有3维信息的人脸样本是很有限的。在本文中,我们将提出一个富有创造性的3D人脸重建方法,它具有以下几个特性:

  1. 针对弱监督学习,我们提出了一种鲁棒性很强的混合损失函数用来达到监督的目的。这个损失函数既包括了低层级的信息也包括了感知层的信息
  2. 能够利用一个图片集上的信息来完成形状聚合,以实现3D人脸重建

        我们的方法是高效、准确的,并且在遮挡、大姿势的情况下都表现出很强的鲁棒性。我们在3个数据集上进行了综合的实验,系统地将我们的方法和其它15种最近的方法进行比较,证实了我们的方法是目前表现最好的(sota)。源码地址:https://github.com/Microsoft/Deep3DFaceReconstruction

1.介绍

        从无约束的2维图片(指的是拍照角度、光照、遮挡等没有特殊要求的人脸图片)生成高度还原的3D模型是一项很有挑战的任务。这个功能有非常广大的市场应用场景,比如:人脸识别,人脸媒体控制(?),人脸动画等。最近,在这个研究课题上,越来越多人开始尝试使用卷积神经网络来替代复杂的、低效的传统方法。由于三维人脸数据的缺乏,以往的许多方法都采用合成数据或使用传统方法拟合的三维形状作为替代形状标签。然而,他们的准确性可能会受到空间差距问题或不完善的训练标签的危害
        为了克服这些问题,有人提出了一些方法,以无监督或弱监督的方式使用没有3D形状标签的样本训练网络,并取得了不错的结果。无监督学习的关键是要区分图片之间的不同,人们使用一个生成网络来生成图片,并且通过比对原图和生成图片之间的差异来进行监督。例如,Tewari等人和Sengupta等人使用像素级光度差作为训练损失。为了提高鲁棒性和表现力,Tewari等人[48]提出了一种两步重建方案,第二步利用神经网络生成形状和纹理校正。Genova等人提出利用人脸识别网络中提取的深度特征之间的距离来测量人脸图像在感知水平上的差异。Genova等人提出利用人脸识别网络中提取的深度特征之间的距离来测量人脸图像在感知水平上的差异。
        我们的目标是在弱监督学习下获得精确的三维人脸重建。我们发现,仅使用像素颜色的低水平信息可能会出现局部极小问题,在人为感觉不满意的人脸形状下可以获得较低的误差。另一方面,仅使用感知损失也会导致次优结果,因为它忽略了与原始图像信号的像素一致性。为此,我们提出了一种混合损失函数,将两者结合起来,得到了精确的结果。我们还提出了一种新的基于肤色的光度误差注意策略,使我们的方法对遮挡和其他具有挑战性的外观变化(如胡须和浓妆)具有更强的鲁棒性。我们训练了一个现成的深度CNN来预测三维形态模型(3DMM)的[5]系数,并在多个数据集上实现了精确的重建。
        利用强大的CNN模型进行单图像三维人脸重建,我们进一步考虑了基于CNN的利用一组图像进行人脸重建聚合的问题。(从使用单张图片生成单个三维人脸,到使用多张图片生成多个三维人脸,并将这些三维人脸进行聚合、拼接)。给定一个对象在不同条件下的多个面部图像(例如,来自个人相册),利用所有图像构建更好的3D脸型是很自然的(相比于只使用单张图片,这种方法听起来是很不错的)。将深度神经网络应用于任意数量的图像,一种解决方案是将单个图像的重建结果聚合起来,也许最简单的策略是天真地取这些形状的平均。然而,这种天真的策略并没有考虑输入图像的质量(例如,如果一些样本包含严重的遮挡)。它也没有充分利用姿态的差异来改进形状预测。
        在本文中,我们提出了一种从多幅图像中学习三维人脸聚合的方法,这也是通过一种无监督的方法。我们训练一个简单的辅助网络来生成回归的三维模型系数的“置信度”,并通过基于置信度的聚合得到最终的系数。(即给三维模型的每个系数增加了一个置信度或者可以称为权重,然后在生成最终模型的系数过程中会将这些系数的权重考虑进去)。尽管没有使用明确的置信度标签,但我们的方法会自动学会偏爱高质量(尤其是高可视性)的照片。此外,它可以利用姿态的差异更好地融合互补信息,学习更准确的三维形状。此外,它可以利用姿态的差异更好地融合互补信息,学习更准确的三维形状。
        综上所述,本文的主要贡献有以下两点:

  1. 提出了一种基于神经网络的单图像人脸重建方法,该方法利用混合级图像信息进行弱监督学习。我们的损失包括图像级的损失和感知级的损失。我们展示了对它们进行组合的好处,并展示了我们的方法在多个数据集上的最先进的准确性[1,11,56],显著优于在完全监督的方式下训练的先前方法[45,14,51]。此外,我们还表明,在低维3DMM子空间中,我们仍然能够在“不受限制的”3D表示[45、53、48、14]方面明显优于现有技术。
  2. 提出了一种用于多图像人脸重建聚合的形状置信度学习方法。我们的置信度预测子网也以一种弱监督的方式进行训练,没有ground-truth标签。结果表明,该方法明显优于单纯聚集(如形状平均)和一些启发式策略[34]。据我们所知,这是首次尝试基于cnn的无约束图像集三维人脸重建和聚合。

2.相关工作

        【相关工作介绍】三维人脸重建是计算机视觉和计算机图形学领域的一个长期课题。在文献中,3D Morphable Models (3DMM)[5,33,7]对3D人脸建模起着至关重要的作用。使用3DMM,可以使用图像亮度[5]和边缘[39]等特征,通过一个综合分析方案进行重建。近年来,随着人脸对齐技术的发展,利用人脸地标(关键点)进行模型拟合得到了广泛的应用[4,58,21,3]。然而,稀疏的地标不能很好地捕捉密集的面部几何形状。除了3DMM,另一个流行的三维人脸模型是多线性张量模型[54,10,9,43]。除此之外,还有一些研究者提出了几种无预置模型的单图像人脸重建方法[20,27,19],不过大多数方法都需要一些参考的3D脸型。例如,[20,19]通过建立输入图像与一个或一组参考3D人脸模型之间的对应关系来估计图像深度。在[27]中,提出了一种基于参考三维人脸的阴影生成方法。
        【CNN赢得人心】上述方法通常涉及高成本的优化,以恢复高质量的3D人脸。近年来,提出了许多利用CNN进行高效人脸重建的方法。其中一些应用CNNs对3DMM系数进行回归[37,13,2,49,51,16],一些使用多步骤方案在粗略的3DMM预测中添加校正或细节[38,48,52,18],而另一些则提倡直接无模型重建[45,53,46,14]。
        【我们的研究结果】对于所有这些基于cnn的方法,一个很大的障碍是缺乏训练数据。许多方法采用合成数据或使用传统方法拟合的三维形状作为替代标签[37,57,45,31,14,18]。还有一些人尝试了无监督或弱监督的训练[49、48、53、46、16]。我们的方法也是基于弱监督学习的,本文的研究结果有三方面:

  1. 损失函数对于弱监督学习很重要,需要同时利用低层次和感知层次的信息;
  2. 用弱监督方法获得的结果可以显著优于那些使用人工合成数据或者伪真值训练得到的结果
  3. 有点令人惊讶的是,我们的结果在低维子空间3dmm上仍然可以比最先进的结果与“无限制”表示

        【关于多张图片生成结果的聚合】我们同时也研究了多幅图像的重建聚合问题。其中一项相关工作是[34],它研究了最接近人类评分的重建质量测量,并将其与3DMM拟合得到的重建结果进行融合。然而,我们证明他们的方法在我们的情况下是有缺陷的。我们的方法也与处理无约束照片集合的传统方法有关[27,47,40,41]。虽然这些方法已经取得了很好的效果,但它们通常包括多个步骤,如人脸正前方化、光度立体和局部法线细化。整个管道是复杂的,在严重的遮挡和极端的姿势下可能会断裂。本文的目标不是替代这些传统的方法,而是用CNN研究形状聚合问题(类似于[34]),并提供一种非常快速、鲁棒的端到端学习方法。

文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)_第1张图片

图1:我们方法的概述 (a) 我们方法的框架,包括端到端使用单幅图像完成三维重建的重建网络和基于多幅图像重建的置信度计算子网络。
(b)我们提出的用到了混合级损失函数的单一图像的训练管道。我们的方法不需要使用任何3D形状真值进行训练。它只利用了一些微弱的监督信息,如面部地标(关键点)、皮肤mask和一个训练好的人脸识别CNN。
©多图像重建的训练管道。

3.准备工作:模型和输出

        如图1 (a)所示,我们使用CNN对3DMM人脸模型的系数进行回归。对于无监督/弱监督训练[49,48],我们还对光照和人脸姿态进行回归,以实现分析图像的再生。我们详细介绍了我们的模型和CNN输出如下。

3D人脸模型(3D Face Model)

        使用3DMM,人脸形状S和纹理T可以用仿射模型表示

在这里插入图片描述
其中, S ‾ \overline{\mathbf{S}} S T ‾ \overline{\mathbf{T}} T是平均脸的形状和纹理。 B i d , B e x p , \mathbf{B}_{i d}, \mathbf{B}_{e x p}, Bid,Bexp, and B t \mathbf{B}_{t} Bt分别代表identity、expression、texture的主成分分析,这些都是用标准差来衡量的。 α , β , \alpha, \beta, α,β, and δ \delta δ是相应的用来生成3D人脸的系数。我们采用流行的BFM2009[33]作为 S ‾ , B i d , T ‾ , \overline{\mathbf{S}}, \mathbf{B}_{i d}, \overline{\mathbf{T}}, S,Bid,T, and B t \mathbf{B}_{t} Bt,并且用[18](从人脸仓库生成)作为表情基矩阵 B e x p \mathbf{B}_{e x p} Bexp。我们在这个集合中选择一个子集,使得 α ∈ R 80 , β ∈ R 64 \boldsymbol{\alpha} \in \mathbb{R}^{80}, \boldsymbol{\beta} \in \mathbb{R}^{64} αR80,βR64 and δ ∈ R 80 \boldsymbol{\delta} \in \mathbb{R}^{80} δR80。我们排除了耳朵和脖子区域,我们最终的模型包含了36k个顶点。

光照模型(Illumination Model)

        我们假设一个朗伯曲面作为面,用球面谐波(SH)粗略估计场景光照[35,36]。
在这里插入图片描述
文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)_第2张图片

相机模型(Camera Model)

        我们使用能够根据经验自动调整焦距的透视相机模型进行3D-2D投影几何。3D人脸姿态p用旋转量 R ∈ S O ( 3 ) \mathbf{R} \in \mathrm{SO}(3) RSO(3)和平移量 t ∈ R 3 \mathbf{t} \in \mathbb{R}^{3} tR3来进行表示。
文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)_第3张图片
        综上所述,所有需要预测的变量可以用一个向量 x = ( α , β , δ , γ , p ) ∈ R 239 \mathbf{x}=(\boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\delta}, \boldsymbol{\gamma}, \mathbf{p}) \in \mathbb{R}^{239} x=(α,β,δ,γ,p)R239来表示。在本文中,我们使用一个ResNet-50网络[22],通过修改最后一个全连接层到239个神经元来回归这些系数。为了简单起见,我们将这个用于单幅图像重建的修改后的ResNet50网络表示为R-Net。我们将在下一节介绍如何训练它。

4.用于单图像重建的混合级弱监督方法(Hybrid-level Weak-supervision for SingleImage Reconstruction)

        给定一个训练RGB图像I1,我们使用R-Net来回归一个系数向量x,利用这个系数向量x,可以用一些简单的、可微分的数学推导来分析生成一个重构的图像I2(详情请参考引用文献)。你可以在图1中找到一些重构后的图像。我们在训练R-Net的过程中没有使用任何的真值标签,我们是通过评估一个基于重构后的图像的混合级损失(bybrid-level loss)并且方向传播它来达到训练的目的的。

4.1 图像层级的损失(Image-Level Losses)

        我们首先介绍我们的损失函数在低层次的信息,包括每个像素的颜色和稀疏的二维地标(关键点)。

4.1.1鲁棒性强的光度损失(Robust Photometric Loss)

        首先,可以直接测量原始图像和重建图像之间的密集光度差异[5,50,49,48]。在这篇论文中,我们提出了一个鲁棒的、可感知皮肤的光度损失,而不是一个简单的损失,定义为:
在这里插入图片描述

其中i为像素索引,M为容易获得的重投影人脸区域,||·||表示l2范数,A为训练图像的基于肤色的注意力掩模,描述如下:

文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)_第4张图片

图2.没有使用皮肤注意力掩膜的结果(上面一行)与使用了皮肤注意力掩膜的结果(下面一行)对比

皮肤注意力(Skin Attention)

为了让我们的模型能够获得对遮挡和其他具有挑战性的外观变化(如胡须和浓妆)的鲁棒性,我们为每个像素计算肤色概率Pi。我们在[26]的皮肤图像数据集上训练了一个高斯混合模型的朴素贝叶斯分类器。(详情请看引用)对于每个像素i,我们规定
在这里插入图片描述
我们发现这样一个简单的皮肤感知损失函数在实际应用中非常有效,不需要使用人脸分割方法[43]。图2展示了使用我们的皮肤注意力掩膜的好处。同样值得一提的是,我们在公式2中定义的损失是基于二维图片得到的,有别于基于3D shape vertices得到的损失[49,48]。它使我们能够通过z缓存(z-buffering)轻松地识别自遮挡,因此我们训练的模型可以处理大的姿态。

4.1.2关键点损失(Landmark Loss)

我们同时使用二维图像上的关键点坐标作为弱监督来训练网络。我们跑了一个目前表现最好的3D人脸对齐方法[8]来检测68个关键点,表示为 { q n } \left\{\mathbf{q}_{n}\right\} {qn}。在训练过程中,我们将重构的3D模型中的3D关键顶点投影到图像上,并得到投影后的二维关键点坐标,表示为 { q n ′ } \left\{\mathbf{q}_{n}^{\prime}\right\} {qn}。并且计算我们定义的损失:
在这里插入图片描述
其中, ω n \omega_{n} ωn是关键点的权重,我们实验式地把嘴巴和鼻子的权重设为20,其余的关键点都设为1。
文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)_第5张图片

图3。仅使用图像级损失(顶部一行)的训练结果和同时使用了图像级损失和感知损失(底部一行)的训练结果进行比较。这些数字代表光度误差。较低的光度误差并不能保证较好的形状。

4.2感知层的损失(Perception-Level Loss)

        虽然利用低水平信息测量图像差异通常可以得到较好的结果[5,50,49,48],但我们发现单独使用低水平信息进行基于cnn的三维人脸重建会导致局部极小值问题。图3显示,如果只用图像级的损失来训练我们的R-Net,我们将得到更平滑的纹理和更低的光度误差,但是在视觉效果上可以看出来,用这种方式得到的三维形状是不准确的。
        为了解决这个问题,我们引入了感知层面的损失来进一步指导训练。受[16]的启发,我们从一个预先训练好的深度人脸识别网络中寻找弱监督信号。具体来说,我们提取图像的深层特征,计算余弦距离:
在这里插入图片描述
在这里, f ( ⋅ ) f(\cdot) f()表示深层特征编码, < ⋅ , ⋅ > <\cdot, \cdot> <,>表示向量内积。在这项工作中,我们使用一个已有的人脸识别数据集来训练一个FaceNet[44]结构,该数据集包含从互联网上抓取的3M张50K的有id的人脸图像,并将其作为我们的深度特征提取器。
        图3显示了在加入了感知层损失的情况下,纹理更加清晰,形状更加准确。实验部分得出了数值结果也证实了该方法的有效性。

4.3. 正则化(Regularization)

        为了防止人脸形状和纹理退化,我们在回归的3DMM系数上增加了一个常用的损失:
在这里插入图片描述
        这使得一个先验分布朝着平均面。平衡权重根据经验设置为 ω α = 1.0 \omega_{\alpha}=1.0 ωα=1.0 ω β = 0.8 \omega_{\beta}=0.8 ωβ=0.8 and ω γ = 1.7 e − 3 \omega_{\gamma}=1.7 e-3 ωγ=1.7e3
        虽然巴塞尔2009 3DMM[33]中的人脸纹理是通过特殊的设备获得的,但它们仍然包含一些阴影(如环境遮挡)。为了获得类似于[48]的恒定的皮肤反照率,我们添加了一个平坦约束来惩罚纹理贴图的变化:


R是一个预先定义的皮肤区域,覆盖脸颊、噪音和前额(详见参考文献)。综上所述,我们的R-Net的损失函数L(x)包括了2个图像层级的损失,1个感知层的损失,还有2个正则化的损失。根据我们的实验,这几个损失的权重被设为
在这里插入图片描述

5. 用于多图像人脸重建的弱监督聚合神经网络(Weakly-supervised Neural Aggregation for Multi-Image Reconstruction)

待续

6. 实验(Experiments)

实现细节(Implementation Details)

        为了训练我们的R-Net,我们从CelebA[32]、300W-LP[57]、I-JBA[30]、LFW[24]和LS3D[8]等多个来源收集了户外图像。我们平衡了姿态和种族分布,得到了∼260K人脸图像作为训练集。我们使用[12]方法来检测和对齐这些图像。输入图像大小为224×224。我们将ImageNet[42]中预先训练的权值作为初始化,使用Adam optimizer[29]训练R-Net,批量大小为5,初始学习率为1e−4,总迭代次数为500K。
        为了训练C-Net,我们使用300W-LP[57]、Multi-PIE[17]和部分我们的室内人脸识别数据集构建了一个图像库。对于300W-LP和Multi-PIE,我们为每个人选择了5张旋转角度均匀分布的图像。对于人脸识别数据集,我们随机为每个人选择5张图像。整个训练集包括10k个人的50k张图像。我们冻结训练好的R-Net,并随机初始化C-Net,除了它的最后一个全连接层被初始化为零(这样我们就从平均池化开始)。我们使用Adam[29]训练它,批量大小为5,初始学习率为2e - 5,总迭代次数为10K。

6.1 单张图片的模型重建结果

6.1.1 Ablation Study

        为了验证我们提出的混合级损失函数的有效性,我们对两个数据集进行消融研究:MICC Florence 3D人脸数据集[1]和FaceWarehouse数据集[11]。MICC包含53个受试者,每个受试者以中性表情进行扫描,并在cooperative、室内和室外场景中捕获三个视频序列。对于FaceWarehouse,我们使用9个受试者,每个受试者使用20个表情进行评估。
        表1给出了不同损失组合下的重建误差。结果表明,综合考虑图像和感知级信息比单独使用图像和感知级信息的准确率要高得多。
文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)_第6张图片

6.1.2 和前人的成果进行对比

在MICC Florence数据集上与 [51, 16, 14, 25, 57,31]进行对比.

我们首先比较了Tran等人的[51]和Genova等人的[16]方法。对于[51]和我们的算法,我们用序列的平均形状来估计误差。在重构之前,[16]平均了所有帧的编码器嵌入,并为每个序列生成一个形状。在[16]之后,我们将ground truth mesh裁剪到鼻子尖周围95mm,并使用各向同性尺度的ICP进行比对。[51]的结果只包含部分前额区域,因此我们进一步将ground truth进行相应的网格划分,以便进行公平的比较。表2显示,我们的方法在所有三个序列上都显著优于[51]和[16]。图4和图5的定性比较也说明了我们的结果的优越性。注意,[16]使用了与我们相似的感知损失,但是它们忽略了诸如光度相似性之类的低级信息。

你可能感兴趣的:(tensorflow,3D人脸重建,翻译,3D人脸重建)