For the images of George Clooney and Brad Pitt as seen below, I first defined 42 correspondence points at key facial features.
Next, I found the midway intermediate points between Brad and George in order to find the triangulation mesh.
Next, I computed the midway face of Brad and George's faces. To do this, I computed the average shape of the two faces, warped both faces to this average shape, and then averaged the colors of the two images together.
Finally, I created a morph sequence from Brad to George's face. In order to do this I generated 45 frames in which each frame I found the intermediate shape between the two images, warped both to the average, and then cross-dissolved the images to obtain the frame.
I decided to find the mean face of a population of Danes from the following dataset of annotated images. To do this, I first morphed each of the faces in the dataset to the average shape. Below are a few examples of the faces warped to the average shape:
After warping the images to the average shape, I computed the average color of all of them in order to produce the mean face:
Next, I warped my face to the average geometry of Danes, and I warped the Mean Face of Danes to my geometry as shown below:
Next, I produced caricatures of my face by extrapolating from the population of Danes. I used two different values of alpha which determined the degree of the caricature. An alpha of 1.5 created a "hyper-Dane" caricature, while an alpha of -1 created an "anti-Dane" caricature as shown below:
I decided to try changing my ethnicity to Danish using the average face from the Danes dataset above. First I morphed just the shape of my face to the average shape, then I morphed just my appearance, and finally I did a morph of both shape and appearance as shown below:
Here is the image morph of my appearance, shape, and shape + appearance morph to the Danish average face using alpha = 0.5.
I created a face-morphing music video of me and my friends' faces.