CS 194-26 Fall 2017

Project 4: Face Morphing

Sheng-Yu Wang (ade)



Overview

This project is about morphing from faces to faces, and I also get to calculate some mean faces for the face datasets.

To morph faces, corresponding feature points (edges, eyes, ears, etc.) between faces are selected, and those feature points are linearly interpolated throughout the morphing phase. In order to seamlessly morph the other region, Delaunay triangulization helps defines triangular meshes, where the affine transformation for each corresponding triangles can be defined and calculated. Warping is then achievable given the transformation function, and therefore the face morphing can be implemented with these tricks. During the morphing, not only the shape, the colors of two images are also linearly interpolated to create the morphing effect. The morphing result is pretty good with little artifacts.



Correspondence points are defined using cpselect. The averge face is generated with both average shape and color.

My face
Average image
Kobe's face
Triangulation of average face
Morph sequence


Mean Face

This is the mean face in Danes' dataset. Note that in order to have clear face features, it is important to align the face features before calculating the mean. Fortunately, the feature points are given in the dataset, so all the faces are morphed to the average positions of the feature points in shape (note the coloring is not changed) and then averaged. However, the edge of the head is not provided as features in this data set, so there will be some wierd artifacts at the forehead part, which is shown below.

Average face

Examples of faces morphed into the average face shape:

My face morphed into the average face geometry, and vice versa.

My face to average face
Average face to my face

Note that to avoid the forehead having some wierd transformation, here the corresponding feature points are redefined for the two images above. Although it also looks weird, but there's no unexpected shape morphing of the facial features.



Caricature

Note that the caricature is calculated merely based on appearance(color); in other words, shape extrapolation is not taken into account for the caricature calculation. Instead, the pixel values are the only things that are extrapolated. To compute the caricature, the deviation between my face and the average face is calculated, and the results will be (caricature factor)*deviation + mean. The skin color gets darker as the caricature factor goes higher.

Caricature of my face with factor = 0.8
Caricature of my face with factor = 1.2
Caricature of my face with factor = 1.5
Caricature of my face with factor = 2.0


Bells and Whistles - Ethnicity

Similar morphing techniques applied to the attempt of ethnicity transform. Below are results of three different morphing approaches from my face to an average european male face.

My face
Average face found online
Morph only appearance
Morph only shape
Morph both