In this portion, we define corresponding points for both images. We use the software provided from the student last year, and we define 64 points.
Below are the two images that I'll be performing face morphing on.
Below are the vertices and the triangulation of said points results.
In this portion, we create the a mid-way face between Rao and I.
We accomplish this by transforming the triangles from the tirangulations of each image to their mid-way values. This was done by a Affine Transformation which was computed through a change of basis matrices.
We do similar steps as from Part 2, but instead we continously warp and cross-disolve throughout the process. We control the amount of warping and cross-dissolving from 0 to 1, where 0 is my face and 1 is rao's face. Finally, said values are determined by which frame we are on in the morphed gif. So, at frame 1, we have 1/45 for warp and cross-dissolve values.
Observations: Overall, pretty good morph if I do say so myself. I added a few correspondence points to our shirts, but I think our left sides could have used more points since it looked a bit jarring. Furthermore, a small bunch of our hair seems to be morphing a bit unnaturally near the later end of the gif. However, the morph is overall pretty clean and I am proud of it.
For this portion, we attempt to take the average face of the FEI Face Database and apply the average geometry on other faces!
To start, we warp some pictures from the FEI database and determine the average face, and the average geometry.
Now, let's see how some people from the dataset look when they are warped to the average face.
Pretty good overall considering I did not add too many correspondce points. However, 50a looks very unnatural. I think this is due to that picture being an outlier in terms of positoning, since the original image the person was facing a bit upwards. Also, the person's face is a bit unique.
For reference, here is 20a looked (the most natural looking transformation of the 4).
I would not have been able to tell it was a different picture if I was not looking at the ears!
Now, we (1) warp my 11th grade picture into the average geometry and (2) warp the average face into my 11th grade picture's geometry!
In this portion, we produce a caricature of my face by extrapolating from the population mean from the previous step.
I calculated p + 1.5(q - p) as the target correspondences, found the extrapolated triangulation, and then I finally warped my face to those targets.
Something that was mildy annoying while going through this project was the fact that I had to manually determine all the points in the images. This was time consuming and there was some backtracking involved when I had to include more points than what I had originally put down. Then, as I was scrolling through some past submissions, I see a student had implemented a "auto correspondence" using some python library. I figured, "why not, that sounds useful". So, here are the results of the auto correspondence feature!
So, I decided to look online ofr the average face of a turkish woman. For reference, I am a Indian man, so I was trying to change ethnicity and gender.
Below are the results...
Although the resulting image is a bit off, I would argue that it is more about my specfic image being a bit 'crooked'. Specifically, my nose is PRETTY crooked in the picture. Furthermore, the focal point are much different for the images. Specifically, my Focal Point is much higher than the average turkish woman's image.
I also think that I could have selected the correspondce points on my face better.
Furthermore, in the previous portion of the project (p4), when I morphed my face into the average face provided from the FEI face database, I morphed my self into the average Brazillian.