Image-to-Image Translation with GANs (Insight Artificial Intelligence Project, Spring 2017)
It has been recently shown that Generative Adversarial Networks (GANs) can produce synthetic images of exceptional visual fidelity. In this work, we propose the GAN-based method for automatic face aging. Contrary to previous works employing GANs for altering of facial attributes, we make a particular emphasize on preserving the original person's identity in the aged version of his/her face. To this end, we introduce a novel approach for "Identity-Preserving" optimization of GAN's latent vectors. The objective evaluation of the resulting aged and rejuvenated face images by the state-of-the-art face recognition and age estimation solutions demonstrate the high potential of the proposed method.READ FULL TEXT VIEW PDF
Generating identity-preserving faces aims to generate various face image...
Generative Adversarial Networks (GANs) are now capable of producing synt...
Face aging is the task aiming to translate the faces in input images to
A lifespan face synthesis (LFS) model aims to generate a set of
Recently, Generative Adversarial Networks (GANs) and image manipulating
Digitally retouching images has become a popular trend, with people post...
Given a monocular face image as input, 3D face geometry reconstruction a...
Image-to-Image Translation with GANs (Insight Artificial Intelligence Project, Spring 2017)
Face aging, also known as age synthesis  and age progression , is defined as aesthetically rendering a face image with natural aging and rejuvenating effects on the individual face . It has plenty of applications in various domains including cross-age face recognition , finding lost children and entertainment . Traditional face aging approaches can be roughly split between the prototyping ones [5, 6] and the modeling ones [7, 8]
. Prototyping approaches estimate average faces within predefined age groups. The differences between these faces constitute the aging patterns which are further used to transform an input face image into the target age group. The prototype approaches are simple and fast, but since they are based on general rules, they totally discard the personalized information which results in unrealistic images. On the contrary, modeling approaches employ parametric models to simulate the aging mechanisms of muscles, skin and skull of a particular individual. However, these approaches often require face aging sequences of the same person with wide range of ages which are very costly to collect.
The presented traditional face aging approaches are limited to modeling of the aging patterns missing the global comprehension of a human face (its personality traits, facial expression, possible facial accessories etc.) However, in many real-life use cases, face aging must be combined with other face alterations, such as adding sunglasses or beard. These non-trivial modifications require global generative models of human faces. Natural image generation has been thoroughly studied for years, but it has not been until 2014 when advances in deep learning has allowed to produce image samples and interpolations of very high visual fidelity. The key model which has made it possible is called Generative Adversarial Network (GAN) and is presented in Subsection 2.1
. Contrary to autoencoders (for example, variational autoencoders) which optimize the reconstruction loss and hence produce blurry images, GANs are explicitly trained to generate the most plausible and realistic images which are hard to distinguish from real data. GANs have already been employed to perform modifications on human faces, such as changing the hair color, adding sunglasses or even binary aging (i.e. simply making face look older or younger without precising particular age categories) [11, 12]. A common problem of previous GAN-based methods of face modification [11, 12] is the fact that the original person’s identity is often lost in the modified image. Therefore, in the present study, we focus on identity-preserving face aging. In particular, our contributions are as following:
We design Age-cGAN (Age Conditional Generative Adversarial Network), the first GAN to generate high quality synthetic images within required age categories.
We propose a novel latent vector optimization approach which allows Age-cGAN to reconstruct an input face image preserving the original person’s identity.
Our face aging method is based on Age-cGAN, a generative model for synthesis of human faces within required age categories. The design of Age-cGAN is detailed in Subsection 2.1. Once Age-cGAN is trained, the face aging is done in two steps (cf. Figure 1):
Given an input face image of age , find an optimal latent vector which allows to generate a reconstructed face as close as possible to the initial one (cf. Figure 1-(a)).
Given the target age , generate the resulting face image by simply switching the age at the input of the generator (cf. Figure 1-(b)).
The first step of the presented face aging method (i.e. input face reconstruction) is the key one. Therefore, in Subsection 2.2, we present our approach to approximately reconstruct an input face making a particular emphasize on preserving the original person’s identity in the reconstructed image.
Introduced in 
, GAN is a pair of neural networks: the generator and the discriminator . maps vectors from the noise space with a known distribution to the image space . The generator’s goal is to model the distribution of the image space (in this work, is the distribution of all possible face images). The discriminator’s goal is to distinguish real face images coming from the image distribution and synthetic images produced by the generator. Both networks are iteratively optimized against each other in a minimax game (hence the name “adversarial”).
Conditional GAN (cGAN) [13, 14] extends the GAN model allowing the generation of images with certain attributes (“conditions”). In practice, conditions can be any information related to the target face image: level of illumination, facial pose or facial attribute. More formally, cGAN training can be expressed as an optimization of the function , where and are parameters of and , respectively:
The Age-cGAN model proposed in this work uses the same design for the generator and the discriminator as in . Following , we inject the conditional information at the input of and at the first convolutional layer of . Age-cGAN is optimized using the ADAM algorithm  during epochs. In order to encode person’s age, we have defined six age categories: -, -, -, -, - and years old. They have been selected so that the training dataset (cf. Subsection 3.1) contains at least examples in each age category. Thus, the conditions of Age-cGAN are six-dimensional one-hot vectors.
Contrary to autoencoders, cGANs do not have an explicit mechanism for inverse mapping of an input image with attributes to a latent vector which is necessary for image reconstruction: . As in [12, 17], we circumvent this problem by training an encoder , a neural network which approximates the inverse mapping.
In order to train , we generate a synthetic dataset of K pairs , , where are random latent vectors,
are random age conditions uniformly distributed between six age categories,is the generator of the priorly trained Age-cGAN, and are the synthetic face images. is trained to minimize the Euclidean distances between estimated latent vectors and the ground truth latent vectors .
Despite GANs are arguably the most powerful generative models today, they cannot exactly reproduce the details of all real-life face images with their infinite possibilities of minor facial details, accessories, backgrounds etc. In general, a natural input face image can be rather approximated than exactly reconstructed with Age-cGAN. Thus, produce initial latent approximations which are good enough to serve as initializations of our optimization algorithm explained hereafter.
Face aging task, which is the ultimate goal of this work, assumes that while the age of a person must be changed, his/her identity should remain intact. In Subsection 3.3, it is shown that though initial latent approximations produced by result in visually plausible face reconstructions, the identity of the original person is lost in about % of cases (cf. Table 1). Therefore, initial latent approximations must be improved.
In , the similar problem of image reconstruction enhancement is solved by optimizing the latent vector to minimize the pixelwise Euclidean distance between the ground truth image and the reconstructed image . However, in the context of face reconstruction, the described “Pixelwise” latent vector optimization has two clear downsides: firstly, it increases the blurriness of reconstructions and secondly (and more importantly), it focuses on unnecessary details of input face images which have a strong impact on pixel level, but have nothing to do with a person’s identity (like background, sunglasses, hairstyle, moustache etc.)
Therefore, in this paper, we propose a novel “Identity-Preserving” latent vector optimization approach. The key idea is simple: given a face recognition neural network able to recognize a person’s identity in an input face image , the difference between the identities in the original and reconstructed images and can be expressed as the Euclidean distance between the corresponding embeddings and . Hence, minimizing this distance should improve the identity preservation in the reconstructed image :
In this paper, is an internal implementation of the “FaceNet” CNN . The generator and the face recognition network are differentiable with respect to their inputs, so the optimization problem 2 can be solved using the L-BFGS-B algorithm  with backtracking line search. The L-BFGS-B algorithm is initialized with initial latent approximations . Here and below in this work, we refer to the results of “Pixelwise” and “Identity-Preserving” latent vector optimizations as optimized latent approximations and denote them respectively as and . In Subsection 3.3, it is shown both subjectively and objectively that better preserves a person’s identity than .
Age-cGAN has been trained on the IMDB-Wiki_cleaned dataset  of about K images which is a subset of the public IMDB-Wiki dataset . More precisely, K images have been used for training of Age-cGAN and the remaining K have been used for the evaluation of identity-preserving face reconstruction (cf. Subsection 3.3).
Figure 2 illustrates synthetic faces of different ages generated with our Age-cGAN. Each row corresponds to a random latent vector and six columns correspond to six age conditions . Age-cGAN perfectly disentangles image information encoded by latent vectors and by conditions making them independent. More precisely, we observe that latent vectors encode person’s identity, facial pose, hair style, etc., while encodes uniquely the age.
In order to objectively measure how well Age-cGAN manages to generate faces belonging to precise age categories, we have used the state-of-the-art age estimation CNN described in . We compare the performances of the age estimation CNN on real images from the test part of IMDB-Wiki_cleaned and on K synthetic images generated by Age-cGAN. Despite the age estimation CNN has never seen synthetic images during the training, the resulting mean age estimation accuracy on synthetic images is just % lower than on natural ones. It proves that our model can be used for generation of realistic face images with the required age.
As explained in Subsection 2.2, we perform face reconstruction (i.e. the first step of our face aging method) in two iterations: firstly, (1) using initial latent approximations obtained from the encoder and then (2) using optimized latent approximations obtained by either “Pixelwise” or “Identity-Preserving” optimization approaches. Some examples of original test images, their initial and optimized reconstructions are presented in Figure 3 ((a), (b) and (c), respectively).
It can be seen in Figure 3 that the optimized reconstructions are closer to the original images than the initial ones. However, the choice is more complicated when it comes to the comparison of the two latent vector optimization approaches. On the one hand, “Pixelwise” optimization better reflects superficial face details: such as the hair color in the first line and the beard in the last line. On the other hand, the identity traits (like the form of the head in the second line or the form of the eyes in the first and last lines) are better represented by “Identity-Preserving” optimization.
For the sake of objective comparison of the two approaches for the identity-preserving face reconstruction, we employ “OpenFace”  software which is currently one of the best open-source face recognition solutions. Given two face images, “OpenFace” decides whether they belong to the same person or not. Using both approaches, we have reconstructed K test images of the IMDB-Wiki_cleaned dataset and fed the resulting images alongside corresponding originals to “OpenFace”. Table 1 presents the percentages of “OpenFace” positive outputs (i.e. when the software believed that a face image and its reconstruction belong to the same person). The results confirm the visual observations presented above. Initial reconstructions allow “OpenFace” to recognize the original person only in half of test examples. This percentage is slightly increased by “Pixelwise” optimization but the improvement is marginal. On the contrary, “Identity-Preserving” optimization approach preserves the person’s identities much better demonstrating by far the best face recognition performance of %.
|Reconstruction type||FR score|
|Initial Reconstruction ()||%|
|“Pixelwise” Optimization ()||%|
|“Identity-Preserving” Optimization ()||82.9%|
Finally, once an identity-preserving face reconstruction of the original image is obtained, we can simply substitute the initial age category by the target age category in order to obtain the output of our face aging method: . Figure 3-(d) illustrates how it works in practice. Our method manages both to realistically age an originally young face into a senior one as in the 2nd line of Figure 3 and vice-versa as in the last line.
In this work, we have proposed a new effective method for synthetic aging of human faces based on Age Conditional Generative Adversarial Network (Age-cGAN). The method is composed of two steps: (1) input face reconstruction requiring the solution of an optimization problem in order to find an optimal latent approximation , (2) and face aging itself performed by a simple change of condition at the input of the generator. The cornerstone of our method is the novel “Identity-Preserving” latent vector optimization approach allowing to preserve the original person’s identity in the reconstruction. This approach is universal meaning that it can be used to preserve identity not only for face aging but also for other face alterations (e.g. adding a beard, sunglasses etc.)
Our face aging method can be used for synthetic augmentation of face datasets and for improving the robustness of face recognition solutions in cross-age scenarios. It is part of our future work. Moreover, we believe that the face reconstruction part of our method can be further improved by combining “Pixelwise” and “Identity-Preserving” approaches into one optimization objective. We are also planning to explore this path in our further studies.
Proceedings of International Conference on Computer Vision, Santiago, Chile, 2015.
Proceedings of Computer Vision and Pattern Recognition, Las Vegas, USA, 2016.
Proceedings of International Conference on Machine Learning, New York, USA, 2016.
Class Project for Stanford CS231N: Convolutional Neural Networks for Visual Recognition, 2014.