This page documents a previous project that was done in the early years of my schooling. The reason for posting this on the blog is due to an ongoing effort to modernize the site.

A Computer Vision style approach involving face detection and annotation

  • APIs/Frameworks Used: Java, JAI, Matlab, JAMA, Java2D, Eignenfaces
  • Purpose: Final Project for class
  • Platform: All that work with J2SE 1.6 or better
  • Efficiency: 28% [Test set: 7]

About

Project FunnyHats was a project for my Master’s level Computer Vision class. This project was intended to take a photo, identify a person in the photo and attempt to apply a hat on their face where it might be approprate.

Process

  1. Find all segmented regions based on skin (This required training to find a skin tone color model)
  2. Attempt to apply Eigenfaces to determine if the region is a face
  3. Calculate where the hat might sit on the face
  4. Scale the hat and annotate the image
  5. Laugh at silly hat

Context

This was done before many of the now current Computer Vision models were made available. Additionally, this was done in Java which was very difficult at the time to do computer vision. At the time of this project OpenCV was a difficult to use library that mostly interfaced in C++.

Results

Misplaced hat (Hand was determined to be a face)

Misplaced Hat

A correctly placed and relatively scaled hat

Good Hat

Example of a crowd and where the image segmentation occured

Crowded image