Shaobo GUAN作者路 王淑婷 张倩编译

定制人脸图像没那么难!使用TL-GAN模型轻松变脸

基于描述生成逼真图像是一项比较困难的任务。本文介绍了一项新研究 Transparent Latent-space GAN (TL-GAN),它使用英伟达的 pg-GAN 模型,利用潜在空间中的特征轴,轻松完成图像合成和编辑任务。

使用 TL-GAN 模型进行受控人脸图像合成的示例。

教电脑根据描述生成照片

判别任务 VS 生成任务

描述一张图像对人类来说相当容易,我们在很小的时候就能做到。在机器学习中,这项任务是一个判别分类/回归问题,即从输入图像预测特征标签。随着最近 ML/AI 技术(尤其是深度学习模型)的进步,它们开始在这些任务中脱颖而出,有时会达到甚至超过人类的表现,如视觉目标识别(例如,从 AlexNet 到 ResNet 在 ImageNet 分类任务上的表现)和目标检测/分割(如从 RCNN 到 YOLO 在 COCO 数据集上的表现)等场景中展示的一样。

然而,另一方面,基于描述生成逼真图像却要困难得多,需要多年的平面设计训练。在机器学习中,这是一项生成任务,比判别任务难多了,因为生成模型必须基于更小的种子输入产出更丰富的信息(如具有某些细节和变化的完整图像)。

虽然创建此类应用程序困难重重,但生成模型(加一些控制)在很多方面非常有用:

  • 内容创建:想象一下,广告公司可以自动生成具有吸引力的产品图像,而且该图像不仅与广告内容相匹配,而且与镶嵌这些图片的网页风格也相融合;时尚设计师可以通过让算法生成 20 种与「休闲、帆布、夏日、激情」字样有关的样鞋来汲取灵感;新游戏允许玩家基于简单描述生成逼真头像。

  • 内容感知智能编辑:摄影师可以通过几次单击改变证件照的面部表情、皱纹数量和发型;好莱坞制片厂的艺术家可以将镜头里多云的夜晚转换成阳光灿烂的早晨,而且阳光从屏幕的左侧照射进来。

  • 数据增强:自动驾驶汽车公司可以通过合成特定类型事故现场的逼真视频来增强训练数据集;信用卡公司可以合成数据集中代表性不足的特定类型欺诈数据,以改进欺诈检测系统。

在本文中,我们将描述我们最近的研究,称为 Transparent Latent-space GAN (TL-GAN),它扩展了当前的前沿模型,提供了一个新的界面。我们正在写关于这项研究的论文,里面将包含更多技术细节。

生成模型概览

深度学习社区在生成模型方面进展迅猛。其中有三种比较有前景的模型:自回归模型,变分自编码器(VAE)和生成对抗网络(GAN),如下图所示。如果你想了解详情,可以查看这篇 OpenAI 博客:

https://blog.openai.com/generative-models/。

生成器网络对比。图源:https://wiki.math.uwaterloo.ca/statwiki/index.php?title=STAT946F17/Conditional_Image_Generation_with_PixelCNN_Decoders

英伟达的 pg-GAN 生成的合成图像。以上没有一个是真实图像!

控制 GAN 模型的输出

随机图像生成 VS 受控图像生成

GAN 的原始版本和很多流行的模型(如 DC-GAN 和 pg-GAN)都是无监督学习模型。训练后,生成器网络将随机噪声作为输入,并生成几乎无法与训练数据集区分开来的逼真图像。然而,我们无法进一步控制生成图像的特征。但在大部分应用程序(如第一部分中描述的场景)中,用户希望生成带有自定义特征(如年龄、发色、面部表情等)的样本,而且理想情况是能够不断调整每个特征。

为了实现可控合成,人们已经创建了很多 GAN 的变体。它们大致可分类两类:风格迁移网络和条件生成器。

风格迁移网络

风格迁移,以 CycleGAN 和 pix2pix 为代表,是用来将图像从一个领域迁移到另一领域(例如,从马到斑马,从素描到彩色图像)的模型。因此,我们不能在两个离散状态之间连续调整一个特征(例如,在脸上添加更多胡须)。另外,一个网络专用于一种类型的迁移,因此调整 10 个特征需要十个不同的神经网络

条件生成器

条件生成器以 conditional GAN,AC-GAN 和 Stack-GAN 为代表,是在训练期间联合学习带有特征标签的图像的模型,使得图像生成能够以自定义特征为条件。因此,如果你想在生成过程中添加新的可调特征,你就得重新训练整个 GAN 模型,而这将耗费大量的计算资源和时间(例如,在带有完美超参数的单一 K80 GPU 上需要几天甚至几个星期)。此外,你要用包含所有自定义特征标签的单个数据集来执行训练,而不是利用来自多个数据集的不同标签。

