Face Morphing Project

Part 1

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.

adi
Aditya (Me)
rao
Satish Rao (EECS Professor)

Below are the vertices and the triangulation of said points results.

AdityaPoints
Triangulation on points on Aditya
RaoPoints
Triangulation on points on Satish Rao

Part 2

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.

Aditya
Aditya
Rao
Satish Rao
Mid-Way Face
Mid-Way Face

Part 3

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.

GIF

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.

Part 4

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.

Rao
Avg Face of FEI DB
Mid-Way Face
AVG Geometry

Now, let's see how some people from the dataset look when they are warped to the average face.

Rao
10a Warped
Mid-Way Face
15a Warped
Mid-Way Face
20a Warped
Mid-Way Face
50a Warped

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.

Mid-Way Face
Original 50a

For reference, here is 20a looked (the most natural looking transformation of the 4).

Mid-Way Face
Original 20a

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!

Aditya
11th Grade Aditya
Aditya
11th Grade Aditya to Avg
Rao
Avg Face to 11th Grade Aditya

Part 5

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.

0.25
alpha = 0.25
0.85
alpha = 0.85
1_5
alpha = 1.5
3
alpha = 3

Bells and Whistles

'something else that is fun in this space' - Auto Correspondence

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!

1_5
Auto Correspondeces for Adi
3
Auto Correspondences for Rao

'Change age/gender/ethnicity/smile/etc of your (or your friend's) face.'

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...

1_5
Original Image of Me.
3
Average Turkish Woman
3
Adi to Average Turkish Woman

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.