In this project, we will be exploring the ability to morph faces through the use of corresponding points between the two photos. We also look at the average face between a dataset of images based on correspondences that were already determined. Using this average face we warped images to its geometry and created caricature images.
For the first part of this project, we find corresponding points across images and then, using an affine transformation of matrices, we can determine the halfway image between the two morphs.
1.1: Half-way image.
The Halfway image is shown below, this represents a halfway morph between George Clooney and myself. The image looks a bit interesting due to my beard and hair being a significantly larger amount of the picture. This was done by finding the average of the corresponding points and then doing an Affine transformation on these points.
The next part of the project involves morphing, in 45 frames with varying degrees of warp from 0-1, the two images. Each of these images is then made into a gif that displays the total morph.
By taking the images and their corresponding points from the dataset of the pictures of the danes located at http://www2.imm.dtu.dk/~aam/datasets/datasets.html it was possible to compute what the average face of the population looked like.
Below is the average face of the Danish males in the dataset when they are facing forwards.
In the case of the facade image, the rotation worked well at a -3 degree rotation.
By using the geometry of the corresponding points of our new average Danish male picture, we can impose that geometry on some of the pictures of the Danes and, upon finding the corresponding points on my face, to a picture of myself. Also shown is warping the average picture to my geometry.
The images of my face warped to the average geometry, and vice versa, look very bizarre. For my face in the average geometry, his is due to a few reasons: my face takes up a significantly larger portion of the image, and so it is being compressed into the shape of the smaller average face.
The fact that my face is a lot fuller due to my hair and beard, especially considering points follow the jawline and stop at the eyebrows, also makes the geometry not fir my face very well. This causes my face to try to be squeezed into the average face causing a strange picture.
For similar reasons, the average face warped to my geometry also looks bizarre. Again, the average of the corresponding points is very far from where they are on each respective photo due to the size of my face in the image (a few hundred pixels^2 larger in area. This causes the
average corresponding points for say, the eyes, to be somewhere eyes might not naturally look like they belong. Similarly, it the larger scale of my face, in conjunction with my beard causing my face to look fuller caused the image to be warped as it tried to scale the average face /p>
to the geometry of my face. Lastly, as my eyes are smaller and I have hooded eyelids, it was difficult to select the corresponding images exactly where they were in the Danish pictures. This caused the weird effect in the average photo to my geometry's eyes.
Using the average images, we can create caricatures by selecting a warp fraction > 1. Below, this is shown by making a caricature of my face using the average face's geometry. The warp fraction being larger, and so it imposing the average faces geometry further, only exacerbated the problems from the last step.
The image faces many of the issues from the last step only amplified due to the increased value of the warping fraction.
Below is a music video for the image warping of the last three presidents. The gif of this is also shown. This incorporated switching elasticities of one the images as well.