CS 194 Fall 2020

Project 3: Face Morphing!

Leon Ming


In this project, we perform transformations to create morphs between images.

  1. Defining Correspondences
  2. The Midway Face
  3. The Morph Sequence
  4. The Mean Face
  5. Caricatures
  6. Bells & Whistles: Changing Gender

Defining Correspondences

First, let's take a look at the original pictures of me and George Clooney:

To define the correspondences between images, I wrote a function to let me click points on an input image. Then I used scipy's Delaunay function to create a triangulation of those keypoints. Here's the triangulation of the average keypoints superimposed on my face and George Clooney's face

The Midway Face

Using the inverse warp technique discussed in class, I found the average shape of my face and George Clooney's face and warped both our faces to the average shape, then took the average of the colors:

The Morph Sequence

By generalizing the code I wrote above to take in shape and appearance proportions as parameters, I created a 150-frame morph sequence from me to George:

The Mean Face

Using the same technique as before, I warped each face in a population to the average shape, then took the average of their appearances. The following are a few examples of individuals being warped to the average shape.

This is the population average shape in both shape and color.

On the left is my face warped to the average shape of the population. On the right is the population's average face warped to my face shape.


Using the average computed above, I created a caricature of my own face. On the left is my original face. On the right is a 150% caricature of my faceā€”both the shape and appearance are morphed 50% of the way in the direction opposite to the average face from above.

Bells & Whistles: Changing Gender

I found a picture online of the average Taiwanese male face. I thought it would be interesting to see my friend's face warped into this average. Here's the average face I found:

And here's my friend's face:

Using my morphing algorithm from before, I adjusted the settings such that only my friend's appearance is morphed 50% of the way to the average:

And this is the result of morphing only my friend's face shape, but not appearance, 50% of the way to the average.

Now let's combine both effects.