15-463 Project 3: Face Morphing and Modeling

David Klionsky

Morphing

The goal of this assignment was to produce an animation in which our own face morphs into the face of another person in the class. I also made a morph of myself, using school portraits from age 3 to age 17.

  

To implement the morph, a set of corresponding points are chosen on both faces. These points are then triangulated (using a Delaunay triangulation) and transformation matrices to transform points from one image to the other are generated. Next, each face is warped to match the shape of the other face. That is, the control points of face A are transformed to match the control points of face B, and the pixels in each triangle are interpolated to warp the image. Finally, the two warped images, which now have identical control points, are merged. To produce the 60 frame animation, 60 morphs were computed, each transforming my face an additional 1/60 of the way to the target face.
Click the animation above for the full size animation. You can see all the full size frames here.

Mean Face

An interesting application of face morphing is finding the "mean face" in a population. To do this, you take a collection of faces, identify corresponding points on all of them, compute the mean set of points, warp every face to this set of points, and then average together all warped faces. The result for our computational photography class looks like this:

  
Only 22 of the control point files I found had usable data, so this noisy result is from just 22 faces in the class. Some sample faces along with my own that have been warped on to the mean control points look like this:

My control points are here, and the full set of average faces can be seen here.


David Klionsky, 2/22/2010