In this project, I create a "morph" animation of my face into someone else's face, compute the mean of a population of faces and extrapolate from a population mean to create a caricature of myself. A morph is a simultaneous warp of the image shape and a cross-dissolve of the image colors.
I took a picture of myself and my favorite celebrity, Jennifer Lawrence, for my morph!
The warp will be controlled by defining a correspondence between the two pictures. For instance, a possible correspondence would be eye to eye, ear to ear, mouth to mouth, etc. I labeled 61 correspondences by hand among the two images.
Now I need to provide a triangulation of these correspondences that will be used for morphing.
Before computing the whole morph sequence, I computed the "mid-way face" of my images. This involves computing the average shape, warping both faces into that shape, and averaging the colors together.
My algorithm does the following:
To create a morph sequence from one face to another, we can repeat the morphing process from Part 2 over a time interval t. The variable t actually allows us to linearly interpolate the amount of warping and cross-dissolving. We increase each parameter from [0, 1] over the course of the morph. Here is the full morph sequence from my face to Jennifer Lawrence's face!
I picked the Danes dataset of annotated faces. It contains 40 different Danish human faces, all without glasses. The gender distribution is 7 females and 33 males.
In order to compute the "mean face" of this population, I:
Here is the average triangulation on an example face!
Some funky morphed faces (into average Danes face).
Can I morph my own face into the average Danes face geometry? And can I morph the average Danes face into my geometry?
Not really.... it's hard to align my image well to the Dane image.
I created caricatures of my face by extrapolating from the population mean in the previous part. I chose different warping coefficients, alpha, that are outside a typical morph timeframe (where alpha should be between 0 and 1). This should stress my face's features (alpha < 0) or the average face's features (alpha > 1).
I will change my face into the average chinese male.
I will show morphing just the shape, just the appearance, and both.