Machine learning in facial recognition software based on caricatures, which emphasise facial proportions over absolute measurements.
What it does
Based on a real-time video stream from a webcam, identifies the biggest face in each frame with Haar-cascades from openCV, further Haar-cascades identify 2 eyes within that area. Calculates the positions of individual pupils and compute the distance between them. If this value falls within the range specific to the primary user, return the user's name above the face box, else returns 'Who are you?'
How we built it
Used python libraries in Linux to install OpenCV software. Used available OpenCV modules to detect faces and eyes, implemented code to compute and return relevant variable and text.
Challenges we ran into
Choosing which facial proportions gave the most distinctive results, so as to identify different people with a minimum of measurements. Candidates include: distance between each pupil and the bottom of the face box, area between pupils and the chin, distance between each eye and the closest side of the face Ideally the model would have used Elastic Bunch Graph Matching, for increased resilience to out-of-plane rotations, but this feature was not obviously available in openCV.
Accomplishments that we're proud of
Installing OpenCV (time-consuming.) Finding Irma. Getting a working program and reasonably accurate result over only 24 hours.
What we learned
How to use OpenCV, basic face recognition theory, implementing custom extensions, perseverance, python.
What's next for Where's Irma?
Finding Jack. Implementing k-means clustering, wider positive and negative sample pool to train and automate machine learning algorithm.