Face Morphing

Mengyang Zhang

Defining Correspondences

The method I use to solve it to use the plt.ginput() to select 44 corresponding points from each picture, and then use scipy.spaatial.Delaunay to form triangles

The points I chose are four corners, five points around each ear, four points around each eye, six points around the nose,six points around the mouse, and ten points around the face

The two photos I used are the following

no images no images no images

Compute the midway points

Wrap both points and use the average points between two corresponding points to get an average boundary

Compute the affine transformation matrix and then reverse it

For every point in the area in the triangle formed from the average points, use inverse matrix to get the pixel r,g,b value and add it to the new image

no images no images

Here is the whole Morphing Process

no images

The Mean Face Part

The original images

no images no images no images

The transformed images morphed to the averaged of all the faces in the database

no images no images no images

The averaged face

no images

The example face morphed to the average face, and the average face morphed to the example face

no images
original example photo
no images
original morphed to the averaged face
no images
averaged morphed to the averaged face
no images
averaged face

Caricatures: Extrapolating from the mean

From left to right, is the anti-average effect from 1*, 1.5*, 2*

no images no images no images

From left to right, is the hyper-average effect from 1.5*, 2*

no images no images

Bells and Whistles

Here is an Morphing gif of the this year's lakers basketball player's face transformation

no images