Morph your face to someone else's

Introduction

Morphing essentially consists of two parts.
Color: The morphing of color is simply done via cross dissolve.
Shape: The morphing of shape is more complicated, and requires image warping techniques. We start off asking for some corresponding points of image A and B, typically eyes, ears, mouth, chins, etc.
In this example, I want to morph my face (left image) onto Sandy's face (right image).
Me Sandy
I first defined some corresponding points. Then I performed triangulation. In order not to generate extremely thin triangles, I used Delauney triangulation. The points and triangulation are show below.
My points Sandy's points My triangulation Sandy's triangulation
We now simply warp the triangles in to the correct place. Here both the gif of the morph sequence and the midway face are shown.
Midway Face Sequence

Mean Face of Population

First we generate the average "eigenface" from the following dataset of Danish computer scientists, using image wrapping. Here are the average male and female faces.
Male eigenface female eigenface
Now I try to morph one of danish computer scientists and me on to the eigenface. Here is what it looks like:
Male Female Me

Caricature

Now that we calculated the Danish population mean, we can add or subtract weighted difference between points of my face and corresponding points of the mean face. Using an alpha of 0.5 and a distortion of 0.8, we get the results on the right. (Problem with the eyes is due to bad point selection....)
More Danish Less Danish

More interesting results

This technique gets more interesting when applied across races and gender. Here I morph my face to the average American male face and average American female face.
Average male American face Midway face Sequence
Average female American face Midway face Sequence
Note: This is a class project for CS 194-26 Image Manipulation and Computational Photography taught by Professor Alexei Efros at UC Berkeley. Full description is available here.