Project 4: Face Morphing

Yena Kim - cs194-26-aax




Defining Correspondences

I have decided to morph my face with my friend's face. In order to morph the two together, I need to find correspondence points that show where the different features on the two faces are. For example, I used points on the eyes, nose, mouth, head shape, etc. I also added the corners of the images as points in order to morph the whole image. I then needed to triangulate the points to divide the image into triangles that will then go through affine transformations to go from my face to my friend's. I used Delaunay to find the triangles. Below are the correspondence points and the triangulate images.

me points and triangles
my friend points and triangles

Computing the "Mid-way" Face

I found the average shape between our faces by finding the average of each correspondance point pair. I then warped both of our faces into that new shape and averaged the colors together to create the mid-way face. I warped the faces by finding the affine transformation matrix for each triangle to go from either of our faces to the mid-way face. I used these matrices to inverse warp to get the final mid-way face below.

me original
midway me + my friend
my friend original

The Morph Sequence

I computed the images for each frame from morphing my face to my friend's and put them together in a gif below.

morph points and triangles

The "Mean Face" of a Population

Using the Danes database, I computed the average face of the males and females as shown below.

Danes average male face
Danes average female face

Here are some of the warped faces.

Danes original
Danes warped
female dane original
female dane warped

I have also warped my face into the average face shapes and theirs to mine.

me warped to average male Danes
male Danes warped to me
me warped to average female Danes
female Danes warped to me

Caricatures

I extrapolated from the mean face of the males from above, and created caricatures of myself, using different values of alpha. The more positive alphas make my unique characteristics stand out more while the more negative alphas emphasize the unique features of the average Danish male more.

me alpha = -1
me alpha = -0.5
me alpha = 1.5
me alpha = 2

Bells & Whistles

I took the average face of a Spanish woman and morphed my face to its features. Here are the original images and the animated gif morphing between the two.

me original
morph me + average Spanish female
average Spanish female original

Below, I morphed just the shape, the appearance, and both.

spanish me shape
spanish me appearance
spanish me shape + appearance