Using ginput from matplotlib, can get all the correspondances. I did 10 points per face area, although regret not doing the cheeks and hairline
I then used the Delaunay triangulation
Following the steps, I compute the average of the points, warp, using an affine transform, the faces into that shape, and take the average color.
Repeating the sequence back and forth, this is 45 (total 90) frames of me morphing into linsanity
I have a lot more hair, so that doesn't look as good, but the cheek structure is luckily, relatively similar.
I picked the Danes, specifically the neutral face males
Here's an example of a face being morphed
Here's an example of me being morphed to their geometry, and them to mine
To create a caricature, I extrapolate myself to -1 (rather than bounding in 0, 1)
Here is me being morphed into a Danish female