Face Morphing

CS 194-26 Project 3 Fall 2020

Glenn Wysen

halfway face
Fig.1 - My roommate Andrew and my roommate Donovan's faces being morphed between each other.

Defining Correspondences

I initially defined correspondence points on each face based on what I thought were important facial features. These points (shown in Fig. 2) were the anchor points I used to align each face during the transition. Then I used a Delaunay triangulation function provided by scipy to find a triangulation of the midpoints between the two sets of points.

Fig.2 - Andrew's face with correspondence dots plotted over it.

Computing the 'mid-way' face

The first step to getting a true morph is to find the midway face between the two images. Fig. 4 was obtained by first reshaping both Fig. 3 and Fig. 5 to have their correspondence points be equal halfway in between the two of them. Then each of those images were taken at half intensity and combined together to produce the final image.

Fig.3 - Original Donovan image.
Fig.4 - Morphed halfway image.
Fig.5 - Original Andrew image.

"Mean Face" of a population

The mean face of the Danish group of computer scientists (Fig. 10) was computed by taking a database containing a collection of images of faces with correspondence points on them and performing my image transformation to transform each fact to the average shape of all the faces. Some examples of faces before and after the transformation to the mean can be seen in Fig. 7 - Fig. 10. After this was done I averaged the color from each of the transformed faces to obtain the final "mean" Danish computer scientists.

Additionally, I experimented with taking my roommate Andrew's face and transforming it to the mean Danish shape as well as taking the mean Danish face and transforming it into Andrew's shape. The sizes of the images were slightly different which led to some strange masking results but the images still make sense (Fig. 11 and Fig. 12)

Fig.6 - Computed 'mean' face of Danish computer scientists.
Fig.7 - Original image of a Danish man.
Fig.8 - Transformed image of a Danish man to the 'mean' Danish shape.
Fig.9 - Original image of a Danish woman.
Fig.10 - Transformed image of a Danish woman to the 'mean' Danish shape.
Fig.11 - Andrew's face transformed to the Danish mean.
Fig.12 - The Danish mean transformed to Andrew's face.


Caricatures can be created by extrapolating from the mean. This was done by taking Andrew's face and the mean face of all Danish female computer scientists. Instead of computing a midway face I took Andrew's face and extrapolated past the mean of the average female face to obtain the result in Fig. 13.

Fig.12 - Andrew's face extrapolated to look like a Danish female computer scientist.

Bells and Whistles

For the bells and whistles I did a face morph between all the members of my apartment (with obtained consent to be shown on this website). The result can be found here