基于GAN的“真人捏脸”已上线,照片逼真无死角:脸型、五官、表情等均可控制

用3D模型参数,控制2D人脸生成

萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

使用GAN生成的2D人脸模型很美丽,然而却终究缺了点什么?

没错,虽然GAN能生成逼真的人脸,但距离自己理想的人脸,总有那么一点不完美——面部表情、脸上皱纹、发质……

由于GAN没办法进行参数调控,即使人脸再逼真,也没办法控制五官等细节。

现在,一个新模型GIF (Generative Interpretable Faces)的出现打破了这一定律:

不仅能用GAN生成逼真的人脸,而且还能通过具体的参数控制它。

这是怎么做到的?

用3D模型的参数,控制2D照片

目前的3D和2D人脸生成模型,在真实性和参数可控这两方面,有着很大的差异。

3D人脸的参数可以分为几种:脸型变化、姿势差异、表情变化。

然而,目前生成的3D人脸模型普遍存在一个问题:与真实的人脸相差甚远。

因为无论是头发、眼睛、肤质(皱纹)或者口腔(牙齿、舌头),目前的3D人脸模型都难以进行真实的模拟。

与之相反的是,2D人脸生成模型(如目前很火的StyleGAN、StyleGAN2等)虽然能实现照片级模拟,但却没办法独立更改如面部外观、形状或表情等参数。

那么,有没有办法将这两类人脸模型的优势结合起来,利用3D模型的参数控制,生成可以控制具体环节的2D照片呢?

抱着这样的想法,研究者们将2D人脸生成模型StyleGAN2,与一个名为FLAME的3D人脸生成模型进行了结合,如下图所示。

原本在StyleGAN2中,会插入一部分随机噪音,用于调节局部纹理的变化,现在则是将FLAME模型生成的纹理和常规渲染当做这个噪声,输入StyleGAN2中,以对生成的图像产生直接影响。

在这其中,生成的图像会被投影到3D人脸生成模型的网格(mesh)上,获得一个不完整的纹理图,也就是所谓的“纹理窃取”(texture stealing)。

从下图可见,“纹理窃取”看起来就像是把人脸分成了几部分,强行进行了拼凑。

事实上,这是用3D模型,来对人脸进行参数控制的重要步骤。在进行像素对齐后,模型参数与生成图像之间的像素局部关联就能变得明确。

也就是说,这一生成模型不仅能利用GAN的特性,生成逼真的人脸图像,还能根据3D模型给出的参数,进行人脸细节的调控。

那么,这一模型的效果具体如何呢?

各种细节都能变

从控制情况来看,参数对人脸模型的控制还是不错的。

下图是改变参数对人脸造成的影响。

与第一行相比,第二行改变了发型,第三行主要改变了个人身份,第四行改变了五官参数,第五行改变了姿势,第六行改变了外观,第七行则是对肤色和光照角度的改变。

可以看出,参数对于人脸的控制还是比较明显的。

如果想不好要生成什么样的人脸,也可以用随机采样的模式。

从下图可以看出,从年龄、肤色、表情、姿势等来看,模型也保留了GAN的效果,生成的人脸图像也具有非常大的差异性,但无一例外都比较逼真。

当然,GAN该有的那些玩法,这个模型也有,不仅能生成口对口动画,还能与语音相结合生成演讲模型。

具体到图像质量,GIF的FID得分也非常不错(数值越低越好)。

相比于动画捏脸模型,这个GAN版捏脸模型,可以说是非常逼真了。

作者介绍

一作Partha Ghosh,来自马普所,研究领域涉及计算机视觉、计算机图形学和机器学习的交叉学科,教计算机如何看待和理解人类行为。

二作Pravir Singh Gupta,来自德州农工大学,目前是一名博士生。共同二作Roy Uziel,来自内盖夫本-古里安大学,目前在马普所实习。

此外,作者还有Anurag Ranjan、Michael Black和Timo Bolkart,他们都来自马普所。

目前代码已经开源,动动手指,捏出你理想中的人脸模型吧~

代码地址:
https://github.com/ParthaEth/GIF

论文地址:
https://arxiv.org/abs/2009.00149

版权所有,未经授权不得以任何形式转载及使用,违者必究。