最近在读关于人脸老化方面的论文,这是一篇发表在CVPR2018上的论文,原文链接。
水平有限,如有错误或者不妥之处,欢迎指正和交流。
目录
1、简介
论文提出了基于条件生成对抗网络的身份保持人脸老化网络(IPCGANs,Identity-Preserved Conditional Generative Adversatial Networks)。网络包括三个部分,一个条件生成对抗网络模块(CGANs module),一个身份保持模块(identity-preserved module),一个年龄分类器(age classifier)。
(1)条件生成对抗网络模块:CGANs的生成器部分输入时一张图片和一个目标年龄的编码。对于生成器来说,最好的结果是,判别器不能分辨出生成的人脸和指定组的真实人脸的区别。
(2)身份保持模块: 为了保留身份信息,论文介绍了一种感知损失(perceptual loss),并将其加入损失函数。
(3)年龄分类器:为了保证生成的人脸在指定的年龄组,把生成的人脸放进一个预训练好的年龄分类器中,并且把年龄分类损失(age classification loss)加到目标函数中。
论文所做的贡献总结如下:
(1)提出把身份保持阶段和年龄分类阶段加入到网络的目标中。前一阶段作用是使加入年龄生成的人脸跟原来输入的人脸是同一个人,后一阶段确保生成的人脸在指定的年龄段中。
(2)除了定量评估生成人脸的质量,还用作者的研究成果,提出了为生成的指定年龄的人脸作人脸验证和人脸年龄分类。提出的数据增强实验也证实了IPCGANs的有效性。
(3)IPCGANs不是仅局限于处理人脸年龄老化问题,他是一个生成框架。不用做任何改动,IPCGANs可以应用于多属性生成任务中,例如头发颜色,面部表情等不平衡数据分类场景中。
2、相关工作
2.1 人脸老化
现有的人脸老化方法的归类总结,以及缺点。
2.2 生成对抗网络
2.3 风格迁移
生成指定年龄人脸的目标与风格迁移的工作有关联。在风格迁移汇总,会采用content loss 和style loss 相结合。他们都被叫做感知损失。
3、身份保持条件生成对抗网络
3.1 概述
将人脸分成按照年龄分成5个不同的年龄段,给定一个人脸图片x,用表示x属于的分组。其中,h和w代表特征图的高和宽,5是年龄组别号。像one-hot编码,只有一个特征图填满1,其余的特征图全是0。人脸老化的目标是生成一个在指定年龄组的生成脸。有以下特征:
i) 看起来像真实的人脸。
ii) 与x是同一个人。
iii) 的人脸年龄在年龄段中。
在本文的实践中,根据x所属的不同年龄组训练多个模型,换句话说,模型只与年龄组别有关。这样一来,模型可以将任何属于的人脸映射到指定的年龄分组中。
3.2 身份保持条件生成对抗网络
整个架构分为三个部分,第一部分是一个基于CGANs的生成模块,作用是生成 年龄段的人脸,并保证生成的人脸看起来真实。第二部分是身份保持模块,保证与x是同一个人。第三部分是年龄分类器模块,进一步促使在中。
(1) 基于CGANs的生成模块。y代表指定年龄组的真是人脸,x和y的分布分别是和,在CGANs中年龄组的生成人脸应该被判别器D判别为假,对于真实的人脸属于真的概率D(x|)应当比较高。除此之外D还负责校准与生成的图片。由此得出目标函数为:
与标准GANs相似,CGANs是不稳定的。导致生成的图片不真实,质量不高。论文借鉴《 Least squares generative adversarial networks》,此论文推动生成的人脸和真是的人脸全部接近决策便捷,从而使他们不可分。因此,LSGANs能够生成更高质量的图片并且训练是更加稳定的。因此,本论文选择了一个条件LSGANs表达为:
为了优化C-LSGANs,此论文用了在《Generative Adversarial Text to Image Synthesis》中提出的判别器很好地校准条件和生成的图片。
(2) 身份保持模块。adversarial loss只能够使得生成器生成服从于指定数据分布的样本,因此,生成的样本可能像指定年龄组的任何一个人,因此论文提出了一个perceptual loss :
其中h(.) 是在一个预训练好的神经网络中的特定的特征层中取出的特征。不用像素空间上的x和他的指定年龄生成脸G(x|)之间的均方误差(MSE)的原因是,指定年龄生成脸包括在头发颜色、胡须、皱纹、后移的发际线等的变化,因此他跟x变得不同了。MSE loss 会使G(x|)与x接近。在相同的特征空间,perceptual loss 使得生成的图片很接近输入人脸的特征。
从一个合适的层h(.)取得特征对于保留身份信息来说是非常重要的。在风格迁移中的实验显示,底层的特征层更加擅长保持原来的内容,高层的层更能保持像颜色,质地等的风格。所以采用一个预训练的神经网络的lower feature layer来作为h(.)。为了平衡生成图片的质量和人脸的身份信息,论文在第四节取用了在ImageNet中的Alexnet pre-trained的fc7到conv2,并且依据经验设定h(x)为conv5层的特征。
(3) 年龄分类模块。为了进一步保证生成的人脸在指定的年龄段中,论文作者预训练了一个年龄分类器,并且把它应用于人脸属于哪一个年龄段。在训练IPCGANs时,修正这个年龄分类器的参数,并把它应用于给生成的人脸G(x|)分类。如果生成的人脸确实属于中,年龄分类器则给一个小的penalty,相反,如果不属于,则各一个大的penalty。在这里将age classification loss 放到目标函数中,他代表了年龄分类器的损失。定义为:
其中,l(.)岱庙了一个softmax loss。通过一个反向传播,年龄分类损失促使生成器的参数改变从而生成指定年龄段的人脸。
(4) 目标函数。如下:
控制输入图像被老化处理的程度,控制我们想要保持身份信息的程度,并且让生成的样本落入指定的年龄分组。在第四节找到了最合适的。
3.3 网络结构
生成器和判别器的网络结构。受到风格迁移和不匹配图片翻译的启发,生成器的设计与《 Unpaired imageto-image translation using cycle-consistent adversarial networks》中的除了第一个卷积层之外都相同。生成器接收128*128*3的图片,和128*128*5的条件特征图作为输入,所以在生成器中选取了6个residual blocks。输入图片和条件特征图合并,将合并后的特诊图发送到第一个卷积层。
判别器的结构采用自《Invertible Conditional GANs for image editing》和 《Unpaired imageto-image translation using cycle-consistent adversarial networks》。输入条件到判别器的方法与《Invertible Conditional GANs for image editing》一致,命名规则与《Perceptual Losses for Real-Time Style Transfer and Super-Resolution》一致,代表一个4*4的convolution-Batchnorm-leakyRelu layer,步长为2,k个输出通道。判别器的结构是。在第一个层中不用Batchnorm,将如数条件的操作放在这一层之后。LeakyRelu的斜率设为0.2。特征图经过层之后的大小为64*64,因此条件特征图被喂进生成器时也由128变为64。的特征图和条件特征图合并后送到层中。
年龄分类网络结构采用自Alexnet,与其到是一致的,在之后增加了两个全连接层和一个softmax layer 。
4 实验和评价
4.1 数据集
使用Cross-Age-Celebrity Dataset(CACD)训练和测试。CACD中包含160000张2000个名人从16岁到62岁的人脸图像。经过处理得到163104张400*400的CACD图像。90%用来训练,10%用来测试。