CS 194-26

Image Manipulation and Computational Photography

Project 4: Face Warping

Hemang Jangle, cs194-26-acv



Overview

In this project, we apply various techniques for analyzing face images and warping them to each other. The first problem we solve is the one of properly blending 2 faces - or finding a midway face. To do this, we first define correspondences over both images by selecting keypoints on each image. Then, we compute the average shape of the two faces and compute a triangulation on that average face. We then use this triangulation to define local warps between images - each triangle from the first image is warped to the the average shape triangulation, and likewise for the second image. Because we dissect the image into many triangles, we can approximate the image warp in these areas to be an affine transformation. We then solve for these warps by fitting a transformation matrix to each pair of triangles, and then cross dissolve the result. In the morph sequence section, we perform a similar operation, except we compute 45 different warps. However for each of these warps we compute a weighted average shape, depending on which shape the image is closer to. We then perform a similar weighted cross dissolve and then combine the images to get a smooth warp.

Part 1

Finding Correspondences

Here is an example of the average triangulation overlain over the 2 source images.


Hemang with average triangulation
George with average triangulation

Midway Face

Here we have the midway face between Hemang and George, computed as described above.



Hemang
Midway
George

Morph Sequence

This is the morph sequence if we interpolate more finely.

Morph Sequence


Population and Mean Faces

Here we compute the mean face of a population in 2 steps: Compute the average shape, and then morph each face to that and average them all. We use a selection of Danes for our dataset. Here we show some of the Danes warped to the mean shape, the mean face, my image warped to the mean face, and my the mean face warped to my geometry.


Dane 0
Dane 0 warped to Average Shape

Dane 1
Dane 1 warped to Average Shape

Dane 2
Dane 2 warped to Average Shape
The mean face

Me warped to the mean shape
The mean face warped to my geometry