CS194-26, Fall 2021

Programming Project 3

Jaeyoung Park



Part 1. Defining Correspondences

Original Images

Cory Seager

Mookie Betts



Firstly, I selected 52 key points from seager and betts image. They were based on the features of faces. As well as features of the face, I selected four points from four corners of the image. Then, I computed mean of two key points and used them for Delaunay's triangulation.



Selected key points of two images



Triangulation on mean of two key points





Part 2. Computing the "Mid-Way Face"



Firstly, I computed the average shape by taking average of key points from two images. Then, I warped both images to the average shape. To compute affine matrix, I solved linear system. Then, for warping, I obtained pixels within triangle using polygon. Then, I did inverse warping to obtain warped image. Once I got two warped images, I averaged the color of two images for midway face.

Original Seager

Mid Way Face

Original Betts





Part 3. The Morph Sequence



For morphing, I did similar thing as part 2. I morped each image 45 times since we needed 45 frames. There were two fraction parameter, warp fraction and dissolve fraction. For each morphing, fraction values were different. I warped two images to the shape that was determined by warp fraction. Then, I combined these two warped images according to dissolve fraction.





Part 4. The "Mean Face" of a Population

In this part, I used Danes image (240 totals). 58 key points were given, and I added four corner points. Firstly, I computed the average shape of these points of 240 images. Then, I warped all 240 images to this average shape. Below, I provided some examples of warped images to their average shape.



Original Images

Warped Images



Average Face

After obtaining 240 warped images, I took an average of them to get an average face.



Warp between my face and average face

For the last step, I warped my face to average face geometry, and then warped average face to my face geometry.

My face



My face to average face

Average face to my face





Part 5. Caricatures: Extrapolatig from the mean

In this part, I first computed caricatures point which are extrapolated of points from my face. I used "extrapolated point = mean_point + alpha(my_point - mean_point)". Then, I warped points from my face to extrapolated points. I found several caticatures for several different alpha value.

alpha = 0.4



alpha = 0.7



alpha = 1 (same as original image)



alpha = 1.3



alpha = 1.6





Part 6. Bells and Whistles

In this part, I used my face and one woman's face from Danes. I selected key points from two images, then I took a mean of key points from two images. Then, I warped my image (morphing the shape) and woman's image to mean shape. Then, I dissolved these two warped images to obtain morphed image (morphing the shape and appearance.



Morphing the shape



Morphing the appearnace



Morphing the shape and appearance





Image Credit

Seager:https://www.mlb.com/player/corey-seager-608369

Betts:https://www.mlb.com/player/mookie-betts-605141