Project 4: Face Morphing

Alexander Stennet, cs194-26-agn

General Approach

Sources
  


Step 1: Select the correspondences
  


Step 2: Calculate the mean structure


Step 3: Morph images to the mean structure
  


Step 4: Average the pixel values to form a single image



Step 5: We can now use different image weights to get partial images
Original
  
75% / 25%
  
50% / 50%
  
25% / 75%
  
Original


Step 6: Combining into a gif


Mean Face

Once the general approach of moving between two images is suffiently generalized, we gain access to the ability to do this for many images with ease. For this section, the Danes data set was used.

The naive approach is to simply take the mean of the images; however, because the images are all slightly misaligned and the faces are of different shapes we get a blurry image like this:


An improvement on this approach is to first reshape the faces to a mean structure and then take the average of those. Luckily, the Danes dataset came with correspondances so the process is simply a matter of loading in the points.

We get that the average face structure of the faces is:


An example of a single face morph using this structure:
Original
  
Morphed


Individually, the output is a bit deformed; however, after doing this for all of them this strangeness falls away.
Morphing and averaging the resulting morphs of all of the faces gives this final result:


Extrapolation

Additionally, we can provide merge factors that are outside the range of [0,1] and allows us to see what would result in further moving the image in the direction of the other.
These are the results:
-50% / 150%
  
150% / -50%


These results show the glasses and hair getting darker in the first as the glasses are non existent in the second image and my hair is of a more blonde colour. The second image also start showing a checkered pattern like the scarf; however, it is of the opposite pattern (light is dark and vise versa).