1 Overview

The aim of this assignment is to produce an animation of my face morphing into another person’s face by computing the mean of a population of faces and then extrapolating from a population mean to create a caricature of my face.

2 Morphing Faces

Defining correspondence was done manually using cpselect in Matlab and then the points were saved and loaded into python using the scipy loadmat function. Images in Figure 1 will be used to create a morph sequence of faces.

 Figure 1 a)My Face b) Another person's face Figure 1 a)My Face b) Another person's face

Figure 1 a)My Face b) Another person’s face

The facial keypoints were consistently labeled using the same ordering of keypoints as shown in Figure 2 by the yellow dots.

Figure 2: a)Facial Keypoints of my face b)Facial Keypoints of another person's faceFigure 2: a)Facial Keypoints of my face b)Facial Keypoints of another person's face

Figure 2: a)Facial Keypoints of my face b)Facial Keypoints of another person’s face

To generate the triangulation for morphing, delaunay triangulation was implemented on the mean facial points of the above two images in Figure 2. The triangulation generated is shown in Figure 3.

Figure 3: Delaunay Raingualation from Mean Facial Points

Figure 3: Delaunay Raingualation from Mean Facial Points

To morph the two faces in Figure 1, the triangulation generated above was used as the target shape that we want to respectively warp the two faces using Affine transformation and then inverse warping all the pixels. The mid-way face that was generated from implement this process is shown in Figure 4.

Figure 4:  Mid-Way Face

Figure 4: Mid-Way Face

Gif 1 is a video sequence of a morph from my face to the other person’s face.

Gif 1:  Morphing Sequence

Gif 1: Morphing Sequence

3 The ‘Mean Face’ of The Population

In the section, the mean face of the Dane population with neutral faces was computed and it’s shown in Figure 5. The population contains 37 unique neutral faces of men and women. Figure 6 shows 6 example of individual face geometries warped into the average population shape. Their face shapes don’t appear to have significantly changed.

Figure 5: Average face of the Dane population with neutral faces

Figure 5: Average face of the Dane population with neutral faces

Figure 6: Examples of individual face geometries warped into the average population shapeFigure 6: Examples of individual face geometries warped into the average population shapeFigure 6: Examples of individual face geometries warped into the average population shapeFigure 6: Examples of individual face geometries warped into the average population shapeFigure 6: Examples of individual face geometries warped into the average population shapeFigure 6: Examples of individual face geometries warped into the average population shape

Figure 6: Examples of individual face geometries warped into the average population shape

Warping my face geometry to the average population changes the shape of my head and my facial features. My warped face has a wide jaw, square chin, sharp nose and thin lips. These are facial features observed in the average face in Figure 5. Warping the average face into my face geometry also changes the head shape and facial features. The warped average face as a narrow jaw, short chin, round nose and full lips. These are facial features observed in the my face, see Figure 7 for results.

Figure 7: a)My Original face b)My face warped into the average geometry elc) the average face warped into my geometry Figure 7: a)My Original face b)My face warped into the average geometry elc) the average face warped into my geometry Figure 7: a)My Original face b)My face warped into the average geometry elc) the average face warped into my geometry

Figure 7: a)My Original face b)My face warped into the average geometry elc) the average face warped into my geometry

4 Caricature: Extrapolating from the Mean

In this section, a caricature of my face was created by extrapolating from the population mean of the from the previous section, see Figure 8. Gif 2 shows how my face changes when you vary \(\alpha\) between [-0.5, 2]. Its observed that when \(\alpha<0\) the image looks nothing like the average face in Figure 5. When \(\alpha<0\) the image looks like my original face and when \(\alpha>1\) the image starts to become more like the average face in Figure 5.

Figure 8: a)Caricature alpha=-0.5 b)Caricature alpha=0 Caricature alpha=2 Figure 8: a)Caricature alpha=-0.5 b)Caricature alpha=0 Caricature alpha=2 Figure 8: a)Caricature alpha=-0.5 b)Caricature alpha=0 Caricature alpha=2

Figure 8: a)Caricature alpha=-0.5 b)Caricature alpha=0 Caricature alpha=2

 Gif 2: Caricature Morphing

Gif 2: Caricature Morphing

5 Bells and Whistles

5.1 Morphing into an Average White Male

In this section, we will change the ethnicity and gender of my face by morphing into an averaged white male face from Beauty Check (https://www.uni-regensburg.de/Fakultaeten/phil_Fak_II/Psychologie/Psy_II/beautycheck/english/durchschnittsgesichter/durchschnittsgesichter.htm). Figure 9 shows the faces that I will be morphing. Figure 10 shows the results of morphing just the shape only, appearance only and both shape and apperance.

Figure 9: a)Average White Male Face b)My FaceFigure 9: a)Average White Male Face b)My Face

Figure 9: a)Average White Male Face b)My Face

Figure 10: a)Morphing by shape only b)Morphing by the appearance c) Morphing by shape and appearanceFigure 10: a)Morphing by shape only b)Morphing by the appearance c) Morphing by shape and appearanceFigure 10: a)Morphing by shape only b)Morphing by the appearance c) Morphing by shape and appearance

Figure 10: a)Morphing by shape only b)Morphing by the appearance c) Morphing by shape and appearance

6 Conclusion

This was a very interesting project. On top of the learning how to morph images I also learnt how to use matlab because it was more efficient to generate the facial keypoints in matlab than using python.