Computational Photography Project 3: Face Morphing


David Wang, Fall 2010


Table of Contents

  • The Morph
  • The Mean Face
  • Playing With Sex
  • A Better Mean
  • Animating Faces

    The Morph

    To morph these faces into each other, we first must define correspondences between the images by hand and then compute a Delaunay triangulation of a set of points.

    Below is a picture of correspondence points I defined between me and Professor Efros.

    I wrote a function morph() that takes the images, correspondence points, triangulation, and warp and dissolve fraction and produces a morphed frame between the two faces. To accomplish this, I calculated affine transformations from each image's triangulation to the intermediate triangulation, and then used these to warp the first image into the second.

    The resulting animation can be seen below. Directory listings of the frames are here and here. Zip files can be downloaded here.

    Jump to top

    The Mean Face

    To compute the mean face, I used the images of everyone in the class and their 43 point labels and wrote a script to compute their average shape, warp all the faces into that shape, and averaging the colors together. The result can be seen below.

    Using this mean face and the previously calculated mean shape, I can warp my face to the shape of the mean face, and the mean face to the shape of my face. The results are below.

    Jump to top

    Playing With Sex

    Being somewhat unsatisfied with how the mean face turned out, so I went and retrieved the mean male and mean female faces (as seen above) from a previous lecture and started playing with those. I also took a new picture of myself with a white background and tried to match the mean faces as close as possible.

    After defining correspondence points, some things I tried were masculinizing and feminizing my face. One problem I ran into was that my bangs fell much lower than the hairline of the mean faces.

    More masculine:

    More feminine:

    Jump to top

    A Better Mean

    Of course, with a mean male face and a mean female face, a mean face can also be computed, as seen below.

    Using this, I warped my face into the mean shape, and the mean face into my face shape. The hairline really became an issue here, as can be seen.

    Also using this mean face, I tried to caricaturize my face by nudging it further from the mean, which would accentuate the differences between my face and the mean. As can be seen, the difference in hair length was so great that it crossed by the end. Also, by looking at the pictures, I have a smaller nose, narrower mouth, smaller ey es, and more hair than the mean face.

    Jump to top

    Animating Faces


    While doing this project, I came up with the fun idea to animate faces. Digging out my tripod, I shot eight pictures of a friend to animate. To do this, I would simply morph his face from state to state using my already-written function after defining (a massive amount of) correspondence points. Below are the resulting animations, and here is a directory listing of the generated frames.

    Results

    I started with the simplest example, which only involved moving eyes.

    I then tried animating more complex facial expressions, which also worked well.

    This was the most complicated example, which required almost two hundred correspondence points. Although the face looks great, the neck didn't work out so well, despite hours of tweaking. The hair also worked reasonably well, but there are obvious artifacts that arise.

    Failure Case

    This failure case is actually similar to both the closed eyes to open eyes transition, and the closed smile to toothy smile transition, in that objects had to be created (eyeballs for the eyes, teeth for the mouth, and the tongue for the failure case. The eyes and first smile worked better, however, because the objects were smaller. With this large case, it didn't quite work out so well. I made some attempts to make it look better, but they only resulted in spectacular images like the ones below.

    I eventually gave up. I was pleased by how well the jaw and lips animated, and reasoned that some well-placed Photoshop skills would be able to take care of the teeth issue.