我们的 Transparent Latent-space GAN 模型,通过从新的角度处理受控生成任务,解决了现有方法存在的这些问题。它允许用户使用单个网络逐渐调整单个或多个特征。除此之外,添加新的可调特征可以在一个小时之内非常高效地完成。

TL-GAN:一种新型高效的可控合成和编辑方法

让神秘的潜在空间变得透明

我们将利用英伟达的 pg-GAN,该模型可以生成高分辨率的逼真人脸图像,如前一节所示。一个分辨率为 1024x1024 的生成图像的所有特征仅由潜在空间(作为图像内容的低维表示)中 512 维噪声向量确定。因此,如果我们能够理解潜在空间代表什么(即,使其透明化),我们就能完全控制生成过程。

TL-GAN 的动机:理解潜在空间以控制生成过程

通过用预训练的 pg-GAN 进行实验,我发现潜在空间具有两个良好的特性:

  • 它很稠密,这意味着空间汇总的大多数点能够生成合理的图像;

  • 它相当连续,意味着潜在空间中两点之间的插值通常会导致相应图像的平滑过渡。

考虑到这两点,我觉得可以在潜在空间中找到能够预测我们关心的特征(如,女性-男性)的方向。如果是这样的话,我们可以把这些方向的单位向量用作控制生成过程(更男性化或更女性化)的特征轴。

方法:揭示特征轴

为了在潜在空间中找到这些特征轴,我们将通过在成对数据 (z,y) 上训练的监督学习方法构建潜在向量 z 与特征标签 y 之间的关系。现在问题变成了如何得到此类成对数据,因为现有数据集仅包含图像 x 及其对应特征标签 y。

连接潜在向量 z 和特征标签 y 的方法。

可能的方法

一种可能方法是计算来自现有数据集的图像 x_real 的潜在向量 z,x_real 的标签是 y_real。但是,GAN 无法提供计算 z_encode=G^(−1)(x_real) 的简单方式,因此这个方法很难实现。

第二种可能方法是使用来自随机潜在向量 z 的 GAN 来生成合成图像 x_gen,即 x_gen=G(z)。问题在于合成图像没有标签,我们无法轻松地利用可用的标注数据集。

为了解决该问题,TL-GAN 模型做出了一项重要创新,即利用已有标注图像数据集 (x_real, y_real) 训练单独的特征提取器(用于离散标签的分类器或用于连续标签的回归器)模型 y=F(x),然后将训练好的 GAN 生成器 G 与特征提取器网络 F 结合起来。这样,我们就能利用训练好的特征提取器网络来预测合成图像 x_gen 的特征标签 y_pred,从而通过合成图像建立 z 和 y 之间的联系,即 x_gen=G(z) and y_pred=F(x_gen)。

现在我们有了成对的潜在向量和特征,可以序列回归器模型y=A(z) 来找出可用于控制图像生成过程的所有特征轴。

TL-GAN 模型架构

上图展示了 TL-GAN 模型的架构,共包括五步:

  1. 学习分布:选择一个训练好的 GAN 模型作为生成器网络。我选择的是训练好的 pg-GAN,它提供的人脸生成质量最好。

  2. 分类:选择一个预训练的特征提取器模型(可以是卷积神经网络,也可以是其它计算机视觉模型),或者利用标注数据集训练自己的特征提取器。我在 CelebA 数据集上训练了一个简单的 CNN,该数据集包含三万余张人脸图像,每个图像有 40 个标签。

  3. 生成:生成大量随机潜在向量,并传输到训练好的 GAN 生成器中以生产合成图像,然后使用训练好的特征提取器为每张图像生成特征。

  4. 关联:使用广义线性模型(Generalized Linear Model,GLM)执行潜在向量和特征之间的回归任务。回归斜率(regression slope)即特征轴。

  5. 探索:从一个潜在向量开始,沿着一或多个特征轴移动,并检测对生成图像的影响。

这个过程非常高效。只要具备一个预训练的 GAN 模型,在单 GPU 机器上识别特征轴仅需一小时。这是通过多个工程 trick 达成的,如迁移学习、下采样图像大小、预缓存合成图像等。

结果

沿着特征轴移动潜在向量

首先,测试发现的特征轴能否用于控制生成图像的对应特征。为此,我在 GAN 的潜在空间中生成了一个随机向量 z_0,然后将它传输到生成器网络 x_0=G(z_0) 以生成合成图像 x_0。接下来,我将潜在向量沿着特征轴 u(潜在空间中的单位向量,对应人脸的性别)移动距离 λ,到达新的位置 x_1=x_0+λu,并生成新的图像 x1=G(z1)。理想情况下,新图像的对应特征可以沿着期望方向进行修改。

下图展示了沿着多个示例特征轴(性别、年龄等)移动潜在空间向量的结果。效果非常棒!我们可以流畅地在男性 ←→ 女性、年轻 ←→ 年老之间变化图像。

