Before creating the full morphing series, let's try to find the "middle face" as our first step. The mid face contains 1/2 of color and shape from both images. The morphing steps are outlined below:
Here I show the defined correspondencies of my boyfriend's face and my face, as well as the mid-face.
|
|
|
|
|
To make the morphing sequence dynamic, I created a total of 30 "mid-face" images with different dissolving fraction ranging from 0 (entirely image1) to 1 (entirely image 2). Each time, the pixel value of the "mid-face" image is (1 - fraction) * img1 + fraction * img2. Here's the gif image of my morph sequence.
In this part, I created the mean face of the population of Danish Scientists from the pre-labeled dataset. It contains 37 face images each labeled with 58 points. To create the mean face, I averaged the shape and color of each face. Here's some sampled faces and the Mean face:
Here we can see that, the mean face is a lot smoother than original faces, since each face's distinct features have been averaged out.
If we morph each of the faces into the mean population face, interesting results would happen. Here are some selected samples.
I also morphed my face into the mean face as well as mean face into my geometry. (The difference in size is due to alignment with the mean face.)
|
|
Since we have the mean face, we can also use it to make caricatures of our faces. Caricatures should capture and exaggerate the distinct features of our face. Therefore I calcualted dx = my_face - mean_face, then created caricatures with: caricature = mean_face + alpha * dx. (alpha > 1 or alpha < 0). I created two caricatures using differnet alpha:
|
|
We can clearly see that, since my face is round and my eyes are large, the caricature with alpha > 1 would enhance these features, while the caricature with alpha < 0 would make my face pointy and my eyes smaller.
Check out our face-morphing music video of the students in our class! Here's my part of it. :D