CS 194-26 Project 4: Face Morphing

Christine Zhou, cs194-26-act

In this project, we want to take many different faces and morph them together in different ways.

1. Defining Correspondences

First, we must define how the two faces correspond to each other since each face has its own features. We did this by choosing a set of points (the four corners of the image, eyes, nostrils, lips, cheekbones, etc.), and then recording the coordinates of each of those points in each of the images. The points on both George Clooney and Taylor Swift are shown below:

George George-points

Taylor Taylor-points

After recording the coordinates of each image, the coordinates are then averaged. These averaged coordinates then triangulated, which will be used in the next part when creating the mid-way face.

2. "Mid-way" Face

Using the triangulated mid-way coordinates, we then warp both faces into that shape and average the colors together. We do this by implementing an affine wrap for each triangle in the triangulation from the original image into the new shape. The "mid-way" face for Taylor Swift and George Clooney is shown below:

George and Taylor

3. The Morph Sequence

Now we generate the morph sequence, which is done by creating 45 different images with different weights on each of the image's pixel values. The morph of George Clooney into Taylor Swift is shown below:

George and Taylor GIF

4. The "Mean Face" of a Population

Using similar techniques to how we produced the "mid-way" face, we generate the "mean face" of a population. I used the [FEI database of faces][https://fei.edu.br/~cet/facedatabase.html], which provides images along with the corresponding points of each image. The mean face is shown below:

mean face

The individual faces are shown morphed into the average face shape.

114a 114a-average

111a 111a-average

121a 121a-average

I also morphed George Clooney's face into the average face shape, and morphed the average face into George Clooney's face shape:

george george-average

average average-george

5. Caricatures

We then computed a caricature of the image. If we had source image S and average face T, then our new correspondence coordinates would be T + alpha * (S - T). The (S - T) term allows us to find the features of the source that are different from the average. These are then weighted by an alpha value and added back to the original correspondence coordinates. An example of a caricature is shown below with alpha value 1.5:

george george-caricature

6. Bells and Whistles

For bells and whistles, I morphed George Clooney on the average Han Chinese male face shape. The result is shown below:

george george-chinese chinese