In this project, I created a morph sequence of a face transforming into another face. I used the images from the Danes dataset to examine means of subpopulations and created caricatures from the mean. I also played with changing the ethnicity of my face.
In order to compute the midway face, I averaged the corresponding points to get the average face shape. Then, I warped both faces into this average face shape in order to average the correct pixels together. I took the Delaunay triangulation of the average points and computed the inverse warping of corresponding triangles by affine transformations. Because the computed inverse pixel locations may sit in between pixels, I used interpolation functions to get the pixel values.
For the morph sequence, I generalize the warp fraction and cross dissolve fraction (from 0.5 and 0.5) to the corresponding time step of my morph sequence.
For this part, I used the Danes dataset of annotated faces. I computed the average face shape of all the smiling male faces in the population. Here are some examples of faces from the dataset morphed into the average face shape.
Below is the average face of the subpopulation.
I also warped my face into the average geometry and the average face into my geometry.
I created caricatures of my face by taking the difference between my face and the average and then adding this difference back in by a scaling factor. I used 0.5, 1.0, and 1.5 as my factors and the average smiling male face as the average face.
In this final section, I created a morph of my face and the average white female face. I played with morphing just the appearance, just the shape, and finally both.