CS 194-26 Project 3 -- Face Morphing

Sean Dooher - cs194-26-acq

Mid-Way Face of Me and George

To calculate the midway face of George and me, we must first set up correspondence points to inform the morphing algorithm. The correspondence points for both the photo of me and the photo of George are below. Each one has the points and the Delaunay triangulation of those points. Note that this triangulation is the same for both photos to allow for a smooth morphing.

My Triangulation

me

George's Triangulation

george

Mid-Way Face

Using these correspondence points, we can warp both the images to the midway shape and combine the color channels in order to get a pretty convincing midway image:

george_me

By adding more correspondence points we can see a bit more well incorporated midway image:

george_me2

Parameterized Morphing

We can control the morphing done in two ways: the amount of color we take from each input photo while cross disolving and the amount we wait each of the photos' correspondence points when doing triangulation. The first one controls the color appearance of our image and the second controls the shape. For example we can map my colors on to George's shape and we get the following:

george_shape_me_color

and vice-versa

george_color_me_shape

We can now use these parameters to make some gifs of the transition:

George Few Correspondences George Many Correspondences Me and Average White Female

Mean Face of a Population

Using this morphing technique, we can calculate the mean face of a population simply by averaging all the shapes and colors of a set of images. I am using the MUCT face database which contains manually landmarked photos at a variety of angles and lighting conditions. I am using photos taken from the same camera in order to minimize noise from rotation for this average.

Example of Dataset

MUCT Subject 000 MUCT Subject 001
muct000 muct001

And here is the correspondence points and triangulation for those two images (triangulation is determined by averaging the shape of the whole dataset):

MUCT Subject 000 MUCT Subject 001
muct000 muct001

Means

Mean of All Subjects Mean of Female Subjects Mean of Male Subjects
mean_all mean_female mean_male

Here are some members of the dataset mapped onto this mean:

Subject 000 Subject 001 Subject 002 Subject 400 Subject 401
average_000 average_001 average_002 average_400 average_401

Mean Me

We can do the same trick as I did with George above to map my face into the mean.

Original Mean Shape My Color Mean Color My Shape
me_wide mean_shape_me_color.jpg mean_color_me_shape.jpg

Caricatures

Using these means (and others I found online), I can extrapolate this data in order to make the photo of me appear to have exaggerated features.

extra

Here I extrapolated past the female mean to exaggerate the female features:

female

Here I extrapolated in the other direction to try to minimize the feminine characteristics of my face:

female

Bells and Whistles

Gender Swapping

Using a white female mean I found online, I managed to change my gender.

Mean Female Me Female Color Only Female Shape Only
mean female_me female_color female_shape

Becoming German

Using a german male mean I found online, I managed to make myself look a bit German.

Mean German Me German Color Only German Shape Only
mean german_me german_color german_shape

Smiling

I can also use this to give me a smile by raising the correspondence points of my lips/cheeks.

smiling