Sam Zhou
CS194-26-aff

Face Morphing

In this project we will look to create clean morphing animations between two images of faces. We will accomplish this by using a cross fade and an affine transformation so that we get a smooth movement between two images which might have different face structures.

Sam Clooney

First, we will try to achieve this between a picture of myself and George Clooney. We annotate the images with 43 points and define sets of triangles for both images using Delaunay. We also define a set of triangles for the average location of the annotated points in the two images. Once we have the triangles, we can iterate over each corresponding trio in the two images plus the average location to determine the affine transformation that gets us from one to the other. Once we had the transformation, it was possible for us to determine which pixel in the two original images should be combined into the average image. This gives us the following mid point image of me and George Clooney

The image looks like a pretty good mix of the two of us and demonstrates some of the strengths and weaknesses of this technique. The hair at the top looks a bit off because my head was entirely in frame while his hair extended beyond the top of the image. Also I wear glasses while he does not which caused my glasses to look like they were melting. Aside from that, the eyes, nose, and lips look like a good hybrid of the two of our features.

This idea can be extended beyond just the average so that we can get any fractional mixture of two images. With enough images and a small enough step size in terms of the fractional weights, we can get a smooth morph from my face to George Clooneys.

The Danes

Now that we have a sense of how to find average images and create morphing sequences, we can apply this to a full dataset of faces to try and find the average face. I used the set of Danish faces and averaged all of them in the same way I averaged my face with George Clooney’s to produce the following:

Since the data set was mostly male, the face looks a bit more masculine than feminine. Here are two Danish faces being morphed to this average face.

Additionally, we can try to morph their faces to the average shape without taking the colors from the average face. This preserves their facial features while forcing their facial structures towards the mean.

This process ended up distoring the male face quite a bit as his face was a good deal wider and more square than the average face. For the female, the morph was smoother and it made her face rounder as well as a bit shorter.

Now that we have a sense of the average face, we can create caricatures of people’s faces by morphing them away from the mean. Since we have a transformation that essentially removes the features which distinguish them from the mean, reversing that transformation accentuates those differences.

Since the male face was so distorted when we morphed it to the mean shape, it makes sense that there looks to be some tearing/distortion when we make the caricature. The female’s morph is smoother but also looks silly as it mostly just elongates her face and pulls down her left jaw.

Finally, here is the morph of my face to the mean face, to the mean shape, and to a caricature of myself with respect to the average Danish face.

Bells and Whistles - Celebrity Animorphs

I made a looping gif of a few celebrity and animals somewhat associated with them as well as a few additional animals thrown in here and there. Hope you enjoy!