预备知识:
(1)FLAME
是一个可以编辑的3D人头(包含五官,不包含头发和肩部),上图是他的公式描述。总结来说FLAME是一个可以由三个参数控制的人头,分别是:Θ(姿态)、β(形状)、ψ(表情基数)。LBS ( · )是基于标准顶点的线性混合蒙皮( LBS ),W表示蒙皮权重。J ( · )由mesh顶点计算节点位置。T为模板头。BS( β ; S)、BP ( θ ; P)和BE( ψ ; E)是由形状参数β、位姿参数θ和表达参数ψ计算得到的顶点偏移量,对应的基为S、P和E。
1、基于GAN的人脸编辑
(1)GAN Head::朝向生成的有生命的神经头像(https://github.com/MrTornado24/Next3D)
文章的贡献:
- 提出了一个可动画的3D感知GAN框架,用于细粒度动画的真实感人像合成,包括表情、眨眼、注视方向和完整头部姿态。
- 提出了一种高效的可变形3D表示- -生成式纹理光栅化三平面,它继承了网格引导的显式变形的细粒度表达控制和隐式体表示的灵活性。据我们所知,我们是第一个将神经纹理融入可动画3D感知合成的方法。
- Xc = { xc1,..,xcn }和Xd = { xd1,..,xdn }分别表示正则点和变形点的集合。β,θ和ψ是与FLAME一致的形状、姿态和表情参数,这使得生成的替身可以通过FLAME参数很容易地进行动画。显然,E,P和W是预测的连续基和权重,而不是Eq中相应的FLAME分量。
- Gtext:用于生成面部的纹理
- Gstatic:用于生成头发、上半身等
- Gteeth + Mouth Synthesis :用于生成嘴部细节
- Gsuperres:用于超分辨率,生成高清图像
该研究的3D GAN框架由两个三平面分支Tuv和Tstatic建模动态和静态组件组成。Tuv是由一个StyleGAN生成器Gtext在可变形模板Mesh上合成的正交光栅化的生成式神经纹理形成的。Tstatic由另一个StyleGAN生成器Gstatic合成。嘴部合成模块Gteeth是为完成嘴部内部而提出的。混合三平面与混合神经渲染器结合,混合神经渲染器由体绘制和超分辨率模块Gsuperres组成。为了进行判别,将合成效果图ISynthesis带入到对偶判别器Ddual中。
首先采样一个隐码z,并通过映射网络将其映射到一个中间隐空间。然后通过一个MappingNetwork将z映射到一个隐空间。然后经过Gtext(即一个StyleGAN生成器)后生成一个特征图。使用一个可编辑的FLAME模型(就是下面那个人头模型)与特征图一起经过一个纹理映射函数后生成一个神经纹理图T。
此时的纹理图T是不包含嘴巴的信息的于是需要经过一个叫做Teeth Completing的网络结构(实际上就是一个U-net,不同的是在模型的后面几层加入了w),最后生成一个完整的人脸纹理图T。上述这一部分就是文章中所谓的动态组件,下面我们来介绍静态组件:因为之前生成的人脸纹理图不包含人物的发型、背景、肩部等内容,所以文章使用了一个静态生成器Gstatic(StyleGAN2 CNN generator)进行生成,然后两者相加就可以了。
给定了三平面,作者接下来使用了一个MLP将空间中的每一个点投影的每一个平面获得体密度和特征f,然后进行体渲染这里我们将结果记作If。为了能够无监督的约束3D模型,我们使用2D的卷积判别器进行判别,使用if的前三个通道作为是生成的RGB图像,与真实图之间进行求损失,然而发现只能够约束正确的分布,但是不能够约束表情和形状,于是作者根据渲染的姿态重新渲染模板mesh,得到合成渲染Isynthetic,并将其与图像对一起输入到Ddual中。
(2)Next3D:面向3D感知头像的生成式神经纹理光栅化(https://wsj-sjtu.github.io/GANHead/)
文章的主要贡献:
- 提出了一种生成式可动画头部模型,可以生成具有逼真纹理和详细几何形状的完整头部替身。
- 生成的化身可以通过FLAME [ 22 ]参数直接动画,对看不见的姿势和表情具有鲁棒性。
- 与SOTA方法相比,所提出的模型在头像生成和原始扫描拟合方面取得了较好的结果。
方法概述。在给定形状、细节和颜色潜在编码的情况下,典范生成模型(canonical generation model)在典范空间中输出粗略的几何图形和详细的normal和纹理。生成的标准头化身可以通过变形模块(deformation module)变形为目标姿态和表情。在第一个训练阶段,使用变形形状的占有率值计算占有率损失和LBS损失,以监督几何网络和变形模块。
在第二阶段,变形的纹理化身被渲染成2D RGB图像和正常图,以及3D颜色和正常损失,以监督正常和纹理网络。
隐式模型虽然强大,但是很难有控制的生成我们想要的姿态和表情,于是文章的作者借鉴了FLAME的优点,使用与FLAME相同的姿态和表情参数。然而,在隐式表示中顶点的数量并不固定,使得FLAME模型中的原始基和LBS权重不能直接用于文章的框架中。为了进一步解决这个问题,使用MLP来学习连续的姿态和表情基,以及LBS权重。为了控制GANHead生成的化身使用与FLAME模型相同的姿态和表情参数,通过在拟合的FLAME曲面上寻找查询点的最近邻来计算真实值,以监督神经基和权值的学习。
-
Canonical Generation Moudule包含了三个模块,分别用于表示形状和纹理。
- G(xc,zshape):
输入:xc表示规范空间中的点,z shape∈Rns是形状潜码,用于约束G生成各种形状。
输出:occ(占有率), f s。fs∈Rnf是一个携带形状信息的特征向量。 - N(xc, zdetail, fs):为了对头部的细节进行建模,我们使用MLP来预测表面法线。
输入:Zdetail∈Rnd是控制细节生成的细节潜在代码。
输出:n是查询点xc的预测法向量,加上一个用于纹理预测的特征向量f n∈Rnf。 - T(xc, zcolor, f , θ, ψ):
输入:zcolor∈Rnc为颜色潜码,可实现可控纹理生成;f = f s⊕f n为形状和法向量的串联;θ和ψ分别表示位姿和表情参数,与FLAME 一致。
输出:c颜色值
- G(xc,zshape):
-
Deformation Module形变模型,变形模块首先预测典型点xc的连续位姿和表情基以及LBS权重,然后通过添加的偏移量将其变形为xd,再进行线性混合蒙皮( LBS )。
- C(xc):连续的基和权重通过MLP进行预测:
- 输入:xc就是规范空间中的点
- 输出:E∈R3 × 50,P∈R36 × 3和W∈R5分别是每个正则点xc的预测表达基,位姿相关的校正基和LBS权重。
- D(xc, β):
- 输入:β为与FLAME一致的形状参数
- 输出:xc′为形状自然正则点,
- LBS:
- 其中Xc = { xc1,..,xcn }和Xd = { xd1,..,xdn }分别表示正则点和变形点的集合。β,θ和ψ是与FLAME一致的形状、姿态和表情参数,这使得生成的替身可以通过FLAME参数很容易地进行动画。显然,E,P和W是预测的连续基和权重,而不是Eq中相应的FLAME分量。
- C(xc):连续的基和权重通过MLP进行预测:
网友评论