Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Yiwen Liao作者Xiang Chen, Panda参与Hao Wang, Jake Zhao编辑

借助生成对抗网络,合成自己不同年龄的脸

也许每个年轻人都会好奇自己年老之后会长成什么样。借助神经网络,现在人们能够一窥自己的未来容颜了。法国 Orange Labs 和 Eurecom 的研究者提出了一种使用条件生成对抗网络的能合成不同年龄的人脸的方法 acGAN。

论文地址:https://arxiv.org/pdf/1702.01983.pdf

1 引言

这篇论文介绍了条件生成对抗网络(cGAN)在人脸老化方面的一个非常有趣的应用。也即,你能使用这个 cGAN 合成一个人在不同年龄的人脸图像。对于研究领域,该方法可被用于提升“跨年龄人脸识别”的表现。对于日常应用,除了娱乐应用之外,还可以用于寻找失踪的孩童。

这篇论文主要有两大贡献:

  1. 他们设计了年龄条件生成对抗网络(acGAN)来生成所需年龄类别内的人脸图像。
  2. 他们提出了一种隐向量优化方法,让 acGAN 可以在保留原来身份的同时重建输入的思维人脸图像。

2 方法和实验

acGAN 是如何工作的?

如下图所示,在 acGAN 训练完成之后,我们首先使用身份保留优化(Identity Preserving Optimization)来寻找一个最优隐向量 z_star,该向量允许我们重建出尽可能接近原始图像 x(年龄标签为 y_0)的人脸图像 x_bar。然后,我们基于目标年龄标签 y_target,让 acGAN 使用隐向量 z_star 生成目标年龄的最终人脸图像。

2.1 训练 acGAN

类似于传统 cGAN,acGAN 的训练过程可以表示成对下列函数(1)的优化:

其中,θ_G 和 θ_D 分别为 G 和 D 的参数,y 是训练集 x 的附加标签(即 x 的条件)。在这个项目中,y 是六维的 one-hot 向量,分别对应六个不同的年龄类别。

2.2 近似人脸重建

为了使用给定的初始人脸图像生成目标年龄标签的人脸图像,应该构建从具有标签 y 的输入图像 x 到隐向量 z 的映射,因为 cGAN 并没有用于这种逆向映射的明确机制。因此,研究者使用 10 万对数据训练了一个编码器,这是一个可近似逆向映射神经网络。这个编码器的训练目标是最小化估计的隐向量 z_0 和基本真值隐向量之间的欧几里德距离。

但研究者发现,尽管近似的 z_0 能得到视觉上优良的人脸重建结果,但有 50% 的案例丢失了原有图像的身份。因此,他们提出了一种全新的“身份保留”方法来改善这个 z_0。

其关键技巧是使用一个给定的人脸识别神经网络 FR,从而将输入的人脸图像 x 嵌入成 FR(x) 以及将重构的图像 x_bar 嵌入成 FR(x_bar)。最小化这些嵌入之间的欧几里德距离,而不是 x 和 x_bar 之间的欧几里德距离(即像素级优化),就更有可能维持原有人脸图像的身份。

具体看看结果,下图展示了像素级优化方法和身份保留(IP)方法之间的差异。c 部分表明,使用身份保留方法可以更好地维持人脸表情和发型。d 部分展示了这个 acGAN 使用身份保留隐向量与年龄标签作为输入所生成的图像。

下图展示了这个 acGAN 使用一个随机隐向量与不同年龄标签的结果。

为了量化身份保留方法与像素级方法之间的差异,研究者使用了 OpenFace 来识别所生成的人脸图像,并将识别结果作为了评估指标。从下面的表格中可以清楚看到,身份保留方法能在生成过程中保留更多人脸特征(人脸标识),因为其 FR 分数远远高于像素级方法和初始生成结果的分数。

3 总结

acGAN 的主要优点是使用了“身份保留”隐向量优化方法来在重建中维持原来的身份。

该方法可用于人脸数据集的合成式增强,还能用于提升跨年龄场景中的人脸识别方案的稳健性。

4 分析师的思考

点评:

这篇论文提出了一种使用 acGAN 合成指定年龄的人脸的方法。从上面的结果看,这个方法在很高的程度上实现了目标。这篇论文的新思想是使用一个当前最佳的人脸识别网络来对输入人脸图像进行嵌入化处理,以获得人脸的高层面特征表达,这样该人的身份就能在重建过程中得以维持。此外,研究者还使用了 OpenFace 来识别所生成的人脸,以评估这个 acGAN 的人脸重建和生成表现。这种操作很有说服力。

这篇论文没有广泛地引用在内容风格解构和风格迁移方面的研究。使用 GAN 来解决问题,同时结合优化技术的思想可以看作是这两者的结合。如果能与相关论文进行比较,会更好。

可能存在的问题

  1. 从上面的图片中我们可以看到,“0-18”年龄组和“60+”年龄组区别很明显,但其它四组的区别并不大,尤其是女性人脸。原因可能是研究者在预处理这些训练数据时没有考虑化妆的情况。化妆在日常生活中也会干扰我们对年龄的预测。换句话说,除了使用“身份保留”进行训练非常重要之外,训练数据的选择和预处理也非常关键。
  2. 这个项目仅有 6 个年龄组,每一个组都有 10 年或以上的跨度。对于 30-60 岁的人来说,这样的设置方式是合适的。但对于孩童和青少年,他们的面部会在成长过程飞速变化。所以“0-18”年龄组的设置并不如其它组别那样合理。

可能的改进措施:

  1. 将第一组再分成若干小组,这样所得到的结果会更有说服力。
  2. 仅使用无化妆的人脸图像来训练编码器部分,这样才能提取和维持与年龄相关的关键特征。

比较之前的研究工作

我使用了微软的 https://how-old.net/ 来预测所生成的人脸的年龄。结果如下:

对于男性人脸,这个 acGAN 的表现相对较好,但“40-49”与“50-59”年龄组仍然偏离了。对于女性人脸,正如之前说的那样,前面几组的差别实在太小了,所以在这里被分到了同一个年龄组。

另一方面,这个年龄预测网络应用能够正确检测 12 张生成的人脸,这意味着 acGAN 确实可以生成人脸图像来实现人脸数据集的合成式增强。

另外,我还使用了 FaceApp 和 Oldify 应用来老化人脸。结果如下:

前两张图像来自 FaceAPP(基于神经网络),第三张来自 Oldify。很显然,这篇论文所提出的方法的结果比这些流行的智能手机应用的结果要好得多。这个方法可以生成不同年龄的人脸,这也与这两个应用不同。

技术分析GAN图像合成图像生成
1
相关数据
重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

神经网络技术

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

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

推荐文章
暂无评论
暂无评论~