CS194-26 Project 3 - Face Morphing

This goal of this project is to leverage affine transformations to combine the complex features and characteristics of multiple faces.

Defining Correspondences

To merge two faces, we first define a common set of features on each face that will map exactly to the corresponding feature on the other. We then use these points to create a correspondence between all the pixels on each image with the other. The common points we use are:

We can select these points on two faces:

Me
Professor Ren Ng

We take the average position of each point in both images, and compute a Delaunay triangulation of the average positions. This forms a "mesh" on our faces:

We compute an affine transform from each triangle on both faces to the average triangle, giving both me and Professor Ng the same face shape, equivalent to the average of our face shapes.

These two images are averaged to create Ry-Ren!

While in the previous image, Ryan and Ren are weighted equally to compute the shape and color, we can also selectively weight each image. Selecting 11 different pairs of weights of each face, I created a morphing video of Ren devolving into me.

"Mean Faces"

I calculated the mean face shape and mean face of the Danes dataset:

We can map some of the people's faces onto the "mean face" shape.

Originals:

Morphed:

I also mapped my face onto the "mean face" and the "mean face" onto my face shape:

Bell and Whistle

I morphed my face between a face of different race, gender, and a different smile! Professor Laura Waller!