MediaPipe FaceStylizer:设备上实时少量镜头脸部造型

1724638823282.jpg

近年来,我们看到消费者和研究人员对在移动应用(包括短视频、虚拟现实和游戏)中使用实时人脸特征生成和编辑功能来集成增强现实 (AR) 体验的兴趣日益浓厚。因此,对轻量级但高质量的人脸生成和编辑模型的需求日益增长,这些模型通常基于生成对抗网络(GAN) 技术。然而,大多数 GAN 模型都存在计算复杂度高和需要大量训练数据集的问题。此外,负责任地使用 GAN 模型也很重要。

在本文中,我们介绍了MediaPipe FaceStylizer,这是一种针对少量样本人脸风格化的有效设计,它解决了上述模型复杂性和数据效率挑战,同时遵循 Google 负责任的AI 原则。该模型由人脸生成器和人脸编码器组成,用作GAN 反转,将图像映射到生成器的潜在代码中。我们为人脸生成器引入了一个移动友好的合成网络,其中有一个辅助头,可在生成器的每个级别将特征转换为RGB,以生成从粗粒度到细粒度的高质量图像。我们还精心设计了上述辅助头的损失函数,并将它们与常见的 GAN 损失函数相结合,从教师StyleGAN模型中提取学生生成器,从而得到一个保持高生成质量的轻量级模型。所提出的解决方案可通过MediaPipe开源获得。用户可以使用 MediaPipe Model Maker 对生成器进行微调,以从一张或几张图像中学习风格,并使用MediaPipe FaceStylizer将自定义模型部署到设备上的人脸风格化应用程序中。

少量镜头设备上的脸部造型

端到端管道

我们的目标是构建一个管道,支持用户通过使用一些示例对模型进行微调,使 MediaPipe FaceStylizer 适应不同的风格。为了实现这样的人脸风格化管道,我们使用 GAN 逆编码器和高效的人脸生成器模型构建了管道(见下文)。然后,编码器和生成器管道可以通过少量学习过程适应不同的风格。用户首先将风格图像的单个或几个类似样本发送到 MediaPipe ModelMaker 以微调模型。微调过程会冻结编码器模块,仅微调生成器。训练过程会采样多个接近输入风格图像编码输出的潜在代码作为生成器的输入。然后,通过优化同时考虑风格和内容的联合对抗损失函数,对生成器进行训练,使其按照输入风格图像的风格重建人脸图像。通过这样的微调过程,MediaPipe FaceStylizer 可以适应定制风格,从而接近用户的输入。然后可以将其应用于对真实人脸的测试图像进行风格化。

生成器:BlazeStyleGAN

StyleGAN模型 系列已广泛用于人脸生成和各种人脸编辑任务。为了支持高效的设备上人脸生成,我们基于 StyleGAN 设计了生成器。这个生成器我们称之为BlazeStyleGAN,与 StyleGAN 类似,因为它也包含一个映射网络和合成网络。然而,由于 StyleGAN 的合成网络是该模型高计算复杂度的主要原因,我们设计并使用了一个更高效的合成网络。效率和生成质量的提高是通过以下方式实现的:

将合成网络中的潜在特征维度降低到老师 StyleGAN 中对应层分辨率的四分之一,

设计多个辅助头,将降尺度的特征变换到图像域,形成由粗到细的图像金字塔,用于评估重建的感知质量,以及

在推理时跳过除最后的辅助头之外的所有内容。

利用新设计的架构,我们通过从教师 StyleGAN 模型中提炼 BlazeStyleGAN 模型来训练该模型。我们在提炼过程中使用了多尺度感知损失和对抗性损失,将教师模型的高保真生成能力转移到学生 BlazeStyleGAN 模型,并减轻教师模型的伪影。

有关模型架构和训练方案的更多细节请参阅我们的论文。

StyleGAN 和 BlazeStyleGAN 生成的脸部样本之间的视觉比较。第一行的图像由老师 StyleGAN 生成。第二行的图像由学生 BlazeStyleGAN 生成。BlazeStyleGAN 生成的脸部与老师模型生成的图像具有相似的视觉质量。一些结果表明,学生 BlazeStyleGAN 在蒸馏过程中抑制了老师模型的伪影。

