In this project we want to create a morphing between two faces,
compute the “mean” face of a population, and also do extrapolation to
get caricature results.
The first step to morphing two images it to align them so they are on
the same coordinate plane. Then we can pick points of correspondences
that makes sense
2. Compute the Middle Object
Using the points of correspondences, we can the shape vector of the
middle image. And use that to calculate a common delaunay
triangulation that can be applied to both images.
Then, we compute the average colors of the images by averaging
Mathematically, it would be
alpha * image1 + (1-alpha) * image2
Aligned Picture of Me
Aligned Picture of I.U.
Triangulation of Me
Triangulation of I.U.
3. Morphing Sequence
To make this into a video, we just need to calculate the middle
objects of each frame. All we need to do is to variate alpha.
Then I can create a gif :)
4. Computing the “mean” face of a population
To find the average face of a population, we apply the same logic. We
find the average shape by interpolating all shape vectors. Warp all
the individual images to the average shape. And combine the weighted
Average of Danes
Triangulation of Average
Here are some examples of warping input to "mean danes"
We can make our faces look more cartoon-like by extrapolating our
unique qualities. First, find the difference between my face’s shape
vector and the population mean’s shape vector. Then emphasize the
difference (i.e. my unique qualities) by adding it to the original
image of myself.
Using a simple population of I.U., me and another student, I created some caricatures of myself. I used a variable alpha to adjust the caricature degree.
alpha = 0.8
alpha = 3 - "I am a fish"
Bells and Whistles
Together with Roma Desai
Ja (Thanakul) Wattanawong,
William Loo, and
Gary Yang, we have created a video of our
faces morphing to one another!
Here is the link: https://youtu.be/O3vouduLS3w