基于GAN的人脸编辑综述

2024-02-17  本文已影响0人  小黄不头秃

预备知识:

(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框架由两个三平面分支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/

文章的主要贡献:

方法概述。在给定形状、细节和颜色潜在编码的情况下,典范生成模型(canonical generation model)在典范空间中输出粗略的几何图形和详细的normal和纹理。生成的标准头化身可以通过变形模块(deformation module)变形为目标姿态和表情。在第一个训练阶段,使用变形形状的占有率值计算占有率损失和LBS损失,以监督几何网络和变形模块。

在第二阶段,变形的纹理化身被渲染成2D RGB图像和正常图,以及3D颜色和正常损失,以监督正常和纹理网络。

隐式模型虽然强大,但是很难有控制的生成我们想要的姿态和表情,于是文章的作者借鉴了FLAME的优点,使用与FLAME相同的姿态和表情参数。然而,在隐式表示中顶点的数量并不固定,使得FLAME模型中的原始基和LBS权重不能直接用于文章的框架中。为了进一步解决这个问题,使用MLP来学习连续的姿态和表情基,以及LBS权重。为了控制GANHead生成的化身使用与FLAME模型相同的姿态和表情参数,通过在拟合的FLAME曲面上寻找查询点的最近邻来计算真实值,以监督神经基和权值的学习。

上一篇 下一篇

猜你喜欢

热点阅读