在上图中,我们展示了 BlazeStyleGAN 的一些示例结果。通过与教师 StyleGAN 模型生成的面部图像(上行)进行比较,学生 BlazeStyleGAN 生成的图像(下行)保持了较高的视觉质量,并且由于我们在蒸馏过程中采用了损失函数设计,进一步减少了教师产生的伪影。

一种高效 GAN 逆向编码器

为了支持图像到图像的风格化,我们还引入了高效的 GAN 逆向作为编码器,将输入图像映射到生成器的潜在空间。编码器由MobileNet V2主干定义,并使用自然人脸图像进行训练。损失定义为图像感知质量损失的组合,用于测量内容差异、风格相似性和嵌入距离,以及输入图像和重建图像之间的 L1 损失。

设备上的性能

我们在下表中记录了模型复杂度(参数数量和计算FLOP)。与教师 StyleGAN(33.2M 参数)相比,BlazeStyleGAN(生成器)显著降低了模型复杂度,输出分辨率为 256x256 时,参数数量仅为 2.01M,FLOP 为 1.28G。与 StyleGAN-1024(生成图像大小为 1024x1024)相比,BlazeStyleGAN-1024 可以将模型大小和计算复杂度降低 95%,且质量没有明显差异,甚至可以抑制教师 StyleGAN 模型中的伪影。

模型     图片大小     #参数(M)     失败次数 (G)

StyleGAN     1024     33.17     74.3

BlazeStyleGAN     1024     2.07     4.70

BlazeStyleGAN     512     2.05     1.57

BlazeStyleGAN     256     2.01     1.28

编码器     256     1.44     0.60

模型复杂度通过参数数量和 FLOP 来衡量。

我们对 MediaPipe FaceStylizer 在各种高端移动设备上的推理时间进行了基准测试,并在下表中展示了结果。从结果来看,BlazeStyleGAN-256 和 BlazeStyleGAN-512 在所有 GPU 设备上均实现了实时性能。它可以在高端手机的 GPU 上以不到 10 毫秒的运行时间运行。BlazeStyleGAN-256 还可以在 iOS 设备的 CPU 上实现实时性能。

模型     BlazeStyleGAN-256(毫秒)     编码器-256(毫秒)

iPhone 11     12.14     11.48

iPhone 12     11.99     12.25

iPhone 13 Pro     7.22     5.41

Pixel 6     12.24     11.23

三星 Galaxy S10     17.01     12.70

三星 Galaxy S20     8.95     8.20

BlazeStyleGAN、面部编码器和各种移动设备上的端到端管道的延迟基准。

公平性评估

该模型已使用高度多样化的人脸数据集进行训练。该模型有望公平对待不同的人脸。公平性评估表明,该模型在人类性别、肤色和年龄方面表现良好且均衡。

面部风格可视化

下图展示了一些面部风格化结果。顶行(橙色框中)的图像表示用于微调模型的风格图像。左列(绿色框中)的图像是用于测试的自然面部图像。2x4 图像矩阵表示 MediaPipe FaceStylizer 的输出,该输出将最左列的自然面部与顶行的相应面部风格混合在一起。结果表明,我们的解决方案可以为几种流行风格实现高质量的面部风格化。

我们的 MediaPipe FaceStylizer 的示例结果。

MediaPipe 解决方案

MediaPipe FaceStylizer 即将在MediaPipe Solutions中向公众用户发布。用户可以利用MediaPipe Model Maker使用自己的风格图像训练自定义人脸风格化模型。训练完成后,只需几行代码, 即可使用MediaPipe Tasks FaceStylizer API将导出的TFLite模型文件包部署到跨平台(Android、iOS、Web、Python 等)的应用程序。

致谢

这项工作得益于 Google 多个团队的通力合作。我们要感谢 Omer Tov、Yang Zhao、Andrey Vakunov、Fei Deng、Ariel Ephrat、Inbar Mosseri、Lu Wang、Chuo-Ling Chang、Tingbo Hou 和 Matthias Grundmann 的贡献。


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论