A. Defining Correspondences
I manually selected the X,Y points according to the 43 label points listed on website. Points are listed in this points.text file or points.mat file. Inside mat, 1-15 correspond to the faces, and 16 is mean.
I overlayed the points I selected on the images below.
Point Correspondences |
||
Face 1 | Face 2 | Face 3 |
Face 4 | Face 5 | Face 6 |
Face 7 | Face 8 | Face 9 |
Face 10 | Face 11 | Face 12 |
Face 13 | Face 14 | Face 15 |
B. Triangles
I picked the mean shape between the two faces and performed delaunay triangulation. I then created an animated gif of just the triangles to make sure vertices and triangles were acting right in the morph. I thought it looked pretty cool.
The green face is the input, the blue face is the output one, and the red one is the morphing face.
Triangle Animate Gif |
Class Mean Shape |
C. Affine Transformation and Warping Pixels
I computed the affine transformation from current shape to input image, and the current shape to output image. I then mapped the intermediate triangle image pixel to use both the input and ouput triangle image values (cross dissolved by 1/60 at each timestep).
Took a late day, but I finally got it to look a lot better. I was skipping the pixels when the affine transformation was out of range in the mapping... and when I changed that, it looked a lot better. I was determined to get this hw working right so i can use it on all my friends' pictures :)
Face Morph Attempt #1 |
Face Morph Attempt #2 |
Face Morph Attempt #3 |
D. Class Mean
I found the class mean shape earlier, and just warped all the images to the shape. I then took the avg pixel values of all the images.
Class Mean Face |
Class Mean Guy |
Mean Girl |
My Face to Class Mean Face |
My Face to Class Guy Mean Face |
My Face to Class Girl Mean Face |
A. Steeler Logo
I had to do something related to sports for my hw so I decided to randomly test morphing a steeler logo from two different points (Also to debug if my pixel warping was working for same input/output image). I was actually able to use the old morph function but changing the input images and triangle vertices.
Morphing Steeler Logo |
WireFrame Version |
B. Famous Pittsburgh Athletes
I also figured this would be a good opportunity to label some famous current Steelers and Penguins faces for future semesters. Lucky for us...Ben Roethlisberger, Troy Polamalu, Sidney Crosby, and Evgeni Malkin all signed long term contracts so hopefully they will be in Pittsburgh for awhile :)
If you don't know who these players are...please do me a favor and try and catch a steelers or penguins game on tv!
Ben Roethlisberger |
Troy Polamalu |
Ben to Troy |
Wire Version |
Sidney Crosby |
Evgeni Malkin |
Crosby to Malkin |
Wire Version |
In the future, I don't think the 43 labels aren't enough...I think we should add some background ones so it morphs cleaner. I know if I added those to the athlete's pictures...it would have made the morph turn out better, but I wanted to be consistent with your previous 43 labelings. My suggestion...that's all
Lastly, a funny related link if you haven't seen it before. The face shape of what is considered to be hot through the voting system on flickr.
Sports-Related Images were taken from Google Image Search