Project 4: Face Morphing

Lynn Zhou cs194-26-aet

Project Overview

Face morphing involves both warping the colors and the shape of two pictures. We define the shape using points, the correspondences, which are selectively chosen to sort of frame the face. I then averaged the points from both picture A and picture B and created a map of each picture by using a Delaunay triangulation, which uses these points and creates the map of triangles.

Mid-Way Face

I have the two original images here, one of me and George Clooney. To compute the mid-way face, we need to be able to map the triangles in the two pictures to each other, which is done through an affine transformation. To actually blend the photos together, we do this for every triangle in both of the pictures and use inverse-warping to average the values of the pixels for each pixel in the target triangle. By using different weights on the shapes and values of either of the images, we can create different mid-way faces for the two images.

Mid-way face

Morph Sequence

To create the morph sequence, I defined a function that would generate 45 frames with slowly increasing weights starting from 0 and ending with 1, meaning that the first frame will be solely photo A and the second will be solely photo B and all the other frames are the mid-way faces with different weights on the interval, which when combined into a gif, creates the morph sequence.

GIF morph

Since my face is very different, morphing Robert Downey Jr's face gives better results

GIF morph

Mean Face

To find the mean face of a population, I averaged the values of all the correspondences to find the average shape and then used a similar morphing technique to map the values of the pixels as well, generating an average of all the different faces. I used the Danes dataset and took pictures of the men who were smiling, which generated this average face:

Average Face of Smiling Danish Men

To morph faces into the average shape, I took the average shape of the dataset and morphed the individual faces into that shape, creating these images(first is the original and the second is morphed into the average face shape):

An example of a couple morphs from the face to the average shape:

Using my own face to warp with the geometry...

Original image

My face warped into the average Danish geometry

The average danish warped into my face shape

Caricatures

To create caricatures, I first calculated the difference between the shape of my own face and the average Dane's shape. The shape of the caricature can then be made using the shape of my own face combined with an alpha factor times the differences and then warped accordingly

Alpha = 0.5

Alpha = 1

Alpha = 1.5

Alpha = 2

Bells and Whistles

Ethnicity Change

I found a pictures of an average french woman and morphed my face into the geometry of the french face (at 50%) and kept my shape and morphed the colors (at 50%)

Original picture of me

Original average french woman

My face morphed into the french woman's shape

My face morphed into the french woman's colors

My face morphed into the french woman's shape and colors

GIF morph