For this part of the project we had to transform faces from one to another. Below is an example: it is two original pictures and then the halfway image
Here we have a picture of George and a picture of me
Here is a half way picture of both of us
The process to compute this half way face has a few steps. First, we choose correspondance points for each image, which correspond to the same location in each image. Next, we average the points all of the points together, making sure to align corresponding points. Once we have these "half way" points, we compute a Delaunay triangles. We then iterate through every pixel, and for each pixel use an affine transform to get the corresponding pixels in both the source and target images. After grabbing the pixels we take a weighted average of each pixel and put the average pixels inside our current position.
For this part of the project we had to extend our transformation to peform a sequence of transforms and then output them into a gif. Below is the output
Computing the gif was a simple extension from the previous part. We call the previous function with varying warp / dissolve frequencies, from 0 to 1, and then stack the resulting images into a gif.
For this part of the project we wanted to compute the average face of a population. I choose to use the danish. Below is the average face
In order to compute the average face, we first had to morph all the danish into the average geometry. Below are some examples of original faces and their warped faces
As we can see our people are a bit warped.
Here is a picture of me warped to the average danish geometry
Evidently, I am not danish
Here is a picture of the average danish geometry morphed to my geometry
Evidently, my face is not amenable to the danish geometry
For this part of the project we had to use our previous morphing code, but instead of morphing between my face and another picture with a fractional morph between 0 and 1, we choose a value such as 1.3 to increase the parts of my face even more, creating a caricature. Below is my image, and the caricature
As you can see, my caricature (which was made by going away from the dutch) has an even narrower face and darker face / hair. This is because compared to the dutch I have a thinner face, and darker skin / hair, so when using more of my feature than 1, we exacerbate those features.
I joined 20ish other students in the class morph video. Here is our video! https://youtu.be/h-Oow96qhck