CS 194-26 Project #4: Face Morphing

Yue Zheng



Overview

In this project, we explore the techniques of face morphing. A morph is a simultaneous warp of the image shape and a cross-dissolve of the image colors. Using what we have learned in class, we produce a "morph" animation of our faces into someone else's face, compute the mean of a population of faces and extrapolate from a population mean to create a caricature of ourselves. For bells and whistles, I explored chaning the gender of my face.

Morph Sequences

I first define correspondences manually on the source face and target face using a python program I wrote. Then I compute the triangulation by computing the Delaunay triangulation on the mid-way shape. The mid-way face is obtained by first computing the average shape, then warping each face to the average shape using inverse warping, and lastly averaging the colors. To produce a morph sequence, for each timestep with the corresponding warp fraction and cross-dissolve fraction, I compute a warp between the source image and target image using the point correspondences and the triangulation structure I defined in the previous step. For my morph sequences, I generally used 19 mid-way faces, plus the original source and target image. The average shape I use is defined by: shape1*(1-t) + shape2*t, where t is the warp fraction, that will vary from 0 to 1 in a morph sequence. The average color I use is defined similarily: img1*(1-t) + img2*t, wheret is the cross-dissolve fraction. The warp fraction and the cross-dissolve fraction is set to be the same, except when we are only morping either the shape or the appearance.

Results:

Morph between two random males from Danes dataset

Source Face


Target Face


Triangulation


Mid-way Face


Morph Sequence


The morphing sequence of these faces turned out nicely. There is little ghosting other than the collar and a bit of the hair. This is mostly because I was able to define a lot of correspondence points on the images.

Morph from my face to random female from FEI database

My Face


Target Face


Triangulation


Mid-way Face


Morph Sequence


In this morph sequence, there is more ghosting than the previous example. This is mostly because there are not enough correspondence points around the face.


The "Mean Face" of a Population

In this part, I chose to produce the mean face of a subset of the female faces in the FEI database. I calculate the mean face by first calculating the average geometry of the faces. Then I warp each individual face into the average geometry. Lastly, I average the colors of the warped faces.

Results

The Average Shape and the Mean Face

The Average Shape


The Mean Face


Some examples of individual faces warped into the average shape

Original




Warped into Average Shape




Morphing between my face and the Mean Face

My Face to Average Geometry


Mean Face to my Geometry



Caricatures

In this part, using the mean face I obtained in the previous part, I produce caricatures of my face, i.e. exaggerating the difference from my face to the mean face. The caricatures are obtained simply by computing a warp function with the warp fraction set to be negative and the cross-dissolve fraction set to be 0 and applying the warp function to the original image.

Results

My Face (Normal)


Caricature of Me (warp fraction = -0.5)


Caricature of Me (warp fraction = -1)



Bells and Whistles

In this part, I explored changing the gender of my face. I tried three different morphs: morping only the shape, morphing only the appearance, and both. For the target image, I chose the average chinese male face.

Results

My Face


Average Chinese Male Face


Shape Morph


Appearance Morph


Complete Morph


As usual, because it is hard to define correspondences of features that exist on one face but not the other (e.g. my bangs), there is a lot of ghostig around the face.