Deep Face Recognition

This project has been created by Andrej Lucny for course of LearnOpenCV led by Satya Mallick in 2018.

The goal is to manage face recognition in an interactive way. The system is learning new people introduced by language communication on console. When it sees somebody new, it can be wrong, however after the person is introduced, the system solves any misrecognition by storing next descriptor associated with the person. After some time, the system collects several images for person and this process saturates. Introduction ends when person is out of frame for more than three seconds, what can be emulated also by covering of camera. Then system recognize the additional person. See this video:

Unlike traditional systems which employs Haar of HOG detector of faces, then landmark detector on the spot of face, then e.g. local binary pattern histogram for representation of the significant part of image selected by the landmarks and finally some method of machine learning like LDA for distinguishing of the representations, like on this picture ...

... we employ the same landmark detector and two ResNet models (one for face detection from OpenCV and other for image descriptor calculation from Dlib), so we modify the processing in this way:

Thus, we employ models created by deep learning and get a little bit better results.

However, nothing is perfect:

Source codes are available for download here. After download, please follow README.txt

Andrej Lucny, lucny@fmph.uniba.sk