CS194-26 Fall 2017 Programming Project #4
Betty Chang



Face Morphing

Objective

The goal of this project is to morph one face to another. To accomplish this, we first define correspondence points on the two images. We then compute the average coordinates of these points, and compute a Delaunay triangulation on these points. For each triangle, we can compute an affine matrix to transform from our source image to our target image. We can repeat this procedure for each time step with varying weights, and end up with 45 images, each one more and more similar to our target image. We can then make these images into a gif to display the morph.

The Mid-way Face

To compute our morph, we first want to find the mid-way face. To do this, we inverse warp each of our images into the average geometry. Then, we cross-dissolve the two resulting images into our final mid-way face.

Me

Ellen

Mid-way Face

The Morph Sequence

Once we find the mid-way face, we can morph each of our original images to the mid-way face. For each time step of each morph, the geometry we are warping the original image to becomes more and more similar to (heavily-weighted towards) the target image. During the cross-dissolve phase, we use the same weights so that the colors are becoming more and more similar to our target image as well. We end up with 45 images that we can make into a gif of the morph.

Me and Ellen

The "Mean Face" of a Population

For this part of the project, we found the mean face of a population using an annotated dataset of faces. Specifically, I picked out a set of only female smiling faces. After computing the average geometry of all the faces, we warp each face into this average geometry. Here are a few examples:

Female Smiling Face #1

Warped into Average Geometry

Female Smiling Face #2

Warped into Average Geometry

Then, we can find the mean face of the population using these warps:

Mean Face

Here is my face warped to the average geometry, and the mean face warped to my geometry:

My Face Warped to the Average Geometry

Mean Face Warped to my Geometry

Caricature

To make a caricature of my face, I took the difference between my face and the average face and accentuated it. I added the difference multiplied by some weight onto the original image, and warped my face to the new shape. I found that a weight of 0.5 seems to produce the best result:

Caricature of My Face

Bells and Whistles: Changing Genders

I found an image of the average Chinese man online and morphed my friend Marisa's face to the average Chinese man.

Marisa

Average Chinese Man

Here are the results of warping just the shape, just the appearance, and both:

Warping just the Shape

Morph just the Appearance

Morph Shape and Appearance