Project 3: Face Morphing

Defining Correspondences

I marked 64 keypoints for each image using ginput and used Delaunay to illustrate the triangulation.

bears

Eric with Keypoints

bears

Brad with Keypoints

bears

Eric with Triangulation

bears

Brad with Triangulation

Computing the "Mid-way Face"

I calculate the triangulation at the mid-way points and define an affine transformation matrix. I take the inverse of this matrix and apply it to each triangle of the mid-way triangulation to get the original points on each image. Then I use interpolation to get the colors and then cross-dissolve.

bears

Eric

bears

Brad

bears

Erad

The Morph Sequence

I run the same function to compute the mid-way face, but with different warp and cross-dissolve weights for each frame. I run this function 45 times to produce 45 frames.

bears

The “Mean Face” of a Population

I use the IMM Face Database (37 images) and calculate the mean geometry of all the faces. I then morph every face to fit the mean geometry. Here are some examples:

bears
bears
bears
bears
bears
bears

I compute the mean face by averaging color across all morphed images.

bears

I then morph my face into the mean face's geometry and morph the mean face into my face's geometry.

bears

Eric

bears

Eric Warped to Mean

bears

Mean Warped to Eric

Caricatures: Extrapolating from the Mean

I take the difference between the points of the mean face and my face's points and added 2 times that value to the original points on my face. I compute a triangulation of the extrapolated points and warp to it.

bears

Bells and Whistles

I get an image of the average Chinese woman and define keypoints. I morph my appearance, shape, and both.

bears

Average Chinese woman

bears

Eric

bears

Appearance

bears

Shape

bears

Both