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.
|
|
|
|
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.
|
|
|
|
Here is the average neutral face of the population, my face warped to the average geometry, and the average face warped to my geometry.>
|
|
|
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.
|
|
|
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:
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.