This project takes two face images and interpolates between them, given a set of key features that match for both images. Given two points, one can form a parametric equation representing the traversal along a line between the two. Knowing this point, you can find the offset required to get from the parameteric point to either of the two ends of the line. We can easily solve for these offsets for all identified key features of the face images. In order to calculate the offsets of the unknown pixels, you set up an Ax = b equation where the unknown offsets are defined as the average of the neighboring pixels' offsets. Knowing the offsets for the first and second image, we warp both to our parameterized image and cross dissolve the color values.
Initial results proved alright. The quality of the morph seems to hinge mostly on the feature points locations. Certain parts of the morph matter more or less depending on the subject of the morph, and as such more points are required in key areas. I initially used 29 points, which produced fairly good results. A second test was run between the first two faces using 63 points picked out from an example of face motion capture. This result provided a much smoother transition. The mean face was also calculated by finding the average location of the feature points, warping all images to those points and averaging the color values of all the images.
Feature Selection Example
Caricatures were created using the mean face. By calculating the offsets between a certain face's points and the mean face points, you can pick out which facial features are far from the mean, and exaggerate these by applying a negative warp ratio. No cross dissolve was used.
A small movie was made by blending between different images of held hands, starting with an infants hand and "growing" through life to an old couple holding hands.