CS194-26 Project 4: Face Morphing

Morph Sequence

I first computed the average shape in order to create the triangulation used for the morph. The triangulation of the average shape would be the most ideal because it's the shape between both images. Then using that triangulation, I morphed both images to the average shape by first computing the affine matrix for each triangle, then iterating through the triangles to do an inverse warp. This is so we can get the coordinates that correspond to the original image and paste it to the corresponding warped image coordinates.

My friend Dana
Me
Midway Face


Morph


The "Mean Face" of a Population

I chose the Danes dataset and using the given points, I computed the mean shape of all the Danish people with neutral faces. Here is a Danish man and a Danish woman morphed to the average shape.

Original Danish Man Photo
Danish Man to Average Geometry


Original Danish Woman
Danish Woman to Average Geometry


Here is the average neutral face of the population, my face warped to the average geometry, and the average face warped to my geometry.>

Average Face
Me to the Average Geometry
Average Face to My Geometry


Caricatures

We can extrapolate from the population calculated in the previous section. To do this, we do: scalar * (the mean population points - my points) + my points, where the mean population points are points calculated from the previous section, and my points are the points corresponding to my features. Here are some interesting caricatures with different scalars.

Scalar = -0.4
Scalar = 0.7
Scalar = 1.4


Bells and Whistles

I'm part of the cabinet of UC Berkeley's Asian American Association. We had a photoshoot in the beginning of the year, and I thought that was perfect for me to do a video morph! Here it is:

Conclusion

I thought this project was the most fun out of all the projects so far. It's really cool how we can morph things so smoothly with just triangles and math.