In this project, we explore the usage of affine transformations to manipulate face images in various ways. We also look at the mean faces of populations, and interpolations/extrapolations that we can derive from those mean faces.
Below are two headshots, one of myself and one of my housemate Alex. Using manually annotated correspondence points for each image, we compute a Delanauy triangulation on the midway shape, which we then use to generate each morph frame by using inverse warping + interpolation. The pixels sampled from both images at each stage are cross-dissolved accordingly.
For exploring average faces, we used the publicly available FEI Face Database of 100 male and 100 female staff/students which comes with annotated correspondence points. We find the average face of the total face population, and attempt morphs between individual subjects in the population and the average as well as morphs between our own face and the average face. As a final experiment, we attempt to draw a caricature of our face by extrapolating from the mean using the equation extrapl = me + alpha*(me-mean).
For fun, I attempted to change the gender and ethnicity of my face by morphing both shape and appearance in the direction of the desired characteristic. This "direction" is calculated as a vector (separate for shape and appearance) going from the average face of my "home" subpopulation to the average face of my "target" subpopulatoin. The average faces I used are publically available here, and in my case I chose the average Han Chinese Male face as my base. Note: when morphing appearances, the subpopulation difference vector was calculated after morphing the average images into the shape of the target face.
Below, we can observe that my eyes and mouth features get curved upward slightly and my skin tone becomes lighter on average, indeed eliciting a slightly more feminine appearance than before.
Unlike the example above, there is not much appearance morphing likely because the subpopulations differ mainly by facial structures. It is interesting that my face gets longer, but this might be due to differences in image scale and alignment rather instead of being completely correlated with differences in structure.
As a final experiment, I try to shift my face toward a more drastic directional change. The results are surprisingly quite reasonable.