CS194-26 Project 3

Face Morphing

Sarina Sabouri - October 6th, 2021


Defining Correspondences

For the images of George Clooney and Brad Pitt as seen below, I first defined 42 correspondence points at key facial features.

Brad Pitt
George Clooney
Brad Pitt with Facial Keypoints
George Clooney with Facial Keypoints

Next, I found the midway intermediate points between Brad and George in order to find the triangulation mesh.

Triangular Mesh of Intermediate Image

Computing the Midway Face

Next, I computed the midway face of Brad and George's faces. To do this, I computed the average shape of the two faces, warped both faces to this average shape, and then averaged the colors of the two images together.

Midway face of Brad and George

The Morph Sequence

Finally, I created a morph sequence from Brad to George's face. In order to do this I generated 45 frames in which each frame I found the intermediate shape between the two images, warped both to the average, and then cross-dissolved the images to obtain the frame.

Morph of Brad to George

The "Mean Face" of a Population

I decided to find the mean face of a population of Danes from the following dataset of annotated images. To do this, I first morphed each of the faces in the dataset to the average shape. Below are a few examples of the faces warped to the average shape:

After warping the images to the average shape, I computed the average color of all of them in order to produce the mean face:

Mean Face of Danes

Next, I warped my face to the average geometry of Danes, and I warped the Mean Face of Danes to my geometry as shown below:

My face warped to average Danish geometry
Average Danish face warped to my geometry

Caricatures: Extrapolating from the Mean

Next, I produced caricatures of my face by extrapolating from the population of Danes. I used two different values of alpha which determined the degree of the caricature. An alpha of 1.5 created a "hyper-Dane" caricature, while an alpha of -1 created an "anti-Dane" caricature as shown below:

My original face
Caricature with alpha = 1.5
Caricature with alpha = -1


Bells and Whistles: Changing my ethnicity

I decided to try changing my ethnicity to Danish using the average face from the Danes dataset above. First I morphed just the shape of my face to the average shape, then I morphed just my appearance, and finally I did a morph of both shape and appearance as shown below:

Morph to average shape
Morph to appearance
Morph to average shape and appearance

Here is the image morph of my appearance, shape, and shape + appearance morph to the Danish average face using alpha = 0.5.

My original face
Change in just shape
Change in just appearance
Change in shape and appearance


Bells and Whistles: Face-Morphing Music Video

I created a face-morphing music video of me and my friends' faces.