In this project I produce a "morph" animation of my face into my friend Ben's face. Then I compute the mean face of Brazilian people through morphing into the mean point. I also explore the mean face with my face and try to make me smile through morphing.
I start by taking photos of me and my friend Ben.
|
|
Then I label both faces with the tool from Correspondence Tool . I use 88 points for each faces.
|
|
In the end of this part, I triangulate two faces using scipy.spatial.Delaunay. For the first three parts, I use the same triangulation.
|
|
In this part, I will compute the "Mid-way" face between Ben and me through morphing.
1. Compute the middle position of our faces through average the labeling points of our faces.
2. Calculate the affine transformation matrix from the original triagle to the average triangle. Then perform inverse warping by multiple the target image pixels with the inverse of affine transformation matrix. I loop over all the triangles to compute the "Mid-way" image.
3. Cross-dissolve the warped image of Ben and my face to define the color the "Mid-way" Face.
|
|
|
|
|
By applying different fraction in morphing and cross-dissolve between [0, 1], I create a smooth transition from my face to Ben's face.
(refresh the website if the face is not changing) |
For this part, I compute the average face of a population from multiple images collected from the population. The set of images I use is the faces of Brazilians collected at the Artificial Intelligence Laboratory of FEI . This dataset contains faces collected from 200 people. Two photos are taken for each person with one normal face and one smiling face.
from the FEI Face Database |
from the FEI Face Database |
from the FEI Face Database |
from the FEI Face Database |
from the FEI Face Database |
from the FEI Face Database |
I compute the mean face of Brazilians using the similar process in part 2. I compute the average of all the labeling points of Brazilian faces and warp all the images toward the average position. Then I calculate the mean of all the faces' color to create the mean face.
|
|
I also warp some of the example faces into the mean position.
|
|
|
warp into mean position |
warp into mean position |
warp into mean position |
I also try to warp my face into the mean Brazilian face position and warp the mean Brazilian to my face position.
mean Brazilian Face Position |
Jaxon's Face Position |
I created caricatures of my face by exploring the position of my face away from the mean Brazilian face. I set the warping fraction out of the range of [0, 1] to create the funny result.
|
|
|
|
|