I first cropped and resized both my images to ensure they were the same size and aspect ratio. After this, using the online tool provided, I labeled 75 points on each of the two faces (including 4 corners), marking the same features/locations in the same order for both. I computed Delaunay triangulations for both images using these sets of points, along with an average Delaunary triangulation based on the average set of points.
In order to create the midway image, I computed an affine tranformation that would transform each of the triangles in my original image to the corresponding triangle in the average shape. This tranformation was applied inversely to each pixel of each triangle in the average shape, which resulted in the original images being morphed into the average shape.
Once I had both warped images, I simply cross-disolved them to get the midpoint image.
This was very similar to the work done in part 2. However, instead of taking the average points and cross-dissolving evenly, the points were weighted using an alpha value that was between 0 and 1. The warp_frac determined how the weight of img2 in point calculations (img1 would then get a weight of 1-alpha), and dissolve_frac determined this weight for the cross-dissolving.
I did this over 60 different frames, transitioning from the image of me to the image of Zendaya.
I used the first 100 images of the FEI database for my population. I focused only on images with neutral expressions. In the same way I calculated the midway face between 2 images in Part 2, I calculated the average shape of these 100 faces, warped the 100 images, and cross-disolved all of them to produce the mean face. Note that the image is blurrier because we are averaging more faces, so features will not be exactly distinct.
Here are some of the original picures morphed into the mean.
I also morphed my face into this mean geometry, and morphed the average geometry into my face.
To create a caricature, I subtracted the mean from part 4 from myself, and added more of myself to create an exaggerated face shape. I then warped my face into this new face shape. You can see that features like my eyes and forehead (features that were smaller in the mean) are now more exaggerated.
I decided to change my race by morphing my picture with an image I found of the "average white American woman" that I found online. I cropped/resized both images. In one version, I morphhed just the shape by using the average woman's color with my face shape (no cross-dissolving). I morphed just the appearance by not cross-dissolving with the average woman's color but using her shape. Lastly, I did the average shape and cross-disolved, resulting in a mid-way point between me and the average white American woman.