CS194-26 Project 4: Face Morphing

Hersh Sanghvi | cs194-26-add



The aim of this project is to create, in effect, better alignments for two faces by defining correspondences between them, computing the Delaunay Triangulation between those points, and subsequently computing affine warps between those triangles to warp the faces to each other. This allows you to also “extrapolate” the difference between two faces, or create more intelligent face averages.


Part I: The Midway Face


I wanted to compute the midway face between my and Dev Patel’s face:

Description: Macintosh HD:Users:Hersh:Programming:cs194-26:proj4:me3.jpg


The midway face is:

Description: Macintosh HD:Users:Hersh:Programming:cs194-26:proj4:morph_seq:im_0.522727272727.png


Overall it turned out pretty well. The eyes match up well because I defined the correspondences strongly, and the case is same for the nose and the general chin structure.


Part II: The Morph Sequence

Description: Macintosh HD:Users:Hersh:Programming:cs194-26:proj4:movie4.gif


This is the full morph sequence from my face to Dev Patel’s. We can see that this is a smooth morph, as opposed to what would happen if they were simply cross dissolved. In that case, we would see shots with multiple eyes in them, due to misalignments.


Part III: The mean face of the population


Here, I computed the mean face of the Danes dataset, specifically the smiling males:

Description: Macintosh HD:Users:Hersh:Programming:cs194-26:proj4:face_avg.png


And here are a couple of the Danes themselves merged to the mean:


To the mean:




To the mean:

Description: Macintosh HD:Users:Hersh:Programming:cs194-26:proj4:face_to_mean_10.png



And here’s that picture of me, this time morphed to the mean:


It looks a little bit ridiculous, but this is because there were a number of key differences in facial features, such as the distance of my eyes to the side of my head.


And here’s the mean, warped to my facial structure:



An interesting look for sure. Again, the large differences in the relative locations of facial features are probably responsible for this difference.


Here is a caricature of myself. What I did was I took the difference in the correspondences between me and the mean, multiplied that difference by 1.5, and added it

back to my points. This results in an exaggeration of my features, as they are different from the mean.


Part IV: Bells and Whistles: Morphing to the Average Indian Woman


In this part, I wanted to see what effect could be achieved on my own face by morphing it to the average Indian woman.



This is me morphed to the woman’s shape:


Looks pretty funny. The bottom part of my face unfortunately gets elongated, as it gets merged with the bottom of the indian woman due to the way I defined my correspondences. However, notice that the shapes of the two do match quite well.


Here’s the midway face:

Description: Macintosh HD:Users:Hersh:Programming:cs194-26:proj4:midway_bw.png

This one probably performed the best, because the color averaging can smooth out some of the weirdness, and meeting halfway in the warp definitely eliminates some of the incorrect shapes that result from a full warp.


As expected, due to the misalignment, the cross-dissolve does not perform well: