Project Description
In this project, I used Delaunay triangulations to do a variety of things. I morphed my friend Nasan and my face and created a smooth transition to display the morphing. I also computed the mean face of a large dataset of faces, and then morphed several of the faces to that mean. I created caricatures of my face using the average face in regular basis and in a PCA basis for the keypoints.
Part 1: Defining Correspondences
Here, I manually selected facial keypoints on both images A and B to define correspondences between the two faces. I used Delaunay triangulation to create a mesh for morphing.
Part 2: Computing the "Mid-way Face"
Using the defined correspondences, I computed the mid-way face by averaging the keypoints of both images and warping both images into the average shape, then blending the colors.
Part 3: Morph Sequence
Below is the morph sequence from Image A to Image B, showing the smooth transition between the two faces.
Part 4: Mean Face of a Population
I used the FEI dataset of annotated faces to compute the average face shape and appearance of the population. I then warped the first 5 faces in the dataset into the average shape and computed the population's mean face.
Part 5: Caricatures
By extrapolating from the population mean, I created a caricature of my face. Below is the result of this extrapolation. Alpha value is -0.5. This means we are placing 1.5 weight on my keypoints and a negative 0.5 weight on the average keypoints.
Bells and Whistles - PCA
I computed several PCA bases for the face space, using different numbers of principal components. I then attempted to reconstruct three of the original images using these bases to see how many principal components are necessary for a good enough reconstruction. Below you can see the eigenfaces for the first 12 principal components.
I also computed caricatures in this PCA space. You can see that the reconstruction and the caricature from it is not so good, because my face is not part of the original dataset. As a result you cannot really tell that the caricature is really a caricature but it does have an alpha of -0.5.