CS 194-26: Project 3

Alexander Kristoffersen, akristoffersen@berkeley.edu

Defining Correspondences

In this project, we dig into face morphing. In order to do this, we first have to define a corresponding triangulation of both face images:

We can then find the affine transformation between the corresponding triangles in each image, and sample from each image respectively to morph the image. We can take a fraction of each image's physical attributes (locations of the triangles' points) as well as blend the colors between them. Here is the 50/50 morph of Aaron and I:

This fails slightly because of the discreteness of our clothes and my beard / smile and Aaron's hair, but otherwise is very convincing!

By iterating over small changes in both physiology and color coefficients, we can create a video showing a full transformation between us:

The "Mean face" of a population

One can use a similar technique to create an average face of a population. When doing this naively with an image dataset, the images will not be exactly lined up, creating a blurry average result:

We can use keypoints from every image to create an 'average shape', then morph every image to fit that shape. Here are some examples:

Finally, we can create an average from these morphed images:

With this average, we can convert a photo of me into their geometry:

Note: this does not work indredibly well because of the pretty bad keypoints that this dataset uses. However, I think the conversion of the average norweigian into my geometry is pretty interesting:

Compared to the average norwegian, I have a much longer face. My sideburns are much thinner, and my jaw is less strong and straight. When cariacaturing torwards the average Norwegian, it emphasize those features:

Bells and Whistles: American Presidents

Feeling very patriotic, I decided to make a movie from some of the painted portraits of some American presidents. This movie includes: