CS 194-26: Project 3

Jinyoung Bae

Defining Correspondences

In this section, I used cv2 to select key features for each image, and then used the Delaunay function to create a triangulation between the all the feature points for the image. The two images morphed is me and my roomamate. Shoutout to Colton Nishida for letting me take a picture of him.

My Starting Images

Images with the Delaunay Triangulations

The vertices used to connect the traingles are the facial keypoints selected.

Computing the "Mid-way Face"

For this section, we compute the average shape (the average of each keypoint location in the two faces), warped both faces to that shape, and then averaged the colors together. RectBivariateSpline was used to interpolate the points from our images, and we calculated transfrom matrices per each triangle and used it to inverse warp from the midway image to the original image.

Picture of My Face

Picture of the Midway Face

Picture of Colton's Face

The Morph Sequence

For this part, we used the ideas of the midway face to create an entire morph sequence. Instead of equally splitting the images 50/50 when cross dissolving and finding the shape, we gradually increased each to create a smooth morph from one image to the other.

The "Mean face" of a population

For this section, we find the average face of a collection of photos. We first compute the average face shape of the whole population, and then morph each of the faces into the average shape, and then find the average face of the population by taking the average of all the morphed faces.

Average Danish Face

Warped Person #1 into the Average Dane Shape

Warped Person #2 into the Average Dane Shape

Warped Person #3 into the Average Dane Shape

Warped my face into the Average Dane Shape. Looks a little weird but most likely to the way feature points were chosen and the different scales of the two pictures.

Warped the average Dane face into the shape of my face

Caricatures: Extrapolating from the mean

Using the mean Danish face we found from the previous part, we extrapolated our image to become more of the mean Danish image. Depending on the alpha value, we can make a person more Danish (a hyperdane) or less Danish (an anti-dane). Here, we set alpha to be 2 to become a hyper hyper dane.

The above image is me with an alpha value of 2. It seems my face has become super elongated and almost smushed. Better image alignment and selecting more precise feature points may fix this to be less extreme.

Bells and Whistles

Average pictures can be used to make picures of ourselves take on different features such as changing the race, age, and even gender! For this example, I took the average face of an African American female to make my image more feminine as well as changing my race / skin tone to become darker.

My Face

Average African American Female Face

Me with both mixed shape and appearance (using alpha 0.5)

Me with different appearance but same shape

Me with different shape but same appearance