沿着示例相关特征轴移动潜在向量的初始结果

解除相关特征轴之间的关联

上述示例也展示了该方法的缺点:相关特征轴。举例来说,当我打算减少胡须量时,生成的人脸图像更女性化,而这并非用户期望的结果。问题在于性别特征和胡须特征天然相关,修改一个必然会导致另一个也发生改变。类似的还有发际线和卷发。如下图所示,潜在空间中原始的「胡须」特征轴不垂直于性别特征轴。

为了解决这个问题,我使用直接的线性代数 trick。具体来说,我将胡须特征轴投影到新的方向,新方向垂直于性别特征轴,这就有效去除了二者之间的关联,从而解除生成人脸图像中这两个特征的关联。

使用线性代数技巧解除相关特征轴之间的关联

我将该方法应用于相同的人脸图像示例中。这次我使用性别轴和年龄轴作为参考特征,将其它特征轴投影到与性别和年龄特征轴垂直的方向,然后检测潜在向量沿着新生成的特征轴移动时的生成图像(见下图)。如我们所料,发际线、卷发和胡须等特征没有改变人脸的性别。

灵活的交互式编辑

为了查看 TL-GAN 模型控制图像生成过程的灵活程度,我构建了一个交互式 GUI 来探索沿着不同特征轴调整特征值的效果。

视频:使用 TL-GAN 的人脸图像交互式编辑

我使用特征轴控制生成图像时,效果惊人的好!

总结

该项目提供了一种新方法来控制无监督生成模型(如 GAN)的生成过程。利用已经训练好的 GAN 生成器(英伟达的 pg-GAN),我通过发现其中有意义的特征轴使其潜在空间变得透明。当向量沿着潜在空间中的特征轴移动时,对应的图像特征发生变化,实现受控的合成和编辑。

该方法具备以下显著优势:

  • 高效性:为生成器添加新的特征调整器(feature tuner)时,无需重新训练 GAN 模型。使用该方法添加 40 个特征调整器仅需不到一小时。

  • 灵活性:你可以使用在任意数据集上训练的任意特征提取器来给训练好的 GAN 模型添加特征调整器。

伦理问题

这项研究允许我们对图像生成进行细粒度的控制,但它仍然严重依赖数据集的特征。基于好莱坞名人的照片进行训练意味着该模型擅长生成「好看」的人脸照片。这可能导致用户仅能够生成这种特定类型的人脸图像。如果将该模型部署为一个应用的话,我们希望能够增强原始数据集,以考虑用户的多样性。

此外,虽然该工具可能是一个巨大的创造性帮助,我们仍应该自问如果这个模型被用于邪恶目的呢。如果我们能够生成任意类型的逼真人脸图像,那么我们看到的还是真实的吗?这类问题很重要。我们看到了近期 deepfake 的出现与应用,AI 方法的能力正在快速增长,因此就如何最好地部署 AI 方法展开对话是非常重要的。

在线 demo 和代码

该研究的所有代码和 demo 均可在项目主页看到:https://github.com/SummitKwan/transparent_latent_gan

如果你想在 web 浏览器中尝试该模型

无需下载代码、模型或数据。只需按照 GitHub README 页面中的部分指令操作即可。(https://github.com/SummitKwan/transparent_latent_gan#1-instructions-on-the-online-demo)

如果你想尝试我的代码

按照 GitHub README 页面操作即可。代码是使用 Tensorflow、Keras 和 Anaconda Python 3.6 构建的。

原文链接:https://blog.insightdatascience.com/generating-custom-photo-realistic-faces-using-ai-d170b1b59255

工程生成模型图像生成GAN计算机视觉生成对抗网络
63
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

变分自编码器技术

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

自动驾驶汽车技术

自动驾驶汽车,又称为无人驾驶汽车、电脑驾驶汽车或轮式移动机器人,是自动化载具的一种,具有传统汽车的运输能力。作为自动化载具,自动驾驶汽车不需要人为操作即能感测其环境及导航。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

Alex网络技术

AlexNet是一个卷积神经网络的名字,最初是与CUDA一起使用GPU支持运行的,AlexNet是2012年ImageNet竞赛冠军获得者Alex Krizhevsky设计的。该网络达错误率大大减小了15.3%,比亚军高出10.8个百分点。AlexNet是由SuperVision组设计的,由Alex Krizhevsky, Geoffrey Hinton和Ilya Sutskever组成。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

CycleGAN技术

GAN的一个变种

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

布朗大学(美国)・神经科学,计算机科学・博士(在读)
我是文章原作者,看到文章被转到 机器之心 非常荣幸。 原文链接在这里,里面有动图和视频: https://medium.com/p/d170b1b59255
你发的链接404
机器之心(北京)科技有限公司・编辑
回复Summit
您好,我是机器之心副主编李亚洲,您方便加下微信好友吗?(lyz147147),方便之后内容上的沟通交流。