Research and implementation of a face detection and classification system.

2017-04-27

Machine Learning

Data Science

Matlab

Computer Vision

Face Detection

Face detection is the problem of identifying the locations of faces within an image. This coursework involved investigating techniques that allow the greatest number of faces to be detected, with the least number of false positives.

The detections were performed using template matching. By incorporating edge detection through the use of Sobel operators, filtering of pixels to only
those that match a 'skin colour-space' and limiting detection on a subset of the colour bands, maximum overlap with the famous Viola Jones detector was achieved. Various
experiments were undertaken to find the optimal parameters to use when applying these techniques, ensuring that the effects of these techniques could be maximised.

Red squares indicate regions likely to be faces

Face Classification

Classification is different to detection as it aims to identify the label of the detected instance. In this scenario, the classifier I built labels the faces with the respective names of the individuals in the scene. Existing literature surrounding face classification was leveraged - in particular, Eigenfaces are a concept that was very useful for this project. By incorporating several pre-processing steps such as histogram equalization, a successful classifier was built.

A visualization of the "face-space" (a set of Eigenfaces) that was constructed