CS194-26 Project 3: Face Warping

Matthew Tang

Part 1: Defining Correspondences

The goal was to select facial keypoints and compute a Delaunay triangulation on the average position of the facial keypoints. I decided to morph Hugh Jackman into Ryan Reynolds. Here are the original images

Hugh Jackman

Ryan Reynolds

Jackman Labelled

Reynolds Labelled

Jackman Triangulation

Reynolds Triangulation

Part 2: Computing the "mid-way" face

The next step was to compute a mid-way morph between Hugh Jackman and Ryan Reynolds. I computed a morph function to iterate through the triangles and morph them into the mid-way position. I vectorized this to avoid looping over each pixel.

Mid-way face

Part 3: The morph sequence

Now that we have a mid-way morph, we can adjust the warp fraction and dissolve fraction to create an animated GIF. I created 46 frames, animated at 30 FPS.

Morph Sequence

Part 4: Mean face

We can use this morph/warp technique to compute the mean face. I chose the Danes to compute the mean frace.

Dane Mean Face

Dane Mean Face Shape

Dane(1) Before

Dane(1) After

Dane(6) Before

Dane(6) After


We can also warp my face into the avg geometry and vice versa

My face

My face into average Dane

Average Dane onto my face

Part 5: Caricature

We can extrapolate features from the population to create a caricature of the average Dane onto my face.

Caricature

Part 6: Bells and Whistles (Change gender of my face)

We can use the morph/warp code to change the gender of my face. I used the average Mainland Han Chinese Woman to accomplish this.

My face

Average Chinese Woman

Shape warp only

Color only

Color and shape warp to chinese female