Face Morphing

Overview

In this project, I explored face morphing techniques to produce a seamless transformation from one face to another. The process involved defining facial keypoints, computing a midway face, generating a morph sequence, and creating the mean face of a population. Additionally, I experimented with caricatures by extrapolating from the population mean and morphing my face onto another gender.

Part 1: Defining Correspondences

To begin the morphing process, I needed to define pairs of corresponding points on both images. I used the provided labeling tool to select keypoints on my face and another person's face

Alan's Face
Alan's Face
Hanlin's Face
Hanlin's Face

After selecting the keypoints, I computed a Delaunay triangulation on the midway shape to create a triangulation that would be used for morphing.

Alan's Triangulation
Alan's Triangulation
Hanlin's Triangulation
Hanlin's Triangulation

Part 2: Computing the Mid-way Face

The mid-way face is computed by averaging the keypoint locations of both faces to obtain the average shape. Then, both faces are warped into this average shape using affine transformations on each triangle in the triangulation mesh. Finally, the colors of the two warped images are averaged to produce the mid-way face.

Mid-way Face
Mid-way Face between Alan and Hanlin

Part 3: The Morph Sequence

Using the morphing function, I generated a sequence of images that gradually transform my face into Hanlin's face.

Morph Sequence

Part 4: The "Mean Face" of a Population

For this part, I used the provided Danish faces dataset to compute the average face shape of the population. I warped select faces in the dataset to the average shape.

Warped Faces to Average Shape
Examples of Faces Warped to the Average Shape

The computed mean face represents the average appearance of the population.

Average Face
Computed Average Face of the Population

I then warped my face into the average geometry and also warped the average face into my geometry to observe the differences.

Alan Warped to Average Geometry
Alan Warped to Average Geometry
Average Face Warped to Alan's Geometry
Average Face Warped to Alan's Geometry

Part 5: Caricatures and Gender Morphing

By extrapolating from the population mean, I created a caricature of my face. This was done by amplifying the difference between my facial features and the average facial features.

Additionally, I explored gender morphing by transforming my face towards the average female face from the dataset. This involved morphing both the shape and appearance to achieve a realistic transformation.

Alan Gender Bend
Alan Gender Bend
Average Danish Women Face
Average Danish Women Face