CS194-26 Project 3 - Brian Chin

This webpage contains 4 main sections corresponding to the sections listed in the project spec.

Image Credits are listed in the Jupyter Notebook in the corresponding calls from disk.

Part 1: Defining Correspondences

I found my keypoints piecewise by collecting corresponding points for the border, mouth, nose, eyes, eyebrows, shoulders and neckline. I used the Delaunay function to get my triangulations.

Part 2: Computing the Midway Face

I first computed my affine transformation using np.linalg.solver and simplices from the Delaunay triangulations. I then found the coordinates within each triangle, applied the inverse affine transformation, and found the pixel values using RectBivariateSpline for each color channel.

Part 3: The Morph Sequence

I have 45 frames where my face morphs into Adam Driver's face. The middle image is the same as the midway face. I used the same warping fraction and cross-dissolve fraction parameters across each image.

Part 4: The "Mean face" of a population

I obtained the keypoints from the asf files, multiplied each by the respective dimensions, then took the average to get the mean face.

I then ran the same morphing algorithm I used for my Part 1 & Part 2 to get these three Dane morphs.

For the morph from my face to the mean face then back to my face, I decided to use my portrait photoshopped on a Dane image to preserve scale and get the same image shape. I then ran the same morphing algorithm I used for my Part 1 & Part 2 to get the morphs. Note that the gif shows both the forward and reverse morph between my face and the mean face.

Part 4: Caricatures

I modified my morph function to exclude the cross-dissolve parameter and set the weighted average image to be P + warpfunc * (P - Q). I used a warpfunc of 1.1 (antiDane) to extrapolate the population mean while keeping my face intact. The exaggerated features here are the jawline (which is sharper for me compared to the population mean), lifted eyes, and wider mouth. This is apparent when looking at the morph between my face and the mean face.