CS194-26: Image Manipulation, Computer Vision and Computational Photography Project 3

Face Morphing

By Alex Kassil (cs194-26-aca)

Part 0: Correspondences

For the correspondences, I click click clicked using ginput in python to get 43 points and automatically added 4 corners. I was following the photo given on the website with Prof. Efros and the 43 points and created my own point visualizer to make sure the points were correct.

There are two important differences to note in these photos - One is since the camera was closer to my face so couldn't see my ears too much, I was smiling a little and george wasn't, and george's face has a lot more lighting than my face.

The next step was to compute a triangulation on these faces - here is each of the trianglulations!

Part 1: Mid-Way Face

The way to do the Mid-Way Face is to first create correspondences, then create on triangulation on the numerical average of the two correspondences, then compute the inverse affine transformation for each correspondance to mid way triangulation, then get the pixels from the original image with the affine transormation computed on the indices of the triangle, then cross dissolve the two resulting images.

For the midway face, I initally tried to do the forward warp instead of the inverse warp. This caused the issues below fixed with the inverse warp. Here is the midway face between me and george (no cross dissolve) with forward warping versus inverse warping.

Without cross dissolve midway face

With cross dissolve midway face

You can see the midway visual face is dominated by george due to better illumination. Here is not the midway face analytically but visually a more midway face which ends up being about a 1/3 warp from me to george.

Part 2: Morph Sequence

The morph sequence is an extension of the midway face - instead of being an average now take weighted averages of the two faces and the cross dissolve to compute the 45 frames necessary for the gif and combine all of them into a gif and TADA!

Here it is on a loop back and forth - mesmerizing

Another morph sequence I did for bells and whistles

And here are some funny mistakes

Part 3: The Mean Face and Caricature

For this part I used the FEI brazillian face data set. They had anotated images of faces which was perfect for me!

Here is how the Average Face with manual alignment compares with the Average Face from corrsepondances and midway warping alignment.

Here we see a fuzzy face on the left with eyes looking decently sharp versus the overall sharp and attractive face on the left. For the mean face I first averaged all the correspondences, then warped each face to the average, then averaged those warped faces.

Here is brazillian me!

p

Here is brazillian average face as me! Personally I think I look more attractive.

Here is brazillian male me and the average male face!

Here is brazillian female me and the average female face!

Here are some silly caricatues that come from warping me away from and past towards the brazillian female average face. So first few are away from the brazillian female average and feature me with smalllips and small eyes while the last few give me large lips and large eyes.

Part 4: Bells and Whistles!

For the Bells and Whistles I participated in a class warp. I show up at the 9 second mark

Here is my contribution to the video. I warped my friend to me.

I also morphed cartoon pokemon from one to another - these monsters get morphed quite nicely and that is linked at the very top.