CS 180 Portfolio

Monochrome
Back to Home

Project 3: Advanced Image Processing

In this project, we delve into more advanced image processing techniques, exploring complex algorithms and their applications in computer vision.

Correspondences and MidWay Face

I chose to use myself, and LeBron James as my two pictures. The goal is to morph the two pictures into a midway face, and eventually get them to morph into one another. The first step is manually selecting similar points. The points I chose were mainly defining facial features, like eyes, mouth, nose, etc.

idk

original Justin Picture

idk

original Lebron Picture

idk

computed midway Picture

idk

Justin with Delaunay

idk

Lebron with Delaunay

idk

Midway with Delaunay

After choosing the correct correspondeces, we computed the midway face. To do this, we first computed the affine function to map the triangulations from my face to the ones in the midway picture. Then, we warp the triangle by using the computed matrix.

Face Morphing Animation

Then, we extended just calculating the midway state to creating a gif of me transitioning to LeBron. To do this, we had a warp fraction and cross dissolve fraction, which would tell how much of geometry of the first picture to use, and how much color of the first picture to use. Refresh to reload the gif.

Face morphing animation

Morphing Animation: Justin to LeBron

This is the resulting transation from me to LeBron.

Mean face of population

Next, we created the mean face over a given dataset of faces. I used the FEI Face database, and I used their preset frontal images spatially normalized dataset, mainly because it was manually annotated already for me. Here is the mean face.

Average face

average image

As you can see, the image is pretty blurry, as there are many faces that we are averaging over.

Now, we'll morph some faces into the average face.

Original

Original

Original

Original

Original

Original

Original

Original

Image 5

Original

Image 6

Warped

Image 7

Warped

Image 8

Warped

Image 9

Warped

Image 10

Warped

As we can see, some images are better than otherse, but as a whole, some look pretty natural!

Me vs Mean Population Face

Here, we try warping my face onto the average face of the FEI dataset, and we try morphing the aerage FEI dataset onto my geometry.

Image 1

Original

Image 2

Original

Image 3

Avg on Justin

Image 4

Justin on Avg

As we can see, not a very good result! I have a few theories for this -- one, human error -- I could've done a better job on matching the coordinates up. Especially the nose, and the forehead area. Two, the facial features and my facial features just aren't very compatible. As someone with a thinner face, it's very hard to warp myself onto a more circular face, as the average is. Maybe it would've been better do try to warp someone like my dad, who has a more similar facial shape to the average to start with.

Caricature

Finally, I created a caricature of myself. All I did was to make the differences between the coordinates of the average image and my image more pronounced, using a factor alpha. This is the result of having an alpha of 1.5.

caricature face

Caricature Justin

Bells and Whistles

Finally, I made a video of myself growing up. I put it behind a song of "dancing queen", which I felt was fitting because the final picture is me at my senior prom, where I was 17 (+1).

(You are the dancing queen, young and sweet, only seventeeeeeen)