Project 3: Face Morphing

Matt Morrill

For this project we were to make images of one face morphing to another. To do this, you start by defining a set of points that correspond to each other on each image. For example, we know that the eyes should be aligned together so we define a point on each image for the center of the eye. After we have defined a number of points, we create a mesh of triangles over these points.

The image above gives you an example of such a mesh of triangles. In this case, the mesh is over the average of the points from the two images. There are 64 points of correspondence defined, and 122 triangles.

Here is the mesh overlayed with the two images of me on the right, and my target on the left. The blue lines represent the mesh for the points defined on that face, and the red lines represent what the triangles should be at the midway point. Once we have the triangle mesh and a target midpoint, we define an affine transformation that maps points in each triangle to points in the destination triangle. We use this to warp each face into the point that has a shape in between the two faces.

Here is my face morphed to the mean geometry.

Here is the target face morphed to the mean geometry.

Here is the two morphed faces crossfaded together. If we repeat this many times for multiple points in between the two faces, we can create an animation of the warp happening.

 

Just for fun, I decided to morph my friend Phil into a picture of a dog that has an uncanny resemblence.

 

By averaging a set of predetermined points for myself and 22 other classmates, we can compute the average face shown below.