Face recognition is the task of identifying and verifying people present in a photograph based on their face. This is a trivial task for humans, even if the lights are varying or when faces change due to age or they are obstructed with accessories, facial hair and so on.
But it remained a fairly challenging computer vision problem until a few years back. Deep learning methods have been able to leverage large datasets of faces and learn various representations of faces, thereby allowing modern learning models to perform well and better.
Facial recognition may be used to identify person in a photograph or in a video stream.
Facial recognition generally involves 4 steps −
It refers to locating one or more faces present in the image. Once the images have been located, they are marked with a bounding box so that it is easy for the system to identify these faces.
The face is normalized so that it is consistent with the data in the database, such as geometry and photometrics.
This step helps extract features from the face which can be used for the face recognition task.
The final step, wherein the face matching of the person is performed against one or more known faces in a previously prepared database.
Note −The above mentioned four steps can all be done within a single module, or each of these tasks can be separated into different modules, and they can be used step by step.
The problem of face recognition can be considered as a supervised predictive modelling task which can be trained on samples that contains inputs and outputs.
Here, the input is a photo that contains at least one face, and the output is a most likely detected face.
The output of this task depends on the type of prediction required for the task −
It can be a binary class label or binary class probability if it is a face verification task.
It can be a similarity metric if it is a similarity type task.
It can be a categorical class label or set of probabilities if it is a face identification task.