CS 194-26 Project 4: Face Morphing

Jeffrey Wang (cs194-26-acl)

Overview

In this project, I used matrix transforms in order to morph faces into each other based on facial features. The result is then made into a gif/video format, and mean faces of populations of faces are generated based off that morphing.


The overall method of morphing an image involves the following steps:
- Take the points of each image's feature, mapping each point to the corresponding point on the other image.
- Create the mid-way face of the input images, done by computing the affine warp for each triangle in the triangulation of the image and warping it into the new shape.
- Create the morph animation. The process is similar to that of the mid-way transformation, but applied to fractions from 0 to 1, for each frame of the morphing image itself. This creates an intermediate warp, of which we apply a cross-dissolve in order to merge the colours of the morph itself, creating a frame that we would append to our resulting gif.

The over-imposed triangulations on the original images
The average triangulation and its placement on top of the mid-way image.
The mid-way result of morphing my image into George Clooney's picture, along with the over-imposed triangle that it was morphed into.
The over-imposed triangulations on the original images
The average triangulation and its placement on top of the mid-way image.
The mid-way result of morphing my image into Wang Baoqiang's picture, along with the over-imposed triangle that it was morphed into. People have said I've looked liked him from when I was a kid (and had shorter hair).

In this part, I computed the average face shape of the subset of the population containing smiling males. Then I morphed each of the faces in the dataset into the average shape, examples below.
Compute the average face of the population and display it.
My face warped in the avg geometry. Seems a bit broken..
Average face warped into my geometry. Also seems a bit broken..