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.

Built With

Share this project: