Project 4: Face Morphing and Modeling a Photo Collection

Nathan Blair, CS194-26

Giving Myself Facial Hair

This project explores different techniques for face morphing. First, I morph my face into those of my friends. Then, I look at the average face of the IMM Face Database, and morph my face towards the average. Finally, I add characteristics to my face such as facial hair, femininity, and a smile. I do this by morphing my face in the direction from the average face in my face dataset to the average face with facial hair, average female face, or average smiling face. This method is completely data driven. That is, it requires me to label which faces have facial hair, but it does not require me to create a model of what facial hair is.

My first task was to create a transition between myself and my friend Nick. To do this, I annotated both our faces with 58 keypoints that would be used for alignment during the morph. The point annotations were used to create a triangulation of the face using a Delaunay triangulation.

Annotating the Same Points on Each Face

Then, I computed 45 different partial morphs of the faces from completely my face to completely Nick's face. To compute these morphs, I aligned each triangle on my face with each corresponding triangle on nick's face using an affine transformation and cross-disolved over the colors.

Nick to Nathan transition

Next, I downloaded the IMM Face Database and computed the average face in the database. I also computed the average for various subpopulations including male, female, smiling, not smiling, and facial hair. It shouldn't be noted that the IMM Face Database contains 40 face images of 33 white men and 7 white women. Likewise, the means are biased in that way.

Some Examples from the IMM Database
Various Subpopulation Means: Male, Female, Smiling, Frowning, Facial Hair, Average

I morphed my face into the average face that was not smiling. As you can see, some features did not line up perfect. This is because of the different setting in which the pictures were taken. Notable differences include the width of the face in the picture and the fact that my nostrils are not visible while the IMM face nostrils are.

My face morphing into the average face.

Finally, I was able to add characteristics to my face and my friends' by morphing in the direction from the average to various subpopulation means. It is important to note that I did not move my face to the subpopulation mean. Instead, I changed my face in the same ways an average face would change to get to the subpopulation mean. I was most succesful by morphing smiles and facial hair. I also tried changing gender, but was less succesful doing this.



Adding a Smile. Original, Video Transition, Smiling.

For facial hair, I morphed three times the distance from the mean image to the subpopulation mean image to accentuate the transition.



Adding Facial Hair.

I tried adding more female features to myself. If I had a larger database I think this could have been a more representative transition. For example, I think my face was arbitrarily widened because the female faces in this particular database happened to be wider than the average face.

Morphing Genders.